Revision tags: llvmorg-18-init |
|
#
220fe00a |
| 11-Jul-2023 |
Brendan Dahl <brendan.dahl@gmail.com> |
[WebAssembly] Support `annotate` clang attributes for marking functions.
Annotation attributes may be attached to a function to mark it with custom data that will be contained in the final Wasm file
[WebAssembly] Support `annotate` clang attributes for marking functions.
Annotation attributes may be attached to a function to mark it with custom data that will be contained in the final Wasm file. The annotation causes a custom section named "func_attr.annotate.<name>.<arg0>.<arg1>..." to be created that will contain each function's index value that was marked with the annotation.
A new patchable relocation type for function indexes had to be created so the custom section could be updated during linking.
Reviewed By: sbc100
Differential Revision: https://reviews.llvm.org/D150803
show more ...
|
#
8de9f2b5 |
| 26-Jun-2023 |
Job Noorman <jnoorman@igalia.com> |
Move SubtargetFeature.h from MC to TargetParser
SubtargetFeature.h is currently part of MC while it doesn't depend on anything in MC. Since some LLVM components might have the need to work with targ
Move SubtargetFeature.h from MC to TargetParser
SubtargetFeature.h is currently part of MC while it doesn't depend on anything in MC. Since some LLVM components might have the need to work with target features without necessarily needing MC, it might be worthwhile to move SubtargetFeature.h to a different location. This will reduce the dependencies of said components.
Note that I choose TargetParser as the destination because that's where Triple lives and SubtargetFeatures feels related to that.
This issues came up during a JITLink review (D149522). JITLink would like to avoid a dependency on MC while still needing to store target features.
Reviewed By: MaskRay, arsenm
Differential Revision: https://reviews.llvm.org/D150549
show more ...
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4 |
|
#
d65ed8cd |
| 24-Feb-2023 |
Sam Clegg <sbc@chromium.org> |
[lld][WebAssembly] Fix handling of mixed strong and weak references
When adding a undefined symbols to the symbol table, if the existing reference is weak replace the symbol flags with (potentially)
[lld][WebAssembly] Fix handling of mixed strong and weak references
When adding a undefined symbols to the symbol table, if the existing reference is weak replace the symbol flags with (potentially) non-weak binding.
Fixes: https://github.com/llvm/llvm-project/issues/60829
Differential Revision: https://reviews.llvm.org/D144747
show more ...
|
Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2 |
|
#
62c7f035 |
| 07-Feb-2023 |
Archibald Elliott <archibald.elliott@arm.com> |
[NFC][TargetParser] Remove llvm/ADT/Triple.h
I also ran `git clang-format` to get the headers in the right order for the new location, which has changed the order of other headers in two files.
|
Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
537cdf92 |
| 07-Dec-2022 |
Elena Lepilkina <elena.lepilkina@syntacore.com> |
[llvm-objdump][RISCV] Use new common method to parse ARCH RISCV attribute
Differential Revision: https://reviews.llvm.org/D139553
|
#
3e5f54d6 |
| 09-Dec-2022 |
Guillaume Chatelet <gchatelet@google.com> |
Revert D139098 "[Alignment] Use Align for ObjectFile::getSectionAlignment"
This breaks lld.
This reverts commit 10c47465e2505ddfee4e62a2ab2e535abea3ec56.
|
#
10c47465 |
| 01-Dec-2022 |
Guillaume Chatelet <gchatelet@google.com> |
[Alignment] Use Align for ObjectFile::getSectionAlignment
Differential Revision: https://reviews.llvm.org/D139098
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0 |
|
#
9f049e99 |
| 31-Aug-2022 |
Dan Gohman <dev@sunfishcode.online> |
[lld][WebAssemby] Allow import module names to be empty strings.
The component-model [canonical ABI] is currently using import names with empty strings. Remove the special cases for empty strings fr
[lld][WebAssemby] Allow import module names to be empty strings.
The component-model [canonical ABI] is currently using import names with empty strings. Remove the special cases for empty strings from WasmObjectFile.cpp so that they can pass through as-is.
[canonical ABI]: https://github.com/WebAssembly/component-model/blob/main/design/mvp/CanonicalABI.md
Differential Revision: https://reviews.llvm.org/D133037
show more ...
|
Revision tags: llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
7094ab4e |
| 18-Jul-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Modernize bool literals (NFC)
Identified with modernize-use-bool-literals.
|
Revision tags: llvmorg-14.0.6 |
|
#
5a082d9c |
| 17-Jun-2022 |
Derek Schuff <dschuff@chromium.org> |
[WebAssembly][Object] Remove requirement that objects must have code sections
When parsing name and linking sections, we currently require that the object must have a code section (it seems that thi
[WebAssembly][Object] Remove requirement that objects must have code sections
When parsing name and linking sections, we currently require that the object must have a code section (it seems that this was intended to verify section ordering). However it can be useful for binaries to have their code sections stripped out (e.g. if we just want the debug info). In that case we need the rest of the known sections (so e.g. we know how many functions there are, to verify the name section) but not the actual code.
I've removed the restriction completely. I think this is OK because the section-parsing code already checks function and global indices in many places for validity and will return appropriate errors if the relevant sections are missing. Also we can't just replace the requirement of seeing a code section with a requirement that we see a function or global section, because a binary may just not have any functions or globals. But there's only an problem if the name or linking section tries to name a nonexistent function.
Part of a fix for https://github.com/emscripten-core/emscripten/issues/13084
Differential Revision: https://reviews.llvm.org/D128094
show more ...
|
#
7a47ee51 |
| 21-Jun-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Don't use Optional::getValue (NFC)
|
Revision tags: llvmorg-14.0.5 |
|
#
2ae385e5 |
| 06-Jun-2022 |
Derek Schuff <dschuff@chromium.org> |
[WebAssembly] Add WASM_SEC_LAST_KNOWN to BinaryFormat section types list [NFC]
There are 3 places where we were using WASM_SEC_TAG as the "last" known section type, which requires updating (or leave
[WebAssembly] Add WASM_SEC_LAST_KNOWN to BinaryFormat section types list [NFC]
There are 3 places where we were using WASM_SEC_TAG as the "last" known section type, which requires updating (or leaves a bug) when a new known section type is added. Instead add a "last type" to the enum for this purpose.
Differential Revision: https://reviews.llvm.org/D127164
show more ...
|
#
a205f290 |
| 27-May-2022 |
Derek Schuff <dschuff@chromium.org> |
[WebAssembly] Consolidate sectionTypeToString in BinaryFormat [NFC]
Currently there are 2 duplicate implementation, and I want to add a use in a 3rd place. Combine them in lib/BinaryFormat so they c
[WebAssembly] Consolidate sectionTypeToString in BinaryFormat [NFC]
Currently there are 2 duplicate implementation, and I want to add a use in a 3rd place. Combine them in lib/BinaryFormat so they can be shared.
Also update toString for symbol and reloc types to use StringRef
Differential Revision: https://reviews.llvm.org/D126553
show more ...
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
#
9b27fbd1 |
| 15-Mar-2022 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Fix asan issue from https://reviews.llvm.org/D121349
|
#
2481adb5 |
| 15-Mar-2022 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Fix asan issue from https://reviews.llvm.org/D121349
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
9504ab32 |
| 10-Mar-2022 |
Sam Clegg <sbc@chromium.org> |
[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 obje
[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
show more ...
|
Revision tags: llvmorg-14.0.0-rc2 |
|
#
e72c195f |
| 10-Feb-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup LLVMObject headers
Most notably,
llvm/Object/Binary.h no longer includes llvm/Support/MemoryBuffer.h llvm/Object/MachOUniversal*.h no longer include llvm/Object/Archive.h llvm/Object/TapiUn
Cleanup LLVMObject headers
Most notably,
llvm/Object/Binary.h no longer includes llvm/Support/MemoryBuffer.h llvm/Object/MachOUniversal*.h no longer include llvm/Object/Archive.h llvm/Object/TapiUniversal.h no longer includes llvm/Object/TapiFile.h
llvm-project preprocessed size: before: 1068185081 after: 1068324320
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D119457
show more ...
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
#
c71fbdd8 |
| 03-Nov-2021 |
Quinn Pham <Quinn.Pham@ibm.com> |
[NFC] Inclusive language: Remove instances of master in URLs
[NFC] This patch fixes URLs containing "master". Old URLs were either broken or redirecting to the new URL.
Reviewed By: #libc, ldionne,
[NFC] Inclusive language: Remove instances of master in URLs
[NFC] This patch fixes URLs containing "master". Old URLs were either broken or redirecting to the new URL.
Reviewed By: #libc, ldionne, mehdi_amini
Differential Revision: https://reviews.llvm.org/D113186
show more ...
|
#
659a0839 |
| 07-Oct-2021 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Add import info to `dylink` section of shared libraries
See https://github.com/WebAssembly/tool-conventions/pull/175
Differential Revision: https://reviews.llvm.org/D111345
|
#
9261ee32 |
| 29-Sep-2021 |
Heejin Ahn <aheejin@gmail.com> |
[WebAssembly] Make EH work with dynamic linking
This makes Wasm EH work with dynamic linking. So far we were only able to handle destructors, which do not use any tags or LSDA info.
1. This uses `T
[WebAssembly] Make EH work with dynamic linking
This makes Wasm EH work with dynamic linking. So far we were only able to handle destructors, which do not use any tags or LSDA info.
1. This uses `TargetExternalSymbol` for `GCC_except_tableN` symbols, which points to the address of per-function LSDA info. It is more convenient to use than `MCSymbol` because it can take additional target flags.
2. When lowering `wasm_lsda` intrinsic, if PIC is enabled, make the symbol relative to `__memory_base` and generate the `add` node. If PIC is disabled, continue to use the absolute address.
3. Make tag symbols (`__cpp_exception` and `__c_longjmp`) undefined in the backend, because it is hard to make it work with dynamic linking's loading order. Instead, we make all tag symbols undefined in the LLVM backend and import it from JS.
4. Add support for undefined tags to the linker.
Companion patches: - https://github.com/WebAssembly/binaryen/pull/4223 - https://github.com/emscripten-core/emscripten/pull/15266
Reviewed By: sbc100
Differential Revision: https://reviews.llvm.org/D111388
show more ...
|
#
3ec1760d |
| 02-Oct-2021 |
Heejin Ahn <aheejin@gmail.com> |
[WebAssembly] Remove WasmTagType
This removes `WasmTagType`. `WasmTagType` contained an attribute and a signature index: ``` struct WasmTagType { uint8_t Attribute; uint32_t SigIndex; }; ```
Cu
[WebAssembly] Remove WasmTagType
This removes `WasmTagType`. `WasmTagType` contained an attribute and a signature index: ``` struct WasmTagType { uint8_t Attribute; uint32_t SigIndex; }; ```
Currently the attribute field is not used and reserved for future use, and always 0. And that this class contains `SigIndex` as its property is a little weird in the place, because the tag type's signature index is not an inherent property of a tag but rather a reference to another section that changes after linking. This makes tag handling in the linker also weird that tag-related methods are taking both `WasmTagType` and `WasmSignature` even though `WasmTagType` contains a signature index. This is because the signature index changes in linking so it doesn't have any info at this point. This instead moves `SigIndex` to `struct WasmTag` itself, as we did for `struct WasmFunction` in D111104.
In this CL, in lib/MC and lib/Object, this now treats tag types in the same way as function types. Also in YAML, this removes `struct Tag`, because now it only contains the tag index. Also tags set `SigIndex` in `WasmImport` union, as functions do.
I think this makes things simpler and makes tag handling more in line with function handling. These two shares similar properties in that both of them have signatures, but they are kind of nominal so having the same signature doesn't mean they are the same element.
Also a drive-by fix: the reserved 'attirubute' part's encoding changed from uleb32 to uint8 a while ago. This was fixed in lib/MC and lib/Object but not in YAML. This doesn't change object files because the field's value is always 0 and its encoding is the same for the both encoding.
This is effectively NFC; I didn't mark it as such just because it changed YAML test results.
Reviewed By: sbc100, tlively
Differential Revision: https://reviews.llvm.org/D111086
show more ...
|
#
c0039de2 |
| 04-Oct-2021 |
Sam Clegg <sbc@chromium.org> |
[Object][WebAssemlby] Report function types (signatures). NFC
This simplifies the code in a number of ways and avoids having to track functions and their types separately.
Differential Revision: ht
[Object][WebAssemlby] Report function types (signatures). NFC
This simplifies the code in a number of ways and avoids having to track functions and their types separately.
Differential Revision: https://reviews.llvm.org/D111104
show more ...
|
#
210cbcf4 |
| 29-Sep-2021 |
Sam Clegg <sbc@chromium.org> |
[WebAssemlby][Object] Fix dead code in WasmObjectFile.cpp
I introduced this by mistake in https://reviews.llvm.org/D109595.
Differential Revision: https://reviews.llvm.org/D110717
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
#
ef8c9135 |
| 26-Aug-2021 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Allow import and export of TLS symbols between DSOs
We previously had a limitation that TLS variables could not be exported (and therefore could also not be imported). This change rem
[WebAssembly] Allow import and export of TLS symbols between DSOs
We previously had a limitation that TLS variables could not be exported (and therefore could also not be imported). This change removed that limitation.
Differential Revision: https://reviews.llvm.org/D108877
show more ...
|
#
b78c85a4 |
| 10-Sep-2021 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Convert to new "dylink.0" section format
This format is based on sub-sections (like the "linking" and "name" sections) and is therefore easier to extend going forward.
spec change: ht
[WebAssembly] Convert to new "dylink.0" section format
This format is based on sub-sections (like the "linking" and "name" sections) and is therefore easier to extend going forward.
spec change: https://github.com/WebAssembly/tool-conventions/pull/170 binaryen change: https://github.com/WebAssembly/binaryen/pull/4141 wabt change: https://github.com/WebAssembly/wabt/pull/1707 emscripten change: https://github.com/emscripten-core/emscripten/pull/15019
Differential Revision: https://reviews.llvm.org/D109595
show more ...
|