[LLVMdev] Scheduler Roadmap
dag at cray.com
dag at cray.com
Fri May 11 10:13:43 PDT 2012
Sergei Larin <slarin at codeaurora.org> writes:
> - We do need to have a way to assign bundles much earlier than we do now.
Yeah, I can imagine why this would be useful.
> And it needs to be intertwined with scheduling (Bundler currently reuses a
> good chunk of scheduler infrastructure).
Just to clarify, is the need due to the current bundling implementation
of reusing scheduler infrastructure or is there a more fundamental
reason the two should be tied together? I can imagine some advantages
of fusing the two but I'm no VLIW expert.
> It is also obvious that it will have adverse effect on all the
> downstream passes.
How so? Isn't the bundle representation supposed to be fairly
transparent to passes that don't care about it?
> It is further insulting due to the fact that bundling is trivial to do
> during scheduling, but it goes hard against the original assumptions
> made elsewhere.
Can you explain more about this?
> Re-bundling is also a distinct task that might need to be addressed in
> this context.
Rebundling is certainly useful. I'm not sure what you mean by "in this
context."
> - We do need to have at least a distant plan for global scheduling.
Yes, definitely!
> BB scope is nice and manageable, but I can easily get several percent
> of "missed" performance by simply implementing a pull-up pass at the
> very end of code generation... meaning multiple opportunities were
> lost earlier. Current way to express and maintain state needed for
> global scheduling remains to be improved.
We could also use a global scheduler in the medium-term though it's not
absolutely critical. A nice clean infrastructure to support global
scheduling with multiple heuristics, etc. would be very valuable. It
would also be a lot of work. :)
> - SW pipelining and scheduler interaction with it. When (not if:) we will
> have a robust SW pipeliner it will likely to take place before first
> scheduling pass, and we do not want to "undo" some decision made there.
Right. We (the LLVM community) will need ways to mark regions "don't
schedule."
-Dave
More information about the llvm-dev
mailing list