summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mark adjcallstack up/down as clobbering and using the SPChris Lattner2006-10-121-2/+2
| | | | llvm-svn: 30908
* Move the Imp tblgen class from the X86 backend to common code.Chris Lattner2006-10-122-5/+7
| | | | llvm-svn: 30907
* restore my previous patch, now that the X86 backend bug has been fixed:Chris Lattner2006-10-121-17/+32
| | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061009/038518.html llvm-svn: 30906
* Mark ADJCALLSTACKUP/DOWN as clobbering ESP so that virtregmap will noticeChris Lattner2006-10-121-2/+6
| | | | | | that it can't assume ESP is unmodified across the instrs. llvm-svn: 30905
* D'oh - need to use the rigth kind of store.Jim Laskey2006-10-121-3/+6
| | | | llvm-svn: 30903
* Backing out Chris' last commit. It's breaking llvm-gcc bootstrapping.Evan Cheng2006-10-121-32/+17
| | | | | | | | | | | | | It's turning: movl -24(%ebp), %esp subl $16, %esp movl -24(%ebp), %ecx into movl -24(%ebp), %esp subl $16, %esp movl %esp, (%esp) llvm-svn: 30902
* fix compilation failure of smg2000Chris Lattner2006-10-121-1/+1
| | | | llvm-svn: 30900
* If we see a load from a stack slot into a physreg, consider it as providingChris Lattner2006-10-121-17/+32
| | | | | | the stack slot. This fixes PR943. llvm-svn: 30898
* Prior load folding check on chain operand was too strict. It requires theEvan Cheng2006-10-121-3/+43
| | | | | | | | | chain operand to point to the load being folded. Now we relax this, traversing up the chain, if it doesn't reach the load, then it's ok. We will create a TokenFactor (of all the chain operands and the load's chain) to capture all the control flow dependencies. llvm-svn: 30897
* Replace custom dispatch code with two uses of InstVisitor. ImprovesNick Lewycky2006-10-121-93/+113
| | | | | | compile-time performance. llvm-svn: 30896
* Update tests.Evan Cheng2006-10-123-6/+11
| | | | llvm-svn: 30895
* Fold "zero extending vector loads" now that evan added the chain manip stuff.Chris Lattner2006-10-111-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This compiles both tests in X86/vec_ss_load_fold.ll into: _test1: movss 4(%esp), %xmm0 subss LCPI1_0, %xmm0 mulss LCPI1_1, %xmm0 minss LCPI1_2, %xmm0 xorps %xmm1, %xmm1 maxss %xmm1, %xmm0 cvttss2si %xmm0, %eax andl $65535, %eax ret instead of: _test1: movss LCPI1_0, %xmm0 movss 4(%esp), %xmm1 subss %xmm0, %xmm1 movss LCPI1_1, %xmm0 mulss %xmm0, %xmm1 movss LCPI1_2, %xmm0 minss %xmm0, %xmm1 xorps %xmm0, %xmm0 maxss %xmm0, %xmm1 cvttss2si %xmm1, %eax andl $65535, %eax ret llvm-svn: 30894
* new testcaseChris Lattner2006-10-111-0/+46
| | | | llvm-svn: 30893
* ComplexPatterns sse_load_f32 and sse_load_f64 returns in / out chain operands.Evan Cheng2006-10-112-9/+14
| | | | llvm-svn: 30892
* Add properties to ComplexPattern.Evan Cheng2006-10-116-13/+16
| | | | llvm-svn: 30891
* Added properties such as SDNPHasChain to ComplexPattern.Evan Cheng2006-10-114-29/+73
| | | | llvm-svn: 30890
* Alias analysis of TRUNCSTORE.Jim Laskey2006-10-111-1/+28
| | | | llvm-svn: 30889
* regenerateChris Lattner2006-10-112-100/+116
| | | | llvm-svn: 30888
* Add support for let expressions around an mdef. This implements a new partChris Lattner2006-10-111-2/+10
| | | | | | of Regression/TableGen/MultiClass.td. llvm-svn: 30887
* add test for mdef in a letChris Lattner2006-10-111-1/+8
| | | | llvm-svn: 30886
* Clean-up of formatting and spelling.Bill Wendling2006-10-112-41/+41
| | | | llvm-svn: 30885
* TypoJim Laskey2006-10-111-1/+1
| | | | llvm-svn: 30884
* Handle aliasing of loadext.Jim Laskey2006-10-111-15/+19
| | | | llvm-svn: 30883
* Explict processor.Jim Laskey2006-10-111-1/+1
| | | | llvm-svn: 30882
* Reduce the amount of state in the lowering code and drop old pattern ISel ↵Andrew Lenharth2006-10-113-28/+27
| | | | | | functions llvm-svn: 30881
* Fix regression in combiner alias analysis.Jim Laskey2006-10-111-22/+33
| | | | llvm-svn: 30880
* Make sure combiner alias analysis does it's thing.Jim Laskey2006-10-111-0/+25
| | | | llvm-svn: 30879
* Naming consistency.Evan Cheng2006-10-118-40/+40
| | | | llvm-svn: 30878
* Test case for the recently fixed FindModifiedNodeSlot bug.Evan Cheng2006-10-111-0/+31
| | | | llvm-svn: 30877
* Put code example inside of "doc_code" divisions.Bill Wendling2006-10-112-100/+377
| | | | llvm-svn: 30876
* Use cute tblgen tricks to make zap handling more powerful. Specifically,Chris Lattner2006-10-112-21/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | when the dag combiner simplifies an and mask, notice this and allow those bits to be missing from the zap mask. This compiles Alpha/zapnot4.ll into: sll $16,3,$0 zapnot $0,3,$0 ret $31,($26),1 instead of: ldah $0,1($31) lda $0,-8($0) sll $16,3,$1 and $1,$0,$0 ret $31,($26),1 It would be *really* nice to replace the hunk of code in the AlphaISelDAGToDAG.cpp file that matches (and (srl (x, C), c2) into (SRL (ZAPNOTi)) with a similar pattern, but I've spent enough time poking at alpha. Make andrew will do this. llvm-svn: 30875
* new testcase, this should turn into zapChris Lattner2006-10-111-0/+8
| | | | llvm-svn: 30874
* Jimptables working again on alpha.Andrew Lenharth2006-10-1111-34/+28
| | | | | | As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. llvm-svn: 30873
* Remove dead/redundant instructions. These are handled by ZAPNOTiChris Lattner2006-10-111-6/+1
| | | | llvm-svn: 30872
* Special case tblgen generated code for patterns like (and X, 255) or (or X, 42).Chris Lattner2006-10-111-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | The dag/inst combiners often 'simplify' the masked value based on whether or not the bits are live or known zero/one. This is good and dandy, but often causes special case patterns to fail, such as alpha's CMPBGE pattern, which looks like "(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))". Here the pattern for (and X, 255) should match actual dags like (and X, 254) if the dag combiner proved that the missing bits are already zero (one for 'or'). For CodeGen/Alpha/cmpbge.ll:test2 for example, this results in: sll $16,1,$0 cmpbge $0,$17,$0 ret $31,($26),1 instead of: sll $16,1,$0 and $0,254,$0 and $17,255,$1 cmpule $1,$0,$0 ret $31,($26),1 ... and requires no target-specific code. llvm-svn: 30871
* Both of these functions should turn into cmpbge instructions, even thoughChris Lattner2006-10-111-0/+16
| | | | | | the second has an and of 254 not 255. llvm-svn: 30870
* add two helper methods.Chris Lattner2006-10-112-1/+94
| | | | llvm-svn: 30869
* Split some code out into a new method. The generated code is exactlyChris Lattner2006-10-111-92/+99
| | | | | | identical, this is just a refactoring. llvm-svn: 30868
* This entry is done. switched to the gcc way of doing things.Andrew Lenharth2006-10-111-150/+0
| | | | llvm-svn: 30867
* FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper ↵Evan Cheng2006-10-111-0/+9
| | | | | | SelectionDAGCSEMap ID. llvm-svn: 30866
* new testcase for zap generation, from the alpha readmeChris Lattner2006-10-111-0/+14
| | | | llvm-svn: 30865
* This has apparently been fixedChris Lattner2006-10-111-30/+0
| | | | llvm-svn: 30864
* Make the bugpoint reduction heuristics more effective. Patch submitted byChris Lattner2006-10-101-2/+58
| | | | | | Domagoj Babic, thanks! llvm-svn: 30863
* uint <-> double conversionRafael Espindola2006-10-103-0/+38
| | | | llvm-svn: 30862
* Also update getNodeLabel for LoadSDNode.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30861
* SDNode::dump should also print out extension type and VT.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30860
* add fp subRafael Espindola2006-10-102-4/+24
| | | | llvm-svn: 30859
* add double <-> int conversionRafael Espindola2006-10-103-2/+40
| | | | llvm-svn: 30858
* Fix another bug in extload promotion.Chris Lattner2006-10-101-1/+2
| | | | llvm-svn: 30857
* compare doublesRafael Espindola2006-10-103-3/+16
| | | | llvm-svn: 30856
OpenPOWER on IntegriCloud