[Simplify] Use execution order of memory accesses.
commit5485577d9d1df0f791a6f8a21062b0918ed8598b
authorMichael Kruse <llvm@meinersbur.de>
Tue, 6 Jun 2017 17:46:42 +0000 (6 17:46 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Tue, 6 Jun 2017 17:46:42 +0000 (6 17:46 +0000)
treeade618adc95f54a8fe24756328eaffbac0f2106b
parent6ec14351bfa55c715f66ad4877f1e05bb2231618
[Simplify] Use execution order of memory accesses.

Iterate through memory accesses in execution order (first all implicit reads,
then explicit accesses, then implicit writes).

In the test case this caused an implicit load to be handled as if it was loaded
after the write. That is, the value being written before it is available.

This fixes llvm.org/PR33323

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@304810 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transform/Simplify.cpp
test/Simplify/pr33323.ll [new file with mode: 0644]
test/Simplify/pr33323___%for.body98---%for.cond87.loopexit.jscop [new file with mode: 0644]
test/Simplify/pr33323___%for.body98---%for.cond87.loopexit.jscop.transformed [new file with mode: 0644]