[LLVMdev] Scheduler Roadmap

Jim Grosbach grosbach at apple.com
Wed May 9 11:43:51 PDT 2012


On May 9, 2012, at 8:34 AM, dag at cray.com wrote:

> Andrew Trick <atrick at apple.com> writes:
> 
>>> When I asked about enhancing scheduler heuristics a month or so ago, I
>>> got a response about a MachineInstr scheduler and that that was the way
>>> of the LLVM future.  Is that so?  Is the ScheduleDAG going away?
>> 
>> You sent a lengthy RFC on Apr 20 that demonstrated you aren't
>> following developments on trunk. That's perfectly fine, but if you
>> want to use the new scheduler before it is mature, you'll need to
>> follow trunk.
> 
> Ok, but that doesn't answer the question.  Is SchedulerDAG going away?
> If so, what's the timeframe for that?  3.2?
> 
>> Feel free to use the patch and send your thanks to Hal. It doesn't
>> serve any purpose to mainline a partial solution only to replace it
>> before it can ever be enabled by default, which would require a major
>> performance investigation and introduces a huge risk (AliasAnalysis in
>> CodeGen has not be well tested).
> 
> Er, but as I understand it the MachineInstr scheduler will also use
> alias analysis.
> 
>>> So we are in a quandry.  Do we continue our ScheduleDAG enhancements or
>>> do we wait for a MachineInstr scheduler?  Will we have to throw away
>>> work on ScheduleDAG schedulers?
>> 
>> If you're basing development on anything other than today's trunk,
>> then please continue working on the SelectionDag scheduler.
> 
> But is that going to be throw away work?  That's what we need to
> understand.
> 
>> Either way, you won't need to throw much away. Target-specific
>> heuristics should be easy to transfer to an MI ScheduleDag from an SD
>> ScheduleDAG. ScheduleDAG doesn't change.
> 
> Ok, if that's the case it will help.  But we also need the flexibility
> provided by Hal's patch.  I see that there is some work in that area in
> the MachineInstr scheduler.  A timeline would be help as to when you
> expect this all to be ready.
> 
>>> Is there a roadmap for the scheduler?  When should we expect a
>>> MachineInstr scheduler to be usable?  Can it be backported to 3.1?
>> 
>> Only use MachineInstr scheduler now if it solves a pressing problem
>> for you. If you need it in 3.1, then develop your own MachineInstr
>> scheduler using the trunk implementation as a helpful reference.
>> 
>> If you're developing based on 3.1, don't expect to upstream changes.
> 
> Again, this doesn't answer the questions:
> 
> - What's the expected release time for the new schedueler?  3.2?
> 
> - How difficult do you expect a backport to 3.1 to be?  We have to work
>  from 3.1.  Trunk is too buggy.

You've stated that trunk is too buggy for you to work from on multiple occasions. Can you elaborate? That doesn't match my experience, as I install a new compiler on my workstation from a trunk build every night and have only had a problem as a result once in the last year or more. It sounds like you've had a much different experience, which is unfortunate, and perhaps indicates a hole in our buildbot and nightly test infrastructure that could be fixed.

-Jim


> 
>>> In general, it would be very helpful for folks to post about major
>>> architectural changes like this before work begins so the rest of us can
>>> plan our work.  After all, we are likely to run into the same problems
>>> that need solutions.  As it is, it gets pretty frustrating to do a bunch
>>> of work in the current release only to have to throw it away because
>>> someone else did something different.
>> 
>> There's a difference between having an intention to replace the
>> scheduler (for over a year now) and planning the work. 
> 
> Ok, but I don't recall any post about replacing the scheduler.  If there
> was I missed it.  That's easy to do on a list with hundreds of messages
> a day.  It would be helpful to have a roadmap page on the LLVM web site
> to call attention to decisions like this.  Such a page could be updated
> as timelines become firmer.
> 
>> The actual planning coincided nicely with your RFC, providing a good
>> opportunity to air it on llvm-dev.
> 
> I'm not sure what you mean by "planning."  Do you mean design work?  I
> think that's quite different from a roadmap with timelines.  It's really
> the former that us non-Apple people need to have to effectively plan our
> work.  The last thing we want to do is duplicate what's already planned
> to happen.
> 
>                              -Dave
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list