[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
atrick at apple.com
Tue Sep 24 00:36:16 PDT 2013
On Sep 23, 2013, at 11:36 PM, Chandler Carruth <chandlerc at google.com> wrote:
> On Tue, Sep 24, 2013 at 1:11 AM, Andrew Trick <atrick at apple.com> wrote:
> This week, I'll see if we can enable MI scheduling by default for x86. I'm not sure which flags you're using to test it now. But by making it default and enabling the corresponding coalescer changes, we can be confident that benchmarking efforts are improving on the same baseline.
> While I'm generally really excited by this, I would ask for a bit more staging of this change.
> Specifically, I would really like for a single, clear switch to enable exactly what you want benchmark data on *before* it becomes the default, and to give various folks time to run benchmarks and report serious regressions.
> I don't want our ability to ship LLVM from top-of-tree to be seriously impaired by this, and enabling a feature that can have dramatic performance impact without a giving folks a really simple way to try it out and a period of time to run benchmarks and collect data seems to do that. =/
> Once it is the default, it would be really good to leave in the single, simple switch for a period of time for folks to disable it if need be.
Ok. I tried to make that clear when I went through this process in July. But I'll add another flag (in addition to the subtarget hook) to "flip the switch" and remove the flag later.
The purpose of changing SD scheduler policy, register coalescer policy, and MI scheduler simultaneously is only to avoid having folks who are watching performance results waste time chasing transient regressions.
For x86, this is primarily about compile time (while continuing to avoid worst-case scheduling). Switching the default now is to give people time to file bugs before the next step: disabling SD scheduler.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev