aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-21 22:57:11 +0000
committerChris Lattner <sabre@nondot.org>2007-10-21 22:57:11 +0000
commit8b5295b7bb8bf44f13df7fc8e38069d1218b1f94 (patch)
tree05cb3d24853770dce98bbef628909f04465bbc32
parent61c7ef34e35dbf059cfc1add03780343dfe33459 (diff)
downloadexternal_llvm-8b5295b7bb8bf44f13df7fc8e38069d1218b1f94.zip
external_llvm-8b5295b7bb8bf44f13df7fc8e38069d1218b1f94.tar.gz
external_llvm-8b5295b7bb8bf44f13df7fc8e38069d1218b1f94.tar.bz2
Add a convenience method for creating EE's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43206 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ExecutionEngine/ExecutionEngine.h8
-rw-r--r--lib/ExecutionEngine/ExecutionEngine.cpp4
2 files changed, 11 insertions, 1 deletions
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h
index 2a2fb7c..da034a7 100644
--- a/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -108,11 +108,17 @@ public:
Function *FindFunctionNamed(const char *FnName);
/// create - This is the factory method for creating an execution engine which
- /// is appropriate for the current machine.
+ /// is appropriate for the current machine. This takes ownership of the
+ /// module provider.
static ExecutionEngine *create(ModuleProvider *MP,
bool ForceInterpreter = false,
std::string *ErrorStr = 0);
+ /// create - This is the factory method for creating an execution engine which
+ /// is appropriate for the current machine. This takes ownership of the
+ /// module.
+ static ExecutionEngine *create(Module *M);
+
/// runFunction - Execute the specified function with the specified arguments,
/// and return the result.
///
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp
index 512c452..192caa8 100644
--- a/lib/ExecutionEngine/ExecutionEngine.cpp
+++ b/lib/ExecutionEngine/ExecutionEngine.cpp
@@ -328,6 +328,10 @@ ExecutionEngine *ExecutionEngine::create(ModuleProvider *MP,
return EE;
}
+ExecutionEngine *ExecutionEngine::create(Module *M) {
+ return create(new ExistingModuleProvider(M));
+}
+
/// getPointerToGlobal - This returns the address of the specified global
/// value. This may involve code generation if it's a function.
///