Skip to content
Snippets Groups Projects
Commit 7c481430 authored by Lang Hames's avatar Lang Hames
Browse files

[ORC] Simplify LLJIT::Create by removing the ExecutionSession parameter.

The Create method can just construct the ExecutionSession, rather than having the
client pass it in.

llvm-svn: 341872
parent 33428d98
No related branches found
No related tags found
No related merge requests found
......@@ -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.
......
......@@ -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);
......
......@@ -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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment