10 #ifndef LLVM_EXECUTIONENGINE_JITMEMORYMANAGER_H
11 #define LLVM_EXECUTIONENGINE_JITMEMORYMANAGER_H
14 #include "llvm/Support/DataTypes.h"
83 uintptr_t &ActualSize) = 0;
94 unsigned Alignment) = 0;
103 uint8_t *FunctionEnd) = 0;
110 virtual uint8_t *
allocateGlobal(uintptr_t Size,
unsigned Alignment) = 0;
virtual unsigned GetNumCodeSlabs()
virtual void setMemoryExecutable()=0
virtual size_t GetDefaultStubSlabSize()
virtual uint8_t * allocateStub(const GlobalValue *F, unsigned StubSize, unsigned Alignment)=0
virtual void setPoisonMemory(bool poison)=0
virtual uint8_t * getGOTBase() const =0
static JITMemoryManager * CreateDefaultMemManager()
virtual bool CheckInvariants(std::string &)
virtual void deallocateFunctionBody(void *Body)=0
virtual uint8_t * allocateGlobal(uintptr_t Size, unsigned Alignment)=0
allocateGlobal - Allocate memory for a global.
virtual void endFunctionBody(const Function *F, uint8_t *FunctionStart, uint8_t *FunctionEnd)=0
virtual unsigned GetNumStubSlabs()
virtual void AllocateGOT()=0
virtual ~JITMemoryManager()
virtual unsigned GetNumDataSlabs()
virtual uint8_t * startFunctionBody(const Function *F, uintptr_t &ActualSize)=0
virtual void setMemoryWritable()=0
virtual uint8_t * allocateSpace(intptr_t Size, unsigned Alignment)=0
bool isManagingGOT() const
isManagingGOT - Return true if the AllocateGOT method is called.
virtual size_t GetDefaultDataSlabSize()
virtual size_t GetDefaultCodeSlabSize()