Lines Matching refs:SAI
383 const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User); in getFromId() local
384 return SAI; in getFromId()
388 auto *SAI = getScopArrayInfo(); in wrapConstantDimensions() local
389 isl::space ArraySpace = SAI->getSpace(); in wrapConstantDimensions()
391 unsigned DimsArray = SAI->getNumberOfDimensions(); in wrapConstantDimensions()
399 auto *DimSize = SAI->getDimensionSize(i); in wrapConstantDimensions()
440 auto *SAI = getScopArrayInfo(); in updateDimensionality() local
441 isl::space ArraySpace = SAI->getSpace(); in updateDimensionality()
452 unsigned ArrayElemSize = SAI->getElemSizeInBytes(); in updateDimensionality()
550 const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User); in getOriginalScopArrayInfo() local
551 return SAI; in getOriginalScopArrayInfo()
557 const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User); in getLatestScopArrayInfo() local
558 return SAI; in getLatestScopArrayInfo()
642 auto *SAI = getScopArrayInfo(); in assumeNoOutOfBound() local
651 isl::pw_aff SizeE = SAI->getDimensionSizePw(i); in assumeNoOutOfBound()
811 void MemoryAccess::buildAccessRelation(const ScopArrayInfo *SAI) { in buildAccessRelation() argument
820 isl::id BaseAddrId = SAI->getBasePtrId(); in buildAccessRelation()
880 auto *SAI = ScopArrayInfo::getFromId(ArrayInfoId); in MemoryAccess() local
882 for (unsigned i = 1; i < SAI->getNumberOfDimensions(); i++) in MemoryAccess()
883 Sizes.push_back(SAI->getDimensionSize(i)); in MemoryAccess()
884 ElementType = SAI->getElementType(); in MemoryAccess()
885 BaseAddr = SAI->getBasePtr(); in MemoryAccess()
1060 auto *SAI = static_cast<ScopArrayInfo *>(NewArrayId.get_user()); in setNewAccessRelation() local
1061 assert(SAI && "Must set a ScopArrayInfo"); in setNewAccessRelation()
1063 if (SAI->isArrayKind() && SAI->getBasePtrOriginSAI()) { in setNewAccessRelation()
1066 SAI->getBasePtr()); in setNewAccessRelation()
1074 unsigned Dims = SAI->getNumberOfDimensions(); in setNewAccessRelation()
1334 ScopArrayInfo *SAI = in ensureValueRead() local
1339 Access->buildAccessRelation(SAI); in ensureValueRead()
1742 auto &SAI = BasePtr ? ScopArrayInfoMap[std::make_pair(BasePtr, Kind)] in getOrCreateScopArrayInfo() local
1744 if (!SAI) { in getOrCreateScopArrayInfo()
1746 SAI.reset(new ScopArrayInfo(BasePtr, ElementType, getIslCtx(), Sizes, Kind, in getOrCreateScopArrayInfo()
1748 ScopArrayInfoSet.insert(SAI.get()); in getOrCreateScopArrayInfo()
1750 SAI->updateElementType(ElementType); in getOrCreateScopArrayInfo()
1753 if (!SAI->updateSizes(Sizes)) in getOrCreateScopArrayInfo()
1756 return SAI.get(); in getOrCreateScopArrayInfo()
1771 auto *SAI = getOrCreateScopArrayInfo(nullptr, ElementType, SCEVSizes, in createScopArrayInfo() local
1773 return SAI; in createScopArrayInfo()
1777 auto *SAI = ScopArrayInfoMap[std::make_pair(BasePtr, Kind)].get(); in getScopArrayInfoOrNull() local
1778 return SAI; in getScopArrayInfoOrNull()
1782 auto *SAI = getScopArrayInfoOrNull(BasePtr, Kind); in getScopArrayInfo() local
1783 assert(SAI && "No ScopArrayInfo available for this base pointer"); in getScopArrayInfo()
1784 return SAI; in getScopArrayInfo()
2403 for (auto &SAI : arrays()) { in getArrayInfoByName() local
2404 if (SAI->getName() == BaseName) in getArrayInfoByName()
2405 return SAI; in getArrayInfoByName()
2411 const ScopArrayInfo *SAI = Access->getOriginalScopArrayInfo(); in addAccessData() local
2412 assert(SAI && "can only use after access relations have been constructed"); in addAccessData()
2415 ValueUseAccs[SAI].push_back(Access); in addAccessData()
2417 PHIIncomingAccs[SAI].push_back(Access); in addAccessData()
2437 MemoryAccess *Scop::getValueDef(const ScopArrayInfo *SAI) const { in getValueDef()
2438 assert(SAI->isValueKind()); in getValueDef()
2440 Instruction *Val = dyn_cast<Instruction>(SAI->getBasePtr()); in getValueDef()
2447 ArrayRef<MemoryAccess *> Scop::getValueUses(const ScopArrayInfo *SAI) const { in getValueUses()
2448 assert(SAI->isValueKind()); in getValueUses()
2449 auto It = ValueUseAccs.find(SAI); in getValueUses()
2455 MemoryAccess *Scop::getPHIRead(const ScopArrayInfo *SAI) const { in getPHIRead()
2456 assert(SAI->isPHIKind() || SAI->isExitPHIKind()); in getPHIRead()
2458 if (SAI->isExitPHIKind()) in getPHIRead()
2461 PHINode *PHI = cast<PHINode>(SAI->getBasePtr()); in getPHIRead()
2465 ArrayRef<MemoryAccess *> Scop::getPHIIncomings(const ScopArrayInfo *SAI) const { in getPHIIncomings()
2466 assert(SAI->isPHIKind() || SAI->isExitPHIKind()); in getPHIIncomings()
2467 auto It = PHIIncomingAccs.find(SAI); in getPHIIncomings()