- Jun 30, 2010
-
-
John Mosby authored
llvm-svn: 107244
-
- May 17, 2010
-
-
Zhongxing Xu authored
llvm-svn: 103936
-
- Apr 13, 2010
-
-
Dan Gohman authored
llvm-svn: 101143
-
- Jan 05, 2010
-
-
David Greene authored
llvm-svn: 92585
-
- Nov 20, 2009
-
-
David Goodwin authored
Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. llvm-svn: 89471
-
- Nov 12, 2009
-
-
David Goodwin authored
llvm-svn: 87015
-
- Nov 03, 2009
-
-
David Goodwin authored
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. llvm-svn: 85939
-
- Sep 30, 2009
-
-
Reid Kleckner authored
basic blocks that are so long that their size overflows a short. Also assert that overflow does not happen in the future, as requested by Evan. This fixes PR4401. llvm-svn: 83159
-
- Aug 22, 2009
-
-
Bill Wendling authored
llvm-svn: 79760
-
- Aug 11, 2009
-
-
David Goodwin authored
llvm-svn: 78687
-
- Jul 24, 2009
-
-
Daniel Dunbar authored
llvm-svn: 76963
-
- Feb 11, 2009
-
-
Dan Gohman authored
instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. llvm-svn: 64288
-
Dan Gohman authored
an index. This code is on the hot-path because the current way SDep edges are uniqued has quadratic complexity. llvm-svn: 64262
-
Dan Gohman authored
scheduling, and generalize is so that preserves state across scheduling regions. This fixes incorrect live-range information around terminators and labels, which are effective region boundaries. In place of looking for terminators to anchor inter-block dependencies, introduce special entry and exit scheduling units for this purpose. llvm-svn: 64254
-
- 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
-
- Jan 15, 2009
-
-
Dan Gohman authored
to support MachineInstr-based scheduling in addition to SDNode-based scheduling. llvm-svn: 62284
-
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 13, 2009
-
-
Dan Gohman authored
been modified, to avoid trouble in the (unlikely) scenario that D is a reference to an element in one of those arrays. llvm-svn: 62173
-
- Jan 05, 2009
-
-
Dan Gohman authored
with latency 0, since it doesn't affect the depth or height. llvm-svn: 61762
-
- Dec 23, 2008
-
-
Dan Gohman authored
llvm-svn: 61371
-
- Dec 22, 2008
-
-
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 17, 2008
-
-
Dan Gohman authored
Depth and Height members directly, as they may not be current. llvm-svn: 61121
-
- Dec 16, 2008
-
-
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
llvm-svn: 61067
-
- 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
-
Dan Gohman authored
llvm-svn: 60769
-
- Nov 25, 2008
-
-
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 21, 2008
-
-
Dan Gohman authored
less mysterious. llvm-svn: 59782
-
- Nov 20, 2008
-
-
Dan Gohman authored
llvm-svn: 59692
-
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
-