- 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
-
-
Dale Johannesen authored
vectors go at the end of the memory area, after all non-vector parameters. llvm-svn: 48364
-
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
-
Dan Gohman authored
llvm-svn: 48346
-
- 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
-
Dale Johannesen authored
calls here. This was done earlier for params in the varargs part of the params; any float params that survive to here are in the non-varargs part, and must not be promoted. llvm-svn: 48310
-
- 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
-
Dale Johannesen authored
llvm-svn: 48269
-
Dale Johannesen authored
llvm-svn: 48264
-
- Mar 11, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 48257
-
Dan Gohman authored
that merely add passes. This allows them to be used with either FunctionPassManager or PassManager, or even with a custom new kind of pass manager. llvm-svn: 48256
-
Chris Lattner authored
works, but probably won't if you mix it with 't' or 'u' yet. llvm-svn: 48243
-
Chris Lattner authored
llvm-svn: 48241
-
Chris Lattner authored
llvm-svn: 48240
-
Chris Lattner authored
llvm-svn: 48239
-
Christopher Lamb authored
llvm-svn: 48224
-
Christopher Lamb authored
llvm-svn: 48223
-
Evan Cheng authored
If there are multiple register classes that a register belongs to, return the super-class (e.g. on x86, returns GR32, not GR32_). llvm-svn: 48220
-
Evan Cheng authored
When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting. llvm-svn: 48218
-
Evan Cheng authored
llvm-svn: 48217
-
Nick Lewycky authored
llvm-svn: 48212
-
Chris Lattner authored
RET instruction instead of using FpSET_ST0_32. This also generalizes the code to handling returning of multiple FP results. llvm-svn: 48209
-
Dan Gohman authored
and it's the result that requires expansion. This code is a little confusing because the TargetLoweringInfo tables for [US]INT_TO_FP use the operand type (the integer type) rather than the result type. llvm-svn: 48206
-
Chris Lattner authored
llvm-svn: 48199
-
Scott Michel authored
- Add test pattern matching in CellSPU's icmp32.ll test harness - Fix CellSPU fcmp.ll-generated assert. llvm-svn: 48197
-
Chris Lattner authored
can be live out of the block anyway, so it isn't needed. llvm-svn: 48192
-
- Mar 10, 2008
-
-
Dale Johannesen authored
local object of >16 byte alignment exists. It does not work and getting it to work is not trivial, as explained in the comment. This fixes all the remaining ppc32 failures in the struct-layout-1 part of the gcc testsuite. (gcc does not support this either, and the only way to get such an object is with __attribute__((aligned)) or generic vectors; it can't be done in a standard-conforming program, or with Altivec. So I think disabling it is OK.) llvm-svn: 48188
-
Bill Wendling authored
scavenging for 32-bit and 64-bit separately. llvm-svn: 48186
-
Chris Lattner authored
copyfromreg/copytoreg instead. llvm-svn: 48174
-
Evan Cheng authored
llvm-svn: 48169
-
Evan Cheng authored
llvm-svn: 48167
-
Chris Lattner authored
llvm-svn: 48166
-
Nicolas Geoffray authored
llvm-svn: 48158
-
Scott Michel authored
llvm-svn: 48152
-
Scott Michel authored
return ValueType can depend its operands' ValueType. This is a cosmetic change, no functionality impacted. llvm-svn: 48145
-
Nicolas Geoffray authored
llvm-svn: 48143
-