From: Andreas Krebbel Date: Fri, 18 Dec 2015 09:20:53 +0000 (+0000) Subject: S/390: Deprecate g5 and g6 CPU levels X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6638efce562e68d702d859c124ed36c7a8c55556;p=gcc.git S/390: Deprecate g5 and g6 CPU levels gcc/ChangeLog: 2015-12-18 Andreas Krebbel * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick z900 -march -mtune even on g5 and g6 machines. * config/s390/s390.c (s390_option_override_internal): New argument to distingiush between options and target attributes. Emit deprecation warning for g5 and g6 arch/tune options. (s390_option_override): Set new s390_option_override_internal argument to true. (s390_valid_target_attribute_tree): Set new s390_option_override_internal argument to false. * config/s390/s390.h: Default to z900 in the driver. * doc/invoke.texi: Document the deprecation of g5 and g6. gcc/testsuite/ChangeLog: 2015-12-18 Andreas Krebbel * gcc.target/s390/hotpatch-8.c: Add -Wno-deprecated to options. * gcc.target/s390/hotpatch-9.c: Likewise. From-SVN: r231806 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34de124d814..48bc79d60de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2015-12-18 Andreas Krebbel + + * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick + z900 -march -mtune even on g5 and g6 machines. + * config/s390/s390.c (s390_option_override_internal): New argument + to distingiush between options and target attributes. Emit + deprecation warning for g5 and g6 arch/tune options. + (s390_option_override): Set new s390_option_override_internal + argument to true. + (s390_valid_target_attribute_tree): Set new + s390_option_override_internal argument to false. + * config/s390/s390.h: Default to z900 in the driver. + * doc/invoke.texi: Document the deprecation of g5 and g6. + 2015-12-18 Andris Pavenis * config/i386/djgpp-stdint.h: update typedefs for integer types diff --git a/gcc/config/s390/driver-native.c b/gcc/config/s390/driver-native.c index 5f7fe0aaea7..08ec85e8b4e 100644 --- a/gcc/config/s390/driver-native.c +++ b/gcc/config/s390/driver-native.c @@ -84,9 +84,8 @@ s390_host_detect_local_cpu (int argc, const char **argv) machine_id = strtol (p, NULL, 16); switch (machine_id) { + /* g5 and g6 default to z900 */ case 0x9672: - cpu = "g5"; - break; case 0x2064: case 0x2066: cpu = "z900"; diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index bc6f05b56cd..2a42818ef7c 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -13569,9 +13569,27 @@ s390_function_specific_restore (struct gcc_options *opts, } static void -s390_option_override_internal (struct gcc_options *opts, +s390_option_override_internal (bool main_args_p, + struct gcc_options *opts, const struct gcc_options *opts_set) { + const char *prefix; + const char *suffix; + + /* Set up prefix/suffix so the error messages refer to either the command + line argument, or the attribute(target). */ + if (main_args_p) + { + prefix = "-m"; + suffix = ""; + } + else + { + prefix = "option(\""; + suffix = "\")"; + } + + /* Architecture mode defaults according to ABI. */ if (!(opts_set->x_target_flags & MASK_ZARCH)) { @@ -13583,13 +13601,26 @@ s390_option_override_internal (struct gcc_options *opts, /* Set the march default in case it hasn't been specified on cmdline. */ if (!opts_set->x_s390_arch) - opts->x_s390_arch = TARGET_ZARCH_P (opts->x_target_flags) - ? PROCESSOR_2064_Z900 : PROCESSOR_9672_G5; + opts->x_s390_arch = PROCESSOR_2064_Z900; + else if (opts->x_s390_arch == PROCESSOR_9672_G5 + || opts->x_s390_arch == PROCESSOR_9672_G6) + warning (OPT_Wdeprecated, "%sarch=%s%s is deprecated and will be removed " + "in future releases; use at least %sarch=z900%s", + prefix, opts->x_s390_arch == PROCESSOR_9672_G5 ? "g5" : "g6", + suffix, prefix, suffix); + opts->x_s390_arch_flags = processor_flags_table[(int) opts->x_s390_arch]; /* Determine processor to tune for. */ if (!opts_set->x_s390_tune) opts->x_s390_tune = opts->x_s390_arch; + else if (opts->x_s390_tune == PROCESSOR_9672_G5 + || opts->x_s390_tune == PROCESSOR_9672_G6) + warning (OPT_Wdeprecated, "%stune=%s%s is deprecated and will be removed " + "in future releases; use at least %stune=z900%s", + prefix, opts->x_s390_tune == PROCESSOR_9672_G5 ? "g5" : "g6", + suffix, prefix, suffix); + opts->x_s390_tune_flags = processor_flags_table[opts->x_s390_tune]; /* Sanity checks. */ @@ -13800,7 +13831,7 @@ s390_option_override (void) /* Set up function hooks. */ init_machine_status = s390_init_machine_status; - s390_option_override_internal (&global_options, &global_options_set); + s390_option_override_internal (true, &global_options, &global_options_set); /* Save the initial options in case the user does function specific options. */ @@ -14102,7 +14133,7 @@ s390_valid_target_attribute_tree (tree args, dest[i] |= src[i]; /* Do any overrides, such as arch=xxx, or tune=xxx support. */ - s390_option_override_internal (opts, &new_opts_set); + s390_option_override_internal (false, opts, &new_opts_set); /* Save the current options unless we are validating options for #pragma. */ t = build_target_option_node (opts); diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index 52ed7a4a477..603e6384f6f 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -214,7 +214,7 @@ extern const char *s390_host_detect_local_cpu (int argc, const char **argv); MARCH_MTUNE_NATIVE_SPECS, \ "%{!m31:%{!m64:-m" S390_TARGET_BITS_STRING "}}", \ "%{!mesa:%{!mzarch:%{m31:-mesa}%{m64:-mzarch}}}", \ - "%{!march=*:%{mesa:-march=g5}%{mzarch:-march=z900}}" + "%{!march=*:-march=z900}" /* Constants needed to control the TEST DATA CLASS (TDC) instruction. */ #define S390_TDC_POSITIVE_ZERO (1 << 11) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 60530c0464a..cad32c679b7 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -20892,14 +20892,12 @@ The default is to not print debug information. @item -march=@var{cpu-type} @opindex march -Generate code that runs on @var{cpu-type}, which is the name of a system -representing a certain processor type. Possible values for -@var{cpu-type} are @samp{g5}, @samp{g6}, @samp{z900}, @samp{z990}, -@samp{z9-109}, @samp{z9-ec}, @samp{z10}, @samp{z196}, @samp{zEC12}, -and @samp{z13}. -When generating code using the instructions available on z/Architecture, -the default is @option{-march=z900}. Otherwise, the default is -@option{-march=g5}. +Generate code that runs on @var{cpu-type}, which is the name of a +system representing a certain processor type. Possible values for +@var{cpu-type} are @samp{z900}, @samp{z990}, @samp{z9-109}, +@samp{z9-ec}, @samp{z10}, @samp{z196}, @samp{zEC12}, and @samp{z13}. +The default is @option{-march=z900}. @samp{g5} and @samp{g6} are +deprecated and will be removed with future releases. @item -mtune=@var{cpu-type} @opindex mtune diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f991a699869..319cec6f471 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-12-18 Andreas Krebbel + + * gcc.target/s390/hotpatch-8.c: Add -Wno-deprecated to options. + * gcc.target/s390/hotpatch-9.c: Likewise. + 2015-12-18 Patrick Palka PR c++/68831 diff --git a/gcc/testsuite/gcc.target/s390/hotpatch-8.c b/gcc/testsuite/gcc.target/s390/hotpatch-8.c index 1ea3160c0f2..c5b71a509b5 100644 --- a/gcc/testsuite/gcc.target/s390/hotpatch-8.c +++ b/gcc/testsuite/gcc.target/s390/hotpatch-8.c @@ -1,7 +1,7 @@ /* Functional tests for the function hotpatching feature. */ /* { dg-do compile { target { ! lp64 } } } */ -/* { dg-options "-mesa -march=g5 -mhotpatch=0,3" } */ +/* { dg-options "-mesa -march=g5 -Wno-deprecated -mhotpatch=0,3" } */ #include diff --git a/gcc/testsuite/gcc.target/s390/hotpatch-9.c b/gcc/testsuite/gcc.target/s390/hotpatch-9.c index e30f2762d33..9ccc8fd66fe 100644 --- a/gcc/testsuite/gcc.target/s390/hotpatch-9.c +++ b/gcc/testsuite/gcc.target/s390/hotpatch-9.c @@ -1,7 +1,7 @@ /* Functional tests for the function hotpatching feature. */ /* { dg-do compile { target { ! lp64 } } } */ -/* { dg-options "-mesa -march=g5 -mhotpatch=0,4" } */ +/* { dg-options "-mesa -march=g5 -Wno-deprecated -mhotpatch=0,4" } */ #include