- Sep 19, 2008
-
-
Dale Johannesen authored
and redo as linked list walk. Logic moved into RA. Per review feedback. llvm-svn: 56326
-
Devang Patel authored
Fixes PR 2805 llvm-svn: 56321
-
Dan Gohman authored
catches a fair number of common cases. Note that this currently causes Fast-ISel to leave behind lots of dead instructions. Those will be dealt with in subsequent commits. llvm-svn: 56320
-
Bill Wendling authored
Thanks to Ji Young Park for the patch! llvm-svn: 56316
-
Devang Patel authored
llvm-svn: 56315
-
Evan Cheng authored
llvm-svn: 56314
-
- Sep 18, 2008
-
-
Dan Gohman authored
llvm-svn: 56311
-
Dan Gohman authored
defs to be necessarily live. llvm-svn: 56310
-
Tanya Lattner authored
llvm-svn: 56308
-
Dan Gohman authored
copy of the BURRList scheduler, but with several parts ripped out, such as backtracking, online topological sort maintenance (needed by backtracking), the priority queue, and Sethi-Ullman number computation and maintenance (needed by the priority queue). As a result of all this, it generates somewhat lower quality code, but that's its tradeoff for running about 30% faster than list-burr in -fast mode in many cases. This is somewhat experimental. Moving forward, major pieces of this can be refactored with pieces in common with ScheduleDAGRRList.cpp. llvm-svn: 56307
-
Evan Cheng authored
Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable. llvm-svn: 56303
-
Evan Cheng authored
llvm-svn: 56301
-
Evan Cheng authored
llvm-svn: 56300
-
Evan Cheng authored
llvm-svn: 56299
-
- Sep 17, 2008
-
-
Dan Gohman authored
over having it in a register. And wait until after checking type legality before requesting that the callee address be placed in a register. Also, fix support for calls with void return type. This speeds up fast-isel isel time by about 15% and reduces instruction counts by about 3% overall on certain testcases. It also changes many indirect calls to direct calls. llvm-svn: 56292
-
Dale Johannesen authored
with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. llvm-svn: 56290
-
Evan Cheng authored
llvm-svn: 56287
-
Devang Patel authored
llvm-svn: 56286
-
Devang Patel authored
This one slipped through cracks very well. llvm-svn: 56284
-
Devang Patel authored
llvm-svn: 56282
-
Dan Gohman authored
llvm-svn: 56281
-
Evan Cheng authored
llvm-svn: 56277
-
Evan Cheng authored
llvm-svn: 56276
-
Evan Cheng authored
llvm-svn: 56275
-
Dan Gohman authored
up some new ascii art to illustrate what it does. This change currently has no effect on generated code. llvm-svn: 56270
-
Dan Gohman authored
be used with fast-isel. llvm-svn: 56268
-
Bill Wendling authored
function with appropriate parameters. This allows us to support blocks on PPC. llvm-svn: 56267
-
Devang Patel authored
llvm-svn: 56265
-
Evan Cheng authored
When converting a CopyFromReg to a copy instruction, use the register class of its uses to determine the right destination register class of the copy. This is important for targets where a physical register may belong to multiple register classes. llvm-svn: 56258
-
Devang Patel authored
llvm-svn: 56256
-
Devang Patel authored
llvm-svn: 56255
-
Dan Gohman authored
ConstantPoolSDNode, using the target's preferred alignment for the constant type. In LegalizeDAG, when performing loads from the constant pool, the ConstantPoolSDNode's alignment is used in the calls to getLoad and getExtLoad. This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly choosing the ABI alignment for constant pool loads when Alignment == 0. The incorrect alignment is only a performance issue when ABI alignment does not equal preferred alignment (i.e., on x86 it was generating MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI alignment for 128bit vectors is forced to 1 byte.) Patch by Paul Redmond! llvm-svn: 56253
-
- Sep 16, 2008
-
-
Bill Wendling authored
Apologies for the thrashing. llvm-svn: 56251
-
Dan Gohman authored
llvm-svn: 56250
-
Bill Wendling authored
- Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. llvm-svn: 56249
-
Dan Gohman authored
MachineConstantPool::getConstantPoolIndex actually expects a log2-encoded alignment. llvm-svn: 56248
-
Dan Gohman authored
of r56230, r56232, and r56246. llvm-svn: 56247
-
Dan Gohman authored
- Recognize expressions like "x > -1 ? x : 0" as min/max and turn them into expressions like "x < 0 ? 0 : x", which is easily recognizable as a min/max operation. - Refrain from folding expression like "y/2 < 1" to "y < 2" when the comparison is being used as part of a min or max idiom, like "y/2 < 1 ? 1 : y/2". In that case, the division has another use, so folding doesn't eliminate it, and obfuscates the min/max, making it harder to recognize as a min/max operation. These benefit ScalarEvolution, CodeGen, and anything else that wants to recognize integer min and max. llvm-svn: 56246
-
Evan Cheng authored
llvm-svn: 56244
-
Dan Gohman authored
llvm-svn: 56243
-