summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* remove some more dead special case codeChris Lattner2006-02-121-35/+8
| | | | llvm-svn: 26135
* Eliminate special case hacks that are superceded by general purpose hacksChris Lattner2006-02-121-139/+51
| | | | llvm-svn: 26134
* Three changes:Chris Lattner2006-02-121-6/+135
| | | | | | | | | | | | 1. Teach GetConstantInType to handle boolean constants. 2. Teach instcombine to fold (compare X, CST) when X has known 0/1 bits. Testcase here: set.ll:test22 3. Improve the "(X >> c1) & C2 == 0" folding code to allow a noop cast between the shift and and. More aggressive bitfolding for other reasons was turning signed shr's into unsigned shr's, leaving the noop cast in the way. llvm-svn: 26131
* Revert my last patch. It too breaks stuffChris Lattner2006-02-121-12/+6
| | | | llvm-svn: 26128
* Fix for my previously reverted patchChris Lattner2006-02-111-6/+12
| | | | llvm-svn: 26126
* Port the recent innovations in ComputeMaskedBits to SimplifyDemandedBits.Chris Lattner2006-02-111-211/+425
| | | | | | | | | | | This allows us to simplify on conditions where bits are not known, but they are not demanded either! This also fixes a couple of bugs in ComputeMaskedBits that were exposed during this work. In the future, swaths of instcombine should be removed, as this code subsumes a bunch of ad-hockery. llvm-svn: 26122
* revert my previous change, it exposed other problems.Chris Lattner2006-02-111-1/+1
| | | | llvm-svn: 26121
* fix storing booleans (grawp missed this one)Duraid Madina2006-02-111-3/+3
| | | | llvm-svn: 26120
* now short immediates will get matched (previously constants were allDuraid Madina2006-02-111-5/+3
| | | | | | triggering movl 64bit imm fat instructions) llvm-svn: 26119
* Make this check stricter. Disallow loop exit blocks from being shared byChris Lattner2006-02-111-4/+7
| | | | | | loops and their subloops. llvm-svn: 26118
* Prevent certain nodes that have already been selected from being folded intoEvan Cheng2006-02-111-19/+40
| | | | | | | | X86 addressing mode. Currently we do not allow any node whose target node produces a chain as well as any node that is at the root of the addressing mode expression tree. llvm-svn: 26117
* remove dead exprChris Lattner2006-02-111-1/+0
| | | | llvm-svn: 26116
* Reorg for integration with gcc4. Old style debug info will not be passed thoughJim Laskey2006-02-112-134/+267
| | | | | | to SelIDAG. llvm-svn: 26115
* implement unswitching of loops with switch stmts and selects in themChris Lattner2006-02-111-94/+135
| | | | llvm-svn: 26114
* Update PHI nodes in successors of exit blocks.Chris Lattner2006-02-101-5/+34
| | | | llvm-svn: 26113
* Reform the unswitching code in terms of edge splitting, not block splitting.Chris Lattner2006-02-101-49/+67
| | | | llvm-svn: 26112
* Nicer code. :-)Evan Cheng2006-02-101-17/+18
| | | | llvm-svn: 26111
* Added X86 isel debugging stuff.Evan Cheng2006-02-101-0/+63
| | | | llvm-svn: 26110
* Fix a case where UnswitchTrivialCondition broke critical edges withChris Lattner2006-02-101-1/+24
| | | | | | phi's in the successors llvm-svn: 26108
* Use the auto-generated call matcher. Remove a broken impl of the ↵Chris Lattner2006-02-103-61/+34
| | | | | | | | | | frameaddr/returnaddr intrinsics. Autogen frameindex matcher llvm-svn: 26107
* Update to new-style flags usage, simplifying the .td fileChris Lattner2006-02-102-36/+25
| | | | llvm-svn: 26106
* Remove a completed entry; add a new entry about fisttp opEvan Cheng2006-02-101-4/+3
| | | | llvm-svn: 26105
* add some notes, move some code around. Implement unswitching of loopsChris Lattner2006-02-101-19/+64
| | | | | | with branches on partially invariant computations. llvm-svn: 26104
* Move code around to be more logical, no functionality change.Chris Lattner2006-02-101-26/+32
| | | | llvm-svn: 26103
* When unswitching a trivial loop, do admit we are doing it! :)Chris Lattner2006-02-101-0/+7
| | | | llvm-svn: 26102
* Implement unconditional unswitching of 'trivial' loops, those loops that containChris Lattner2006-02-101-18/+149
| | | | | | branches in their entry block that control whether or not the loop is a noop or not. llvm-svn: 26101
* Simplify control flow a bit, note that unswitch preserves canonical loop formChris Lattner2006-02-091-10/+12
| | | | llvm-svn: 26098
* Match tblgen change.Evan Cheng2006-02-091-2/+2
| | | | llvm-svn: 26096
* Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gccEvan Cheng2006-02-091-0/+9
| | | | | | | | problem where it inline the map insertion call too aggressively. Before this change it was producing a frame size of 24k for Select_store(), now it's down to 10k (by calling this method rather than calling the map insertion operator). llvm-svn: 26094
* Make the threshold a parameterChris Lattner2006-02-091-3/+7
| | | | llvm-svn: 26093
* DoneChris Lattner2006-02-091-1/+0
| | | | llvm-svn: 26091
* Enable LSR by default for SPARC: it is a clear win.Chris Lattner2006-02-091-4/+1
| | | | llvm-svn: 26090
* Simplify the loop-unswitch pass, by not even trying to unswitch loops withChris Lattner2006-02-091-86/+74
| | | | | | | uses of loop values outside the loop. We need loop-closed SSA form to do this right, or to use SSA rewriting if we really care. llvm-svn: 26089
* Fix 80-column violationsChris Lattner2006-02-091-8/+9
| | | | llvm-svn: 26088
* Enhance MVIZ in three ways:Chris Lattner2006-02-091-55/+157
| | | | | | | | | | | 1. Teach it new tricks: in particular how to propagate through signed shr and sexts. 2. Teach it to return a bitset of known-1 and known-0 bits, instead of just zero. 3. Teach instcombine (AND X, C) to fold when we know all C bits of X. This implements Regression/Transforms/InstCombine/bittest.ll, and allows future things to be simplified. llvm-svn: 26087
* Match getTargetNode() changes (now return SDNode* instead of SDOperand).Evan Cheng2006-02-095-206/+247
| | | | llvm-svn: 26085
* More changes to reduce frame size.Evan Cheng2006-02-091-0/+243
| | | | | | | | | Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This prevents them from being inlined. Change getTargetNode() so they return SDNode * instead of SDOperand to prevent copying. It should also help compilation speed. llvm-svn: 26083
* add an option to turn on LSR.Chris Lattner2006-02-092-1/+62
| | | | llvm-svn: 26080
* simplify this code now that each constant pool entry is not separately allocatedChris Lattner2006-02-091-15/+16
| | | | llvm-svn: 26079
* Adjust to MachineConstantPool interface change: instead of keeping aChris Lattner2006-02-095-13/+60
| | | | | | value/alignment pair for each constant, keep a value/offset pair. llvm-svn: 26078
* rename fields of constant pool entriesChris Lattner2006-02-094-14/+12
| | | | llvm-svn: 26076
* Simplify code, alignment must be specified now.Chris Lattner2006-02-091-10/+1
| | | | llvm-svn: 26074
* Make MachineConstantPool entries alignments explicitChris Lattner2006-02-091-2/+12
| | | | llvm-svn: 26071
* Always pass in an alignment.Chris Lattner2006-02-091-1/+2
| | | | llvm-svn: 26070
* provide an explicit alignment for cp entriesChris Lattner2006-02-091-6/+22
| | | | llvm-svn: 26069
* Change Select() fromEvan Cheng2006-02-095-240/+391
| | | | | | | | SDOperand Select(SDOperand N); to void Select(SDOperand &Result, SDOperand N); llvm-svn: 26067
* Darwin doesn't support #APP/#NO_APPChris Lattner2006-02-082-2/+3
| | | | llvm-svn: 26066
* Add support for assembler directives that wrap inline asmChris Lattner2006-02-081-1/+4
| | | | llvm-svn: 26065
* Rename BSel -> PPCBSel for the benefit of doxygen users.Chris Lattner2006-02-081-105/+115
| | | | | | | | Move the methods out of line. Remove unused Debug.h stuff. Teach getNumBytesForInstruction to know the size of an inline asm. llvm-svn: 26064
* add a simple optimizationChris Lattner2006-02-081-0/+16
| | | | llvm-svn: 26062
OpenPOWER on IntegriCloud