On Fri, Jul 17, 2015 at 05:00:50PM +0100, Dominik Vogt wrote:
> The following series of patches contains fixes, and cleanup work
> related to -march=native (and -mtune=native) for S390.
>
> * 0004 Non-mandatory cleanup of the S390 code handling the various
> cpu types.
Ciao
Dominik ^_^ ^_^
--
Dominik Vogt
IBM Germany
gcc/ChangeLog
* config/s390/s390.c (s390_reorg): Clean up handling of processors with
-mtune=
(s390_issue_rate): Likewise.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Likewise.
(s390_loop_unroll_adjust): Likewise.
(s390_option_override): Likewise.
>From 1d52b5534a728c9625b64bb702f3adcb2fc35ed0 Mon Sep 17 00:00:00 2001
From: Dominik Vogt <[email protected]>
Date: Wed, 8 Jul 2015 13:20:41 +0100
Subject: [PATCH 4/4] S390: Clean up handling of various PROCESSOR_* values
with -mtune=.
---
gcc/config/s390/s390.c | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 27e1c35..1764243 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -7304,11 +7304,15 @@ s390_issue_rate (void)
return 3;
case PROCESSOR_2097_Z10:
return 2;
+ case PROCESSOR_9672_G5:
+ case PROCESSOR_9672_G6:
+ case PROCESSOR_2064_Z900:
/* Starting with EC12 we use the sched_reorder hook to take care
of instruction dispatch constraints. The algorithm only
picks the best instruction and assumes only a single
instruction gets issued per cycle. */
case PROCESSOR_2827_ZEC12:
+ case PROCESSOR_2964_Z13:
default:
return 1;
}
@@ -12914,10 +12918,7 @@ s390_reorg (void)
s390_optimize_prologue ();
/* Walk over the insns and do some >=z10 specific changes. */
- if (s390_tune == PROCESSOR_2097_Z10
- || s390_tune == PROCESSOR_2817_Z196
- || s390_tune == PROCESSOR_2827_ZEC12
- || s390_tune == PROCESSOR_2964_Z13)
+ if (s390_tune >= PROCESSOR_2097_Z10)
{
rtx_insn *insn;
bool insn_added_p = false;
@@ -13168,12 +13169,12 @@ static int
s390_sched_reorder (FILE *file, int verbose,
rtx_insn **ready, int *nreadyp, int clock ATTRIBUTE_UNUSED)
{
- if (s390_tune == PROCESSOR_2097_Z10)
- if (reload_completed && *nreadyp > 1)
- s390_z10_prevent_earlyload_conflicts (ready, nreadyp);
+ if (s390_tune == PROCESSOR_2097_Z10
+ && reload_completed
+ && *nreadyp > 1)
+ s390_z10_prevent_earlyload_conflicts (ready, nreadyp);
- if ((s390_tune == PROCESSOR_2827_ZEC12
- || s390_tune == PROCESSOR_2964_Z13)
+ if (s390_tune >= PROCESSOR_2827_ZEC12
&& reload_completed
&& *nreadyp > 1)
{
@@ -13256,8 +13257,7 @@ s390_sched_variable_issue (FILE *file, int verbose, rtx_insn *insn, int more)
{
last_scheduled_insn = insn;
- if ((s390_tune == PROCESSOR_2827_ZEC12
- || s390_tune == PROCESSOR_2964_Z13)
+ if (s390_tune >= PROCESSOR_2827_ZEC12
&& reload_completed
&& recog_memoized (insn) >= 0)
{
@@ -13335,10 +13335,7 @@ s390_loop_unroll_adjust (unsigned nunroll, struct loop *loop)
unsigned i;
unsigned mem_count = 0;
- if (s390_tune != PROCESSOR_2097_Z10
- && s390_tune != PROCESSOR_2817_Z196
- && s390_tune != PROCESSOR_2827_ZEC12
- && s390_tune != PROCESSOR_2964_Z13)
+ if (s390_tune < PROCESSOR_2097_Z10)
return nunroll;
/* Count the number of memory references within the loop body. */
@@ -13553,10 +13550,7 @@ s390_option_override (void)
target_flags |= MASK_LONG_DOUBLE_128;
#endif
- if (s390_tune == PROCESSOR_2097_Z10
- || s390_tune == PROCESSOR_2817_Z196
- || s390_tune == PROCESSOR_2827_ZEC12
- || s390_tune == PROCESSOR_2964_Z13)
+ if (s390_tune >= PROCESSOR_2097_Z10)
{
maybe_set_param_value (PARAM_MAX_UNROLLED_INSNS, 100,
global_options.x_param_values,
--
2.3.0