This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Enable PostRAScheduler for AArch64 generic build
ClosedPublic

Authored by MinSeongKIM on Dec 15 2015, 10:56 PM.

Details

Summary

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.

Diff Detail

Repository
rL LLVM

Event Timeline

MinSeongKIM retitled this revision from to [AArch64] Enable PostRAScheduler for AArch64 generic build.
MinSeongKIM updated this object.
MinSeongKIM added a subscriber: llvm-commits.
mcrosier edited edge metadata.Dec 16 2015, 7:30 AM

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.

aadg added a subscriber: aadg.Dec 16 2015, 7:43 AM

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

aadg added a comment.Dec 16 2015, 8:32 AM

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.

mcrosier accepted this revision.Dec 16 2015, 8:48 AM
mcrosier edited edge metadata.

LGT James, Arnaud and I.

This revision is now accepted and ready to land.Dec 16 2015, 8:48 AM
MinSeongKIM added a comment.EditedDec 16 2015, 9:29 PM

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.

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.

In D15557#312006, @aadg wrote:

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.

I appreciate your concern, Arnaud. I will keep this issue in mind.

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.

This revision was automatically updated to reflect the committed changes.
evandro added a subscriber: evandro.Jan 5 2016, 9:33 AM