OSDN Git Service

LoopIdiom: Replace custom dependence analysis with DependenceAnalysis.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sat, 27 Oct 2012 14:25:44 +0000 (14:25 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sat, 27 Oct 2012 14:25:44 +0000 (14:25 +0000)
commit96c8735e28f2f89be37cdd907f680c6c1bf16052
tree85bb86d7df7c2ffa31f518d1a197002dad9a5a87
parent974d98d730599dacee11e27ff4eee23534109287
LoopIdiom: Replace custom dependence analysis with DependenceAnalysis.

Requires a lot less code and complexity on loop-idiom's side and the more
precise analysis can catch more cases, like the one I included as a test case.
This also fixes the edge-case miscompilation from PR9481.

Compile time performance seems to be slightly worse, but this is mostly due
to an extra LCSSA run scheduled by the PassManager and should be fixed there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166874 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
test/Transforms/LoopIdiom/multi-dimensional.ll [new file with mode: 0644]
test/Transforms/LoopIdiom/sideeffect.ll [new file with mode: 0644]