@@ -91,10 +91,6 @@ static cl::list<std::string> InputFiles(cl::Positional, cl::OneOrMore,
9191 cl::desc (" input files" ),
9292 cl::cat(JITLinkCategory));
9393
94- static cl::opt<size_t > MaterializationThreads (
95- " num-threads" , cl::desc(" Number of materialization threads to use" ),
96- cl::init(std::numeric_limits<size_t >::max()), cl::cat(JITLinkCategory));
97-
9894static cl::list<std::string>
9995 LibrarySearchPaths (" L" ,
10096 cl::desc (" Add dir to the list of library search paths" ),
@@ -404,7 +400,6 @@ bool lazyLinkingRequested() {
404400}
405401
406402static Error applyHarnessPromotions (Session &S, LinkGraph &G) {
407- std::lock_guard<std::mutex> Lock (S.M );
408403
409404 // If this graph is part of the test harness there's nothing to do.
410405 if (S.HarnessFiles .empty () || S.HarnessFiles .count (G.getName ()))
@@ -455,11 +450,7 @@ static Error applyHarnessPromotions(Session &S, LinkGraph &G) {
455450 return Error::success ();
456451}
457452
458- static void dumpSectionContents (raw_ostream &OS, Session &S, LinkGraph &G) {
459- std::lock_guard<std::mutex> Lock (S.M );
460-
461- outs () << " Relocated section contents for " << G.getName () << " :\n " ;
462-
453+ static void dumpSectionContents (raw_ostream &OS, LinkGraph &G) {
463454 constexpr orc::ExecutorAddrDiff DumpWidth = 16 ;
464455 static_assert (isPowerOf2_64 (DumpWidth), " DumpWidth must be a power of two" );
465456
@@ -851,7 +842,7 @@ static Expected<std::unique_ptr<ExecutorProcessControl>> launchExecutor() {
851842 S.CreateMemoryManager = createSharedMemoryManager;
852843
853844 return SimpleRemoteEPC::Create<FDSimpleRemoteEPCTransport>(
854- std::make_unique<DynamicThreadPoolTaskDispatcher>(MaterializationThreads ),
845+ std::make_unique<DynamicThreadPoolTaskDispatcher>(std:: nullopt ),
855846 std::move (S), FromExecutor[ReadEnd], ToExecutor[WriteEnd]);
856847#endif
857848}
@@ -993,16 +984,10 @@ Expected<std::unique_ptr<Session>> Session::Create(Triple TT,
993984 auto PageSize = sys::Process::getPageSize ();
994985 if (!PageSize)
995986 return PageSize.takeError ();
996- std::unique_ptr<TaskDispatcher> Dispatcher;
997- if (MaterializationThreads == 0 )
998- Dispatcher = std::make_unique<InPlaceTaskDispatcher>();
999- else
1000- Dispatcher = std::make_unique<DynamicThreadPoolTaskDispatcher>(
1001- MaterializationThreads);
1002-
1003987 EPC = std::make_unique<SelfExecutorProcessControl>(
1004- std::make_shared<SymbolStringPool>(), std::move (Dispatcher),
1005- std::move (TT), *PageSize, createInProcessMemoryManager ());
988+ std::make_shared<SymbolStringPool>(),
989+ std::make_unique<InPlaceTaskDispatcher>(), std::move (TT), *PageSize,
990+ createInProcessMemoryManager ());
1006991 }
1007992
1008993 Error Err = Error::success ();
@@ -1236,7 +1221,6 @@ void Session::modifyPassConfig(LinkGraph &G, PassConfiguration &PassConfig) {
12361221
12371222 if (ShowGraphsRegex)
12381223 PassConfig.PostFixupPasses .push_back ([this ](LinkGraph &G) -> Error {
1239- std::lock_guard<std::mutex> Lock (M);
12401224 // Print graph if ShowLinkGraphs is specified-but-empty, or if
12411225 // it contains the given graph.
12421226 if (ShowGraphsRegex->match (G.getName ())) {
@@ -1255,8 +1239,9 @@ void Session::modifyPassConfig(LinkGraph &G, PassConfiguration &PassConfig) {
12551239 [this ](LinkGraph &G) { return applyHarnessPromotions (*this , G); });
12561240
12571241 if (ShowRelocatedSectionContents)
1258- PassConfig.PostFixupPasses .push_back ([this ](LinkGraph &G) -> Error {
1259- dumpSectionContents (outs (), *this , G);
1242+ PassConfig.PostFixupPasses .push_back ([](LinkGraph &G) -> Error {
1243+ outs () << " Relocated section contents for " << G.getName () << " :\n " ;
1244+ dumpSectionContents (outs (), G);
12601245 return Error::success ();
12611246 });
12621247
@@ -1628,31 +1613,6 @@ static Error sanitizeArguments(const Triple &TT, const char *ArgV0) {
16281613 }
16291614 }
16301615
1631- if (MaterializationThreads == std::numeric_limits<size_t >::max ()) {
1632- if (auto HC = std::thread::hardware_concurrency ())
1633- MaterializationThreads = HC;
1634- else {
1635- errs () << " Warning: std::thread::hardware_concurrency() returned 0, "
1636- " defaulting to -threads=1.\n " ;
1637- MaterializationThreads = 1 ;
1638- }
1639- }
1640-
1641- if (!!OutOfProcessExecutor.getNumOccurrences () ||
1642- !!OutOfProcessExecutorConnect.getNumOccurrences ()) {
1643- if (NoExec)
1644- return make_error<StringError>(" -noexec cannot be used with " +
1645- OutOfProcessExecutor.ArgStr + " or " +
1646- OutOfProcessExecutorConnect.ArgStr ,
1647- inconvertibleErrorCode ());
1648-
1649- if (MaterializationThreads == 0 )
1650- return make_error<StringError>(" -threads=0 cannot be used with " +
1651- OutOfProcessExecutor.ArgStr + " or " +
1652- OutOfProcessExecutorConnect.ArgStr ,
1653- inconvertibleErrorCode ());
1654- }
1655-
16561616 // Only one of -oop-executor and -oop-executor-connect can be used.
16571617 if (!!OutOfProcessExecutor.getNumOccurrences () &&
16581618 !!OutOfProcessExecutorConnect.getNumOccurrences ())
0 commit comments