aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2019-07-30 15:27:04 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2019-07-30 15:27:04 +0000
commitcefbac6ec744761110e337c4b51b96a236916ba1 (patch)
tree248f0e1faceef920ad0408dadfc98f99baebcb50
parentd9c425fb659c7df40eddf66349d846ed0cf63fda (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/thumb2.md2
-rw-r--r--gcc/config/arm/vfp.md2
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,*")]
)