KKazu HirataUse any_of (NFC)
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reland: "[lld][WebAssembly] Initial support merging string data" This change was originally landed in: 5000a1b4b9edeb9e994f2a5b36da8d48599bea49 It was reverted in: 061e071d8c9b98526f35cad55a918a4f1615afd4 This change adds support for a new WASM_SEG_FLAG_STRINGS flag in the object format which works in a similar fashion to SHF_STRINGS in the ELF world. Unlike the ELF linker this support is currently limited: - No support for SHF_MERGE (non-string merging) - Always do full tail merging ("lo" can be merged with "hello") - Only support single byte strings (p2align 0) Like the ELF linker merging is only performed at -O1 and above. This fixes part of https://bugs.llvm.org/show_bug.cgi?id=48828, although crucially it doesn't not currently support debug sections because they are not represented by data segments (they are custom sections) Differential Revision: https://reviews.llvm.org/D97657 | 5 年前 | |
[lld] Remove support for legacy pass manager This removes options for performing LTO with the legacy pass manager in LLD. Options that explicitly enable the new pass manager are retained as no-ops. Differential Revision: https://reviews.llvm.org/D123219 | 4 年前 | |
[lld][WebAssembly] Don't apply data relocations at static constructor time Instead, export __wasm_apply_data_relocs and __wasm_call_ctors separately. This is required since user code in a shared library (such as static constructors) should not be run until relocations have been applied to all loaded libraries. See: https://github.com/emscripten-core/emscripten/issues/17295 Differential Revision: https://reviews.llvm.org/D128515 | 3 年前 | |
[lld] Use value_or instead of getValueOr (NFC) | 3 年前 | |
Use value instead of getValue (NFC) | 3 年前 | |
Use value instead of getValue (NFC) | 3 年前 | |
Don't use Optional::hasValue (NFC) | 3 年前 | |
[MC][WebAssembly] Fix crash when relocation addend underlows U32 For the object file writer we need to allow the underflow (ar write zero), but for the final linker output we should probably generate an error (I've left that as a TODO for now). Fixes: https://github.com/llvm/llvm-project/issues/54012 Differential Revision: https://reviews.llvm.org/D120522 | 4 年前 | |
[lld] Remove support for legacy pass manager This removes options for performing LTO with the legacy pass manager in LLD. Options that explicitly enable the new pass manager are retained as no-ops. Differential Revision: https://reviews.llvm.org/D123219 | 4 年前 | |
[Coding style change][lld] Rename variables for non-ELF ports This patch does the same thing as r365595 to other subdirectories, which completes the naming style change for the entire lld directory. With this, the naming style conversion is complete for lld. Differential Revision: https://reviews.llvm.org/D64473 llvm-svn: 365730 | 6 年前 | |
Rename parallelForEachN to just parallelFor Patch created by running: rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/' No behavior change. Differential Revision: https://reviews.llvm.org/D128140 | 3 年前 | |
[lld][WebAssembly] Add initial support for -Map/--print-map Differential Revision: https://reviews.llvm.org/D77187 | 5 年前 | |
Revert D126950 "[lld][WebAssembly] Retain data segments referenced via __start/__stop" This reverts commit dcf3368e33c3a01bd21b692d3be5dc1ecee587f4. It breaks -DLLVM_ENABLE_ASSERTIONS=on builds. In addition, the description is incorrect about ld.lld behavior. For wasm, there should be justification to add the new mode. | 3 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[lld][WebAssembly] Require double dash for modern linker flags This matches the behaviour of the ELF backend (in fact this change is mostly just copying directly from ELF/Options.td). Differential Revision: https://reviews.llvm.org/D126500 | 4 年前 | |
[lld] Use value_or instead of getValueOr (NFC) | 3 年前 | |
[lld][WebAssembly] Cleanup output of --verbose Remove some unnecessary logging from wasm-ld when running under --verbose. Unlike -debug this logging is available in release builds. This change makes it little more minimal/readable. Also, avoid compiling the debugWrite function in releaase builds where it does nothing. This should remove a lot debug strings from the binary, and avoid having to construct unused debug strings at runtime. Differential Revision: https://reviews.llvm.org/D109583 | 4 年前 | |
[lld][WebAssembly] Remove unnecessary accessor methods. NFC This is less code, and matches more closely the ELF linker. Differential Revision: https://reviews.llvm.org/D126979 | 3 年前 | |
[lld][WebAssembly] Initialize bss segments using memory.fill Previously we were relying on the dynamic loader to take care of this but it simple and correct for us to do it here instead. Now we initialize bss segments as part of __wasm_init_memory at the same time we initialize passive segments. In addition we extent the us of __wasm_init_memory outside of shared memory situations. Specifically it is now used to initialize bss segments when the memory is imported. Differential Revision: https://reviews.llvm.org/D112667 | 4 年前 | |
[lld][WebAssembly] Add --unresolved-symbols=import-dynamic This is a new mode for handling unresolved symbols that allows all symbols to be imported in the same that they would be in the case of -fpie or -shared, but generting an otherwise fixed/non-relocatable binary. Code linked in this way should still be compiled with -fPIC so that data symbols can be resolved via imports. This essentially allows the building of static binaries that have dynamic imports. See: https://github.com/emscripten-core/emscripten/issues/12682 As with other uses of the experimental dynamic linking ABI, this behaviour will produce a warning unless run with --experimental-pic. Differential Revision: https://reviews.llvm.org/D91577 | 4 年前 | |
[Coding style change][lld] Rename variables for non-ELF ports This patch does the same thing as r365595 to other subdirectories, which completes the naming style change for the entire lld directory. With this, the naming style conversion is complete for lld. Differential Revision: https://reviews.llvm.org/D64473 llvm-svn: 365730 | 6 年前 | |
[lld][WebAssembly] Fix crash on undefined+weak function syms in LTO objects Symbols from LTO objects don't contain Wasm signatures, but we need a signature when we create undefined/stub functions for missing weakly undefined symbols. Luckily, after LTO, we know that symbols that are not referenced by a regular object file must not be needed in the final output so there is no need to generate undefined/stub function for them. Differential Revision: https://reviews.llvm.org/D126554 | 4 年前 | |
[lld] Rename addCombinedLTOObjects to match ELF driver. NFC This function was renamed in https://reviews.llvm.org/D62291. The new name seems more accurate and also its good to maintain some consistency between these methods in the different drivers. Differential Revision: https://reviews.llvm.org/D112719 | 4 年前 | |
[lld][WebAssembly] Avoid importing/exporting hidden symbols in shared libraries We have some special handling for weakly defined symbols where we both import and export them, but this is not needed for hidden symbols which should never be imported or exported. See https://github.com/emscripten-core/emscripten/pull/16972 This should also help with: https://github.com/emscripten-core/emscripten/issues/15487 Differential Revision: https://reviews.llvm.org/D126491 | 4 年前 | |
fix comment typos to cycle bots | 3 年前 | |
[lld] Use value_or instead of getValueOr (NFC) | 3 年前 | |
Use any_of (NFC) | 3 年前 | |
Use value instead of getValue (NFC) | 3 年前 | |
[WebAssembly] Refactor synthetic sections and relocation processing. NFC. Major refactor to better match the structure of the ELF linker. - Split out relocation processing into scanRelocations - Split out synthetic sections into their own classes. Differential Revision: https://reviews.llvm.org/D61811 llvm-svn: 361233 | 6 年前 | |
[WebAssembly] Second phase of implemented extended const proposal This change continues to lay the ground work for supporting extended const expressions in the linker. The included test covers object file reading and writing and the YAML representation. Differential Revision: https://reviews.llvm.org/D121349 | 4 年前 | |
[WebAssembly] Second phase of implemented extended const proposal This change continues to lay the ground work for supporting extended const expressions in the linker. The included test covers object file reading and writing and the YAML representation. Differential Revision: https://reviews.llvm.org/D121349 | 4 年前 |