Lines Matching refs:SAI
94 auto SAI = MA->getLatestScopArrayInfo(); in filterDependences() local
113 if (SAI != UserSAI) in filterDependences()
137 bool isExpandable(const ScopArrayInfo *SAI, in isExpandable() argument
140 if (SAI->isValueKind()) { in isExpandable()
141 Writes.insert(S.getValueDef(SAI)); in isExpandable()
142 for (auto MA : S.getValueUses(SAI)) in isExpandable()
145 } else if (SAI->isPHIKind()) { in isExpandable()
146 auto Read = S.getPHIRead(SAI); in isExpandable()
150 auto Writes = S.getPHIIncomings(SAI); in isExpandable()
163 emitRemark(SAI->getName() + " read from its original value.", in isExpandable()
169 } else if (SAI->isExitPHIKind()) { in isExpandable()
171 emitRemark(SAI->getName() + " is a ExitPhi node.", in isExpandable()
183 if (SAI != MA->getLatestScopArrayInfo()) in isExpandable()
192 emitRemark(SAI->getName() + " has read after write to the same " in isExpandable()
208 emitRemark(SAI->getName() + " has a maywrite access.", in isExpandable()
218 emitRemark(SAI->getName() + " has more than 1 write access.", in isExpandable()
238 emitRemark("The expansion of " + SAI->getName() + in isExpandable()
249 emitRemark(SAI->getName() + in isExpandable()
259 emitRemark("The expansion of " + SAI->getName() + in isExpandable()
272 emitRemark(SAI->getName() + " has 0 write access.", in isExpandable()
400 void expandPhi(Scop &S, const ScopArrayInfo *SAI, in expandPhi() argument
403 for (auto MA : S.getPHIIncomings(SAI)) in expandPhi()
405 auto Read = S.getPHIRead(SAI); in expandPhi()
423 for (auto SAI : CurrentSAI) { in expand() local
426 if (!isExpandable(SAI, AllWrites, AllReads, S)) in expand()
429 if (SAI->isValueKind() || SAI->isArrayKind()) { in expand()
430 assert(AllWrites.size() == 1 || SAI->isValueKind()); in expand()
436 } else if (SAI->isPHIKind()) { in expand()
437 expandPhi(S, SAI, Dependences); in expand()