aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2019-10-14 12:25:00 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2019-10-14 12:25:00 +0000
commitea9782106cd2cfbb53237024dcc984a26acb7130 (patch)
tree94f048d81f57eef4487a95a966ba4247639a4c68 /gcc
parentc7207339a7dbce5b68f872064e624dcf1639ba46 (diff)
downloadgcc-ea9782106cd2cfbb53237024dcc984a26acb7130.zip
gcc-ea9782106cd2cfbb53237024dcc984a26acb7130.tar.gz
gcc-ea9782106cd2cfbb53237024dcc984a26acb7130.tar.bz2
[ARM] Enable arm_legitimize_address for Thumb-2
Currently arm_legitimize_address doesn't handle Thumb-2 at all, resulting in inefficient code. Since Thumb-2 supports similar address offsets use the Arm legitimization code for Thumb-2 to get significant codesize and performance gains. SPECINT2006 shows 0.4% gain on Cortex-A57, while SPECFP improves 0.2%. gcc/ * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout. From-SVN: r276961
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/arm.c9
2 files changed, 6 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f07a0e6..176c0d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
+ * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
+
+2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
+
* config/arm/arm.c (arm_option_override): Don't override sched
pressure algorithm.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 394b1dd..ba33047 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -8934,13 +8934,8 @@ arm_legitimize_address (rtx x, rtx orig_x, machine_mode mode)
return x;
}
- if (!TARGET_ARM)
- {
- /* TODO: legitimize_address for Thumb2. */
- if (TARGET_THUMB2)
- return x;
- return thumb_legitimize_address (x, orig_x, mode);
- }
+ if (TARGET_THUMB1)
+ return thumb_legitimize_address (x, orig_x, mode);
if (GET_CODE (x) == PLUS)
{