diff options
Diffstat (limited to 'polly/lib/Analysis/ScopBuilder.cpp')
-rw-r--r-- | polly/lib/Analysis/ScopBuilder.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopBuilder.cpp b/polly/lib/Analysis/ScopBuilder.cpp index 83396809fe2..f3623525df4 100644 --- a/polly/lib/Analysis/ScopBuilder.cpp +++ b/polly/lib/Analysis/ScopBuilder.cpp @@ -407,6 +407,13 @@ bool ScopBuilder::buildAccessMultiDimParam(MemAccInst Inst, ScopStmt *Stmt) { Sizes.insert(Sizes.end(), AccItr->second.Shape->DelinearizedSizes.begin(), AccItr->second.Shape->DelinearizedSizes.end()); + + // In case only the element size is contained in the 'Sizes' array, the + // access does not access a real multi-dimensional array. Hence, we allow + // the normal single-dimensional access construction to handle this. + if (Sizes.size() == 1) + return false; + // Remove the element size. This information is already provided by the // ElementSize parameter. In case the element size of this access and the // element size used for delinearization differs the delinearization is |