diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2019-07-25 14:24:41 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2019-07-25 14:24:41 +0000 |
commit | 75088696935c7e179699cb448e0a2cee74c8494f (patch) | |
tree | 4959abd461882dadbc9c5b579594de46054e71b4 /gcc/ipa-inline-transform.c | |
parent | 2fc233b73189dd0664fb1cb95865fc5a14396e1f (diff) | |
download | gcc-75088696935c7e179699cb448e0a2cee74c8494f.zip gcc-75088696935c7e179699cb448e0a2cee74c8494f.tar.gz gcc-75088696935c7e179699cb448e0a2cee74c8494f.tar.bz2 |
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.
From-SVN: r273802
Diffstat (limited to 'gcc/ipa-inline-transform.c')
0 files changed, 0 insertions, 0 deletions