summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Added sext and zext patterns.Evan Cheng2005-12-141-9/+34
| | | | llvm-svn: 24705
* Added sextld + zextld DAG nodes.Evan Cheng2005-12-141-0/+17
| | | | llvm-svn: 24703
* Add support for fmul node of type v4f32.Nate Begeman2005-12-142-0/+21
| | | | | | | | | | | | | | | | | | | | | | void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = mul <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } Is selected to: _foo: li r2, 0 lvx v0, r2, r3 vxor v1, v1, v1 vmaddfp v0, v0, v0, v1 stvx v0, r2, r3 blr llvm-svn: 24701
* Prepare support for AltiVec multiply, divide, and sqrt.Nate Begeman2005-12-133-2/+19
| | | | llvm-svn: 24700
* Add load + store folding srl and sra patterns.Evan Cheng2005-12-131-12/+32
| | | | llvm-svn: 24696
* Use the shared asmprinter code for printing special llvm globalsChris Lattner2005-12-133-71/+10
| | | | llvm-svn: 24695
* Add ELF and darwin support for static ctors and dtorsChris Lattner2005-12-132-0/+40
| | | | llvm-svn: 24693
* reindent a loop, unswitch a loop. No functionality changesChris Lattner2005-12-131-105/+109
| | | | llvm-svn: 24692
* Beautify a few patterns.Evan Cheng2005-12-131-15/+15
| | | | llvm-svn: 24690
* Some shl patterns which do load + store folding.Evan Cheng2005-12-131-6/+16
| | | | llvm-svn: 24689
* A few helper fragments for loads. e.g. (i8 (load addr:$src)) -> (loadi8 ↵Evan Cheng2005-12-131-12/+18
| | | | | | addr:$src). Only to improve readibility. llvm-svn: 24688
* Add and, or, and xor patterns which fold load + stores.Evan Cheng2005-12-131-41/+82
| | | | llvm-svn: 24687
* Add inc + dec patterns which fold load + stores.Evan Cheng2005-12-131-6/+12
| | | | llvm-svn: 24686
* Add neg and not patterns which fold load + stores.Evan Cheng2005-12-131-6/+12
| | | | llvm-svn: 24685
* Missed a couple redundant explicit type casts.Evan Cheng2005-12-131-3/+3
| | | | llvm-svn: 24684
* Fix some bad choice of names: i16SExt8 ->i16immSExt8, etc.Evan Cheng2005-12-131-34/+47
| | | | llvm-svn: 24683
* * Split immSExt8 to i16SExt8 and i32SExt8 for i16 and i32 immediate operands.Evan Cheng2005-12-131-27/+33
| | | | | | | This enables the removal of some explicit type casts. * Rename immZExt8 to i16ZExt8 as well. llvm-svn: 24682
* Add some integer mul patterns.Evan Cheng2005-12-121-11/+17
| | | | llvm-svn: 24681
* Add some sub patterns.Evan Cheng2005-12-121-13/+24
| | | | llvm-svn: 24675
* When SelectLEAAddr() fails, it shouldn't cause the side effect of having theEvan Cheng2005-12-121-17/+48
| | | | | | base or index operands being selected. llvm-svn: 24674
* For ISD::RET, if # of operands >= 2, try selection the real data dep. operandEvan Cheng2005-12-121-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | first before the chain. e.g. int X; int foo(int x) { x += X + 37; return x; } If chain operand is selected first, we would generate: movl X, %eax movl 4(%esp), %ecx leal 37(%ecx,%eax), %eax rather than movl $37, %eax addl 4(%esp), %eax addl X, %eax which does not require %ecx. (Due to ADD32rm not matching.) llvm-svn: 24673
* fix FP selectsAndrew Lenharth2005-12-122-14/+14
| | | | llvm-svn: 24672
* remove some never-completed and now-obsolete code.Chris Lattner2005-12-123-358/+0
| | | | llvm-svn: 24671
* Add a few more add / store patterns. e.g. ADD32mi8.Evan Cheng2005-12-121-10/+18
| | | | llvm-svn: 24670
* restore a more restricted selectAndrew Lenharth2005-12-121-0/+32
| | | | llvm-svn: 24668
* Fix typo :(Chris Lattner2005-12-111-1/+1
| | | | llvm-svn: 24664
* add selectccChris Lattner2005-12-111-0/+6
| | | | llvm-svn: 24662
* Remove type casts that are no longer neededChris Lattner2005-12-112-6/+7
| | | | llvm-svn: 24661
* Realize the constant pool & global addrs must always be ptr typeChris Lattner2005-12-111-5/+6
| | | | llvm-svn: 24660
* Fix the JIT failures from last night.Chris Lattner2005-12-111-1/+2
| | | | llvm-svn: 24659
* FP select improvements (and likely breakage), oh and crazy people might want ↵Andrew Lenharth2005-12-112-42/+46
| | | | | | to *return* floating point values. Don't see why myself llvm-svn: 24658
* Add support for TargetConstantPool nodes to the dag isel emitter, and useNate Begeman2005-12-104-29/+42
| | | | | | | them in the PPC backend, to simplify some logic out of Select and SelectAddr. llvm-svn: 24657
* Use SDTCisPtrTy type property for store address.Evan Cheng2005-12-101-2/+2
| | | | llvm-svn: 24656
* * Added X86 store patterns.Evan Cheng2005-12-103-43/+24
| | | | | | * Added X86 dec patterns. llvm-svn: 24654
* Add support patterns to many load and store instructions which willNate Begeman2005-12-092-76/+133
| | | | | | hopefully use patterns in the near future. llvm-svn: 24651
* Add SDTCisPtrTy and use it for loads, to indicate that the operand of a loadChris Lattner2005-12-091-3/+5
| | | | | | | must be a pointer. This removes a type check out of the code generated by tblgen for load matching. llvm-svn: 24650
* Added patterns for ADD8rm, etc. These fold load operands. e.g. addb 4(%esp), %alEvan Cheng2005-12-091-3/+6
| | | | llvm-svn: 24648
* Teach the PPC backend about the ctor and dtor list when not using __main andChris Lattner2005-12-091-0/+34
| | | | | | linking the entire program into one bc file. llvm-svn: 24645
* it helps if your conditionals are not reversedAndrew Lenharth2005-12-091-9/+9
| | | | llvm-svn: 24641
* Add another important case we missChris Lattner2005-12-081-0/+19
| | | | llvm-svn: 24639
* Added support for ComplexPattern.Evan Cheng2005-12-081-0/+21
| | | | llvm-svn: 24638
* Added explicit type field to ComplexPattern.Evan Cheng2005-12-081-2/+2
| | | | llvm-svn: 24637
* * Added intelligence to X86 LEA addressing mode matching routine so it returnsEvan Cheng2005-12-082-84/+103
| | | | | | | false if the match is not profitable. e.g. leal 1(%eax), %eax. * Added patterns for X86 integer loads and LEA32. llvm-svn: 24635
* X86 doesn't support sextinreg for 8-bit things either.Chris Lattner2005-12-071-0/+1
| | | | llvm-svn: 24631
* fix divide and remainderAndrew Lenharth2005-12-062-13/+14
| | | | llvm-svn: 24628
* Silence another annoying GCC warningChris Lattner2005-12-061-1/+1
| | | | llvm-svn: 24627
* more decent branches for FP. I might have to make some intermediate nodes ↵Andrew Lenharth2005-12-061-2/+33
| | | | | | to actually be able to use the DAG for FPcmp llvm-svn: 24625
* OK, this does wonders for broken stuffAndrew Lenharth2005-12-061-0/+1
| | | | llvm-svn: 24624
* Use new PPC-specific nodes to represent shifts which require the 6-bitChris Lattner2005-12-063-15/+40
| | | | | | | | | amount handling that PPC provides. These are generated by the lowering code and prevents the dag combiner from assuming (rightfully) that the shifts don't only look at 5 bits. This fixes a miscompilation of crafty with the new front-end. llvm-svn: 24615
* added instructions with inverted immediatesAndrew Lenharth2005-12-062-32/+23
| | | | llvm-svn: 24614
OpenPOWER on IntegriCloud