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
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 @@
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 @@
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.
///