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:
Chris Lattner 2003-12-08 08:22:01 +00:00
parent c0e1b071b9
commit d71a033370
1 changed files with 17 additions and 0 deletions

View File

@ -86,9 +86,26 @@ public:
//
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 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:
void emitGlobals();
GenericValue getConstantValue(const Constant *C);