- Sep 25, 2008
-
-
Devang Patel authored
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. llvm-svn: 56622
-
Dale Johannesen authored
meaning sse_regparm (i.e. float/double values go in XMM0 instead of ST0). Update documentation to reflect reality. llvm-svn: 56619
-
Dan Gohman authored
i1 operands are assumed to already by zero-extended. llvm-svn: 56615
-
Dan Gohman authored
llvm-svn: 56614
-
Dan Gohman authored
llvm-svn: 56613
-
Dan Gohman authored
llvm-svn: 56610
-
Richard Pennington authored
llvm-svn: 56609
-
Dan Gohman authored
giving the target a chance to materialize constants. llvm-svn: 56605
-
Dan Gohman authored
llvm-svn: 56604
-
rdar://problem/6234798Evan Cheng authored
<rdar://problem/6234798> Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!") llvm-svn: 56597
-
Dale Johannesen authored
for earlyclobbers. Teach Local RA about earlyclobber, and add some tests for it. llvm-svn: 56592
-
- Sep 24, 2008
-
-
Bill Wendling authored
llvm-svn: 56553
-
Bill Wendling authored
llvm-svn: 56552
-
Eric Christopher authored
llvm-svn: 56551
-
Bill Wendling authored
the SelectionDAG and DAGCombiner code. The only functionality change is that now the DAG combiner is performing the constant folding for these operations instead of being a no-op. This is *not* in response to a bug, so there isn't a testcase. llvm-svn: 56550
-
Dale Johannesen authored
RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. llvm-svn: 56539
-
Evan Cheng authored
Properly handle 'm' inline asm constraints. If a GV is being selected for the addressing mode, it requires the same logic for PIC relative addressing, etc. llvm-svn: 56526
-
Devang Patel authored
llvm-svn: 56513
-
- Sep 23, 2008
-
-
Dan Gohman authored
object. This will be needed to support debug info. llvm-svn: 56508
-
Dan Gohman authored
track of the number of live registers, which is all the set was being used for. llvm-svn: 56498
-
Dan Gohman authored
load address has an offset from the base of the constant pool entry. llvm-svn: 56479
-
- Sep 22, 2008
-
-
Dale Johannesen authored
default. llvm-svn: 56471
-
Evan Cheng authored
(srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), c)) etc. when both "trunc" and "and" have single uses. llvm-svn: 56452
-
Oscar Fuentes authored
llvm-svn: 56419
-
Bill Wendling authored
llvm-svn: 56418
-
- Sep 21, 2008
-
-
Chris Lattner authored
llvm-svn: 56399
-
- Sep 20, 2008
-
-
Dan Gohman authored
results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. llvm-svn: 56371
-
- Sep 18, 2008
-
-
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
-
- Sep 17, 2008
-
-
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
-
Dan Gohman authored
llvm-svn: 56281
-
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
-
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
are not enabled. Instead just omit the tail call flag when calls are created. llvm-svn: 56235
-
- Sep 15, 2008
-
-
Dan Gohman authored
libcalls, as in this testcase on ARM. llvm-svn: 56226
-
- Sep 13, 2008
-
-
Dan Gohman authored
Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. llvm-svn: 56183
-
- Sep 12, 2008
-
-
Dan Gohman authored
ConstantFP* instead of APInt and APFloat directly. This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls. It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases. It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP. llvm-svn: 56162
-
Dale Johannesen authored
representation; coalescer and RA need to know about it. No functional change. llvm-svn: 56161
-