- Dec 23, 2008
-
-
Dan Gohman authored
llvm-svn: 61371
-
Dale Johannesen authored
llvm-svn: 61361
-
- Dec 22, 2008
-
-
Dan Gohman authored
functions. llvm-svn: 61345
-
Dan Gohman authored
up on a profile. llvm-svn: 61344
-
- Dec 20, 2008
-
-
Dan Gohman authored
llvm-svn: 61277
-
Dan Gohman authored
and setDepthDirty(), respectively. This fixes PR3241. llvm-svn: 61276
-
- Dec 19, 2008
-
-
Dan Gohman authored
warnings on compilers that warn about such things. llvm-svn: 61263
-
Evan Cheng authored
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. llvm-svn: 61259
-
Chris Lattner authored
llvm-svn: 61244
-
Rafael Espindola authored
The EH_frame and .eh symbols are now private, except for darwin9 and earlier. The patch also fixes the definition of PrivateGlobalPrefix on pcc linux. llvm-svn: 61242
-
Bill Wendling authored
llvm-svn: 61238
-
Dan Gohman authored
data from a previous block. llvm-svn: 61237
-
- Dec 18, 2008
-
-
Dan Gohman authored
subreg instructions. llvm-svn: 61220
-
Dan Gohman authored
that of INSERT_SUBREG and SUBREG_TO_REG. llvm-svn: 61218
-
Dan Gohman authored
llvm-svn: 61217
-
Dan Gohman authored
llvm-svn: 61216
-
Dan Gohman authored
llvm-svn: 61213
-
Mon P Wang authored
llvm-svn: 61209
-
Dan Gohman authored
llvm-svn: 61184
-
Dan Gohman authored
folding's tail merging doesn't currently preserve liveness information which post-RA scheduling requires. llvm-svn: 61183
-
Owen Anderson authored
llvm-svn: 61182
-
- Dec 17, 2008
-
-
Owen Anderson authored
llvm-svn: 61159
-
Owen Anderson authored
llvm-svn: 61158
-
Mon P Wang authored
llvm-svn: 61129
-
Dan Gohman authored
temporary workaround for an obscure bug. When node cloning is used, it is possible that more SUnits will be created, and if the SUnits std::vector has to reallocate, it will invalidate all the graph edges. llvm-svn: 61122
-
Dan Gohman authored
Depth and Height members directly, as they may not be current. llvm-svn: 61121
-
Eli Friedman authored
DAGTypeLegalizer::ExpandShiftWithKnownAmountBit. In terms of restoring the optimization, the best fix here isn't obvious... any ideas? llvm-svn: 61119
-
- Dec 16, 2008
-
-
Dale Johannesen authored
are there under ADD, this one was missing. llvm-svn: 61107
-
Owen Anderson authored
Add code to renumber split intervals into new vregs. This is disabled for now until I finish working out some iterator invalidation issues. llvm-svn: 61104
-
Dan Gohman authored
position in the critical path during the main instruction walk. This eliminates the need for the CritialAntiDep DenseMap. llvm-svn: 61096
-
Dan Gohman authored
different offsets within the same stack slot. llvm-svn: 61093
-
Evan Cheng authored
We have decided not to support inline asm where an output operand with a matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error. llvm-svn: 61092
-
Dan Gohman authored
llvm-svn: 61078
-
Dan Gohman authored
one of its aliases defined. This is conservative, but tricky subreg corner cases are outside the primary aim of this pass. llvm-svn: 61077
-
Dan Gohman authored
especially in the case of addresses computed from loop induction variables. llvm-svn: 61075
-
Dan Gohman authored
latency computation code that is no longer needed with the new method for handling latencies. llvm-svn: 61074
-
Dan Gohman authored
computation code. Also, avoid adding output-depenency edges when both defs are dead, which frequently happens with EFLAGS defs. Compute Depth and Height lazily, and always in terms of edge latency values. For the schedulers that don't care about latency, edge latencies are set to 1. Eliminate Cycle and CycleBound, and LatencyPriorityQueue's Latencies array. These are all subsumed by the Depth and Height fields. llvm-svn: 61073
-
Dan Gohman authored
instruction itinerary data to back-schedule loads. llvm-svn: 61070
-
Dan Gohman authored
llvm-svn: 61067
-
Dan Gohman authored
currently used by anything. llvm-svn: 61066
-