summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* new testcase, each function should have one extension instr in itChris Lattner2005-12-141-0/+19
| | | | llvm-svn: 24711
* Remove -start-group and -end-group no-op options, accidentally committedReid Spencer2005-12-141-5/+0
| | | | | | in last patch. llvm-svn: 24710
* Fix the (zext (zextload)) case to trigger, similarly for sign extends.Chris Lattner2005-12-141-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow (zext (truncate)) to apply after legalize if the target supports AND (which all do). This compiles short %foo() { %tmp.0 = load ubyte* %X ; <ubyte> [#uses=1] %tmp.3 = cast ubyte %tmp.0 to short ; <short> [#uses=1] ret short %tmp.3 } to: _foo: movzbl _X, %eax ret instead of: _foo: movzbl _X, %eax movzbl %al, %eax ret thanks to Evan for pointing this out. llvm-svn: 24709
* Fix Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll, a crash on undefinedChris Lattner2005-12-141-2/+2
| | | | | | behavior in 126.gcc on big-endian systems. llvm-svn: 24708
* new (undefined) testcase, distilled from 126.gcc that scalarrepl crashes onChris Lattner2005-12-141-0/+34
| | | | llvm-svn: 24707
* Fix a miscompilation in crafty due to a recent patchChris Lattner2005-12-141-1/+1
| | | | llvm-svn: 24706
* Added sext and zext patterns.Evan Cheng2005-12-141-9/+34
| | | | llvm-svn: 24705
* Skip over srcvalue nodes when generating ISEL code.Evan Cheng2005-12-141-1/+7
| | | | llvm-svn: 24704
* Added sextld + zextld DAG nodes.Evan Cheng2005-12-141-0/+17
| | | | llvm-svn: 24703
* Fold (zext (load x) to (zextload x).Evan Cheng2005-12-141-1/+18
| | | | llvm-svn: 24702
* 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
* Adjust the constructor to the Linker class to take an argument that namesReid Spencer2005-12-134-5/+13
| | | | | | | | the module being constructed. This is used to correctly name the module. Previously the name of the linker tool was used which produces confusing output when the module identifier is used in an error message. llvm-svn: 24699
* Improve ResolveFunctions to:Reid Spencer2005-12-131-13/+15
| | | | | | | | | a) use better local variable names (OldMT -> OldFT) where "M" is used to mean "Function" (perhaps it was previously "Method"?) b) print out the module identifier in a warning message so that it is possible to track down in which module the error occurred. llvm-svn: 24698
* Don't lump the filename and working dir togetherChris Lattner2005-12-131-15/+16
| | | | llvm-svn: 24697
* 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 a couple more fields, move ctor init list to .cpp file, add supportChris Lattner2005-12-132-26/+96
| | | | | | for emitting the ctor/dtor list for common targets. llvm-svn: 24694
* 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
* Lowering constant pool entries on ppc exposed a bug in the recently addedNate Begeman2005-12-131-1/+1
| | | | | | | ConstantVec legalizing code, which would return constantpool nodes that were not of the target's pointer type. llvm-svn: 24691
* 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
* Bug fix: CodeGenMap[N] = ... -> CodeGenMap[N.getValue(0)] = ...Evan Cheng2005-12-121-1/+1
| | | | llvm-svn: 24680
* At top of generated isel SelectCode() is this:Evan Cheng2005-12-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | if (!N.Val->hasOneUse()) { std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N); if (CGMI != CodeGenMap.end()) return CGMI->second; } Suppose a DAG like this: X ^ ^ / \ USE1 USE2 Suppose USE1 is being selected first and during which X is selected and returned a new node. After this, USE1 is no longer an use of X. During USE2 selection, X will be selected again since it has only one use! The fix is to always query CodeGenMap. llvm-svn: 24679
* Accept and ignore prefetches for nowChris Lattner2005-12-121-0/+3
| | | | llvm-svn: 24678
* Fix CodeGen/Generic/2005-12-12-ExpandSextInreg.llChris Lattner2005-12-121-0/+10
| | | | llvm-svn: 24677
* Testcase for a problem that reid ran intoChris Lattner2005-12-121-0/+7
| | | | llvm-svn: 24676
* 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
* Bug fix: finding the correct incoming chain for pattern with nested src ↵Evan Cheng2005-12-121-14/+17
| | | | | | operand. And a minor change to make output code slightly more readible. llvm-svn: 24669
* restore a more restricted selectAndrew Lenharth2005-12-121-0/+32
| | | | llvm-svn: 24668
* Implement a little hack for parity with GCC on crafty. This speeds upChris Lattner2005-12-121-2/+277
| | | | | | | | | | | | | | | | | | | | | | 186.crafty by about 16% (from 15.109s to 13.045s) on my system. This turns allocas with unions/casts into scalars. For example crafty has something like this: union doub { unsigned short i[4]; long long d; }; int f(long long a) { return ((union doub){.d=a}).i[1]; } Instead of generating loads and stores to an alloca, we now promote the whole thing to a scalar long value. This implements: Transforms/ScalarRepl/AggregatePromote.ll llvm-svn: 24667
* new testcase: sra should be able to eliminate all of these alloca's, despiteChris Lattner2005-12-121-0/+54
| | | | | | the presense of pointer casts llvm-svn: 24666
* Send an indicator to llvm-testresults if the build failedChris Lattner2005-12-111-1/+1
| | | | llvm-svn: 24665
* Fix typo :(Chris Lattner2005-12-111-1/+1
| | | | llvm-svn: 24664
* Minor tweak to get isel optChris Lattner2005-12-111-1/+2
| | | | llvm-svn: 24663
* add selectccChris Lattner2005-12-111-0/+6
| | | | llvm-svn: 24662
OpenPOWER on IntegriCloud