Chandler Carruth
2013-Sep-24 06:36 UTC
[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130924/326463c8/attachment.html>
Andrew Trick
2013-Sep-24 07:36 UTC
[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
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. -Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130924/fd309414/attachment.html>
Andrew Trick
2013-Sep-26 06:24 UTC
[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
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.I just added a flag: -misched-bench. You can use it to flip back and forth between your target's default SD scheduler and the machine scheduler. It's doesn't affect whether the postRA scheduler is also run. -Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130925/6dfcb500/attachment.html>
Ghassan Shobaki
2013-Sep-26 07:30 UTC
[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
So, when the MI scheduler is enabled, will SD scheduling be totally disabled or the SD scheduler will be automatically set to do source scheduling? -Ghassan ________________________________ From: Andrew Trick <atrick at apple.com> To: llvmdev at cs.uiuc.edu Cc: Ghassan Shobaki <ghassan_shobaki at yahoo.com> Sent: Thursday, September 26, 2013 9:24 AM Subject: Re: [LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3) 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.I just added a flag: -misched-bench. You can use it to flip back and forth between your target's default SD scheduler and the machine scheduler. It's doesn't affect whether the postRA scheduler is also run. -Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130926/4337b142/attachment.html>
Andrew Trick
2013-Oct-05 06:01 UTC
[LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
On Sep 25, 2013, at 11:24 PM, Andrew Trick <atrick at apple.com> wrote:> > 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. > > > I just added a flag: -misched-bench. You can use it to flip back and forth between your target's default SD scheduler and the machine scheduler. It's doesn't affect whether the postRA scheduler is also run.If there are still no objections, I’ll plan to switch the x86 default to MI scheduler on Monday. -Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131004/95cbf76a/attachment.html>
Maybe Matching Threads
- [LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)
- [LLVMdev] Experimental Evaluation of the Schedulers in LLVM 3.3
- [LLVMdev] Experimental Evaluation of the Schedulers in LLVM 3.3
- [LLVMdev] Experimental Evaluation of the Schedulers in LLVM 3.3
- [LLVMdev] Enabling MI Scheduler on x86 (was Experimental Evaluation of the Schedulers in LLVM 3.3)