This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: PR target/59588: Don't check/change generic/i686 tuning
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: hubicka at ucw dot cz
- Date: Tue, 24 Dec 2013 12:38:09 -0800
- Subject: PATCH: PR target/59588: Don't check/change generic/i686 tuning
- Authentication-results: sourceware.org; auth=none
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi Honza,
We have combined generic32 and generic64 into generic. There is no need
to check "generic" anymore. Also we shouldn't change -mtune=i686 into
-mtune=generic. OK to install?
Thanks.
H.J.
---
gcc/
2013-12-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/59588
* config/i386/i386.c (ix86_option_override_internal): Don't
check generic tuning. Don't change i686 tuning.
gcc/testsuite/
2013-12-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/59588
* gcc.target/i386/pr59588-1.c: New file.
* gcc.target/i386/pr59588-2.c: Likewise.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index f5d9ce5..b95a620 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3332,23 +3332,13 @@ ix86_option_override_internal (bool main_args_p,
/* Need to check -mtune=generic first. */
if (opts->x_ix86_tune_string)
{
- if (!strcmp (opts->x_ix86_tune_string, "generic")
- || !strcmp (opts->x_ix86_tune_string, "i686")
- /* As special support for cross compilers we read -mtune=native
+ /* As special support for cross compilers we read -mtune=native
as -mtune=generic. With native compilers we won't see the
-mtune=native, as it was changed by the driver. */
- || !strcmp (opts->x_ix86_tune_string, "native"))
+ if (!strcmp (opts->x_ix86_tune_string, "native"))
{
opts->x_ix86_tune_string = "generic";
}
- /* If this call is for setting the option attribute, allow the
- generic that was previously set. */
- else if (!main_args_p
- && !strcmp (opts->x_ix86_tune_string, "generic"))
- ;
- else if (!strncmp (opts->x_ix86_tune_string, "generic", 7))
- error ("bad value (%s) for %stune=%s %s",
- opts->x_ix86_tune_string, prefix, suffix, sw);
else if (!strcmp (opts->x_ix86_tune_string, "x86-64"))
warning (OPT_Wdeprecated, "%stune=x86-64%s is deprecated; use "
"%stune=k8%s or %stune=generic%s instead as appropriate",
@@ -3366,9 +3356,7 @@ ix86_option_override_internal (bool main_args_p,
/* opts->x_ix86_tune_string is set to opts->x_ix86_arch_string
or defaulted. We need to use a sensible tune option. */
- if (!strcmp (opts->x_ix86_tune_string, "generic")
- || !strcmp (opts->x_ix86_tune_string, "x86-64")
- || !strcmp (opts->x_ix86_tune_string, "i686"))
+ if (!strcmp (opts->x_ix86_tune_string, "x86-64"))
{
opts->x_ix86_tune_string = "generic";
}
@@ -3648,7 +3636,7 @@ ix86_option_override_internal (bool main_args_p,
else if (!strcmp (opts->x_ix86_arch_string, "intel"))
error ("intel CPU can be used only for %stune=%s %s",
prefix, suffix, sw);
- else if (!strncmp (opts->x_ix86_arch_string, "generic", 7) || i == pta_size)
+ else if (i == pta_size)
error ("bad value (%s) for %sarch=%s %s",
opts->x_ix86_arch_string, prefix, suffix, sw);
diff --git a/gcc/testsuite/gcc.target/i386/pr59588-1.c b/gcc/testsuite/gcc.target/i386/pr59588-1.c
new file mode 100644
index 0000000..391f2aa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr59588-1.c
@@ -0,0 +1,7 @@
+/* { dg-do preprocess } */
+/* { dg-require-effective-target ia32 } */
+/* { dg-options "-march=i686" } */
+
+#ifndef __tune_i686__
+#error "__tune_i686__ should defined for this test"
+#endif
diff --git a/gcc/testsuite/gcc.target/i386/pr59588-2.c b/gcc/testsuite/gcc.target/i386/pr59588-2.c
new file mode 100644
index 0000000..bb5f12a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr59588-2.c
@@ -0,0 +1,7 @@
+/* { dg-do preprocess } */
+/* { dg-require-effective-target ia32 } */
+/* { dg-options "-mtune=i686" } */
+
+#ifndef __tune_i686__
+#error "__tune_i686__ should defined for this test"
+#endif