summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* RegAllocBigBlock doesn't need LiveVariables either.Owen Anderson2008-01-291-13/+2
| | | | llvm-svn: 46488
* Fix to bug 1951: tblgen gratuitously renames variables when no temporary wasScott Michel2008-01-291-22/+26
| | | | | | | | | | | | | | | | | | | | | | | | | generated. This feature would only show up in fairly complex patterns, such as this one in CellSPU: def : Pat<(add (SPUhi tconstpool:$in, 0), (SPUlo tconstpool:$in, 0)), (IOHLlo (ILHUhi tconstpool:$in), tconstpool:$in)>; which generated the following emit code: SDNode *Emit_0(const SDOperand &N, unsigned Opc0, unsigned Opc1, MVT::ValueType VT0, MVT::ValueType VT1) DISABLE_INLINE { SDOperand N0 = N.getOperand(0); SDOperand N00 = N0.getOperand(0); SDOperand N01 = N0.getOperand(1); SDOperand N1 = N.getOperand(1); SDOperand N10 = N1.getOperand(0); SDOperand N11 = N1.getOperand(1); SDOperand Tmp3(CurDAG->getTargetNode(Opc0, VT0, N00), 0); return CurDAG->SelectNodeTo(N.Val, Opc1, VT1, Tmp3, Tmp2); /* Tmp2 s/b N00 */ } Tested against the test suites without incident. llvm-svn: 46487
* Properly expand extract-element for non-power-of-2 codegenNate Begeman2008-01-291-2/+3
| | | | llvm-svn: 46486
* Handle 'X' constraint in asm's better.Dale Johannesen2008-01-296-21/+74
| | | | llvm-svn: 46485
* Filter loops that subtract induction variables.Devang Patel2008-01-292-17/+63
| | | | | | | | These loops are not yet handled. Fix PR 1912. llvm-svn: 46484
* Overhaul Cell SPU's addressing mode internals so that there are nowScott Michel2008-01-2914-874/+645
| | | | | | | | | | | | | | only two addressing mode nodes, SPUaform and SPUindirect (vice the three previous ones, SPUaform, SPUdform and SPUxform). This improves code somewhat because we now avoid using reg+reg addressing when it can be avoided. It also simplifies the address selection logic, which was the main point for doing this. Also, for various global variables that would be loaded using SPU's A-form addressing, prefer D-form offs[reg] addressing, keeping the base in a register if the variable is used more than once. llvm-svn: 46483
* New test.Devang Patel2008-01-291-0/+24
| | | | llvm-svn: 46479
* Add test to make sure that #pragma mark/error doesn't error if there areBill Wendling2008-01-291-0/+6
| | | | | | unbalanced quotes. llvm-svn: 46476
* Added destructor for template class FoldingSetNodeWrapper.Ted Kremenek2008-01-281-1/+4
| | | | | | Added getValue() to FoldingSetNodeWrapper. llvm-svn: 46465
* Simplify the code and fix a typo.Lauro Ramos Venancio2008-01-281-7/+4
| | | | llvm-svn: 46458
* Pure/const functions with ByVal parameters cannotDuncan Sands2008-01-281-5/+10
| | | | | | be marked readonly either. llvm-svn: 46456
* Fix fpcmp infinite loop when comparing "29-266" with "29-268".Lauro Ramos Venancio2008-01-281-5/+21
| | | | llvm-svn: 46455
* this test is now compiled into the right thing.Chris Lattner2008-01-281-1/+2
| | | | llvm-svn: 46454
* Unbreak builds with differing object and sourceDuncan Sands2008-01-281-2/+2
| | | | | | directories. Patch by Sam Bishop. llvm-svn: 46453
* Make this more likely to be passed byval.Duncan Sands2008-01-281-1/+1
| | | | llvm-svn: 46451
* If the function has no machine instructions, then emit a "nop" so thatBill Wendling2008-01-281-0/+10
| | | | | | the function label isn't associated with something it shouldn't be. llvm-svn: 46449
* Transform calls to memcpy into llvm.memcpy calls, patch by Eli Friedman.Chris Lattner2008-01-281-0/+30
| | | | llvm-svn: 46433
* reduce duplicate -I flags passed to the compiler, cleaning up the VERBOSEChris Lattner2008-01-281-6/+5
| | | | | | output. Patch contributed by Sam Bishop! llvm-svn: 46432
* Handle some more combinations of extend and icmp. Fixes PR1940.Nick Lewycky2008-01-284-8/+54
| | | | llvm-svn: 46431
* Fix PR1932 by disabling an xform invalid for fdiv.Chris Lattner2008-01-282-9/+17
| | | | llvm-svn: 46429
* make handling of overflow and undefined results much more clear. Chris Lattner2008-01-281-9/+40
| | | | | | Patch by Eli Friedman, thanks! llvm-svn: 46428
* Fix PR1938 by forcing the code that uses an undefined value to branch oneChris Lattner2008-01-282-4/+55
| | | | | | | | way or the other. Rewriting the code itself prevents subsequent analysis passes from making contradictory conclusions about the code that could cause an infeasible path to be made feasible. llvm-svn: 46427
* Always for PACKAGEVERSION to 'mainline' for teh llvm web page.Chris Lattner2008-01-271-4/+1
| | | | llvm-svn: 46425
* Fix PowerPC/./2007-10-18-PtrArithmetic.llChris Lattner2008-01-271-7/+14
| | | | llvm-svn: 46424
* Update this test. Due to dag combiner improvements, we now compileChris Lattner2008-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | f7/f11 to: _f7: eor r0, r0, #2, 2 @ -2147483648 bx lr _f11: bic r0, r0, #2, 2 @ -2147483648 bx lr instead of: _f7: fmsr s0, r0 fnegs s0, s0 fmrs r0, s0 bx lr _f11: fmsr s0, r0 fabss s0, s0 fmrs r0, s0 bx lr llvm-svn: 46423
* fix a crash on CodeGen/X86/vector-rem.llChris Lattner2008-01-271-4/+6
| | | | llvm-svn: 46422
* Add support for frameworks. Patch by Shantonu Sen!Chris Lattner2008-01-271-3/+20
| | | | llvm-svn: 46421
* Reg alloc doesn't really need LiveVariables.Owen Anderson2008-01-271-9/+2
| | | | llvm-svn: 46420
* Fixes for BreakCriticalMachineCodeEdge by Fernando.Owen Anderson2008-01-271-14/+15
| | | | llvm-svn: 46419
* Be more careful modifying the use_list while also iterating through it.Nick Lewycky2008-01-272-1/+4
| | | | llvm-svn: 46417
* Revert r46393: readonly/readnone functions are noDuncan Sands2008-01-272-12/+9
| | | | | | longer allowed to write through byval arguments. llvm-svn: 46416
* Implement some dag combines that allow doing fneg/fabs/fcopysign in integerChris Lattner2008-01-272-2/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | registers if used by a bitconvert or using a bitconvert. This allows us to avoid constant pool loads and use cheaper integer instructions when the values come from or end up in integer regs anyway. For example, we now compile CodeGen/X86/fp-in-intregs.ll to: _test1: movl $2147483648, %eax xorl 4(%esp), %eax ret _test2: movl $1065353216, %eax orl 4(%esp), %eax andl $3212836864, %eax ret Instead of: _test1: movss 4(%esp), %xmm0 xorps LCPI2_0, %xmm0 movd %xmm0, %eax ret _test2: movss 4(%esp), %xmm0 andps LCPI3_0, %xmm0 movss LCPI3_1, %xmm1 andps LCPI3_2, %xmm1 orps %xmm0, %xmm1 movd %xmm1, %eax ret bitconverts can happen due to various calling conventions that require fp values to passed in integer regs in some cases, e.g. when returning a complex. llvm-svn: 46414
* add a noteChris Lattner2008-01-271-0/+39
| | | | llvm-svn: 46413
* Use fldz and fld1 for long double constants instead of a constant pool load.Chris Lattner2008-01-271-1/+14
| | | | llvm-svn: 46411
* make isExactlyValue work for long double.Chris Lattner2008-01-271-4/+3
| | | | llvm-svn: 46410
* The CorrelatedExpressions pass is now no more.Bill Wendling2008-01-2712-462/+0
| | | | llvm-svn: 46409
* The CorrelatedExpressionElimination pass is known to be buggy. Remove it.Bill Wendling2008-01-273-1498/+0
| | | | | | This fixes PR1769. llvm-svn: 46408
* For long double constants, print an approximation of their value to the .s ↵Chris Lattner2008-01-271-2/+6
| | | | | | file to make it easier to read. llvm-svn: 46407
* Fold fptrunc(add (fpextend x), (fpextend y)) -> add(x,y), as GCC does.Chris Lattner2008-01-272-3/+111
| | | | llvm-svn: 46406
* Add some notes.Chris Lattner2008-01-261-0/+18
| | | | llvm-svn: 46405
* Remove some code for inferring alignment info from the x86 backend Chris Lattner2008-01-261-10/+1
| | | | | | now that the dag combiner does it. llvm-svn: 46404
* New test to verify that "merging 4 loads into a vec load" continues to work and Chris Lattner2008-01-261-0/+35
| | | | | | continues to infer alignment info. llvm-svn: 46403
* make this 64-bit safeChris Lattner2008-01-261-2/+2
| | | | llvm-svn: 46402
* Infer alignment of loads and increase their alignment when we can tell they are Chris Lattner2008-01-262-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | from the stack. This allows us to compile stack-align.ll to: _test: movsd LCPI1_0, %xmm0 movapd %xmm0, %xmm1 *** andpd 4(%esp), %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test: movsd LCPI1_0, %xmm0 ** movsd 4(%esp), %xmm1 ** andpd %xmm0, %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret llvm-svn: 46401
* remove a useless xfailed test.Chris Lattner2008-01-261-27/+0
| | | | llvm-svn: 46400
* Invert this test, because it is wrong if we allowDuncan Sands2008-01-261-3/+3
| | | | | | | readonly functions to use byval parameters as local storage (how much do we want this?). llvm-svn: 46399
* If there's no instructions being emitted on X86 for a function, emit aBill Wendling2008-01-263-8/+20
| | | | | | nop. Emit the nop directly for PPC. llvm-svn: 46398
* Need to convert to LLVM code and not C.Bill Wendling2008-01-261-5/+4
| | | | llvm-svn: 46397
* Rename the .c to .llBill Wendling2008-01-261-0/+0
| | | | llvm-svn: 46396
* Move testcase to the code gen directory.Bill Wendling2008-01-261-0/+0
| | | | llvm-svn: 46395
OpenPOWER on IntegriCloud