parent
f8adb3818d
commit
adeab372ca
|
@ -552,6 +552,7 @@ MemoryAccess::createBasicAccessMap(ScopStmt *Statement) {
|
|||
// constraints is the set of constraints that needs to be assumed to ensure such
|
||||
// statement instances are never executed.
|
||||
void MemoryAccess::assumeNoOutOfBound() {
|
||||
auto *SAI = getScopArrayInfo();
|
||||
isl_space *Space = isl_space_range(getOriginalAccessRelationSpace());
|
||||
isl_set *Outside = isl_set_empty(isl_space_copy(Space));
|
||||
for (int i = 1, Size = isl_space_dim(Space, isl_dim_set); i < Size; ++i) {
|
||||
|
@ -563,7 +564,7 @@ void MemoryAccess::assumeNoOutOfBound() {
|
|||
isl_set *DimOutside;
|
||||
|
||||
DimOutside = isl_pw_aff_lt_set(isl_pw_aff_copy(Var), Zero);
|
||||
isl_pw_aff *SizeE = getScopArrayInfo()->getDimensionSizePw(i);
|
||||
isl_pw_aff *SizeE = SAI->getDimensionSizePw(i);
|
||||
SizeE = isl_pw_aff_add_dims(SizeE, isl_dim_in,
|
||||
isl_space_dim(Space, isl_dim_set));
|
||||
SizeE = isl_pw_aff_set_tuple_id(SizeE, isl_dim_in,
|
||||
|
@ -940,6 +941,7 @@ void ScopStmt::restrictDomain(__isl_take isl_set *NewDomain) {
|
|||
}
|
||||
|
||||
void ScopStmt::buildAccessRelations() {
|
||||
Scop &S = *getParent();
|
||||
for (MemoryAccess *Access : MemAccs) {
|
||||
Type *ElementType = Access->getAccessValue()->getType();
|
||||
|
||||
|
@ -953,9 +955,8 @@ void ScopStmt::buildAccessRelations() {
|
|||
else
|
||||
Ty = ScopArrayInfo::MK_Array;
|
||||
|
||||
const ScopArrayInfo *SAI = getParent()->getOrCreateScopArrayInfo(
|
||||
Access->getBaseAddr(), ElementType, Access->Sizes, Ty);
|
||||
|
||||
auto *SAI = S.getOrCreateScopArrayInfo(Access->getBaseAddr(), ElementType,
|
||||
Access->Sizes, Ty);
|
||||
Access->buildAccessRelation(SAI);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1020,7 +1020,7 @@ bool IslNodeBuilder::preloadInvariantEquivClass(
|
|||
|
||||
// If the base pointer of this class is dependent on another one we have to
|
||||
// make sure it was preloaded already.
|
||||
auto *SAI = S.getScopArrayInfo(MA->getBaseAddr(), ScopArrayInfo::MK_Array);
|
||||
auto *SAI = MA->getScopArrayInfo();
|
||||
if (const auto *BaseIAClass = S.lookupInvariantEquivClass(SAI->getBasePtr()))
|
||||
if (!preloadInvariantEquivClass(*BaseIAClass))
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue