summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-06-04 19:57:28 +0000
committerBill Wendling <isanbard@gmail.com>2013-06-04 19:57:28 +0000
commit4e7df86628f2135f114b8fca6821e8535b23ded1 (patch)
treec6079e92bc2ceec744164476b4da8f7ac5bd771e
parent3f383efaefe7a175d567d0c102f20622e256d576 (diff)
downloadllvm-4e7df86628f2135f114b8fca6821e8535b23ded1.tar.gz
llvm-4e7df86628f2135f114b8fca6821e8535b23ded1.tar.bz2
llvm-4e7df86628f2135f114b8fca6821e8535b23ded1.tar.xz
Merging r182989:
------------------------------------------------------------------------ r182989 | atrick | 2013-05-30 23:43:25 -0700 (Thu, 30 May 2013) | 13 lines 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/branches/release_33@183245 91177308-0d34-0410-b5e6-96231b3b80d8
0 files changed, 0 insertions, 0 deletions