|
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