#
b6e74712 |
| 04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added -misched-regpressure option.
Register pressure tracking is half the complexity of the scheduler. It's useful to be able to turn it off for compile time and performance comparisons.
llvm-svn:
Added -misched-regpressure option.
Register pressure tracking is half the complexity of the scheduler. It's useful to be able to turn it off for compile time and performance comparisons.
llvm-svn: 189987
show more ...
|
#
2c4f8b7e |
| 31-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Fix my previous checkin to updatePressureDiffs.
There was one case that we could hit a DebugValue where I didn't think to check. DebugValues are evil. No checkinable test case, sorry. It's an obviou
Fix my previous checkin to updatePressureDiffs.
There was one case that we could hit a DebugValue where I didn't think to check. DebugValues are evil. No checkinable test case, sorry. It's an obvious fix.
llvm-svn: 189717
show more ...
|
#
2bc74c28 |
| 30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: update PressureDiffs on-the-fly for liveness.
This removes all expensive pressure tracking logic from the scheduling critical path of node comparison.
llvm-svn: 189643
|
#
b1a45b6c |
| 30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: improve the generic register pressure comparison.
Only compare pressure within the same set. When multiple sets are affected, we prioritize the most constrained set.
llvm-svn: 189641
|
#
1a831345 |
| 30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later.
Created SUPressureDiffs array to hold the per node PDiff computed during DAG building.
Added a getUpwardPressure
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later.
Created SUPressureDiffs array to hold the per node PDiff computed during DAG building.
Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs.
Updating for liveness will come next.
llvm-svn: 189640
show more ...
|
#
ef80f500 |
| 30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
comment typo
llvm-svn: 189635
|
#
483f4199 |
| 29-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Comment and revise the cyclic critical path code.
This should be much more clear now. It's still disabled pending testing.
llvm-svn: 189597
|
#
c01b0040 |
| 23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Adds cyclic critical path computation and heuristics, temporarily disabled.
Estimate the cyclic critical path within a single block loop. If the acyclic critical path is longer, then the loop will e
Adds cyclic critical path computation and heuristics, temporarily disabled.
Estimate the cyclic critical path within a single block loop. If the acyclic critical path is longer, then the loop will exhaust OOO resources after some number of iterations. If lag between the acyclic critical path and cyclic critical path is longer the the time it takes to issue those loop iterations, then aggressively schedule for latency.
llvm-svn: 189120
show more ...
|
#
a53e1016 |
| 23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Don't call MBB.size() in initSUnits. The driver already has instr count.
This fixes a pathological compile time problem with very large blocks and lots of scheduling boundaries.
llvm-svn:
mi-sched: Don't call MBB.size() in initSUnits. The driver already has instr count.
This fixes a pathological compile time problem with very large blocks and lots of scheduling boundaries.
llvm-svn: 189116
show more ...
|
#
2f7667e0 |
| 07-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Confusing comment typo.
llvm-svn: 187895
|
#
9c17eab7 |
| 30-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Track live-thru registers.
When registers must be live throughout the scheduling region, increase the limit for the register class. Once we exceed the original limit, they will be spilled,
MI Sched: Track live-thru registers.
When registers must be live throughout the scheduling region, increase the limit for the register class. Once we exceed the original limit, they will be spilled, and there's no point further reducing pressure.
This isn't a perfect heuristics but avoids a situation where the scheduler could become trapped by trying to achieve the impossible.
llvm-svn: 187436
show more ...
|
#
d9761776 |
| 30-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched fix: assert "Disconnected LRG within the scheduling region."
llvm-svn: 187435
|
#
401b6959 |
| 25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Register pressure heuristics.
Consider which set is being increased or decreased before comparing.
llvm-svn: 187110
|
#
9706496b |
| 25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Dump LIS before regalloc. MI sched changes them.
llvm-svn: 187107
|
#
64c391db |
| 19-Jul-2013 |
Alexey Samsonov <samsonov@google.com> |
Fix uninitialized memory read found by MemorySanitizer: always set output parameter of ConvergingScheduler::SchedBoundary::getOtherResourceCount
llvm-svn: 186658
|
#
b13ef17a |
| 19-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Update the way resources are tracked so the current heuristics make more sense.
llvm-svn: 186632
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
b55db58e |
| 21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: cleanup DEBUG output.
llvm-svn: 184565
|
#
736dd9a2 |
| 21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Adjust regpressure limits for reserved regs.
llvm-svn: 184564
|
#
71f08a3e |
| 17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Give RegMax higher priority.
llvm-svn: 184133
|
#
3c3a40e4 |
| 17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Remove compareRPDelta.
A complex, expensive heuristic with little value in the current design.
llvm-svn: 184132
|
#
7e63046c |
| 17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Remove another heuristic that is sensitive to queue order.
llvm-svn: 184130
|
#
d40d0f2c |
| 17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Track multiple candidates with the same priority level.
This eliminates the MultiPressure scheduling "reason". It was sensitive to queue order. We don't like being sensitive to queue order
MI-Sched: Track multiple candidates with the same priority level.
This eliminates the MultiPressure scheduling "reason". It was sensitive to queue order. We don't like being sensitive to queue order.
llvm-svn: 184129
show more ...
|
#
8e8415f5 |
| 15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Missing NDEBUGs.
llvm-svn: 184039
|
#
f78e7fa1 |
| 15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: heuristics using the new latency and machine model.
llvm-svn: 184038
|
#
de2109eb |
| 15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Machine Model: Add MicroOpBufferSize and resource BufferSize.
Replace the ill-defined MinLatency and ILPWindow properties with with straightforward buffer sizes: MCSchedMode::MicroOpBufferSize MCPro
Machine Model: Add MicroOpBufferSize and resource BufferSize.
Replace the ill-defined MinLatency and ILPWindow properties with with straightforward buffer sizes: MCSchedMode::MicroOpBufferSize MCProcResourceDesc::BufferSize
These can be used to more precisely model instruction execution if desired.
Disabled some misched tests temporarily. They'll be reenabled in a few commits.
llvm-svn: 184032
show more ...
|