Home | History | Annotate | Download | only in Utils

Lines Matching defs:MemoryAccess

79     if (MemoryAccess *MA = MSSA->getMemoryAccess(BB))
85 if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
128 MemoryAccess *getClobberingMemoryAccess(const Instruction *) override;
129 MemoryAccess *getClobberingMemoryAccess(MemoryAccess *,
131 void invalidateInfo(MemoryAccess *) override;
135 MemoryAccess *doCacheLookup(const MemoryAccess *, const UpwardsMemoryQuery &,
138 void doCacheInsert(const MemoryAccess *, MemoryAccess *,
141 void doCacheRemove(const MemoryAccess *, const UpwardsMemoryQuery &,
145 MemoryAccessPair UpwardsDFSWalk(MemoryAccess *, const MemoryLocation &,
147 MemoryAccess *getClobberingMemoryAccess(MemoryAccess *, UpwardsMemoryQuery &);
150 void verifyRemoved(MemoryAccess *);
151 SmallDenseMap<ConstMemoryAccessPair, MemoryAccess *>
153 DenseMap<const MemoryAccess *, MemoryAccess *> CachedUpwardsClobberingCall;
163 MemoryAccess *IncomingVal;
166 MemoryAccess *M)
180 MemoryAccess *MemorySSA::renameBlock(BasicBlock *BB,
181 MemoryAccess *IncomingVal) {
186 for (MemoryAccess &L : *Accesses) {
224 void MemorySSA::renamePass(DomTreeNode *Root, MemoryAccess *IncomingVal,
257 /// unreachable blocks, and marking all other unreachable MemoryAccess's as
316 for (MemoryAccess &MA : *Pair.second)
466 MemoryAccess *Definition) {
476 MemoryAccess *MemorySSA::createMemoryAccessInBB(Instruction *I,
477 MemoryAccess *Definition,
486 [](const MemoryAccess &MA) { return !isa<MemoryPhi>(MA); });
495 MemoryAccess *MemorySSA::createMemoryAccessBefore(Instruction *I,
496 MemoryAccess *Definition,
497 MemoryAccess *InsertPt) {
506 MemoryAccess *MemorySSA::createMemoryAccessAfter(Instruction *I,
507 MemoryAccess *Definition,
508 MemoryAccess *InsertPt) {
549 MemoryAccess *MemorySSA::findDominatingDef(BasicBlock *UseBlock,
566 for (MemoryAccess &RA : reverse(*Accesses)) {
577 bool MemorySSA::dominatesUse(const MemoryAccess *Replacer,
578 const MemoryAccess *Replacee) const {
595 static MemoryAccess *onlySingleValue(MemoryPhi *MP) {
596 MemoryAccess *MA = nullptr;
600 MA = cast<MemoryAccess>(Arg);
611 void MemorySSA::removeFromLookups(MemoryAccess *MA) {
636 void MemorySSA::removeMemoryAccess(MemoryAccess *MA) {
640 MemoryAccess *NewDefTarget = nullptr;
685 SmallVector<MemoryAccess *, 32> ActualAccesses;
688 MemoryAccess *Phi = getMemoryAccess(&B);
692 MemoryAccess *MA = getMemoryAccess(&I);
735 UseBlock = cast<MemoryAccess>(U)->getBlock();
744 MemoryAccess *MD = dyn_cast_or_null<MemoryDef>(getMemoryAccess(&I));
760 UseBlock = cast<MemoryAccess>(U)->getBlock();
775 void MemorySSA::verifyUseInDefs(MemoryAccess *Def, MemoryAccess *Use) const {
801 if (MemoryAccess *MA = getMemoryAccess(&I)) {
810 MemoryAccess *MemorySSA::getMemoryAccess(const Value *I) const {
821 bool MemorySSA::locallyDominates(const MemoryAccess *Dominator,
822 const MemoryAccess *Dominatee) const {
848 [&](const MemoryAccess &MA) { return &MA == Dominatee; });
854 MemoryAccess *UO = getDefiningAccess();
869 MemoryAccess *MA = cast<MemoryAccess>(Op);
890 MemoryAccess::~MemoryAccess() {}
893 MemoryAccess *UO = getDefiningAccess();
902 void MemoryAccess::dump() const {
1001 SmallVector<const MemoryAccess *, 32> VisitedCalls;
1002 // The MemoryAccess we actually got called with, used to test local domination
1003 const MemoryAccess *OriginalAccess;
1009 UpwardsMemoryQuery(const Instruction *Inst, const MemoryAccess *Access)
1014 void MemorySSA::CachingWalker::invalidateInfo(MemoryAccess *MA) {
1048 void MemorySSA::CachingWalker::doCacheRemove(const MemoryAccess *M,
1057 void MemorySSA::CachingWalker::doCacheInsert(const MemoryAccess *M,
1058 MemoryAccess *Result,
1072 MemoryAccess *
1073 MemorySSA::CachingWalker::doCacheLookup(const MemoryAccess *M,
1077 MemoryAccess *Result;
1106 MemoryAccess *StartingAccess, const MemoryLocation &Loc,
1108 MemoryAccess *ModifyingAccess = nullptr;
1112 MemoryAccess *CurrAccess = *DFI;
1165 MemoryAccess *FirstDef = nullptr;
1212 MemoryAccess *CacheAccess = DFI.getPath(N - 1);
1225 MemoryAccess *CacheAccess = DFI.getPath(N - 1);
1234 /// the MemoryAccess that actually clobbers Loc.
1237 MemoryAccess *MemorySSA::CachingWalker::getClobberingMemoryAccess(
1238 MemoryAccess *StartingAccess, UpwardsMemoryQuery &Q) {
1242 MemoryAccess *MemorySSA::CachingWalker::getClobberingMemoryAccess(
1243 MemoryAccess *StartingAccess, MemoryLocation &Loc) {
1269 MemoryAccess *DefiningAccess = isa<MemoryUse>(StartingUseOrDef)
1273 MemoryAccess *Clobber = getClobberingMemoryAccess(DefiningAccess, Q);
1284 MemoryAccess *
1306 MemoryAccess *DefiningAccess = StartingAccess->getDefiningAccess();
1313 MemoryAccess *Result = getClobberingMemoryAccess(DefiningAccess, Q);
1322 for (const MemoryAccess *MA : Q.VisitedCalls)
1335 void MemorySSA::CachingWalker::verifyRemoved(MemoryAccess *MA) {
1339 "Found removed MemoryAccess in cache.");
1342 "Found removed MemoryAccess in cache.");
1346 MemoryAccess *
1348 MemoryAccess *MA = MSSA->getMemoryAccess(I);
1354 MemoryAccess *DoNothingMemorySSAWalker::getClobberingMemoryAccess(
1355 MemoryAccess *StartingAccess, MemoryLocation &) {