[llvm] [AMDGPU] Reschedule loads in clauses to improve throughput (RFC) (PR #102595)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 12 06:31:34 PDT 2024
jayfoad wrote:
Ah, `ReorderWhileClustering` is a `MachineScheduler` option. I had forgotten about that (even though I reviewed it).
> the implicit order drives scheduling when other factors are discounted -- e.g. when a sequence of loads depend on a value computed by a VALU immediately beforehand they are all in the stall state, so the implicit order of the cluster tends to determine schedule order.
Yeah, I think that is part of the scheduler's "do no harm" policy, i.e. don't change anything unless you have a good reason to do so.
For "This patch (reorder after clustering+RA)" what am I supposed to be looking at? Why is it better than the other examples?
Stepping back a bit, implementing clustering by adding edges to the DAG seems like a bad idea, since DAG edges are directional so that forces you to pick an ordering up-front. It would be better if clustering only caused the loads to be scheduled adjacently, and all the other scheduler heuristics could still influence which order they go in.
https://github.com/llvm/llvm-project/pull/102595
More information about the llvm-commits
mailing list