|
44 | 44 | #include "clang/Sema/Lookup.h" |
45 | 45 | #include "clang/Serialization/ObjectFilePCHContainerReader.h" |
46 | 46 | #include "llvm/ExecutionEngine/JITSymbol.h" |
47 | | -#include "llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h" |
48 | 47 | #include "llvm/ExecutionEngine/Orc/LLJIT.h" |
49 | 48 | #include "llvm/IR/Module.h" |
50 | 49 | #include "llvm/Support/Errc.h" |
@@ -457,11 +456,10 @@ const char *const Runtimes = R"( |
457 | 456 | )"; |
458 | 457 |
|
459 | 458 | llvm::Expected<std::unique_ptr<Interpreter>> |
460 | | -Interpreter::create(std::unique_ptr<CompilerInstance> CI, |
461 | | - std::unique_ptr<llvm::orc::LLJITBuilder> JB) { |
| 459 | +Interpreter::create(std::unique_ptr<CompilerInstance> CI) { |
462 | 460 | llvm::Error Err = llvm::Error::success(); |
463 | | - auto Interp = std::unique_ptr<Interpreter>( |
464 | | - new Interpreter(std::move(CI), Err, JB ? std::move(JB) : nullptr)); |
| 461 | + auto Interp = |
| 462 | + std::unique_ptr<Interpreter>(new Interpreter(std::move(CI), Err)); |
465 | 463 | if (Err) |
466 | 464 | return std::move(Err); |
467 | 465 |
|
@@ -580,25 +578,6 @@ createJITTargetMachineBuilder(const std::string &TT) { |
580 | 578 | return llvm::orc::JITTargetMachineBuilder(llvm::Triple(TT)); |
581 | 579 | } |
582 | 580 |
|
583 | | -llvm::Expected<std::unique_ptr<llvm::orc::LLJITBuilder>> |
584 | | -Interpreter::createLLJITBuilder( |
585 | | - std::unique_ptr<llvm::orc::ExecutorProcessControl> EPC, |
586 | | - llvm::StringRef OrcRuntimePath) { |
587 | | - const std::string &TT = EPC->getTargetTriple().getTriple(); |
588 | | - auto JTMB = createJITTargetMachineBuilder(TT); |
589 | | - if (!JTMB) |
590 | | - return JTMB.takeError(); |
591 | | - auto JB = IncrementalExecutor::createDefaultJITBuilder(std::move(*JTMB)); |
592 | | - if (!JB) |
593 | | - return JB.takeError(); |
594 | | - |
595 | | - (*JB)->setExecutorProcessControl(std::move(EPC)); |
596 | | - (*JB)->setPlatformSetUp( |
597 | | - llvm::orc::ExecutorNativePlatform(OrcRuntimePath.str())); |
598 | | - |
599 | | - return std::move(*JB); |
600 | | -} |
601 | | - |
602 | 581 | llvm::Error Interpreter::CreateExecutor() { |
603 | 582 | if (IncrExecutor) |
604 | 583 | return llvm::make_error<llvm::StringError>("Operation failed. " |
@@ -723,11 +702,11 @@ llvm::Error Interpreter::LoadDynamicLibrary(const char *name) { |
723 | 702 | if (!EE) |
724 | 703 | return EE.takeError(); |
725 | 704 |
|
726 | | - if (auto DLSG = llvm::orc::EPCDynamicLibrarySearchGenerator::Load( |
727 | | - EE->getExecutionSession(), name)) |
728 | | - // FIXME: Eventually we should put each library in its own JITDylib and |
729 | | - // turn off process symbols by default. |
730 | | - EE->getProcessSymbolsJITDylib()->addGenerator(std::move(*DLSG)); |
| 705 | + auto &DL = EE->getDataLayout(); |
| 706 | + |
| 707 | + if (auto DLSG = llvm::orc::DynamicLibrarySearchGenerator::Load( |
| 708 | + name, DL.getGlobalPrefix())) |
| 709 | + EE->getMainJITDylib().addGenerator(std::move(*DLSG)); |
731 | 710 | else |
732 | 711 | return DLSG.takeError(); |
733 | 712 |
|
|
0 commit comments