forked from OSchip/llvm-project
add two new virtual functions:
The first returns a function pointer or a stub if it's not already generated The second exposes what was previously JIT specific state to general clients llvm-svn: 10319
This commit is contained in:
parent
c0e1b071b9
commit
d71a033370
|
@ -86,9 +86,26 @@ public:
|
||||||
//
|
//
|
||||||
virtual void *getPointerToFunction(Function *F) = 0;
|
virtual void *getPointerToFunction(Function *F) = 0;
|
||||||
|
|
||||||
|
// getPointerToFunctionOrStub - If the specified function has been code-gen'd,
|
||||||
|
// return a pointer to the function. If not, compile it, or use a stub to
|
||||||
|
// implement lazy compilation if available.
|
||||||
|
//
|
||||||
|
virtual void *getPointerToFunctionOrStub(Function *F) {
|
||||||
|
// Default implementation, just codegen the function.
|
||||||
|
return getPointerToFunction(F);
|
||||||
|
}
|
||||||
|
|
||||||
void StoreValueToMemory(GenericValue Val, GenericValue *Ptr, const Type *Ty);
|
void StoreValueToMemory(GenericValue Val, GenericValue *Ptr, const Type *Ty);
|
||||||
void InitializeMemory(const Constant *Init, void *Addr);
|
void InitializeMemory(const Constant *Init, void *Addr);
|
||||||
|
|
||||||
|
/// recompileAndRelinkFunction - This method is used to force a function
|
||||||
|
/// which has already been compiled, to be compiled again, possibly
|
||||||
|
/// after it has been modified. Then the entry to the old copy is overwritten
|
||||||
|
/// with a branch to the new copy. If there was no old copy, this acts
|
||||||
|
/// just like VM::getPointerToFunction().
|
||||||
|
///
|
||||||
|
virtual void *recompileAndRelinkFunction(Function *F) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void emitGlobals();
|
void emitGlobals();
|
||||||
GenericValue getConstantValue(const Constant *C);
|
GenericValue getConstantValue(const Constant *C);
|
||||||
|
|
Loading…
Reference in New Issue