summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Now with fewer extraneous semicolons!Owen Anderson2010-10-071-1/+1
| | | | llvm-svn: 115996
* Add initialization routines to InstCombine.Owen Anderson2010-10-071-0/+9
| | | | llvm-svn: 115965
* Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson2010-07-211-2/+2
| | | | llvm-svn: 109045
* cache result of operator*Gabor Greif2010-07-091-2/+3
| | | | llvm-svn: 107972
* use ArgOperand API, also tighten the type of visitFree to make this work out ↵Gabor Greif2010-06-241-6/+6
| | | | | | smoothly llvm-svn: 106736
* Teach instCombine to remove malloc+free if malloc's only uses are comparisonsDuncan Sands2010-05-271-17/+46
| | | | | | to null. Patch by Matti Niemenmaa. llvm-svn: 104871
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-161-5/+5
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* reapply r101434Gabor Greif2010-04-161-5/+5
| | | | | | | | | | | | | with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
* back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif2010-04-161-5/+5
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-151-5/+5
| | | | | | | | | | | | | with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-151-5/+5
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-151-5/+5
| | | | | | | | | | of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
* There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands2010-02-161-4/+4
| | | | | | | and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
* Uniformize the names of type predicates: rather than having isFloatTy andDuncan Sands2010-02-151-4/+4
| | | | | | isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96223
* teach ComputeNumSignBits to look through PHI nodes.Chris Lattner2010-01-071-3/+0
| | | | llvm-svn: 92964
* Move remaining stuff to the isInteger predicate.Benjamin Kramer2010-01-051-2/+1
| | | | llvm-svn: 92771
* Convert a ton of simple integer type equality tests to the new predicate.Benjamin Kramer2010-01-051-1/+1
| | | | llvm-svn: 92760
* Use do+while instead of while for loops which obviously have aDan Gohman2010-01-051-4/+3
| | | | | | non-zero trip count. Use SmallVector's pop_back_val(). llvm-svn: 92734
* prune some #includes.Chris Lattner2010-01-051-8/+1
| | | | llvm-svn: 92712
* split and/or/xor out into one overly-large (2000LOC) file. However, I thinkChris Lattner2010-01-051-1963/+0
| | | | | | it does make sense to keep them together, at least for now. llvm-svn: 92711
* missed file with previous commit.Chris Lattner2010-01-051-418/+0
| | | | llvm-svn: 92710
* eliminate getBitCastOperand and simplify some over-complex inbounds stuff.Chris Lattner2010-01-051-46/+22
| | | | llvm-svn: 92708
* split call handling out to InstCombineCalls.cppChris Lattner2010-01-051-1110/+2
| | | | llvm-svn: 92707
* optimize cttz and ctlz when we can prove something about the Chris Lattner2010-01-051-1/+34
| | | | | | leading/trailing bits. Patch by Alastair Lynn! llvm-svn: 92706
* this inline function moved to addsubChris Lattner2010-01-051-24/+0
| | | | llvm-svn: 92705
* split add/sub out to its own file. Eliminate use ofChris Lattner2010-01-051-695/+0
| | | | | | | dyn_castNotVal in the X+~X transform. dyn_castNotVal is dramatic overkill for what the xform needed. llvm-svn: 92704
* all the places we use hasOneUse() we know are instructions, so inlineChris Lattner2010-01-051-12/+9
| | | | | | and simplify. llvm-svn: 92700
* eliminate AssociativeOpt and its last uses.Chris Lattner2010-01-051-35/+2
| | | | llvm-svn: 92697
* inline the FoldICmpLogical functor.Chris Lattner2010-01-051-98/+90
| | | | llvm-svn: 92695
* inline the 'AddRHS' transformation, simplifying things significantly.Chris Lattner2010-01-051-39/+4
| | | | | | | | Eliminate the 'AddMaskingAnd' transformation, it is redundant with this more general code right below it: // A+B --> A|B iff A and B have no bits set in common. llvm-svn: 92693
* remove massive over-genality manifested as a big template Chris Lattner2010-01-051-60/+1
| | | | | | | | that got instantiated. There is no reason for instcombine to try this hard for simple associative optimizations. Next up, eliminate the template completely. llvm-svn: 92692
* split mul/div/rem instructions out to their own file.Chris Lattner2010-01-051-674/+4
| | | | llvm-svn: 92689
* split select out to its own file.Chris Lattner2010-01-051-692/+3
| | | | llvm-svn: 92687
* split out load/store/alloca.Chris Lattner2010-01-051-607/+0
| | | | llvm-svn: 92685
* split vector stuff out to InstCombineVectorOps.cppChris Lattner2010-01-051-540/+0
| | | | llvm-svn: 92683
* split PHI node stuff out to InstCombinePHI.cppChris Lattner2010-01-051-821/+0
| | | | llvm-svn: 92682
* Remove dead debug info intrinsics.Devang Patel2010-01-051-1/+0
| | | | | | | | | | Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. llvm-svn: 92557
* silence a bogus 'might be used uninit' warning from GCC.Chris Lattner2010-01-041-1/+1
| | | | llvm-svn: 92494
* move some more cast-related stuffChris Lattner2010-01-041-140/+0
| | | | llvm-svn: 92471
* move the [Can]EvaluateInDifferentType functions out to InstCombineCasts.cppChris Lattner2010-01-041-211/+0
| | | | llvm-svn: 92469
* split 943 lines of instcombine out to a new InstCombineCasts.cppChris Lattner2010-01-041-943/+27
| | | | | | file. InstructionCombining.cpp is now down to a svelte 9300 lines :) llvm-svn: 92468
* split instcombine of compares (visit[FI]Cmp) out toChris Lattner2010-01-041-2434/+16
| | | | | | a new InstCombineCompares.cpp file. llvm-svn: 92467
* move the 'SimplifyDemandedFoo' methods out to their own file, cutting 1K ↵Chris Lattner2010-01-041-1088/+6
| | | | | | lines out of instcombine.cpp llvm-svn: 92465
* split the instcombine class definition out to a header shared Chris Lattner2010-01-041-299/+1
| | | | | | among the instcombine library. llvm-svn: 92463
* remove a ton of unneeded LLVMContext stuff.Chris Lattner2010-01-041-278/+288
| | | | llvm-svn: 92462
* move InstCombineWorklist out to its own header.Chris Lattner2010-01-041-82/+1
| | | | llvm-svn: 92461
* move instcombine to its own library, it's past time.Chris Lattner2010-01-041-0/+14087
llvm-svn: 92459
OpenPOWER on IntegriCloud