Someone (via a WeChat group) reported that --with-arch=la464
--with-tune=la664 had stopped to work after commiting the LA32 support.

While this can be treated as a simple logic error (i.e. we may simply
change "loongarch64" in the case statement to an asterisk), IMO we
should just relax the check: at runtime the "unreasonable" combinations
like "-march=la64v1.0 -mtune=loongarch32" or "-march=la664 -mtune=la464"
is allowed (and the second case has been allowed for a long time), and a
combination of --with-arch=A --with-tune=T should be allowed if -march=A
-mtune=T is allowed at runtime.

Also if we consider the fact that --with-tune= and -mtune= only select a
set of heruistic parameters, such combinations may be not so
unreasonable.

gcc/

        * config.gcc: Relax the check for LoongArch with_tune.
---

Ok for trunk?

 gcc/config.gcc | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 836cdff6317..1f9d105c732 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -5325,14 +5325,7 @@ case "${target}" in
 
 
                # Check default with_tune configuration using with_arch.
-               case ${with_arch} in
-               la32v1.0 | la32rv1.0)
-                       tune_pattern="loongarch32"
-                       ;;
-               loongarch64)
-                       tune_pattern="native|generic|loongarch64|la[46]64"
-                       ;;
-               esac
+               tune_pattern="native|generic|loongarch64|la[46]64|loongarch32"
 
                case ${with_tune} in
                "") ;; # OK
-- 
2.52.0

Reply via email to