summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/ScaledNumber.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2017-06-22 20:20:56 +0000
committerAnna Thomas <anna@azul.com>2017-06-22 20:20:56 +0000
commit72c90c87f81b40b2ec6c25a817577add1d816546 (patch)
treecb2f3cb851fd32f409e5e435da3fb6c3b228121c /llvm/lib/Support/ScaledNumber.cpp
parent792fc92be26e9870ea939caedf574a120bc8e67f (diff)
downloadbcm5719-llvm-72c90c87f81b40b2ec6c25a817577add1d816546.tar.gz
bcm5719-llvm-72c90c87f81b40b2ec6c25a817577add1d816546.zip
[LoopDeletion] Update exits correctly when multiple duplicate edges from an exiting block
Summary: Currently, we incorrectly update exit blocks of loops when there are multiple edges from a single exiting block to the exit block. This can happen when we have switches as the terminator of the exiting blocks. The fix here is to correctly update the phi nodes in the exit block, and remove all incoming values *except* for one which is from the preheader. Note: Currently, this error can manifest only while deleting non-executed loops. However, it is possible to trigger this error in invariant loops, once we enhance the logic around the exit conditions for the loop check. Reviewers: chandlerc, dberlin, sanjoy, efriedma Reviewed by: efriedma Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D34516 llvm-svn: 306048
Diffstat (limited to 'llvm/lib/Support/ScaledNumber.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud