- Feb 03, 2009
-
-
Dan Gohman authored
basic-block segments bottom-up instead of top down. This is the first step in a general restructuring of the way register liveness is tracked in the post-RA scheduler. llvm-svn: 63643
-
- Jan 16, 2009
-
-
Dan Gohman authored
and every other instruction in their blocks to keep the terminator instructions at the end, teach the post-RA scheduler how to operate on ranges of instructions, and exclude terminators from the range of instructions that get scheduled. Also, exclude mid-block labels, such as EH_LABEL instructions, and schedule code before them separately from code after them. This fixes problems with the post-RA scheduler moving code past EH_LABELs. llvm-svn: 62366
-
Dan Gohman authored
to 0, to ensure that the subsequent code doesn't try to break the dependence. llvm-svn: 62365
-
Dan Gohman authored
array instead, since this is what the scheduler actually cares about. And remove a check that is unnecessary, since it can assume that SUnits isn't empty. llvm-svn: 62362
-
Dan Gohman authored
warning. llvm-svn: 62327
-
Dan Gohman authored
a new toy hazard recognizier heuristic which attempts to direct the scheduler to avoid clumping large groups of loads or stores too densely. llvm-svn: 62291
-
- Jan 15, 2009
-
-
Dan Gohman authored
and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. llvm-svn: 62275
-
- Jan 05, 2009
-
-
Dan Gohman authored
llvm-svn: 61715
-
- Dec 23, 2008
-
-
Dan Gohman authored
code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions. llvm-svn: 61376
-
- Dec 19, 2008
-
-
Dan Gohman authored
warnings on compilers that warn about such things. llvm-svn: 61263
-
- Dec 16, 2008
-
-
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
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
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
-
- Dec 09, 2008
-
-
Dan Gohman authored
The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. llvm-svn: 60806
-
- Dec 05, 2008
-
-
Dan Gohman authored
llvm-svn: 60586
-
Dan Gohman authored
While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. llvm-svn: 60583
-
- Dec 04, 2008
-
-
Dan Gohman authored
llvm-svn: 60525
-
Dan Gohman authored
issues with subreg operands and tied operands. llvm-svn: 60510
-
- Dec 03, 2008
-
-
Dan Gohman authored
llvm-svn: 60500
-
Dan Gohman authored
an area where eventually it would be good to use target-dependent information. llvm-svn: 60498
-
Dan Gohman authored
examining non-anti-dependence edges. llvm-svn: 60496
-
Dan Gohman authored
llvm-svn: 60495
-
- Nov 27, 2008
-
-
Nick Lewycky authored
Despite changing the order of evaluation, this doesn't actually change the meaning of the statement. llvm-svn: 60177
-
- Nov 25, 2008
-
-
Dan Gohman authored
llvm-svn: 60041
-
Dan Gohman authored
introduce any new spilling; it just uses unused registers. Refactor the SUnit topological sort code out of the RRList scheduler and make use of it to help with the post-pass scheduler. llvm-svn: 59999
-
- Nov 20, 2008
-
-
Dan Gohman authored
extend it a bit, and make use of it in all schedulers, to ensure consistent checking. llvm-svn: 59689
-
Dan Gohman authored
is currently off by default, and can be enabled with -disable-post-RA-scheduler=false. This doesn't have a significant impact on most code yet because it doesn't yet do anything to address anti-dependencies and it doesn't attempt to disambiguate memory references. Also, several popular targets don't have pipeline descriptions yet. The majority of the changes here are splitting the SelectionDAG-specific code out of ScheduleDAG, so that ScheduleDAG can be moved to libLLVMCodeGen.a. The interface between ScheduleDAG-using code and the rest of the scheduling code is somewhat rough and will evolve. llvm-svn: 59676
-
- Sep 04, 2008
-
-
Dan Gohman authored
llvm-svn: 55779
-
- Jan 14, 2008
-
-
Chris Lattner authored
llvm-svn: 45972
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Jul 13, 2007
-
-
Dale Johannesen authored
llvm-svn: 39817
-
Dale Johannesen authored
Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. llvm-svn: 39816
-