[AArch64] Fix aarch64_ira_change_pseudo_allocno_class
authorWilco Dijkstra <wdijkstr@arm.com>
Wed, 30 May 2018 10:31:21 +0000 (10:31 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Wed, 30 May 2018 10:31:21 +0000 (10:31 +0000)
commit2eb2847ec54a3262f303f47697c5e5cbe3cc089d
treec82f3633a43f74e9269c0bd423729416b7d5048e
parent30522cdb1462ff8892d01429de3d73e1b5c7e919
[AArch64] Fix aarch64_ira_change_pseudo_allocno_class

A recent commit removing '*' from the md files caused a large regression in
h264ref.  It turns out aarch64_ira_change_pseudo_allocno_class is no longer
effective after the SVE changes, and the combination results in the regression.
This patch fixes it by explicitly checking for a subset of GENERAL_REGS and
FP_REGS.  Add a missing ? to aarch64_get_lane to fix a failure in the testsuite.

    gcc/
* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
Check for subset of GENERAL_REGS and FP_REGS.
* config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of
r=w alternative.

From-SVN: r260951
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c