delinearize does not return a remainder

llvm-svn: 209696
This commit is contained in:
Sebastian Pop 2014-05-27 22:42:11 +00:00
parent bc9009a20a
commit e0d9f5a41a
2 changed files with 3 additions and 5 deletions

View File

@ -371,8 +371,8 @@ bool ScopDetection::hasAffineMemoryAccesses(DetectionContext &Context) const {
return invalid<ReportNonAffineAccess>(Context, /*Assert=*/true, AF);
SmallVector<const SCEV *, 4> Subscripts;
if (!AF->computeAccessFunctions(*SE, Subscripts, Sizes) ||
Sizes.empty() || Subscripts.empty())
AF->computeAccessFunctions(*SE, Subscripts, Sizes);
if(Sizes.empty() || Subscripts.empty())
return invalid<ReportNonAffineAccess>(Context, /*Assert=*/true, AF);
// Check that the delinearized subscripts are affine.

View File

@ -172,8 +172,7 @@ IRAccess TempScopInfo::buildIRAccess(Instruction *Inst, Loop *L, Region *R) {
if (!IsAffine && PollyDelinearize && AF) {
const SCEV *ElementSize = SE->getElementSize(Inst);
const SCEV *Remainder =
AF->delinearize(*SE, Subscripts, Sizes, ElementSize);
AF->delinearize(*SE, Subscripts, Sizes, ElementSize);
int NSubs = Subscripts.size();
if (NSubs > 0) {
@ -181,7 +180,6 @@ IRAccess TempScopInfo::buildIRAccess(Instruction *Inst, Loop *L, Region *R) {
// dimension" and the remainder of the delinearization.
Subscripts[NSubs - 1] =
SE->getMulExpr(Subscripts[NSubs - 1], Sizes[NSubs - 1]);
Subscripts[NSubs - 1] = SE->getAddExpr(Subscripts[NSubs - 1], Remainder);
IsAffine = true;
for (int i = 0; i < NSubs; ++i)