17 #ifndef LLVM_TARGET_TARGETJITINFO_H
18 #define LLVM_TARGET_TARGETJITINFO_H
20 #include "llvm/Support/DataTypes.h"
28 class MachineRelocation;
33 virtual void anchor();
50 "emitGlobalValueIndirectSym!");
90 typedef void* (*JITCompilerFn)(
void *);
104 unsigned NumRelocs,
unsigned char* GOTBase) {
105 assert(NumRelocs == 0 &&
"This target does not have relocations!");
virtual bool hasCustomJumpTables() const
virtual void replaceMachineCodeForFunction(void *Old, void *New)=0
virtual void * emitGlobalValueIndirectSym(const GlobalValue *GV, void *ptr, JITCodeEmitter &JCE)
void *(* JITCompilerFn)(void *)
#define llvm_unreachable(msg)
virtual StubLayout getStubLayout()
Returns the maximum size and alignment for a call stub on this target.
virtual bool hasCustomConstantPool() const
virtual void * emitFunctionStub(const Function *F, void *Target, JITCodeEmitter &JCE)
virtual uintptr_t getPICJumpTableEntry(uintptr_t BB, uintptr_t JTBase)
virtual bool allocateSeparateGVMemory() const
virtual LazyResolverFn getLazyResolverFunction(JITCompilerFn)
virtual void relocate(void *Function, MachineRelocation *MR, unsigned NumRelocs, unsigned char *GOTBase)
virtual char * allocateThreadLocalMemory(size_t size)
Records the required size and alignment for a call stub in bytes.