llvm-6502/lib/Transforms/InstCombine
Owen Anderson 26c5663283 Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask.
This can result in increased opportunities for store narrowing in code generation.  Update a number of
tests for this change.  This fixes <rdar://problem/8285027>.

Additionally, because this inverts the order of ors and ands, some patterns for optimizing or-of-and-of-or
no longer fire in instances where they did originally.  Add a simple transform which recaptures most of these
opportunities: if we have an or-of-constant-or and have failed to fold away the inner or, commute the order 
of the two ors, to give the non-constant or a chance for simplification instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113679 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11 05:48:06 +00:00
..
CMakeLists.txt CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally. 2010-09-10 21:14:25 +00:00
InstCombine.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
InstCombineAddSub.cpp
InstCombineAndOrXor.cpp Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask. 2010-09-11 05:48:06 +00:00
InstCombineCalls.cpp PR7853: fix a silly mistake introduced in r101899, and add a test to make sure 2010-08-09 20:49:43 +00:00
InstCombineCasts.cpp Fix a serious performance regression introduced by r108687 on linux: 2010-09-07 20:01:38 +00:00
InstCombineCompares.cpp
InstCombineLoadStoreAlloca.cpp Remove r111665, which implemented store-narrowing in InstCombine. Chris discovered a miscompilation in it, and it's not easily 2010-08-31 04:41:06 +00:00
InstCombineMulDivRem.cpp
InstCombinePHI.cpp
InstCombineSelect.cpp
InstCombineShifts.cpp optimize bitcasts from large integers to vector into vector 2010-08-28 01:20:38 +00:00
InstCombineSimplifyDemanded.cpp
InstCombineVectorOps.cpp Temporarily revert r110987 as it's causing some miscompares in 2010-08-17 22:55:27 +00:00
InstCombineWorklist.h
InstructionCombining.cpp
Makefile