This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r273802 - in /trunk/gcc: ChangeLog config/arm/t...
- From: wilco at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Thu, 25 Jul 2019 14:24:41 -0000
- Subject: r273802 - in /trunk/gcc: ChangeLog config/arm/t...
Author: wilco
Date: Thu Jul 25 14:24:41 2019
New Revision: 273802
URL: https://gcc.gnu.org/viewcvs?rev=273802&root=gcc&view=rev
Log:
Fix low reg issue in Thumb-2 movsi patterns
The Thumb-2 movsi patterns try to prefer low registers for loads and stores.
However this is done incorrectly by using 2 separate variants with 'l' and 'h'
register classes. The register allocator will only use low registers, and
as a result we end up with significantly more spills and moves to high
registers. Fix this by merging the alternatives and use 'l*r' to indicate
preference for low registers. This saves ~400 instructions from the pr77308
testcase.
gcc/
* config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/thumb2.md
trunk/gcc/config/arm/vfp.md