Lines Matching defs:JD
43 ResourceTracker::ResourceTracker(JITDylibSP JD) {
44 assert((reinterpret_cast<uintptr_t>(JD.get()) & 0x1) == 0 &&
46 JD->Retain();
47 JDAndFlag.store(reinterpret_cast<uintptr_t>(JD.get()));
91 for (auto &[JD, Syms] : *this->Symbols)
92 JD->Retain();
96 for (auto &[JD, Syms] : *Symbols)
97 JD->Release();
109 std::shared_ptr<SymbolStringPool> SSP, JITDylibSP JD,
112 : SSP(std::move(SSP)), JD(std::move(JD)),
121 OS << "In " << JD->getName() << ", failed to materialize " << FailedSymbols
182 JD->getExecutionSession().lookup(
183 LookupKind::Static, {{JD.get(), JITDylibLookupFlags::MatchAllSymbols}},
267 void AsynchronousSymbolQuery::addQueryDependence(JITDylib &JD,
269 bool Added = QueryRegistrations[&JD].insert(std::move(Name)).second;
275 JITDylib &JD, const SymbolStringPtr &Name) {
276 auto QRI = QueryRegistrations.find(&JD);
278 "No dependencies registered for JD");
279 assert(QRI->second.count(Name) && "No dependency on Name in JD");
296 for (auto &[JD, Syms] : QueryRegistrations)
297 JD->detachQueryHelper(*this, Syms);
476 void ReExportsMaterializationUnit::discard(const JITDylib &JD,
599 JITDylib &JD,
602 assert(&JD != &SourceJD && "Cannot re-export from the same dylib");
605 auto Flags = JD.getExecutionSession().lookupFlags(
620 return JD.define(reexports(SourceJD, AliasMap, SourceJDLookupFlags));
660 assert(State != Closed && "JD is defunct");
674 assert(State != Closed && "JD is defunct");
683 assert(State == Open && "JD is defunct");
695 assert(State == Open && "JD is defunct");
1007 assert(State == Open && "JD is defunct");
1031 void JITDylib::addToLinkOrder(JITDylib &JD, JITDylibLookupFlags JDLookupFlags) {
1032 ES.runSessionLocked([&]() { LinkOrder.push_back({&JD, JDLookupFlags}); });
1038 assert(State == Open && "JD is defunct");
1047 void JITDylib::removeFromLinkOrder(JITDylib &JD) {
1049 assert(State == Open && "JD is defunct");
1052 return KV.first == &JD;
1061 assert(State == Open && "JD is defunct");
1198 << DependantEDU->JD->getName() << " { ";
1258 assert(State != Closed && "JD is defunct");
1320 assert(State != Closed && "JD is defunct");
1504 auto *JD = KV.first;
1508 JITDylibSearchOrder({{JD, JITDylibLookupFlags::MatchAllSymbols}}),
1510 [&, JD](Expected<SymbolMap> Result) {
1515 assert(!CompoundResult.count(JD) &&
1517 CompoundResult[JD] = std::move(*Result);
1566 auto *JD = KV.first;
1570 JITDylibSearchOrder({{JD, JITDylibLookupFlags::MatchAllSymbols}}),
1653 for (auto &JD : JDs)
1654 if (JD->getName() == Name)
1655 return JD.get();
1670 auto &JD = createBareJITDylib(Name);
1672 if (auto Err = P->setupJITDylib(JD))
1674 return JD;
1678 // Set JD to 'Closing' state and remove JD from the ExecutionSession.
1680 for (auto &JD : JDsToRemove) {
1681 assert(JD->State == JITDylib::Open && "JD already closed");
1682 JD->State = JITDylib::Closing;
1683 auto I = llvm::find(JDs, JD);
1684 assert(I != JDs.end() && "JD does not appear in session JDs");
1691 for (auto JD : JDsToRemove) {
1692 Err = joinErrors(std::move(Err), JD->clear());
1694 Err = joinErrors(std::move(Err), P->teardownJITDylib(*JD));
1697 // Set JD to closed state. Clear remaining data structures.
1699 for (auto &JD : JDsToRemove) {
1700 assert(JD->State == JITDylib::Closing && "JD should be closing");
1701 JD->State = JITDylib::Closed;
1702 assert(JD->Symbols.empty() && "JD.Symbols is not empty after clear");
1703 assert(JD->UnmaterializedInfos.empty() &&
1704 "JD.UnmaterializedInfos is not empty after clear");
1705 assert(JD->MaterializingInfos.empty() &&
1706 "JD.MaterializingInfos is not empty after clear");
1707 assert(JD->TrackerSymbols.empty() &&
1709 JD->DefGenerators.clear();
1710 JD->LinkOrder.clear();
1727 for (auto &JD : JDs) {
1729 if (JD->State != Open)
1731 "Error building link order: " + JD->getName() + " is defunct",
1733 if (Visited.count(JD.get()))
1737 WorkStack.push_back(JD);
1738 Visited.insert(JD.get());
1745 auto &JD = *KV.first;
1746 if (!Visited.insert(&JD).second)
1748 WorkStack.push_back(&JD);
1894 JITDylib &JD, JITDispatchHandlerAssociationMap WFs) {
1896 auto TagSyms = lookup({{&JD, JITDylibLookupFlags::MatchAllSymbols}},
1955 for (auto &JD : JDs)
1956 JD->dump(OS);
1968 for (auto &JD : JDs) {
1975 Stream << " In JITDylib " << JD->getName() << ", ";
1980 if (JD->State != JITDylib::Open) {
1982 << "state is not Open, but JD is in ExecutionSession list.";
1990 for (auto &[Sym, Entry] : JD->Symbols) {
2002 auto UMIItr = JD->UnmaterializedInfos.find(Sym);
2004 if (UMIItr == JD->UnmaterializedInfos.end()) {
2009 } else if (UMIItr != JD->UnmaterializedInfos.end()) {
2019 for (auto &[Sym, UMI] : JD->UnmaterializedInfos) {
2020 auto SymItr = JD->Symbols.find(Sym);
2021 if (SymItr == JD->Symbols.end()) {
2029 for (auto &[Sym, MII] : JD->MaterializingInfos) {
2031 auto SymItr = JD->Symbols.find(Sym);
2032 if (SymItr == JD->Symbols.end()) {
2063 // 1. The JD matches.
2070 if (MII.DefiningEDU->JD != JD.get()) {
2072 << " has DefiningEDU with incorrect JD"
2073 << (llvm::is_contained(JDs, MII.DefiningEDU->JD)
2074 ? " (JD not currently in ExecutionSession"
2089 if (!llvm::is_contained(JDs, DepEDU->JD)) {
2091 << (void *)DepEDU << " with JD (" << DepEDU->JD
2101 assert(EDU->JD->State == JITDylib::Open && "EDU->JD is not Open");
2106 Stream << "In EDU defining " << EDU->JD->getName() << ": { ";
2120 if (!EDU->JD->Symbols.count(SymbolStringPtr(Sym))) {
2122 << " isn't present in JD's symbol table.\n";
2130 LogFailure() << "dependant symbols listed for JD that isn't in "
2137 << " does not appear in symbol table for dependant JD "
2195 auto &JD = RT.getJITDylib();
2198 L->handleRemoveResources(JD, RT.getKeyUnsafe()));
2224 auto &JD = DstRT.getJITDylib();
2225 JD.transferTracker(DstRT, SrcRT);
2227 L->handleTransferResources(JD, DstRT.getKeyUnsafe(),
2245 JITDylib &JD, JITDylibLookupFlags JDLookupFlags,
2252 auto SymI = JD.Symbols.find(Name);
2253 if (SymI == JD.Symbols.end())
2282 (*FailedSymbolsMap)[&JD] = {Name};
2360 auto &JD = *KV.first;
2364 dbgs() << "Visiting \"" << JD.getName() << "\" (" << JDLookupFlags
2378 dbgs() << " First time visiting " << JD.getName()
2384 IPLS->CurDefGeneratorStack.reserve(JD.DefGenerators.size());
2385 for (auto &DG : reverse(JD.DefGenerators))
2400 JD, JDLookupFlags, IPLS->DefGeneratorCandidates,
2401 JD.DefGenerators.empty() ? nullptr
2469 Err = DG->tryToGenerate(LS, K, JD, JDLookupFlags, LookupSet);
2499 JD, JDLookupFlags, IPLS->DefGeneratorCandidates,
2500 JD.DefGenerators.empty() ? nullptr
2568 auto &JD = *KV.first;
2571 dbgs() << "Visiting \"" << JD.getName() << "\" (" << JDLookupFlags
2585 auto SymI = JD.Symbols.find(Name);
2586 if (SymI == JD.Symbols.end()) {
2620 (*FailedSymbolsMap)[&JD] = {Name};
2637 Q->addQueryDependence(JD, Name);
2648 auto UMII = JD.UnmaterializedInfos.find(Name);
2649 assert(UMII != JD.UnmaterializedInfos.end() &&
2663 auto SymK = JD.Symbols.find(KV.first);
2664 assert(SymK != JD.Symbols.end() &&
2668 JD.UnmaterializedInfos.erase(KV.first);
2672 CollectedUMIs[&JD].push_back(std::move(UMI));
2681 auto &MI = JD.MaterializingInfos[Name];
2683 Q->addQueryDependence(JD, Name);
2688 JD.shrinkMaterializationInfoMemory();
2702 auto &JD = *KV.first;
2705 assert(!JD.UnmaterializedInfos.count(KV2.first) &&
2707 auto SymI = JD.Symbols.find(KV2.first);
2708 assert(SymI != JD.Symbols.end() && "Missing symbol entry");
2714 JD.UnmaterializedInfos[KV2.first] = UMI;
2753 auto &JD = *KV.first;
2754 dbgs() << " For " << JD.getName() << ": Adding " << KV.second.size()
2814 auto &JD = *KV.first;
2817 dbgs() << "Visiting \"" << JD.getName() << "\" (" << JDLookupFlags
2830 auto SymI = JD.Symbols.find(Name);
2831 if (SymI == JD.Symbols.end()) {
2878 MR.JD.unlinkMaterializationResponsibility(MR);
2883 return MR.JD.getRequestedSymbols(MR.SymbolFlags);
2889 dbgs() << "In " << MR.JD.getName() << " resolving " << Symbols << "\n";
2911 return MR.JD.resolve(MR, Symbols);
3109 auto &JD = *EDU->JD;
3112 assert(JD.Symbols.count(SymbolStringPtr(Sym)) &&
3113 "JD does not have an entry for Sym");
3114 auto &Entry = JD.Symbols[SymbolStringPtr(Sym)];
3124 auto MII = JD.MaterializingInfos.find(SymbolStringPtr(Sym));
3127 if (MII == JD.MaterializingInfos.end())
3135 Q->removeQueryDependence(JD, SymbolStringPtr(Sym));
3138 JD.MaterializingInfos.erase(MII);
3141 JD.shrinkMaterializationInfoMemory();
3149 auto &JD = *EDU->JD;
3152 assert(JD.Symbols.count(SymbolStringPtr(Sym)) &&
3153 "JD does not have an entry for Sym");
3154 auto &Entry = JD.Symbols[SymbolStringPtr(Sym)];
3166 assert(JD.Symbols.count(SymbolStringPtr(Sym)) &&
3167 "JD does not have an entry for Sym");
3168 auto &Entry = JD.Symbols[SymbolStringPtr(Sym)];
3171 assert(JD.MaterializingInfos.count(SymbolStringPtr(Sym)) &&
3173 auto MI = JD.MaterializingInfos[SymbolStringPtr(Sym)];
3182 auto &MI = JD.MaterializingInfos[SymbolStringPtr(Sym)];
3207 "JD does not appear in Dependencies of DependantEDU");
3221 assert(EDU.JD->Symbols.count(
3224 auto DepEDUFirstMI = EDU.JD->MaterializingInfos.find(
3226 assert(DepEDUFirstMI != EDU.JD->MaterializingInfos.end() &&
3245 ClosedJD.getExecutionSession().getSymbolStringPool(), EDU.JD,
3418 [](JITDylib::EmissionDepUnit &EDU, JITDylib &JD,
3420 JD.MaterializingInfos[SymbolStringPtr(Sym)].DependantEDUs.insert(&EDU);
3445 dbgs() << "In " << MR.JD.getName() << " emitting " << MR.SymbolFlags
3509 dbgs() << "In " << MR.JD.getName() << " defining materializing symbols "
3513 MR.JD.defineMaterializing(MR, std::move(NewSymbolFlags))) {
3524 ExecutionSession::IL_failSymbols(JITDylib &JD,
3546 (*FailedSymbolsMap)[&JD].insert(Name);
3549 auto SymI = JD.Symbols.find(Name);
3558 if (SymI == JD.Symbols.end())
3565 assert(!JD.MaterializingInfos.count(Name) &&
3576 auto MII = JD.MaterializingInfos.find(Name);
3577 if (MII == JD.MaterializingInfos.end())
3624 if (DepJD == &JD && DepSym == Name)
3639 auto &DepJD = *DependantEDU->JD;
3680 JD.MaterializingInfos.erase(Name);
3683 JD.shrinkMaterializationInfoMemory();
3695 dbgs() << "In " << MR.JD.getName() << " failing materialization for "
3734 LLVM_DEBUG(MR.JD.getExecutionSession().runSessionLocked([&]() {
3735 dbgs() << "In " << MR.JD.getName() << " replacing symbols with " << *MU
3739 return MR.JD.replace(MR, std::move(MU));
3762 return MR.JD.delegate(MR, std::move(DelegatedFlags),