summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-01-20 07:41:13 +0000
committerAndrew Trick <atrick@apple.com>2012-01-20 07:41:13 +0000
commitc908b43d9fe12c633216458e992a1ee375d9910c (patch)
tree65764207a80d575cb7899c00c4a06ad04c9c7dd8 /clang/lib/Frontend/CompilerInvocation.cpp
parent3d8d3db34e33d0cee69d3a256bf3ce66632ca4a0 (diff)
downloadbcm5719-llvm-c908b43d9fe12c633216458e992a1ee375d9910c.tar.gz
bcm5719-llvm-c908b43d9fe12c633216458e992a1ee375d9910c.zip
SCEVExpander fixes. Affects LSR and indvars.
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes: - Always used properlyDominates to check safe code hoisting. - The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point. - LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions. - Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point. Fixes PR11783: SCEVExpander assert. llvm-svn: 148535
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud