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.