llvm/lib/Transforms/InstCombine
Arnaud A. de Grandmaison 2be921adc4 InstCombine: Improve the result bitvect type when folding (cmp pred (load (gep GV, i)) C) to a bit test.
The original code used i32, and i64 if legal. This introduced unneeded
casts when they aren't legal, or when the index variable i has another
type. In order of preference: try to use i's type; use the smallest
fitting legal type (using an added DataLayout method); default to i32.
A testcase checks that this works when the index gep operand is i16.

Patch by : Ahmed Bougacha <ahmed.bougacha@gmail.com>
Reviewed by : Duncan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177712 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-22 08:25:01 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
InstCombine.h Remove trailing spaces. 2013-01-14 23:16:36 +00:00
InstCombineAddSub.cpp Perform factorization as a last resort of unsafe fadd/fsub simplification. 2013-03-14 18:08:26 +00:00
InstCombineAndOrXor.cpp Simplify code. No functionality change. 2013-03-09 11:18:59 +00:00
InstCombineCalls.cpp Revert "Have InstCombine call SipmlifyCall when handling calls. Test case included." 2013-02-08 01:55:39 +00:00
InstCombineCasts.cpp InstCombine: Don't shrink allocas when combining with a bitcast. 2013-03-06 05:44:53 +00:00
InstCombineCompares.cpp InstCombine: Improve the result bitvect type when folding (cmp pred (load (gep GV, i)) C) to a bit test. 2013-03-22 08:25:01 +00:00
InstCombineLoadStoreAlloca.cpp switch from pointer equality comparison to MDNode::getMostGenericTBAA 2013-01-05 16:44:07 +00:00
InstCombineMulDivRem.cpp Fix a bug in instcombine for fmul in fast math mode. 2013-02-28 21:12:40 +00:00
InstCombinePHI.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
InstCombineSelect.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +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 Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
InstCombineVectorOps.cpp Check for less than 0 in shuffle mask instead of -1. It's more consistent with other code related to shuffles and easier to implement in compiled code. 2013-01-18 05:30:07 +00:00
InstCombineWorklist.h Remove trailing spaces. 2013-01-14 23:16:36 +00:00
InstructionCombining.cpp Preserve fast-math flags after reassociation and commutation. Update test cases 2013-02-07 01:40:15 +00:00
LLVMBuild.txt
Makefile