summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopUnroll
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-05-31 16:06:18 +0000
committerAndrew Trick <atrick@apple.com>2013-05-31 16:06:18 +0000
commit7ce804a62555d5bcd9c31485deba9c742c2aa3bf (patch)
tree63054eb3f91667a475a6bc2a82c4ca58ecb90caa /test/Transforms/LoopUnroll
parenta3f63b961f185b17a2d90d564d178bc64140b0c2 (diff)
downloadllvm-7ce804a62555d5bcd9c31485deba9c742c2aa3bf.tar.gz
llvm-7ce804a62555d5bcd9c31485deba9c742c2aa3bf.tar.bz2
llvm-7ce804a62555d5bcd9c31485deba9c742c2aa3bf.tar.xz
Merging 182989: Fix ScalarEvolution::ComputeExitLimitFromCond for 'or' conditions.
Fixes PR16130 - clang produces incorrect code with loop/expression at -O2. This is a 2+ year old bug that's now holding up the release. It's a case where we knowingly made aggressive assumptions about undefined behavior. These assumptions are wrong when SCEV is computing a subexpression that does not directly control the branch. With this fix, we avoid making assumptions in those cases but still optimize the common case. SCEV's trip count computation for exits controlled by 'or' expressions is now analagous to the trip count computation for loops with multiple exits. I had already fixed the multiple exit case to be conservative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182989 91177308-0d34-0410-b5e6-96231b3b80d8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_33@183013 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopUnroll')
0 files changed, 0 insertions, 0 deletions