Lines Matching refs:Cand

2424     Instruction *Cand = cast<Instruction>(It.first);  in rematerializeLiveValuesAtUses()  local
2430 if (Cand->user_empty()) in rematerializeLiveValuesAtUses()
2433 if (Cand->hasOneUse()) in rematerializeLiveValuesAtUses()
2434 if (auto *U = dyn_cast<Instruction>(Cand->getUniqueUndroppableUser())) in rematerializeLiveValuesAtUses()
2435 if (U->getParent() == Cand->getParent()) in rematerializeLiveValuesAtUses()
2439 if (llvm::any_of(Cand->users(), in rematerializeLiveValuesAtUses()
2443 LLVM_DEBUG(dbgs() << "Trying cand " << *Cand << " ... "); in rematerializeLiveValuesAtUses()
2452 Records, [Cand](const auto &R) { return R.LiveSet.contains(Cand); }); in rematerializeLiveValuesAtUses()
2453 unsigned NumUses = Cand->getNumUses(); in rematerializeLiveValuesAtUses()
2480 findRematerializableChainToBasePointer(Record.ChainToBase, Cand); in rematerializeLiveValuesAtUses()
2492 while (!Cand->user_empty()) { in rematerializeLiveValuesAtUses()
2493 Instruction *UserI = cast<Instruction>(*Cand->user_begin()); in rematerializeLiveValuesAtUses()
2495 Record.ChainToBase, UserI, Record.RootOfChain, PointerToBase[Cand]); in rematerializeLiveValuesAtUses()
2496 UserI->replaceUsesOfWith(Cand, RematChain); in rematerializeLiveValuesAtUses()
2497 PointerToBase[RematChain] = PointerToBase[Cand]; in rematerializeLiveValuesAtUses()
2499 LiveValuesToBeDeleted.push_back(Cand); in rematerializeLiveValuesAtUses()
2504 for (auto *Cand : LiveValuesToBeDeleted) { in rematerializeLiveValuesAtUses() local
2505 assert(Cand->use_empty() && "Unexpected user remain"); in rematerializeLiveValuesAtUses()
2506 RematerizationCandidates.erase(Cand); in rematerializeLiveValuesAtUses()
2508 assert(!R.LiveSet.contains(Cand) || in rematerializeLiveValuesAtUses()
2509 R.LiveSet.contains(PointerToBase[Cand])); in rematerializeLiveValuesAtUses()
2510 R.LiveSet.remove(Cand); in rematerializeLiveValuesAtUses()