Lines Matching refs:MA
739 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass() argument
741 CC->setMemoryLeader(MA); in createMemoryClass()
745 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass() argument
746 auto *CC = getMemoryClass(MA); in ensureLeaderOfMemoryClass()
747 if (CC->getMemoryLeader() != MA) in ensureLeaderOfMemoryClass()
748 CC = createMemoryClass(MA); in ensureLeaderOfMemoryClass()
805 CongruenceClass *getMemoryClass(const MemoryAccess *MA) const;
873 unsigned InstrToDFSNum(const MemoryAccess *MA) const { in InstrToDFSNum()
874 return MemoryToDFSNum(MA); in InstrToDFSNum()
882 unsigned MemoryToDFSNum(const Value *MA) const { in MemoryToDFSNum()
883 assert(isa<MemoryAccess>(MA) && in MemoryToDFSNum()
885 return isa<MemoryUseOrDef>(MA) in MemoryToDFSNum()
886 ? InstrToDFSNum(cast<MemoryUseOrDef>(MA)->getMemoryInst()) in MemoryToDFSNum()
887 : InstrDFS.lookup(MA); in MemoryToDFSNum()
1275 NewGVN::createCallExpression(CallInst *CI, const MemoryAccess *MA) const { in createCallExpression()
1278 new (ExpressionAllocator) CallExpression(CI->getNumOperands(), CI, MA); in createCallExpression()
1342 const MemoryAccess *NewGVN::lookupMemoryLeader(const MemoryAccess *MA) const { in lookupMemoryLeader()
1343 auto *CC = getMemoryClass(MA); in lookupMemoryLeader()
1353 bool NewGVN::isMemoryAccessTOP(const MemoryAccess *MA) const { in isMemoryAccessTOP()
1354 return getMemoryClass(MA) == TOPClass; in isMemoryAccessTOP()
1359 const MemoryAccess *MA) const { in createLoadExpression()
1361 new (ExpressionAllocator) LoadExpression(1, LI, lookupMemoryLeader(MA)); in createLoadExpression()
1376 NewGVN::createStoreExpression(StoreInst *SI, const MemoryAccess *MA) const { in createStoreExpression()
1379 StoreExpression(SI->getNumOperands(), SI, StoredValueLeader, MA); in createStoreExpression()
1633 if (auto *MA = MSSA->getMemoryAccess(CI)) { in performSymbolicCallEvaluation() local
1634 auto *DefiningAccess = MSSAWalker->getClobberingMemoryAccess(MA); in performSymbolicCallEvaluation()
1644 CongruenceClass *NewGVN::getMemoryClass(const MemoryAccess *MA) const { in getMemoryClass()
1645 auto *Result = MemoryAccessToClass.lookup(MA); in getMemoryClass()
2096 void NewGVN::markMemoryDefTouched(const MemoryAccess *MA) { in markMemoryDefTouched() argument
2097 TouchedInstructions.set(MemoryToDFSNum(MA)); in markMemoryDefTouched()
2100 void NewGVN::markMemoryUsersTouched(const MemoryAccess *MA) { in markMemoryUsersTouched() argument
2101 if (isa<MemoryUse>(MA)) in markMemoryUsersTouched()
2103 for (const auto *U : MA->users()) in markMemoryUsersTouched()
2105 touchAndErase(MemoryToUsers, MA); in markMemoryUsersTouched()
2404 if (MemoryAccess *MA = getMemoryAccess(I)) in performCongruenceFinding() local
2405 markMemoryUsersTouched(MA); in performCongruenceFinding()
2544 auto *MA = getMemoryAccess(TI); in processOutgoingEdges() local
2545 if (MA && !isa<MemoryUse>(MA)) { in processOutgoingEdges()
2546 auto *CC = ensureLeaderOfMemoryClass(MA); in processOutgoingEdges()
2547 if (setMemoryClass(MA, CC)) in processOutgoingEdges()
2548 markMemoryUsersTouched(MA); in processOutgoingEdges()