- Aug 08, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 78468
-
Bob Wilson authored
so I generalized the class for VTRN in the .td file to handle all 3 of them. llvm-svn: 78460
-
Bob Wilson authored
directly from the intrinsics produced by the frontend. If it is more convenient to have a custom DAG node for using these to implement shuffles, we can add that later. llvm-svn: 78459
-
Evan Cheng authored
llvm-svn: 78456
-
Evan Cheng authored
llvm-svn: 78455
-
Evan Cheng authored
llvm-svn: 78454
-
Evan Cheng authored
llvm-svn: 78453
-
Chris Lattner authored
error condition get trapped with an assert. llvm-svn: 78449
-
David Goodwin authored
llvm-svn: 78430
-
Anton Korobeynikov authored
llvm-svn: 78425
-
Anton Korobeynikov authored
llvm-svn: 78419
-
Evan Cheng authored
llvm-svn: 78418
-
- Aug 07, 2009
-
-
Evan Cheng authored
llvm-svn: 78410
-
Evan Cheng authored
llvm-svn: 78399
-
Evan Cheng authored
llvm-svn: 78398
-
Evan Cheng authored
llvm-svn: 78397
-
Evan Cheng authored
llvm-svn: 78377
-
Evan Cheng authored
llvm-svn: 78370
-
Dan Gohman authored
llvm-svn: 78363
-
Evan Cheng authored
It turns out most of the thumb2 instructions are not allowed to touch SP. The semantics of such instructions are unpredictable. We have just been lucky that tests have been passing. This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time. This fixes PR4659 and PR4682. llvm-svn: 78361
-
- Aug 06, 2009
-
-
Bob Wilson authored
llvm-svn: 78330
-
David Goodwin authored
Add parameter to pattern classes to enable an itinerary to be specified for instructions. For now just use the existing itineraries or NoItinerary. llvm-svn: 78321
-
Bob Wilson authored
These operations will have to be synthesized from other instructions. llvm-svn: 78263
-
Bob Wilson authored
that have that constraint. This is currently just assigning a fixed set of registers, and it only handles VLDn for n=2,3,4 with DPR registers. I'm going to expand it to handle more operations next; we can make it smarter once everything is working correctly. llvm-svn: 78256
-
- Aug 05, 2009
-
-
David Goodwin authored
When using NEON for single-precision FP, the NEON result must be placed in D0-D15 as these are the only D registers with S subregs. Introduce a new regclass to represent D0-D15 and use it in the NEON single-precision FP patterns. llvm-svn: 78244
-
Anton Korobeynikov authored
hardfloat case. llvm-svn: 78237
-
Anton Korobeynikov authored
llvm-svn: 78232
-
Anton Korobeynikov authored
Patch by Sandeep Patel! llvm-svn: 78225
-
Daniel Dunbar authored
llvm-svn: 78219
-
Bob Wilson authored
llvm-svn: 78216
-
David Goodwin authored
llvm-svn: 78209
-
Devang Patel authored
llvm-svn: 78207
-
David Goodwin authored
llvm-svn: 78200
-
Evan Cheng authored
llvm-svn: 78175
-
Bob Wilson authored
llvm-svn: 78146
-
Dan Gohman authored
Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
-
Dan Gohman authored
calls were originally put in place because errs() at one time was not unbuffered, and these print routines are commonly used with errs() for debugging. However, errs() is now properly unbuffered, so the flush calls are no longer needed. This significantly reduces the number of write(2) calls for regular asm printing when there are many small functions. llvm-svn: 78137
-
Bob Wilson authored
Get rid of yesterday's code to fix the register usage during isel. Select the new DAG nodes to machine instructions. The new pre-alloc pass to choose adjacent registers for these results is not done, so the results of this will generally not assemble yet. llvm-svn: 78136
-
Evan Cheng authored
llvm-svn: 78126
-
- Aug 04, 2009
-
-
Bob Wilson authored
For other VLDn and VSTn operations, we need to list the multiple registers explicitly anyway, so there's no point in special-casing this one usage. llvm-svn: 78109
-