]> git.ipfire.org Git - thirdparty/gcc.git/commit
This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook.
authorWilco Dijkstra <wdijkstr@arm.com>
Tue, 2 Feb 2016 17:03:05 +0000 (17:03 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Tue, 2 Feb 2016 17:03:05 +0000 (17:03 +0000)
commitc64f7d37140e0769cbb8725da800119d7c6a6fd2
tree3d5dbb501c4b6d12b44117ef9562b9e9467698eb
parentbd78a45fa098849c0596545f072392838e597259
This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook.
When the cost of GENERAL_REGS and FP_REGS is identical, the register allocator
always uses ALL_REGS even when it has a much higher cost. The hook changes the
class to either FP_REGS or GENERAL_REGS depending on the mode of the register.
This results in better register allocation overall, fewer spills and reduced
codesize - particularly in SPEC2006 gamess.

2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
* config/aarch64/aarch64.c
(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
(aarch64_ira_change_pseudo_allocno_class): New function.

    gcc/testsuite/
* gcc.target/aarch64/scalar_shift_1.c
(test_corners_sisd_di): Improve force to SIMD register.
(test_corners_sisd_si): Likewise.
* gcc.target/aarch64/vect-ld1r-compile-fp.c:
Remove scan-assembler check for ldr.

From-SVN: r233083
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c
gcc/testsuite/gcc.target/aarch64/vect-ld1r-compile-fp.c