diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2019-07-30 15:27:04 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2019-07-30 15:27:04 +0000 |
commit | cefbac6ec744761110e337c4b51b96a236916ba1 (patch) | |
tree | 248f0e1faceef920ad0408dadfc98f99baebcb50 /gcc | |
parent | d9c425fb659c7df40eddf66349d846ed0cf63fda (diff) | |
download | gcc-cefbac6ec744761110e337c4b51b96a236916ba1.zip gcc-cefbac6ec744761110e337c4b51b96a236916ba1.tar.gz gcc-cefbac6ec744761110e337c4b51b96a236916ba1.tar.bz2 |
Adjust literal pool offset in Thumb-2 movsi patterns
My previous change to the Thumb-2 movsi patterns caused a codesize regression
with -Os in large functions. Fix this by using the literal pool offset of the
16-bit literal load so that the literal pool is dumped earlier, reducing the
number of 32-bit literal loads.
Bootstrap & regress OK on arm-none-linux-gnueabihf --with-cpu=cortex-a57
gcc/
* config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
From-SVN: r273911
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/thumb2.md | 2 | ||||
-rw-r--r-- | gcc/config/arm/vfp.md | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 41cfa85..427c257 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-07-30 Wilco Dijkstra <wdijkstr@arm.com> + + * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset. + * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. + 2019-07-30 Martin Liska <mliska@suse.cz> PR ipa/89330 diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md index a4e094f..608ea70 100644 --- a/gcc/config/arm/thumb2.md +++ b/gcc/config/arm/thumb2.md @@ -274,7 +274,7 @@ (set_attr "length" "2,4,2,4,4,4,4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no") - (set_attr "pool_range" "*,*,*,*,*,4094,*") + (set_attr "pool_range" "*,*,*,*,*,1018,*") (set_attr "neg_pool_range" "*,*,*,*,*,0,*")] ) diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index 9cc5946..661919e 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -297,7 +297,7 @@ (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no,no,no,no,no,no") (set_attr "type" "mov_reg,mov_reg,mov_reg,mvn_reg,mov_imm,load_4,store_4,f_mcr,f_mrc,fmov,f_loads,f_stores") (set_attr "length" "2,4,2,4,4,4,4,4,4,4,4,4") - (set_attr "pool_range" "*,*,*,*,*,4094,*,*,*,*,1018,*") + (set_attr "pool_range" "*,*,*,*,*,1018,*,*,*,*,1018,*") (set_attr "neg_pool_range" "*,*,*,*,*, 0,*,*,*,*,1008,*")] ) |