InstCombine: Fix infinite loop when encountering switch on trivial icmp.
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 28 May 2012 19:18:16 +0000 (19:18 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 28 May 2012 19:18:16 +0000 (19:18 +0000)
commit37fa1c81ac49dc744899d05a8eb7f038cd1502cd
tree3312f383bde92ba2e6abfc3309866d9f1fe495e9
parent21280e48c07422a43bf8e7d095bdfaf0c7012bd5
InstCombine: Fix infinite loop when encountering switch on trivial icmp.

The test case feeds the following into InstCombine's visitSelect:
%tobool8 = icmp ne i32 0, 0
%phitmp = select i1 %tobool8, i32 3, i32 0
Then instcombine replaces the right side of the switch with 0, doesn't notice
that nothing changes and tries again indefinitely.

This fixes PR12897.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157587 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineSelect.cpp
test/Transforms/InstCombine/2012-05-28-select-hang.ll [new file with mode: 0644]