Lines Matching refs:Start
384 /// Verifies that `Start` is clobbered by `ClobberAt`, and that nothing
385 /// inbetween `Start` and `ClobberAt` can clobbers `Start`.
390 /// \param Start The MemoryAccess that we want to walk from.
391 /// \param ClobberAt A clobber for Start.
392 /// \param StartLoc The MemoryLocation for Start.
393 /// \param MSSA The MemorySSA instance that Start and ClobberAt belong to.
400 checkClobberSanity(const MemoryAccess *Start, MemoryAccess *ClobberAt,
404 assert(MSSA.dominates(ClobberAt, Start) && "Clobber doesn't dominate start?");
406 if (MSSA.isLiveOnEntryDef(Start)) {
415 Worklist.emplace_back(Start, StartLoc);
416 // Walk all paths from Start to ClobberAt, while looking for clobbers. If one
420 // All we care about is that nothing from Start to ClobberAt clobbers Start.
450 // If Start is a Def, skip self.
451 if (MD == Start)
462 assert (MU == Start &&
463 "Can only find use in def chain if Start is a use");
765 OptznResult tryOptimizePhi(MemoryPhi *Phi, MemoryAccess *Start,
770 Paths.emplace_back(Loc, Start, Phi, None);
932 MemoryAccess *findClobber(MemoryAccess *Start, UpwardsMemoryQuery &Q,
940 MemoryAccess *Current = Start;
943 if (auto *MU = dyn_cast<MemoryUse>(Start))
2395 // Start with the thing we already think clobbers this location