Lines Matching refs:MA
700 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass() argument
702 CC->setMemoryLeader(MA); in createMemoryClass()
706 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass() argument
707 auto *CC = getMemoryClass(MA); in ensureLeaderOfMemoryClass()
708 if (CC->getMemoryLeader() != MA) in ensureLeaderOfMemoryClass()
709 CC = createMemoryClass(MA); in ensureLeaderOfMemoryClass()
770 CongruenceClass *getMemoryClass(const MemoryAccess *MA) const;
842 unsigned InstrToDFSNum(const MemoryAccess *MA) const { in InstrToDFSNum()
843 return MemoryToDFSNum(MA); in InstrToDFSNum()
851 unsigned MemoryToDFSNum(const Value *MA) const { in MemoryToDFSNum()
852 assert(isa<MemoryAccess>(MA) && in MemoryToDFSNum()
854 return isa<MemoryUseOrDef>(MA) in MemoryToDFSNum()
855 ? InstrToDFSNum(cast<MemoryUseOrDef>(MA)->getMemoryInst()) in MemoryToDFSNum()
856 : InstrDFS.lookup(MA); in MemoryToDFSNum()
1250 NewGVN::createCallExpression(CallInst *CI, const MemoryAccess *MA) const { in createCallExpression()
1253 new (ExpressionAllocator) CallExpression(CI->getNumOperands(), CI, MA); in createCallExpression()
1309 const MemoryAccess *NewGVN::lookupMemoryLeader(const MemoryAccess *MA) const { in lookupMemoryLeader()
1310 auto *CC = getMemoryClass(MA); in lookupMemoryLeader()
1320 bool NewGVN::isMemoryAccessTOP(const MemoryAccess *MA) const { in isMemoryAccessTOP()
1321 return getMemoryClass(MA) == TOPClass; in isMemoryAccessTOP()
1326 const MemoryAccess *MA) const { in createLoadExpression()
1328 new (ExpressionAllocator) LoadExpression(1, LI, lookupMemoryLeader(MA)); in createLoadExpression()
1345 NewGVN::createStoreExpression(StoreInst *SI, const MemoryAccess *MA) const { in createStoreExpression()
1348 StoreExpression(SI->getNumOperands(), SI, StoredValueLeader, MA); in createStoreExpression()
1648 CongruenceClass *NewGVN::getMemoryClass(const MemoryAccess *MA) const { in getMemoryClass()
1649 auto *Result = MemoryAccessToClass.lookup(MA); in getMemoryClass()
2105 void NewGVN::markMemoryDefTouched(const MemoryAccess *MA) { in markMemoryDefTouched() argument
2106 TouchedInstructions.set(MemoryToDFSNum(MA)); in markMemoryDefTouched()
2109 void NewGVN::markMemoryUsersTouched(const MemoryAccess *MA) { in markMemoryUsersTouched() argument
2110 if (isa<MemoryUse>(MA)) in markMemoryUsersTouched()
2112 for (auto U : MA->users()) in markMemoryUsersTouched()
2114 touchAndErase(MemoryToUsers, MA); in markMemoryUsersTouched()
2425 if (MemoryAccess *MA = getMemoryAccess(I)) in performCongruenceFinding() local
2426 markMemoryUsersTouched(MA); in performCongruenceFinding()
2565 auto *MA = getMemoryAccess(TI); in processOutgoingEdges() local
2566 if (MA && !isa<MemoryUse>(MA)) { in processOutgoingEdges()
2567 auto *CC = ensureLeaderOfMemoryClass(MA); in processOutgoingEdges()
2568 if (setMemoryClass(MA, CC)) in processOutgoingEdges()
2569 markMemoryUsersTouched(MA); in processOutgoingEdges()