[llvm-dev] machine scheduler: pre-RA bidirectional scheduling
Jonas Paulsson via llvm-dev
llvm-dev at lists.llvm.org
Tue Jul 31 06:19:13 PDT 2018
Hi,
I would like to get some feedback about the current status of the pre-RA
machine scheduler bidirectional scheduling.
I have tried enabling this on SystemZ, and found that it slightly
increases spilling generally (in one benchmark with as much as 5%).
Benchmarking do not indicate that bidirectional would be a win, either.
Is this within the expected, or does it indicate something in the
backend that could be fixed?
Theoretically, it should be better since it enables pre-RA resource
balancing and the second latency heuristic, right? It should also be
better to take from two sides the best candidate, instead of just from
one side, exposing the heuristics to more nodes and finding more good
candidates.
AArch, AMDGPU and PowerPC seem to be the only ones enabling
bidirectional scheduling, which indicates that bottom-up is still the norm.
So, I then would like to ask what is the general advice on when to
enable it? What were the original intentions behind this? Any particular
type of target that would benefit from this?
Thanks for any advice and explanation,
Jonas
More information about the llvm-dev
mailing list