1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib/ExecutionEngine
Lang Hames 023dd287ea [JITLink] Refactor EH-frame handling to support eh-frames with existing relocs.
Some targets (E.g. MachO/arm64) use relocations to fix some CFI record fields
in the eh-frame section. When relocations are used the initial (pre-relocation)
content of the eh-frame section can no longer be interpreted by following the
eh-frame specification. This causes errors in the existing eh-frame parser.

This patch moves eh-frame handling into two LinkGraph passes that are run after
relocations have been parsed (but before they are applied). The first] pass
breaks up blocks in the eh-frame section into per-CFI-record blocks, and the
second parses blocks of (potentially multiple) CFI records and adds the
appropriate edges to any CFI fields that do not have existing relocations.
These passes can be run independently of one another. By handling eh-frame
splitting/fixing with LinkGraph passes we can both re-use existing relocations
for CFI record fields and avoid applying eh-frame fixups before parsing the
section (which would complicate the linker and require extra temporary
allocations of working memory).
2019-11-06 14:30:26 -08:00
..
IntelJITEvents
Interpreter Replace llvm::MutexGuard/UniqueLock with their standard equivalents 2019-08-07 10:57:25 +00:00
JITLink [JITLink] Refactor EH-frame handling to support eh-frames with existing relocs. 2019-11-06 14:30:26 -08:00
MCJIT Replace llvm::MutexGuard/UniqueLock with their standard equivalents 2019-08-07 10:57:25 +00:00
OProfileJIT [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Orc [Orc] Fix iterator usage after remove 2019-11-06 17:17:27 -05:00
OrcError Break out OrcError and RPC 2019-10-29 17:31:28 -07:00
PerfJITEvents [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
RuntimeDyld [llvm/Object] - Make ELFObjectFile::getRelocatedSection return Expected<section_iterator> 2019-10-21 11:06:38 +00:00
CMakeLists.txt Break out OrcError and RPC 2019-10-29 17:31:28 -07:00
ExecutionEngine.cpp [ExecutionEngine] Don't dereference a dyn_cast result. NFCI. 2019-09-16 15:19:11 +00:00
ExecutionEngineBindings.cpp
GDBRegistrationListener.cpp Replace llvm::MutexGuard/UniqueLock with their standard equivalents 2019-08-07 10:57:25 +00:00
LLVMBuild.txt Break out OrcError and RPC 2019-10-29 17:31:28 -07:00
SectionMemoryManager.cpp
TargetSelect.cpp