[ORC] Switch RTDyldObjectLinkingLayer to take a unique_ptr<MemoryBuffer> rather
than a shared ObjectFile/MemoryBuffer pair.
There's no need to pre-parse the buffer into an ObjectFile before passing it
down to the linking layer, and moving the parsing into the linking layer allows
us remove the parsing code at each call site.
llvm-svn: 325725
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
index d9448d4..ca445b4 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
@@ -38,13 +38,11 @@
return MB.takeModule();
}
- std::shared_ptr<object::OwningBinary<object::ObjectFile>>
- createTestObject() {
+ std::unique_ptr<MemoryBuffer> createTestObject() {
orc::SimpleCompiler IRCompiler(*TM);
auto M = createTestModule(TM->getTargetTriple());
M->setDataLayout(TM->createDataLayout());
- return std::make_shared<object::OwningBinary<object::ObjectFile>>(
- IRCompiler(*M));
+ return IRCompiler(*M);
}
typedef int (*MainFnTy)();
@@ -148,12 +146,7 @@
if (!TM)
return;
- std::unique_ptr<MemoryBuffer> ObjBuffer;
- {
- auto OwningObj = createTestObject();
- auto ObjAndBuffer = OwningObj->takeBinary();
- ObjBuffer = std::move(ObjAndBuffer.second);
- }
+ auto ObjBuffer = createTestObject();
LLVMOrcJITStackRef JIT =
LLVMOrcCreateInstance(wrap(TM.get()));