On 1/21/20 12:20 PM, Joel Hutton wrote:
Hi all,

A previous change to simplify LRA introduced in 11b809 (From-SVN:
r279550) disabled hard register splitting for -O0. This causes a problem
on aarch64 in cases where parameters are passed in multiple registers
(in the bug report an OI passed in 2 V4SI registers). This is mandated
by the AAPCS.

I see.  I suspected that it can cause the problem but I thought the probability is very small for this.  I was wrong.  We should revert it at least for now.  Correct work of GCC is more important than saving cycles in -O0 mode.

Vlad, Eric, do you have a preferred alternate solution to reverting the
patch?
I am in favour of reverting the patch now.  But may be Eric can provide another version of the patch not causing the arm problem.  I am ready to reconsider this too.  So I guess the decision is upto Eric.
Previously discussed here:
https://gcc.gnu.org/ml/gcc-patches/2019-12/msg01414.html
Bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93221

Bootstrapped and regression tested on aarch64

Changelog:

2020-01-21  Joel Hutton  <joel.hut...@arm.com\>

          * ira.c (ira): Revert use of simplified LRA algorithm.

gcc/testsuite/ChangeLog:

2020-01-21  Joel Hutton  <joel.hut...@arm.com\>

          PR bug/93221
          * gcc.target/aarch64/pr93221.c: New test.


Reply via email to