[ScopInfo] Separate construction and finalization of memory accesses [NFC]
authorTobias Grosser <tobias@grosser.es>
Fri, 2 Dec 2016 05:21:22 +0000 (05:21 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 2 Dec 2016 05:21:22 +0000 (05:21 +0000)
commit491b799a4d56ba98b7d34d58eec392737482c4ad
tree0a9e3fe6333ffc208b23c58d5f653d40ea5e8836
parent91a5fa1b6f7db89ef4f0d3ae36a549d3bcd9ec9b
[ScopInfo] Separate construction and finalization of memory accesses [NFC]

After having built memory accesses we perform some additional transformations
on them to increase the chances that our delinearization guesses the right
shape. Only after these transformations, we take the assumptions that the
array shape we predict is such that no out-of-bounds memory accesses arise.

Before this change, the construction of the memory access, the access folding
that improves the represenation for certain parametric subscripts, and taking
the assumption was all done right after a memory access was created. In this
change we split this now into three separate iterations over all memory
accesses. This means only after all memory accesses have been built, we start
to canonicalize accesses, and to take assumptions. This split prepares for
future canonicalizations that must consider all memory accesses for deriving
additional beneficial transformations.

llvm-svn: 288479
polly/include/polly/ScopInfo.h
polly/lib/Analysis/ScopInfo.cpp