Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Cand

102                                  const StoreToLoadForwardingCandidate &Cand) {
103 OS << *Cand.Store << " -->\n";
104 OS.indent(2) << *Cand.Load << "\n";
230 for (const auto &Cand : Candidates) {
235 LoadToSingleCand.insert(std::make_pair(Cand.Load, &Cand));
245 if (Cand.Store->getParent() == OtherCand->Store->getParent() &&
246 Cand.isDependenceDistanceOfOne(PSE, L) &&
249 if (getInstrIndex(OtherCand->Store) < getInstrIndex(Cand.Store))
250 OtherCand = &Cand;
256 Candidates.remove_if([&](const StoreToLoadForwardingCandidate &Cand) {
257 if (LoadToSingleCand[Cand.Load] != &Cand) {
258 DEBUG(dbgs() << "Removing from candidates: \n" << Cand
376 propagateStoredValueToLoadUsers(const StoreToLoadForwardingCandidate &Cand,
394 Value *Ptr = Cand.Load->getPointerOperand();
404 PHI->addIncoming(Cand.Store->getOperand(0), L->getLoopLatch());
406 Cand.Load->replaceAllUsesWith(PHI);
450 for (const StoreToLoadForwardingCandidate Cand : StoreToLoadDependences) {
451 DEBUG(dbgs() << "Candidate " << Cand);
455 if (!doesStoreDominatesAllLatches(Cand.Store->getParent(), L, DT))
461 if (isLoadConditional(Cand.Load, L))
466 if (!Cand.isDependenceDistanceOfOne(PSE, L))
473 Candidates.push_back(Cand);
515 for (const auto &Cand : Candidates)
516 propagateStoredValueToLoadUsers(Cand, SEE);