summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2012-01-16 22:26:39 +0000
committerJim Grosbach <grosbach@apple.com>2012-01-16 22:26:39 +0000
commiteff0a40d7e5a440b470f8f16459c8aa1ad8c1345 (patch)
treeb96f833f38527be3ec29a9dc29b2f026d3480502 /llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h
parentd5e4edbfbfe3a36a5733fbef65416ee0fee869c2 (diff)
downloadbcm5719-llvm-eff0a40d7e5a440b470f8f16459c8aa1ad8c1345.tar.gz
bcm5719-llvm-eff0a40d7e5a440b470f8f16459c8aa1ad8c1345.zip
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. llvm-svn: 148258
Diffstat (limited to 'llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h')
-rw-r--r--llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h b/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h
index bc7080d2d30..ac8c15579ef 100644
--- a/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h
+++ b/llvm/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.
OpenPOWER on IntegriCloud