Delinearize _all_ accesses to a multi-dimensional array
Even though we previously correctly detected the multi-dimensional access pattern for accesses with a certain base address, we only delinearized non-affine accesses to this address. Affine accesses have not been touched and remained as single dimensional accesses. The result was an inconsistent description of accesses to the same array, with some being one dimensional and some being multi-dimensional. This patch ensures that all accesses are delinearized with the same dimensionality as soon as a single one of them has been detected as non-affine. While writing this patch, it became evident that the options -polly-allow-nonaffine and -polly-detect-keep-going have not been properly supported in case delinearization has been turned on. This patch adds relevant test coverage and addresses these issues as well. We also added some more documentation to the functions that are modified in this patch. This fixes llvm.org/PR20123 Differential Revision: http://reviews.llvm.org/D5329 llvm-svn: 217728
Loading
Please sign in to comment