This patch enables PostRAScheduler specifically for AArch64 generic build,
which is beneficial from the performance perspective.
Speedups up to 2 to 7% for some benchmarks on A57 and A53 are observed.
Also benchmarks from LLVM test-suite did not regress.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Seems like a reasonable change to me. Did you happen to measure compile-time as well? IIRC, the post-RA scheduler can be expensive in terms of compile-time.
Beside the inherent compile time increase due to scheduling, the algorithm currently implemented exhibits exponential behavior which can be triggered by some real life programs; see https://llvm.org/bugs/show_bug.cgi?id=25794 for an example. There is some work being done in parallel by Jonas Paulsson to improve the scheduler: see http://reviews.llvm.org/D8705.
Arnaud,
I'm a proponent of this change going in. James provided a LGTM. IYO, should be wait for the ongoing improvements to the post-RA scheduler to be complete prior to this being commit or is this ready to land in your opinion? We might also solicit feedback from @t.p.northover.
Chda
I'm also in favor of this patch going in.
This is orthogonal to http://reviews.llvm.org/D8705. My point is really just a heads-up as it may create compile time regressions for people using generic cores, and which were not impacted by those regressions; this may shakes some bug out a bit more in the scheduler y broadening the user base (which is good) and give us a good incentive to have Jonas patch go in quicker as well.
So all in all, this patch is a good move forward.
Many thanks for reviewing this patch, Chad. Based on the results from LLVM test-suite, the compile time (CC_Time) is increased by 11.6% on average when post-RA scheduler is on.
I am very thankful to you guys all for making this patch ready to land. I will commit this patch after getting the permission from Chris.