llvm-6502/lib/Transforms/InstCombine
Shuxin Yang a0c9939873 Perform factorization as a last resort of unsafe fadd/fsub simplification.
Rules include:
  1)1 x*y +/- x*z => x*(y +/- z) 
    (the order of operands dosen't matter)

  2) y/x +/- z/x => (y +/- z)/x 

 The transformation is disabled if the new add/sub expr "y +/- z" is a 
denormal/naz/inifinity.

rdar://12911472


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177088 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-14 18:08:26 +00:00
..
CMakeLists.txt
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 Fix a performance regression when combining to smaller types in icmp (shl %v, C1), C2 : 2013-03-13 14:40:37 +00:00
InstCombineLoadStoreAlloca.cpp
InstCombineMulDivRem.cpp Fix a bug in instcombine for fmul in fast math mode. 2013-02-28 21:12:40 +00:00
InstCombinePHI.cpp
InstCombineSelect.cpp
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
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