- Mar 25, 2008
-
-
Dan Gohman authored
other things, this allows the scheduler to unfold a load operand in the 2008-01-08-SchedulerCrash.ll testcase, so it now successfully clones the comparison to avoid a pushf+popf. llvm-svn: 48777
-
- Mar 24, 2008
-
-
Evan Cheng authored
- SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction. llvm-svn: 48746
-
- Mar 23, 2008
-
-
Evan Cheng authored
llvm-svn: 48714
-
Anton Korobeynikov authored
llvm-svn: 48710
-
Anton Korobeynikov authored
llvm-svn: 48707
-
Anton Korobeynikov authored
llvm-svn: 48706
-
Anton Korobeynikov authored
llvm-svn: 48704
-
Anton Korobeynikov authored
llvm-svn: 48703
-
Anton Korobeynikov authored
of compiler used. llvm-svn: 48702
-
Anton Korobeynikov authored
llvm-svn: 48701
-
- Mar 22, 2008
-
-
Anton Korobeynikov authored
Force stack alignment to 16 bytes on win targets. llvm-svn: 48695
-
Anton Korobeynikov authored
llvm-svn: 48694
-
Anton Korobeynikov authored
llvm-svn: 48692
-
Anton Korobeynikov authored
llvm-svn: 48691
-
Anton Korobeynikov authored
llvm-svn: 48690
-
Anton Korobeynikov authored
llvm-svn: 48683
-
- Mar 21, 2008
-
-
Chris Lattner authored
This verifies kill info for "ret" fp operands is right. llvm-svn: 48656
-
Duncan Sands authored
flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. llvm-svn: 48640
-
Chris Lattner authored
x86-64 return conventions correct, but was never enabled. We can now do the "right thing" with multiple return values. llvm-svn: 48635
-
Chris Lattner authored
ST(0)/ST(1). llvm-svn: 48634
-
Chris Lattner authored
llvm-svn: 48633
-
Chris Lattner authored
This allows us to compile fp-stack-2results.ll into: _test: fldz fld1 ret which returns 1 in ST(0) and 0 in ST(1). This is needed for x86-64 _Complex long double. llvm-svn: 48632
-
Evan Cheng authored
llvm-svn: 48627
-
- Mar 20, 2008
-
-
Evan Cheng authored
llvm-svn: 48578
-
Evan Cheng authored
llvm-svn: 48569
-
- Mar 19, 2008
-
-
Arnold Schwaighofer authored
llvm-svn: 48545
-
Christopher Lamb authored
Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491. llvm-svn: 48542
-
Bill Wendling authored
attribute instead of ".protected". llvm-svn: 48516
-
Evan Cheng authored
Fix a x86-64 isel lowering bug that's been around forever. A x86-64 varargs function implicitly reads X86::AL, don't clobber it! llvm-svn: 48515
-
- Mar 17, 2008
-
-
Evan Cheng authored
llvm-svn: 48447
-
- Mar 16, 2008
-
-
Nate Begeman authored
llvm-svn: 48430
-
Christopher Lamb authored
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register. llvm-svn: 48412
-
- Mar 15, 2008
-
-
Evan Cheng authored
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF. llvm-svn: 48380
-
- Mar 14, 2008
-
-
Evan Cheng authored
llvm-svn: 48361
-
Evan Cheng authored
Fix a number of encoding bugs. SSE 4.1 instructions MPSADBWrri, PINSRDrr, etc. have 8-bits immediate field (ImmT == Imm8). llvm-svn: 48360
-
Evan Cheng authored
llvm-svn: 48359
-
Chris Lattner authored
llvm-svn: 48356
-
- Mar 13, 2008
-
-
Christopher Lamb authored
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. llvm-svn: 48329
-
- Mar 12, 2008
-
-
Chris Lattner authored
1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289
-
Evan Cheng authored
X86 lowering normalize vector 0 to v4i32. However DAGCombine can fold (sub x, x) -> 0 after legalization. It can create a zero vector of a type that's not expected (e.g. v8i16). We don't want to disable the optimization since leaving a (sub x, x) is really bad. Add isel patterns for other types of vector 0 to ensure correctness. It's highly unlikely to happen other than in bugpoint reduced test cases. llvm-svn: 48279
-