Lines Matching refs:MA
742 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass() argument
744 CC->setMemoryLeader(MA); in createMemoryClass()
748 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass() argument
749 auto *CC = getMemoryClass(MA); in ensureLeaderOfMemoryClass()
750 if (CC->getMemoryLeader() != MA) in ensureLeaderOfMemoryClass()
751 CC = createMemoryClass(MA); in ensureLeaderOfMemoryClass()
811 CongruenceClass *getMemoryClass(const MemoryAccess *MA) const;
879 unsigned InstrToDFSNum(const MemoryAccess *MA) const { in InstrToDFSNum()
880 return MemoryToDFSNum(MA); in InstrToDFSNum()
888 unsigned MemoryToDFSNum(const Value *MA) const { in MemoryToDFSNum()
889 assert(isa<MemoryAccess>(MA) && in MemoryToDFSNum()
891 return isa<MemoryUseOrDef>(MA) in MemoryToDFSNum()
892 ? InstrToDFSNum(cast<MemoryUseOrDef>(MA)->getMemoryInst()) in MemoryToDFSNum()
893 : InstrDFS.lookup(MA); in MemoryToDFSNum()
1282 NewGVN::createCallExpression(CallInst *CI, const MemoryAccess *MA) const { in createCallExpression()
1286 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()
1617 if (auto *MA = MSSA->getMemoryAccess(CI)) { in performSymbolicCallEvaluation() local
1618 auto *DefiningAccess = MSSAWalker->getClobberingMemoryAccess(MA); in performSymbolicCallEvaluation()
1628 CongruenceClass *NewGVN::getMemoryClass(const MemoryAccess *MA) const { in getMemoryClass()
1629 auto *Result = MemoryAccessToClass.lookup(MA); in getMemoryClass()
2086 void NewGVN::markMemoryDefTouched(const MemoryAccess *MA) { in markMemoryDefTouched() argument
2087 TouchedInstructions.set(MemoryToDFSNum(MA)); in markMemoryDefTouched()
2090 void NewGVN::markMemoryUsersTouched(const MemoryAccess *MA) { in markMemoryUsersTouched() argument
2091 if (isa<MemoryUse>(MA)) in markMemoryUsersTouched()
2093 for (auto U : MA->users()) in markMemoryUsersTouched()
2095 touchAndErase(MemoryToUsers, MA); in markMemoryUsersTouched()
2394 if (MemoryAccess *MA = getMemoryAccess(I)) in performCongruenceFinding() local
2395 markMemoryUsersTouched(MA); in performCongruenceFinding()
2534 auto *MA = getMemoryAccess(TI); in processOutgoingEdges() local
2535 if (MA && !isa<MemoryUse>(MA)) { in processOutgoingEdges()
2536 auto *CC = ensureLeaderOfMemoryClass(MA); in processOutgoingEdges()
2537 if (setMemoryClass(MA, CC)) in processOutgoingEdges()
2538 markMemoryUsersTouched(MA); in processOutgoingEdges()