#
ca473354 |
| 24-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Release bottom roots in reverse order.
llvm-svn: 157426
|
#
dd375dd3 |
| 24-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename ReadyQ class
llvm-svn: 157425
|
#
f3786177 |
| 24-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: copy comments so compareRPDelta is readable by itself.
llvm-svn: 157424
|
#
6a50baa2 |
| 17-May-2012 |
Andrew Trick <atrick@apple.com> |
comments
llvm-svn: 157020
|
#
276a3e8c |
| 17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: trace ReadyQ.
llvm-svn: 157007
|
#
2202577d |
| 17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added 3-level regpressure back-off.
Introduce the basic strategy for register pressure scheduling.
1) Respect target limits at all times.
2) Indentify critical register classes (pressure
misched: Added 3-level regpressure back-off.
Introduce the basic strategy for register pressure scheduling.
1) Respect target limits at all times.
2) Indentify critical register classes (pressure sets). Track pressure within the scheduled region. Avoid increasing scheduled pressure for critical registers.
3) Avoid exceeding the max pressure of the region prior to scheduling.
Added logic for picking between the top and bottom ready Q's based on regpressure heuristics.
Status: functional but needs to be asjusted to achieve good results. llvm-svn: 157006
show more ...
|
#
47a1feae |
| 17-May-2012 |
Andrew Trick <atrick@apple.com> |
comment
llvm-svn: 157005
|
#
463b2f1f |
| 17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix liveness iterators
llvm-svn: 157003
|
Revision tags: llvmorg-3.1.0 |
|
#
c5d7008f |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Print machineinstrs with -debug-only=misched
llvm-svn: 156576
|
#
419eae2d |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: tracing register pressure heuristics.
llvm-svn: 156575
|
#
7ee9de51 |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Add register pressure backoff to ConvergingScheduler.
Prioritize the instruction that comes closest to keeping pressure under the target's limit. Then prioritize instructions that avoid inc
misched: Add register pressure backoff to ConvergingScheduler.
Prioritize the instruction that comes closest to keeping pressure under the target's limit. Then prioritize instructions that avoid increasing the max pressure in the scheduled region. The max pressure heuristic is a tad aggressive. Later I'll fix it to consider the unscheduled pressure as well.
WIP: This is mostly functional but untested and not likely to do much good yet. llvm-svn: 156574
show more ...
|
#
795c1120 |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Release only unscheduled nodes into ReadyQ.
llvm-svn: 156573
|
#
95dafd8b |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added ReadyQ container wrapper for Top and Bottom Queues.
llvm-svn: 156572
|
#
4add42f4 |
| 10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Introducing Top and Bottom register pressure trackers during scheduling.
llvm-svn: 156571
|
Revision tags: llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2 |
|
#
4d4b5469 |
| 24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Fix a naughty header include that breaks "installed" builds.
llvm-svn: 155486
|
#
c3ea0056 |
| 24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: try (not too hard) to place debug values where they belong
llvm-svn: 155458
|
#
cc45a283 |
| 24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: ignore debug values during scheduling
llvm-svn: 155457
|
#
88639928 |
| 24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: DAG builder support for tracking register pressure within the current scheduling region.
The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate tra
misched: DAG builder support for tracking register pressure within the current scheduling region.
The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate traversal over the same region.
llvm-svn: 155456
show more ...
|
Revision tags: llvmorg-3.1.0-rc1 |
|
#
779b32a4 |
| 01-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: Add finalizeScheduler to complete the target interface.
llvm-svn: 153827
|
#
adb03b91 |
| 21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: trace LiveIntervals after scheduling.
llvm-svn: 153161
|
#
54f7def7 |
| 21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: obvious iterator update fixes for bottom-up.
llvm-svn: 153160
|
#
de670c03 |
| 21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: cleanup main loop
llvm-svn: 153159
|
#
dd98c497 |
| 19-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Add an option to the MI scheduler to cut off scheduling after a fixed number of instructions have been scheduled. Handy for tracking down scheduler bugs, or bugs exposed by scheduling.
llvm-svn: 153
Add an option to the MI scheduler to cut off scheduling after a fixed number of instructions have been scheduled. Handy for tracking down scheduler bugs, or bugs exposed by scheduling.
llvm-svn: 153045
show more ...
|
#
05e7a843 |
| 14-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence operator precedence warnings.
llvm-svn: 152711
|
#
8823decd |
| 14-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: implemented a framework for top-down or bottom-up scheduling.
New flags: -misched-topdown, -misched-bottomup. They can be used with the default scheduler or with -misched=shuffle. Without e
misched: implemented a framework for top-down or bottom-up scheduling.
New flags: -misched-topdown, -misched-bottomup. They can be used with the default scheduler or with -misched=shuffle. Without either topdown/bottomup flag -misched=shuffle now alternates scheduling direction.
LiveIntervals update is unimplemented with bottom-up scheduling, so only -misched-topdown currently works.
Capped the ScheduleDAG hierarchy with a concrete ScheduleDAGMI class. ScheduleDAGMI is aware of the top and bottom of the unscheduled zone within the current region. Scheduling policy can be plugged into the ScheduleDAGMI driver by implementing MachineSchedStrategy. ConvergingScheduler is now the default scheduling algorithm. It exercises the new driver but still does no reordering.
llvm-svn: 152700
show more ...
|