aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ExecutionEngine/Interpreter/Interpreter.cpp
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-12-04 02:59:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-12-04 02:59:28 +0000
commit876d6995443e99d13696f3941c3a789a4daa7c7a (patch)
tree8fb36d3910e3ee4c4e1b7422f4f017108efc52f5 /lib/ExecutionEngine/Interpreter/Interpreter.cpp
parentd2327b22152ced7bc46dc629fc908959e8a52d03 (diff)
parent37ed9c199ca639565f6ce88105f9e39e898d82d0 (diff)
downloadexternal_llvm-876d6995443e99d13696f3941c3a789a4daa7c7a.zip
external_llvm-876d6995443e99d13696f3941c3a789a4daa7c7a.tar.gz
external_llvm-876d6995443e99d13696f3941c3a789a4daa7c7a.tar.bz2
Merge "Update aosp/master LLVM for rebase to r222494."
Diffstat (limited to 'lib/ExecutionEngine/Interpreter/Interpreter.cpp')
-rw-r--r--lib/ExecutionEngine/Interpreter/Interpreter.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.cpp b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
index 814efcc..8562981 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
@@ -30,9 +30,10 @@ static struct RegisterInterp {
extern "C" void LLVMLinkInInterpreter() { }
-/// create - Create a new interpreter object. This can never fail.
+/// Create a new interpreter object.
///
-ExecutionEngine *Interpreter::create(Module *M, std::string* ErrStr) {
+ExecutionEngine *Interpreter::create(std::unique_ptr<Module> M,
+ std::string *ErrStr) {
// Tell this Module to materialize everything and release the GVMaterializer.
if (std::error_code EC = M->materializeAllPermanently()) {
if (ErrStr)
@@ -41,15 +42,15 @@ ExecutionEngine *Interpreter::create(Module *M, std::string* ErrStr) {
return nullptr;
}
- return new Interpreter(M);
+ return new Interpreter(std::move(M));
}
//===----------------------------------------------------------------------===//
// Interpreter ctor - Initialize stuff
//
-Interpreter::Interpreter(Module *M)
- : ExecutionEngine(M), TD(M) {
-
+Interpreter::Interpreter(std::unique_ptr<Module> M)
+ : ExecutionEngine(std::move(M)), TD(Modules.back().get()) {
+
memset(&ExitValue.Untyped, 0, sizeof(ExitValue.Untyped));
setDataLayout(&TD);
// Initialize the "backend"