aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <jlaw@ventanamicro.com>2024-11-01 20:28:07 -0600
committerJeff Law <jlaw@ventanamicro.com>2024-11-01 20:29:09 -0600
commit4a5a63596dd82d20fd1cc11a69ec1e4729225645 (patch)
treea6a78d8e486b7d8388f50874178681778075ab55
parent0cb6078ca83f545bfe54b4064181dca6f81ce45d (diff)
downloadgcc-4a5a63596dd82d20fd1cc11a69ec1e4729225645.zip
gcc-4a5a63596dd82d20fd1cc11a69ec1e4729225645.tar.gz
gcc-4a5a63596dd82d20fd1cc11a69ec1e4729225645.tar.bz2
[committed] Make LRA default for ft32 and remove -mlra option
I was looking to clean up an old patch I'm carrying in my tester. My first thought was that ft32 was likely going to be deprecated because it wasn't using LRA -- which in turn would mean the patch in question could just be removed. But then I checked, ft32 has an LRA option and if turned on it gets the exact same test results as with reload. While the port mentions a failure with sieve.c, that's been there since the port was introduced in 2015. It's working well enough that I think just converting it is the right thing to do. The testsuite patch which precipitated this one will follow separately. I've kept the -mlra option for compatibility sake, but it's ignored. Pushing to the trunk. gcc/ * config/ft32/ft32.cc (ft32_lra_p): Remove. (TARGET_LRA_P): Likewise. * config/ft32/ft32.opt: Make -mlra ignored. * doc/invoke.texi: Adjust documentation for -mlra on ft32.
-rw-r--r--gcc/config/ft32/ft32.cc13
-rw-r--r--gcc/config/ft32/ft32.opt4
-rw-r--r--gcc/doc/invoke.texi3
3 files changed, 3 insertions, 17 deletions
diff --git a/gcc/config/ft32/ft32.cc b/gcc/config/ft32/ft32.cc
index 3c6e5fb..80345dc 100644
--- a/gcc/config/ft32/ft32.cc
+++ b/gcc/config/ft32/ft32.cc
@@ -831,19 +831,6 @@ ft32_target_case_values_threshold (void)
ft32_addr_space_legitimate_address_p
-// Enabling LRA gives the infamous
-// internal compiler error: Max. number of generated reload insns per insn is achieved (90)
-// errors e.g. when compiling sieve.c
-
-static bool
-ft32_lra_p (void)
-{
- return ft32_lra_flag;
-}
-
-#undef TARGET_LRA_P
-#define TARGET_LRA_P ft32_lra_p
-
static bool
reg_ok_for_base_p (rtx r, bool strict)
{
diff --git a/gcc/config/ft32/ft32.opt b/gcc/config/ft32/ft32.opt
index cecc548..419c82a 100644
--- a/gcc/config/ft32/ft32.opt
+++ b/gcc/config/ft32/ft32.opt
@@ -23,8 +23,8 @@ Target Mask(SIM)
Target the software simulator.
mlra
-Target Var(ft32_lra_flag) Init(0) Save
-Use LRA instead of reload.
+Target RejectNegative Ignore
+Ignored, but preserved for backward compatibility.
mnodiv
Target Mask(NODIV)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index fd6c0c4..8d92d46 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -25998,8 +25998,7 @@ I/O functions are needed.
@opindex mlra
@item -mlra
-Enable Local Register Allocation. This is still experimental for FT32,
-so by default the compiler uses standard reload.
+Does nothing. Preserved for backward compatibility.
@opindex mnodiv
@item -mnodiv