llvm-project/llvm/lib/ExecutionEngine
Rafael Auler a33687ec58 [RuntimeDyld] Add allowStubs/allowZeroSyms
This patch introduces functionality used by BOLT when
re-linking the final binary. It adds to MemoryManager a new member
function allowStubAllocation to control whether this MemoryManager
supports increasing code size with stubs or not. Since BOLT can
rewrite some files in-place, it needs to avoid stub insertion done
by the linker. This patch also introduces allowsZeroSymbols to the
JITSymbolResolver class, enabling us to finish a link successfully
even when some symbols resolve to the value zero. When rewriting a
binary, sometimes we do need to resolve a target to zero in case
the input binary calls address zero and we want to be bug
compatible. We also expose reassignSectionAddress as it is used by
BOLT.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D97898
2021-05-18 11:35:27 -07:00
..
IntelJITEvents New tag for ittapi - fix an error related to cross-compiling ITTAPI in LLVM with mingw 2021-05-14 08:18:49 +03:00
Interpreter Revert "Allow invokable sub-classes of IntrinsicInst" 2021-04-20 15:38:38 -07:00
JITLink [JITLink] Fix symbol comparator in LinkGraph::dump. 2021-05-16 10:11:58 -07:00
MCJIT [llvm] Use *Set::contains (NFC) 2021-01-13 19:14:41 -08:00
OProfileJIT llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Orc [ORC] Don't try to obtain a ref to a non-existent buffer. 2021-05-18 08:44:15 -07:00
PerfJITEvents llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
RuntimeDyld [RuntimeDyld] Add allowStubs/allowZeroSyms 2021-05-18 11:35:27 -07:00
CMakeLists.txt [lli] Add JITLink in-process debug support 2021-03-02 15:07:36 +01:00
ExecutionEngine.cpp [ORC] Remove OrcV1 APIs. 2020-10-18 21:02:44 -07:00
ExecutionEngineBindings.cpp [MCJIT] Check for RuntimeDyld errors in MCJIT::finalizeLoadedModules. 2020-03-13 13:58:41 -07:00
GDBRegistrationListener.cpp [lli] Add JITLink in-process debug support 2021-03-02 15:07:36 +01:00
SectionMemoryManager.cpp [ExecutionEngine, Linker] Use erase_if (NFC) 2020-12-23 21:44:39 -08:00
TargetSelect.cpp [ExecutionEngine] Re-enable FastISel for non-iOS arm targets. 2020-01-11 10:49:59 -08:00