[UPSTREAM][IfConversion] Fix diamond conversion with unanalyzable branches.
The code was incorrectly counting the number of identical instructions, and therefore tried to predicate an instruction which should not have been predicated. This could have various effects: a compiler crash, an assembler failure, a miscompile, or just generating an extra, unnecessary instruction. Instead of depending on TargetInstrInfo::removeBranch, which only works on analyzable branches, just remove all branch instructions. Fixes https://bugs.llvm.org/show_bug.cgi?id=43121 and https://bugs.llvm.org/show_bug.cgi?id=41121 . Differential Revision: https://reviews.llvm.org/D67203 llvm-svn: 371111 (cherry picked from commit cae1e47f) Change-Id: Ia1f03d033981f6902bf21a7b6edf1c87fded36cc
Loading
Please sign in to comment