Lines Matching defs:IPLS
523 virtual void complete(std::unique_ptr<InProgressLookupState> IPLS) = 0;
553 void complete(std::unique_ptr<InProgressLookupState> IPLS) override {
555 ES.OL_completeLookupFlags(std::move(IPLS), std::move(OnComplete));
576 void complete(std::unique_ptr<InProgressLookupState> IPLS) override {
578 ES.OL_completeLookup(std::move(IPLS), std::move(Q),
623 LookupState::LookupState(std::unique_ptr<InProgressLookupState> IPLS)
624 : IPLS(std::move(IPLS)) {}
626 void LookupState::reset(InProgressLookupState *IPLS) { this->IPLS.reset(IPLS); }
634 assert(IPLS && "Cannot call continueLookup on empty LookupState");
635 auto &ES = IPLS->SearchOrder.begin()->first->getExecutionSession();
636 ES.OL_applyQueryPhase1(std::move(IPLS), std::move(Err));
1820 auto IPLS = std::make_unique<InProgressFullLookupState>(
1824 OL_applyQueryPhase1(std::move(IPLS), Error::success());
2293 InProgressLookupState &IPLS) {
2295 assert(IPLS.GenState != InProgressLookupState::NotInGenerator &&
2297 IPLS.GenState = InProgressLookupState::NotInGenerator;
2301 if (auto DG = IPLS.CurDefGeneratorStack.back().lock()) {
2302 IPLS.CurDefGeneratorStack.pop_back();
2317 if (LS.IPLS) {
2318 LS.IPLS->GenState = InProgressLookupState::ResumedForGenerator;
2324 std::unique_ptr<InProgressLookupState> IPLS, Error Err) {
2328 << " Lookup kind: " << IPLS->K << "\n"
2329 << " Search order: " << IPLS->SearchOrder
2330 << ", Current index = " << IPLS->CurSearchOrderIndex
2331 << (IPLS->NewJITDylib ? " (entering new JITDylib)" : "") << "\n"
2332 << " Lookup set: " << IPLS->LookupSet << "\n"
2334 << IPLS->DefGeneratorCandidates << "\n"
2336 << IPLS->DefGeneratorNonCandidates << "\n";
2339 if (IPLS->GenState == InProgressLookupState::InGenerator)
2340 OL_resumeLookupAfterGeneration(*IPLS);
2342 assert(IPLS->GenState != InProgressLookupState::InGenerator &&
2348 // IPLS. Phase 2 would be reduced to collecting and dispatching the MUs.
2350 while (IPLS->CurSearchOrderIndex != IPLS->SearchOrder.size()) {
2356 return IPLS->fail(std::move(Err));
2359 auto &KV = IPLS->SearchOrder[IPLS->CurSearchOrderIndex];
2365 << ") with lookup set " << IPLS->LookupSet << ":\n";
2369 if (IPLS->NewJITDylib) {
2374 std::swap(IPLS->DefGeneratorNonCandidates, Tmp);
2375 IPLS->DefGeneratorCandidates.append(std::move(Tmp));
2384 IPLS->CurDefGeneratorStack.reserve(JD.DefGenerators.size());
2386 IPLS->CurDefGeneratorStack.push_back(DG);
2390 IPLS->NewJITDylib = false;
2400 JD, JDLookupFlags, IPLS->DefGeneratorCandidates,
2402 : &IPLS->DefGeneratorNonCandidates);
2404 dbgs() << " Remaining candidates = " << IPLS->DefGeneratorCandidates
2411 if (IPLS->GenState == InProgressLookupState::ResumedForGenerator &&
2412 IPLS->DefGeneratorCandidates.empty())
2413 OL_resumeLookupAfterGeneration(*IPLS);
2419 return IPLS->fail(std::move(Err));
2423 if (IPLS->CurDefGeneratorStack.empty())
2425 else if (IPLS->DefGeneratorCandidates.empty())
2428 dbgs() << " Running " << IPLS->CurDefGeneratorStack.size()
2430 << IPLS->DefGeneratorCandidates.size() << " candidates\n";
2432 while (!IPLS->CurDefGeneratorStack.empty() &&
2433 !IPLS->DefGeneratorCandidates.empty()) {
2434 auto DG = IPLS->CurDefGeneratorStack.back().lock();
2437 return IPLS->fail(make_error<StringError>(
2450 if (IPLS->GenState == InProgressLookupState::NotInGenerator) {
2453 DG->PendingLookups.push_back(std::move(IPLS));
2459 IPLS->GenState = InProgressLookupState::InGenerator;
2461 auto K = IPLS->K;
2462 auto &LookupSet = IPLS->DefGeneratorCandidates;
2468 LookupState LS(std::move(IPLS));
2470 IPLS = std::move(LS.IPLS);
2475 if (IPLS)
2476 OL_resumeLookupAfterGeneration(*IPLS);
2483 assert(IPLS && "LS cannot be retained if error is returned");
2484 return IPLS->fail(std::move(Err));
2488 if (!IPLS) {
2499 JD, JDLookupFlags, IPLS->DefGeneratorCandidates,
2501 : &IPLS->DefGeneratorNonCandidates);
2507 return IPLS->fail(std::move(Err));
2511 if (IPLS->DefGeneratorCandidates.empty() &&
2512 IPLS->DefGeneratorNonCandidates.empty()) {
2515 IPLS->CurSearchOrderIndex = IPLS->SearchOrder.size();
2521 ++IPLS->CurSearchOrderIndex;
2522 IPLS->NewJITDylib = true;
2527 IPLS->DefGeneratorCandidates.remove_if(
2535 if (IPLS->DefGeneratorCandidates.empty()) {
2537 IPLS->complete(std::move(IPLS));
2540 IPLS->fail(make_error<SymbolsNotFound>(
2541 getSymbolStringPool(), IPLS->DefGeneratorCandidates.getSymbolNames()));
2546 std::unique_ptr<InProgressLookupState> IPLS,
2552 << " Lookup kind: " << IPLS->K << "\n"
2553 << " Search order: " << IPLS->SearchOrder
2554 << ", Current index = " << IPLS->CurSearchOrderIndex
2555 << (IPLS->NewJITDylib ? " (entering new JITDylib)" : "") << "\n"
2556 << " Lookup set: " << IPLS->LookupSet << "\n"
2558 << IPLS->DefGeneratorCandidates << "\n"
2560 << IPLS->DefGeneratorNonCandidates << "\n";
2567 for (auto &KV : IPLS->SearchOrder) {
2572 << ") with lookup set " << IPLS->LookupSet << ":\n";
2575 auto Err = IPLS->LookupSet.forEachWithRemoval(
2723 IPLS->LookupSet.forEachWithRemoval(
2732 if (!IPLS->LookupSet.empty()) {
2735 IPLS->LookupSet.getSymbolNames());
2793 std::unique_ptr<InProgressLookupState> IPLS,
2799 << " Lookup kind: " << IPLS->K << "\n"
2800 << " Search order: " << IPLS->SearchOrder
2801 << ", Current index = " << IPLS->CurSearchOrderIndex
2802 << (IPLS->NewJITDylib ? " (entering new JITDylib)" : "") << "\n"
2803 << " Lookup set: " << IPLS->LookupSet << "\n"
2805 << IPLS->DefGeneratorCandidates << "\n"
2807 << IPLS->DefGeneratorNonCandidates << "\n";
2813 for (auto &KV : IPLS->SearchOrder) {
2818 << ") with lookup set " << IPLS->LookupSet << ":\n";
2821 IPLS->LookupSet.forEachWithRemoval([&](const SymbolStringPtr &Name,
2853 IPLS->LookupSet.remove_if(
2858 if (!IPLS->LookupSet.empty()) {
2861 IPLS->LookupSet.getSymbolNames());