[ORC] Simplify LLJIT::Create by removing the ExecutionSession parameter.
authorLang Hames <lhames@gmail.com>
Mon, 10 Sep 2018 22:08:57 +0000 (22:08 +0000)
committerLang Hames <lhames@gmail.com>
Mon, 10 Sep 2018 22:08:57 +0000 (22:08 +0000)
The Create method can just construct the ExecutionSession, rather than having the
client pass it in.

llvm-svn: 341872

llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
llvm/tools/lli/lli.cpp

index aced03f..6e9490b 100644 (file)
@@ -31,8 +31,7 @@ class LLJIT {
 public:
   /// Create an LLJIT instance.
   static Expected<std::unique_ptr<LLJIT>>
-  Create(std::unique_ptr<ExecutionSession> ES,
-         std::unique_ptr<TargetMachine> TM, DataLayout DL);
+  Create(std::unique_ptr<TargetMachine> TM, DataLayout DL);
 
   /// Returns a reference to the ExecutionSession for this JIT instance.
   ExecutionSession &getExecutionSession() { return *ES; }
@@ -117,8 +116,7 @@ class LLLazyJIT : public LLJIT {
 public:
   /// Create an LLLazyJIT instance.
   static Expected<std::unique_ptr<LLLazyJIT>>
-  Create(std::unique_ptr<ExecutionSession> ES,
-         std::unique_ptr<TargetMachine> TM, DataLayout DL, LLVMContext &Ctx);
+  Create(std::unique_ptr<TargetMachine> TM, DataLayout DL, LLVMContext &Ctx);
 
   /// Set an IR transform (e.g. pass manager pipeline) to run on each function
   /// when it is compiled.
index b463771..464b1e2 100644 (file)
@@ -16,10 +16,9 @@ namespace llvm {
 namespace orc {
 
 Expected<std::unique_ptr<LLJIT>>
-LLJIT::Create(std::unique_ptr<ExecutionSession> ES,
-              std::unique_ptr<TargetMachine> TM, DataLayout DL) {
-  return std::unique_ptr<LLJIT>(
-      new LLJIT(std::move(ES), std::move(TM), std::move(DL)));
+LLJIT::Create(std::unique_ptr<TargetMachine> TM, DataLayout DL) {
+  return std::unique_ptr<LLJIT>(new LLJIT(llvm::make_unique<ExecutionSession>(),
+                                          std::move(TM), std::move(DL)));
 }
 
 Error LLJIT::defineAbsolute(StringRef Name, JITEvaluatedSymbol Sym) {
@@ -91,9 +90,10 @@ void LLJIT::recordCtorDtors(Module &M) {
 }
 
 Expected<std::unique_ptr<LLLazyJIT>>
-LLLazyJIT::Create(std::unique_ptr<ExecutionSession> ES,
-                  std::unique_ptr<TargetMachine> TM, DataLayout DL,
+LLLazyJIT::Create(std::unique_ptr<TargetMachine> TM, DataLayout DL,
                   LLVMContext &Ctx) {
+  auto ES = llvm::make_unique<ExecutionSession>();
+
   const Triple &TT = TM->getTargetTriple();
 
   auto CCMgr = createLocalCompileCallbackManager(TT, *ES, 0);
index 6686084..b88036e 100644 (file)
@@ -758,9 +758,7 @@ int runOrcLazyJIT(const char *ProgName) {
                         : None);
   auto TM = ExitOnErr(TMD.createTargetMachine());
   auto DL = TM->createDataLayout();
-  auto ES = llvm::make_unique<orc::ExecutionSession>();
-  auto J =
-      ExitOnErr(orc::LLLazyJIT::Create(std::move(ES), std::move(TM), DL, Ctx));
+  auto J = ExitOnErr(orc::LLLazyJIT::Create(std::move(TM), DL, Ctx));
 
   auto Dump = createDebugDumper();