Commit ff99338c by Robin Dapp Committed by Robin Dapp

S/390: Rework instruction scheduling.

This patch set adds new pipeline descriptions for z13 and z14.  Based
on that, the scoring and some properties are handled differently in
the scheduler hooks.

The patch before (r269620) also belongs to this set but I accidentally
applied it separately.

From-SVN: r269622
parent 2380e042
2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
* config/s390/3906.md: New file.
* config/s390/s390.c (MAX_SCHED_UNITS): Increase.
(LONGRUNNING_THRESHOLD): Remove.
(MAX_SCHED_MIX_SCORE): Decrease.
(MAX_SCHED_MIX_DISTANCE): Decrease.
(s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
(struct s390_sched_state): New struct to hold scheduling state.
(S390_SCHED_STATE_NORMAL): Remove.
(S390_SCHED_STATE_CRACKED): Remove.
(S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
(s390_get_sched_attrmask): Use new attribute.
(s390_get_unit_mask): Use new units.
(s390_is_fpd): New function.
(s390_is_fxd): New function.
(s390_is_longrunning): New function.
(s390_sched_score): Use new functions.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Rework and use new functions.
(s390_sched_init): Use new functions.
* config/s390/s390.h (s390_tune_attr): Add z14.
* config/s390/s390.md: Add z14.
2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
* config/s390/2964.md: Update pipeline description.
* config/s390/s390.c (MAX_SCHED_UNITS): Increase.
(LONGRUNNING_THRESHOLD): Remove.
......
......@@ -44,7 +44,7 @@ enum processor_flags
/* This is necessary to avoid a warning about comparing different enum
types. */
#define s390_tune_attr ((enum attr_cpu)(s390_tune > PROCESSOR_2964_Z13 ? PROCESSOR_2964_Z13 : s390_tune ))
#define s390_tune_attr ((enum attr_cpu)(s390_tune > PROCESSOR_3906_Z14 ? PROCESSOR_3906_Z14 : s390_tune ))
/* These flags indicate that the generated code should run on a cpu
providing the respective hardware facility regardless of the
......
......@@ -595,6 +595,9 @@
;; Pipeline description for z13
(include "2964.md")
;; Pipeline description for z14
(include "3906.md")
;; Predicates
(include "predicates.md")
......
2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
* gcc.target/s390/memset-1.c: Adapt test case for new scheduling.
2019-03-12 Martin Liska <mliska@suse.cz>
* gfortran.dg/abstract_type_3.f03: Amend test-case scan
......
......@@ -74,7 +74,7 @@ void
return __builtin_memset (s, c, 1029);
}
/* 2 stc 1 stcy 3 mvc - displacement overflow after the first */
/* 3 stc 3 mvc - displacement overflow after the first */
void
*memset10(void *s, int c)
{
......@@ -172,6 +172,6 @@ void
/* { dg-final { scan-assembler-times "mvi\\s" 1 } } */
/* { dg-final { scan-assembler-times "mvc\\s" 20 } } */
/* { dg-final { scan-assembler-times "xc\\s" 28 } } */
/* { dg-final { scan-assembler-times "stc\\s" 21 } } */
/* { dg-final { scan-assembler-times "stcy\\s" 1 } } */
/* { dg-final { scan-assembler-times "stc\\s" 22 } } */
/* { dg-final { scan-assembler-times "stcy\\s" 0 } } */
/* { dg-final { scan-assembler-times "pfd\\s" 2 } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment