LLVM API Documentation
#include <SparcV9JITInfo.h>
Inheritance diagram for llvm::SparcV9JITInfo:
Public Member Functions | |
SparcV9JITInfo (TargetMachine &tm) | |
virtual void | addPassesToJITCompile (FunctionPassManager &PM) |
virtual void | replaceMachineCodeForFunction (void *Old, void *New) |
virtual void * | emitFunctionStub (void *Fn, MachineCodeEmitter &MCE) |
virtual LazyResolverFn | getLazyResolverFunction (JITCompilerFn) |
virtual void | relocate (void *Function, MachineRelocation *MR, unsigned NumRelocs, unsigned char *GOTBase) |
Definition at line 24 of file SparcV9JITInfo.h.
llvm::SparcV9JITInfo::SparcV9JITInfo | ( | TargetMachine & | tm | ) | [inline] |
void SparcV9JITInfo::addPassesToJITCompile | ( | FunctionPassManager & | PM | ) | [virtual] |
addPassesToJITCompile - Add passes to the specified pass manager to implement a fast dynamic compiler for this target. Return true if this is not supported for this target.
Implements llvm::TargetJITInfo.
Definition at line 805 of file SparcV9TargetMachine.cpp.
void * SparcV9JITInfo::emitFunctionStub | ( | void * | Fn, | |
MachineCodeEmitter & | MCE | |||
) | [virtual] |
emitFunctionStub - Use the specified MachineCodeEmitter object to emit a small native function that simply calls the function at the specified address. Return the address of the resultant function.
Reimplemented from llvm::TargetJITInfo.
Definition at line 266 of file SparcV9JITInfo.cpp.
References BUILD_ORI, BUILD_SETHI, CompilationCallback(), llvm::MachineCodeEmitter::emitWord(), llvm::MachineCodeEmitter::finishFunctionStub(), llvm::MachineCodeEmitter::getCurrentPCValue(), InsertJumpAtAddr(), MCE, and llvm::MachineCodeEmitter::startFunctionStub().
TargetJITInfo::LazyResolverFn SparcV9JITInfo::getLazyResolverFunction | ( | JITCompilerFn | ) | [virtual] |
getLazyResolverFunction - This method is used to initialize the JIT, giving the target the function that should be used to compile a function, and giving the JIT the target function used to do the lazy resolving.
Definition at line 321 of file SparcV9JITInfo.cpp.
References CompilationCallback(), and JITCompilerFunction.
void SparcV9JITInfo::relocate | ( | void * | Function, | |
MachineRelocation * | MR, | |||
unsigned | NumRelocs, | |||
unsigned char * | GOTBase | |||
) | [virtual] |
relocate - Before the JIT can run a block of code that has been emitted, it must rewrite the code to contain the actual addresses of any referenced global symbols.
Reimplemented from llvm::TargetJITInfo.
Definition at line 326 of file SparcV9JITInfo.cpp.
References MR, llvm::V9::reloc_or_hm, llvm::V9::reloc_or_lo, llvm::V9::reloc_pcrel_call, llvm::V9::reloc_sethi_hh, and llvm::V9::reloc_sethi_lm.
void SparcV9JITInfo::replaceMachineCodeForFunction | ( | void * | Old, | |
void * | New | |||
) | [virtual] |
replaceMachineCodeForFunction - Make it so that calling the function whose machine code is at OLD turns into a call to NEW, perhaps by overwriting OLD with a branch to NEW. This is used for self-modifying code.
Implements llvm::TargetJITInfo.
Definition at line 69 of file SparcV9JITInfo.cpp.
References InsertJumpAtAddr().