Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, 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, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, 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 |
|
#
df00dac8 |
| 25-Aug-2022 |
Alex Richardson <alexrichardson@google.com> |
[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol
This allows relaxing some relocations to symbol+offset instead of emitting a relocation against a symbol.
Reviewed By: MaskRay
Differential Revis
[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol
This allows relaxing some relocations to symbol+offset instead of emitting a relocation against a symbol.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D131433
show more ...
|
#
0483b008 |
| 25-Aug-2022 |
Alex Richardson <alexrichardson@google.com> |
Mark the $local function begin symbol as a function
While this does not matter for most targets, when building for Arm Morello, we have to mark the symbol as a function and add size information, so
Mark the $local function begin symbol as a function
While this does not matter for most targets, when building for Arm Morello, we have to mark the symbol as a function and add size information, so that LLD can correctly evaluate relocations against the local symbol. Since Morello is an out-of-tree target, I tried to reproduce this with in-tree backends and with the previous reviews applied this results in a noticeable difference when targeting Thumb.
Background: Morello uses a method similar Thumb where the encoding mode is specified in the LSB of the symbol. If we don't mark the target as a function, the relocation will not have the LSB set and calls will end up using the wrong encoding mode (which will almost certainly crash).
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D131429
show more ...
|
Revision tags: llvmorg-15.0.0-rc3 |
|
#
8c8cfaaf |
| 22-Aug-2022 |
Alan Zhao <ayzhao@google.com> |
Revert "[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol"
This reverts commit 6db15a82cc0966458c2b7d84b39f42ef09d2ac20.
Reverted because this breaks offical Chrome builds targeting Android on arm
Revert "[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol"
This reverts commit 6db15a82cc0966458c2b7d84b39f42ef09d2ac20.
Reverted because this breaks offical Chrome builds targeting Android on arm: https://crbug.com/1354305
Repro: https://drive.google.com/file/d/1pgQI2adwx3DJJqIYvMY4i249ouHU0rmu/view?usp=sharing
show more ...
|
#
6db15a82 |
| 09-Aug-2022 |
Alex Richardson <alexrichardson@google.com> |
[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol
This allows relaxing some relocations to STT_SECTION symbol+offset instead of emitting a relocation against a symbol.
Reviewed By: MaskRay
Differ
[ARM] Use getSymbolPreferLocal() in GetARMGVSymbol
This allows relaxing some relocations to STT_SECTION symbol+offset instead of emitting a relocation against a symbol.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D131433
show more ...
|
#
fa210dd6 |
| 09-Aug-2022 |
Alex Richardson <alexrichardson@google.com> |
[Thumb] Baseline test for incorrect relocation with -ffunction-sections
When calling a dso_local function, we end up creating a call against the .Lfoo$local label. This might be converted to a reloc
[Thumb] Baseline test for incorrect relocation with -ffunction-sections
When calling a dso_local function, we end up creating a call against the .Lfoo$local label. This might be converted to a relocation against a section if there is such a matching one (which is a lot more likely with -ffunction-sections) and then the LSB (Thumb flag) will be lost.
I originally noticed this with Morello LLVM (which uses the LSB to indicate a C64 encoding mode function). The missing LSB meant that ld.lld would insert a thunk that switches encoding mode which then resulted in errors at runtime since functions were being entered with the wrong encoding mode. Since the Morello backend is not upstream, I looked if any in-tree backends could also be affected by the missing STT_FUNC flag and noticed that Thumb is also affected (although the bug is rather difficult to trigger - it currently requires inline assembly).
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D131432
show more ...
|