mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Add an option to allocate JITed global data separately from code. By
default, this option is not enabled to support clients who rely on this behavior. Fixes http://llvm.org/PR4483 A patch to allocate additional memory for globals after we run out is forthcoming. Patch by Reid Kleckner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75059 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -28,6 +28,7 @@ protected:
|
||||
bool HasGOT;
|
||||
bool SizeRequired;
|
||||
public:
|
||||
|
||||
JITMemoryManager() : HasGOT(false), SizeRequired(false) {}
|
||||
virtual ~JITMemoryManager();
|
||||
|
||||
@ -43,6 +44,11 @@ public:
|
||||
/// start execution, the code pages may need permissions changed.
|
||||
virtual void setMemoryExecutable(void) = 0;
|
||||
|
||||
/// setPoisonMemory - Setting this flag to true makes the memory manager
|
||||
/// garbage values over freed memory. This is useful for testing and
|
||||
/// debugging, and is be turned on by default in debug mode.
|
||||
virtual void setPoisonMemory(bool poison) = 0;
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Global Offset Table Management
|
||||
//===--------------------------------------------------------------------===//
|
||||
@ -114,7 +120,10 @@ public:
|
||||
|
||||
/// allocateSpace - Allocate a memory block of the given size.
|
||||
virtual uint8_t *allocateSpace(intptr_t Size, unsigned Alignment) = 0;
|
||||
|
||||
|
||||
/// allocateGlobal - Allocate memory for a global.
|
||||
virtual uint8_t *allocateGlobal(uintptr_t Size, unsigned Alignment) = 0;
|
||||
|
||||
/// deallocateMemForFunction - Free JIT memory for the specified function.
|
||||
/// This is never called when the JIT is currently emitting a function.
|
||||
virtual void deallocateMemForFunction(const Function *F) = 0;
|
||||
|
Reference in New Issue
Block a user