summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-12-08 08:22:01 +0000
committerChris Lattner <sabre@nondot.org>2003-12-08 08:22:01 +0000
commitd71a03337021cab34e001438150d0005085e7740 (patch)
tree04ca6b8da05d163fddf4a295f9507a6d1b916eb4
parentc0e1b071b98b2c76d83e6b25225822aaa5724db0 (diff)
downloadbcm5719-llvm-d71a03337021cab34e001438150d0005085e7740.tar.gz
bcm5719-llvm-d71a03337021cab34e001438150d0005085e7740.zip
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
-rw-r--r--llvm/include/llvm/ExecutionEngine/ExecutionEngine.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h b/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
index 5dd74b7cded..f6f725a78a3 100644
--- a/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -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);
OpenPOWER on IntegriCloud