aboutsummaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ExecutionEngine')
-rw-r--r--lib/ExecutionEngine/JIT/JIT.h10
-rw-r--r--lib/ExecutionEngine/JIT/VM.h10
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/ExecutionEngine/JIT/JIT.h b/lib/ExecutionEngine/JIT/JIT.h
index ddfd8964f8..d8fabc346f 100644
--- a/lib/ExecutionEngine/JIT/JIT.h
+++ b/lib/ExecutionEngine/JIT/JIT.h
@@ -54,11 +54,21 @@ public:
/// getPointerToFunction - This returns the address of the specified function,
/// compiling it if necessary.
+ ///
void *getPointerToFunction(Function *F);
+ /// 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().
+ ///
+ void *recompileAndRelinkFunction(Function *F);
+
private:
static MachineCodeEmitter *createEmitter(VM &V);
void setupPassManager();
+ void runJITOnFunction (Function *F);
};
#endif
diff --git a/lib/ExecutionEngine/JIT/VM.h b/lib/ExecutionEngine/JIT/VM.h
index ddfd8964f8..d8fabc346f 100644
--- a/lib/ExecutionEngine/JIT/VM.h
+++ b/lib/ExecutionEngine/JIT/VM.h
@@ -54,11 +54,21 @@ public:
/// getPointerToFunction - This returns the address of the specified function,
/// compiling it if necessary.
+ ///
void *getPointerToFunction(Function *F);
+ /// 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().
+ ///
+ void *recompileAndRelinkFunction(Function *F);
+
private:
static MachineCodeEmitter *createEmitter(VM &V);
void setupPassManager();
+ void runJITOnFunction (Function *F);
};
#endif