llvm-project/llvm/lib/Transforms/InstCombine
Owen Anderson 883b5add8e Remove a very old instcombine where we would turn sequences of selects into
logical operations on the i1's driving them.  This is a bad idea for every
target I can think of (confirmed with micro tests on all of: x86-64, ARM,
AArch64, Mips, and PowerPC) because it forces the i1 to be materialized into
a general purpose register, whereas consuming it directly into a select generally
allows it to exist only transiently in a predicate or flags register.

Chandler ran a set of performance tests with this change, and reported no
measurable change on x86-64.

llvm-svn: 201275
2014-02-12 23:54:07 +00:00
..
CMakeLists.txt Tidy up a bit. No functional change. 2013-04-05 21:20:12 +00:00
InstCombine.h InstCombine: Hoist 3 copies of AddOne/SubOne into a header. 2014-01-19 16:56:10 +00:00
InstCombineAddSub.cpp Fix all the remaining lost-fast-math-flags bugs I've been able to find. The most important of these are cases in the generic logic for combining BinaryOperators. 2014-01-20 07:44:53 +00:00
InstCombineAndOrXor.cpp InstCombine: Teach icmp merging about the equivalence of bit tests and UGE/ULT with a power of 2. 2014-02-11 21:09:03 +00:00
InstCombineCalls.cpp Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
InstCombineCasts.cpp Fix known typos 2014-01-24 17:20:08 +00:00
InstCombineCompares.cpp Remove a very old instcombine where we would turn sequences of selects into 2014-02-12 23:54:07 +00:00
InstCombineLoadStoreAlloca.cpp Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
InstCombineMulDivRem.cpp Fix all the remaining lost-fast-math-flags bugs I've been able to find. The most important of these are cases in the generic logic for combining BinaryOperators. 2014-01-20 07:44:53 +00:00
InstCombinePHI.cpp Push analysis passes to InstSimplify when they're around anyways. 2013-09-24 16:37:40 +00:00
InstCombineSelect.cpp Fix more instances of dropped fast math flags when optimizing FADD instructions. All found by inspection (aka grep). 2014-01-18 00:48:14 +00:00
InstCombineShifts.cpp Revert r174152. The shift amount may overflow and in that case this transformation is illegal. 2013-02-01 07:59:33 +00:00
InstCombineSimplifyDemanded.cpp Remove x86_sse42_crc32_64_8 intrinsic. It has no functional difference from x86_sse42_crc32_32_8 and was not mapped to a clang builtin. I'm not even sure why this form of the instruction is even called out explicitly in the docs. Also add AutoUpgrade support to convert it into the other intrinsic with appropriate trunc and zext. 2013-10-15 05:20:47 +00:00
InstCombineVectorOps.cpp InstCombine: Don't try to use aggregate elements of ConstantExprs. 2014-01-24 19:02:37 +00:00
InstCombineWorklist.h Consistently use dbgs() in debug printing 2013-09-05 19:48:28 +00:00
InstructionCombining.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile