[all-commits] [llvm/llvm-project] b05e3a: [ORC] Fix file comment formatting. NFC.
Lang Hames via All-commits
all-commits at lists.llvm.org
Sat Feb 8 13:40:58 PST 2025
Branch: refs/heads/release/20.x
Home: https://github.com/llvm/llvm-project
Commit: b05e3a7d5e2285b545510f01ea7c599502e582d8
https://github.com/llvm/llvm-project/commit/b05e3a7d5e2285b545510f01ea7c599502e582d8
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
Log Message:
-----------
[ORC] Fix file comment formatting. NFC.
(cherry picked from commit 7fb233f549dee0346332562de050ef2ab3654329)
Commit: 4abac9fbfdcdf63c221ecdd83eadaa8f578b5d1e
https://github.com/llvm/llvm-project/commit/4abac9fbfdcdf63c221ecdd83eadaa8f578b5d1e
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
Log Message:
-----------
[ORC] Drop 'Info' from MachOCompactUnwindInfoSectionName.
Rename MachOCompactUnwindInfoSectionName to MachOCompactUnwindSectionName.
Background:
There are two related sections used for compact-unwind info processing:
__LD,__compact_unwind -- the input table stored in relocatable object formats,
and __TEXT,__unwind_info -- the compressed table produced by the linker and
consumed by libunwind. To keep the distinction clear we'll use *CompactUnwind*
for names that refer to the __LD,__compact_unwind input tables and *UnwindInfo*
for names that refer to the __TEXT,__unwind_info output tables. Dropping 'Info'
from the variable above clarifies which section it refers to.
(cherry picked from commit a1ff2d18466bc27d3dc9b8bba688454e2a1cf196)
Commit: 124480368687dd518254b482707988fe152429ac
https://github.com/llvm/llvm-project/commit/124480368687dd518254b482707988fe152429ac
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
A llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
Log Message:
-----------
[ORC] Add minimal-throw-catch.ll regression test for lli -jit-mode=orc.
We already had a -jit-mode=orc-lazy regression test for this, but it should
work equally well in non-lazy mode.
(cherry picked from commit b46211bbf683b30b88e41a684633fc63436e5edf)
Commit: 3a474e70939a4c68a9598ad15c268621f6c33911
https://github.com/llvm/llvm-project/commit/3a474e70939a4c68a9598ad15c268621f6c33911
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
Log Message:
-----------
[ORC] Actually use -jit-kind=orc for the new minimal-throw-catch.ll test.
b46211bbf68, which introduced a new copy of the minimal-throw-catch.ll test,
failed to update the run line.
(cherry picked from commit c0f7ebe715dbe706224389a3022e6a3880fef0a1)
Commit: c5f8508dd3649fffdff2cfcae9335612f38abea9
https://github.com/llvm/llvm-project/commit/c5f8508dd3649fffdff2cfcae9335612f38abea9
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
Log Message:
-----------
[ORC] Rename MachOCompactUnwindSectionName to MachOUnwindInfoSectionName.
a1ff2d18466 should have disambiguated MachOCompactUnwindInfoSectionName to
MachOUnwindInfoSectionName, given how it's used in MachOPlatform and its
value.
A MachOCompactUnwindSectionName variable with an appropriate value will be
added in an upcoming patch to re-enable compact-unwind support in JITLink.
(cherry picked from commit b84ac58dce65ea94994c24f40a14208c47f8119f)
Commit: 1bcbc68e98b07cdef6b03377bb7cfc0d53787577
https://github.com/llvm/llvm-project/commit/1bcbc68e98b07cdef6b03377bb7cfc0d53787577
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Fix eh-frame record target finding in MachOPlatform.
Unwind-info records only have one keep-alive edge to their target function, but
eh-frame records may have multiple edges (to the CIE, function, personality, and
lsda). We need to identify the target-function edge differently for each section
type.
(cherry picked from commit 52b5e3638a39e977bebb491312a6f7c53314efec)
Commit: 74d53f73bdf81bf72b949e41058398d610612e6b
https://github.com/llvm/llvm-project/commit/74d53f73bdf81bf72b949e41058398d610612e6b
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Moch MachOPlatform unwind-info fixes.
Some eh-frame records are CIEs, which don't point to functions. We need to skip
these records. This patch reuses EHFrameCFIBlockInspector to identify function
targets, rather than a custom loop. Any performance impact will be minimal, and
essentially irrelevant once compact-unwind support re-lands (since at that
point we'll discard most eh-frame records).
For unwind-info sections: don't assume one block per record: the unwind-info
section packs all records into a single block.
(cherry picked from commit 9de581b206eceac331aa26e13b62a9a35bfd406f)
Commit: 50c4c2bf6802da5eb47606de1cea89ddc60bf14b
https://github.com/llvm/llvm-project/commit/50c4c2bf6802da5eb47606de1cea89ddc60bf14b
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M clang/test/Interpreter/simple-exception.cpp
M compiler-rt/lib/orc/macho_platform.cpp
A compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions.cpp
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
A llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.cpp
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
M llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
M llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/EHFrameRegistrationPlugin.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
A llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
A llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp
M llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
M llvm/test/lit.cfg.py
Log Message:
-----------
Re-reapply "[ORC] Enable JIT support for the compact-unwind..." with fixes.
Re-enables compact-unwind support in JITLink, which was reverted in b04847b427d
due to buildbot failures.
The underlying cause for the failures on the buildbots was the lack of
compact-unwind registration support on older Darwin OSes. Since the
CompactUnwindManager pass now removes eh-frames by default we were left with
unwind-info that could not be registered. On x86-64, where eh-frame info is
produced by default the solution is to fall back to using eh-frames. On arm64
we simply can't support exceptions on older OSes.
This patch updates the EHFrameRegistrationPlugin to remove the compact-unwind
section (__LD,__compact_unwind) when installed, forcing use of eh-frames when
the EHFrameRegistrationPlugin is used. In LLJIT, the EHFrameRegistrationPlugin
continues to be used for all non-Darwin platform, and will be added on Darwin
platforms when the a CompactUnwindRegistrationPlugin instance can't be created
(e.g. due to missing support for compact-unwind info registration).
The lit.cfg.py script is updated to check whether the host OSes default unwind
info supports JIT registration, allowing tests to be disabled for older Darwin
OSes on arm64.
(cherry picked from commit eae6d6d18bd4d9e7dfe5fc1206d23d8ef663c8c7)
Commit: 7782b8310d49d7b3751ecc7ce7511c0c34f62efb
https://github.com/llvm/llvm-project/commit/7782b8310d49d7b3751ecc7ce7511c0c34f62efb
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions.cpp
Log Message:
-----------
[ORC-RT] Add a comment explaining the purpose of this testcase. NFC.
(cherry picked from commit aefa30e2301f155d4f4737d6f6c55c66eac58b2d)
Commit: 0c23bde7176d17f37923e0d8c847e48ebb700a91
https://github.com/llvm/llvm-project/commit/0c23bde7176d17f37923e0d8c847e48ebb700a91
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
A compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions-stress-test-tower.cpp
M llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
Log Message:
-----------
[ORC] Fix buggy calculation of second-level-page offset in unwind-info.
SecondLevelPageOffset should be incremented by SecondLevelPageSize bytes, not
one byte.
Failure to calculate the offset correctly leads to corrupted unwind-info (and
consequently broken exceptions / unwinding) when more than one second level
page is needed. Since JITLink's unwind support only produces
UNWIND_SECOND_LEVEL_REGULAR-style pages this would trigger for any file
containing more than 511 functions with unwind info. The included test-case
contains 1022 functions (sufficient for both the current format and any
future implementation that supports UNWIND_SECOND_LEVEL_COMPRESSED pages).
Thanks to @edoardo on discord for spotting this bug!
(cherry picked from commit 88f55d16c4c247a9eef326961a1445dee3f2e30c)
Commit: 975fa93b5f3715215ac2c4c74e86f466349bc0de
https://github.com/llvm/llvm-project/commit/975fa93b5f3715215ac2c4c74e86f466349bc0de
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
M llvm/lib/ExecutionEngine/JITLink/COFF_x86_64.cpp
M llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
M llvm/lib/ExecutionEngine/JITLink/JITLink.cpp
M llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h
M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
M llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp
M llvm/lib/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
Log Message:
-----------
[JITLink] Add a jitlink::Symbol::getSection() convenience method.
`Sym.getSection()` is equivalent to `Sym.getBlock().getSection()`.
(cherry picked from commit 4a2a8ed70da7ec44f0aa9092595e5b0f81a7e841)
Commit: 749bebc5dab440377bc8365ee0d278423d19cd92
https://github.com/llvm/llvm-project/commit/749bebc5dab440377bc8365ee0d278423d19cd92
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
R llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
A llvm/test/ExecutionEngine/Orc/throw-catch-minimal.ll
Log Message:
-----------
[JITLink] Handle compact-unwind records that depend on DWARF FDEs.
Compact-unwind encodings are more limited than DWARF frame descriptions. For
functions whose frame layout cannot be described by a compact unwind encoding,
the encoding for the function will specify "use DWARF", and the corresponding
unwind-info record will use the low bits of the encoding to point to the FDE
for the function.
We test this with a frame-pointer=none function, since these frame layouts
always triger a fall-back to DWARF on arm64.
(cherry picked from commit 9d88ffe7f7b4a46d3bcb7bbdf0d7eb037ab5ba04)
Commit: b3876b698d0a7b4c2c61f94fc2d0877a7dfd8e20
https://github.com/llvm/llvm-project/commit/b3876b698d0a7b4c2c61f94fc2d0877a7dfd8e20
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
A llvm/test/ExecutionEngine/Orc/throw-catch-no-frame-pointer.ll
Log Message:
-----------
[JITLink] Add missing testcase for compact-unwind-needs-dwarf.
This testcase was accidentally left out of 9d88ffe7f7b.
(cherry picked from commit 7a213e70eb24e621042f2fda043622048cb1f1df)
Commit: a9b497606405d6f88fc7949f27c275f0cec486aa
https://github.com/llvm/llvm-project/commit/a9b497606405d6f88fc7949f27c275f0cec486aa
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions-stress-test-tower.cpp
Log Message:
-----------
[ORC-RT] Use templates to express deeply nested function calls in testcase.
Makes this test smaller and more readable.
(cherry picked from commit e00f824e9a5ea73830bd346115968fa9ace84cbf)
Commit: 1ba879965ff84ed4ef13b98b4144e23681a04d79
https://github.com/llvm/llvm-project/commit/1ba879965ff84ed4ef13b98b4144e23681a04d79
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
Log Message:
-----------
[ORC] Add a FIXME. NFC.
(cherry picked from commit 7811c20bcd9d5b117a9543d74c71448fe9970fe6)
Commit: c7e085c5d32def57fffd292174a052bff6d6a241
https://github.com/llvm/llvm-project/commit/c7e085c5d32def57fffd292174a052bff6d6a241
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
Log Message:
-----------
[ORC] Add ExecutionSession convenience methods to access bootstrap values.
The getBootstrapMap, getBootstrapMapValue, getBootstrapSymbolsMap, and
getBootstrapSymbols methods forward to their respective counterparts in
ExecutorProcessControl, similar to the callWrapper functions.
These methods will be used to simplify an upcoming patch that accesses
the bootstrap values.
(cherry picked from commit 63bb4ba84a22279c1cdd4953f0c19269b23a9d32)
Commit: bf2828f65823264f46e9cca60f0f4e9988ce2f57
https://github.com/llvm/llvm-project/commit/bf2828f65823264f46e9cca60f0f4e9988ce2f57
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-08 (Sat, 08 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/DefaultHostBootstrapValues.h
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
A llvm/lib/ExecutionEngine/Orc/TargetProcess/DefaultHostBootstrapValues.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
M llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp
Log Message:
-----------
[ORC] Force eh-frame use for older Darwins on x86-64 in MachOPlatform, LLJIT.
The system libunwind on older Darwins does not support JIT registration of
compact-unwind. Since the CompactUnwindManager utility discards redundant
eh-frame FDEs by default we need to remove the compact-unwind section first
when targeting older libunwinds in order to preserve eh-frames.
While LLJIT was already doing this as of eae6d6d18bd, MachOPlatform was not.
This was causing buildbot failures in the ORC runtime (e.g. in
https://green.lab.llvm.org/job/llvm.org/job/clang-stage1-RA/3479/).
This patch updates both LLJIT and MachOPlatform to check a bootstrap value,
"darwin-use-ehframes-only", to determine whether to forcibly preserve
eh-frame sections. If this value is present and set to true then compact-unwind
sections will be discarded, causing eh-frames to be preserved. If the value is
absent or set to false then compact-unwind will be used and redundant FDEs in
eh-frames discarded (FDEs that are needed by the compact-unwind section are
always preserved).
rdar://143895614
(cherry picked from commit e2eaf8ded78507100513a17e8193e2c4b094f8da)
Compare: https://github.com/llvm/llvm-project/compare/b2b41544eefa...bf2828f65823
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list