llvm/lib/Transforms/InstCombine
David Majnemer e049aa6ae3 [InstCombine] Don't aggressively replace xor with icmp
For some cases, InstCombine replaces the sequence of xor/sub instruction
followed by cmp instruction into a single cmp instruction.

However, this replacement may result suboptimal result especially when
the xor/sub has more than one use, as discussed in
bug 26465 (https://llvm.org/bugs/show_bug.cgi?id=26465).

This patch make the replacement happen only when xor/sub has only one
use.

Differential Revision: http://reviews.llvm.org/D16915

Patch by Taewook Oh!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260695 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-12 18:12:38 +00:00
..
CMakeLists.txt
InstCombineAddSub.cpp Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
InstCombineAndOrXor.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineCalls.cpp Don't propagate dereferenceable attribute through gc.relocate in InstCombine 2016-02-11 11:22:46 +00:00
InstCombineCasts.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineCompares.cpp [InstCombine] Don't aggressively replace xor with icmp 2016-02-12 18:12:38 +00:00
InstCombineInternal.h function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineLoadStoreAlloca.cpp Re-apply r238452, the bug was in clang and was fixed in r260567. 2016-02-11 22:30:41 +00:00
InstCombineMulDivRem.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombinePHI.cpp Fixed typo in r260530 2016-02-11 16:46:13 +00:00
InstCombineSelect.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineShifts.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineSimplifyDemanded.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineVectorOps.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstructionCombining.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
LLVMBuild.txt