diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-01-16 22:26:39 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-01-16 22:26:39 +0000 |
commit | 61425c0a7f4e3608a85f7bbf254cd052a15b7446 (patch) | |
tree | 54cde5d3f935fec86f9d6bd60ce2ccbea3376cf7 /lib/ExecutionEngine/MCJIT | |
parent | 27bf56056bed53d55d7ef0fd67d1851fa860b4f2 (diff) | |
download | external_llvm-61425c0a7f4e3608a85f7bbf254cd052a15b7446.zip external_llvm-61425c0a7f4e3608a85f7bbf254cd052a15b7446.tar.gz external_llvm-61425c0a7f4e3608a85f7bbf254cd052a15b7446.tar.bz2 |
MCJIT support for non-function sections.
Move to a by-section allocation and relocation scheme. This allows
better support for sections which do not contain externally visible
symbols.
Flesh out the relocation address vs. local storage address separation a
bit more as well. Remote process JITs use this to tell the relocation
resolution code where the code will live when it executes.
The startFunctionBody/endFunctionBody interfaces to the JIT and the
memory manager are deprecated. They'll stick around for as long as the
old JIT does, but the MCJIT doesn't use them anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148258 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/MCJIT')
-rw-r--r-- | lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h b/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h index bc7080d..ac8c155 100644 --- a/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h +++ b/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h @@ -31,6 +31,16 @@ public: // We own the JMM, so make sure to delete it. ~MCJITMemoryManager() { delete JMM; } + uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment, + unsigned SectionID) { + return JMM->allocateDataSection(Size, Alignment, SectionID); + } + + uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment, + unsigned SectionID) { + return JMM->allocateCodeSection(Size, Alignment, SectionID); + } + // Allocate ActualSize bytes, or more, for the named function. Return // a pointer to the allocated memory and update Size to reflect how much // memory was acutally allocated. |