aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-transform.c
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2019-07-25 14:24:41 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2019-07-25 14:24:41 +0000
commit75088696935c7e179699cb448e0a2cee74c8494f (patch)
tree4959abd461882dadbc9c5b579594de46054e71b4 /gcc/ipa-inline-transform.c
parent2fc233b73189dd0664fb1cb95865fc5a14396e1f (diff)
downloadgcc-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