s390: Add scheduler description for z16.
This patch adds the scheduler description for the z16 machine. gcc/ChangeLog: * config/s390/s390.cc (s390_get_sched_attrmask): Add z16. (s390_get_unit_mask): Likewise. (s390_is_fpd): Likewise. (s390_is_fxd): Likewise. * config/s390/s390.h (s390_tune_attr): Set max tune level to z16. * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15): Add z16. (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16): Likewise. * config/s390/3931.md: New file.
This commit is contained in:
parent
41a72a744a
commit
db4ce4a3d7
4 changed files with 2592 additions and 6 deletions
2562
gcc/config/s390/3931.md
Normal file
2562
gcc/config/s390/3931.md
Normal file
File diff suppressed because it is too large
Load diff
|
@ -14873,7 +14873,6 @@ s390_get_sched_attrmask (rtx_insn *insn)
|
|||
mask |= S390_SCHED_ATTR_MASK_GROUPOFTWO;
|
||||
break;
|
||||
case PROCESSOR_8561_Z15:
|
||||
case PROCESSOR_3931_Z16:
|
||||
if (get_attr_z15_cracked (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_CRACKED;
|
||||
if (get_attr_z15_expanded (insn))
|
||||
|
@ -14885,6 +14884,18 @@ s390_get_sched_attrmask (rtx_insn *insn)
|
|||
if (get_attr_z15_groupoftwo (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_GROUPOFTWO;
|
||||
break;
|
||||
case PROCESSOR_3931_Z16:
|
||||
if (get_attr_z16_cracked (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_CRACKED;
|
||||
if (get_attr_z16_expanded (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_EXPANDED;
|
||||
if (get_attr_z16_endgroup (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_ENDGROUP;
|
||||
if (get_attr_z16_groupalone (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_GROUPALONE;
|
||||
if (get_attr_z16_groupoftwo (insn))
|
||||
mask |= S390_SCHED_ATTR_MASK_GROUPOFTWO;
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -14921,7 +14932,6 @@ s390_get_unit_mask (rtx_insn *insn, int *units)
|
|||
mask |= 1 << 3;
|
||||
break;
|
||||
case PROCESSOR_8561_Z15:
|
||||
case PROCESSOR_3931_Z16:
|
||||
*units = 4;
|
||||
if (get_attr_z15_unit_lsu (insn))
|
||||
mask |= 1 << 0;
|
||||
|
@ -14932,6 +14942,17 @@ s390_get_unit_mask (rtx_insn *insn, int *units)
|
|||
if (get_attr_z15_unit_vfu (insn))
|
||||
mask |= 1 << 3;
|
||||
break;
|
||||
case PROCESSOR_3931_Z16:
|
||||
*units = 4;
|
||||
if (get_attr_z16_unit_lsu (insn))
|
||||
mask |= 1 << 0;
|
||||
if (get_attr_z16_unit_fxa (insn))
|
||||
mask |= 1 << 1;
|
||||
if (get_attr_z16_unit_fxb (insn))
|
||||
mask |= 1 << 2;
|
||||
if (get_attr_z16_unit_vfu (insn))
|
||||
mask |= 1 << 3;
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -14945,7 +14966,7 @@ s390_is_fpd (rtx_insn *insn)
|
|||
return false;
|
||||
|
||||
return get_attr_z13_unit_fpd (insn) || get_attr_z14_unit_fpd (insn)
|
||||
|| get_attr_z15_unit_fpd (insn);
|
||||
|| get_attr_z15_unit_fpd (insn) || get_attr_z16_unit_fpd (insn);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
@ -14955,7 +14976,7 @@ s390_is_fxd (rtx_insn *insn)
|
|||
return false;
|
||||
|
||||
return get_attr_z13_unit_fxd (insn) || get_attr_z14_unit_fxd (insn)
|
||||
|| get_attr_z15_unit_fxd (insn);
|
||||
|| get_attr_z15_unit_fxd (insn) || get_attr_z16_unit_fxd (insn);
|
||||
}
|
||||
|
||||
/* Returns TRUE if INSN is a long-running instruction. */
|
||||
|
|
|
@ -48,7 +48,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_8561_Z15 ? PROCESSOR_8561_Z15 : s390_tune ))
|
||||
#define s390_tune_attr ((enum attr_cpu)(s390_tune > PROCESSOR_3931_Z16 ? PROCESSOR_3931_Z16 : s390_tune ))
|
||||
|
||||
/* These flags indicate that the generated code should run on a cpu
|
||||
providing the respective hardware facility regardless of the
|
||||
|
|
|
@ -518,7 +518,7 @@
|
|||
;; Processor type. This attribute must exactly match the processor_type
|
||||
;; enumeration in s390.h.
|
||||
|
||||
(define_attr "cpu" "z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15"
|
||||
(define_attr "cpu" "z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16"
|
||||
(const (symbol_ref "s390_tune_attr")))
|
||||
|
||||
(define_attr "cpu_facility"
|
||||
|
@ -629,6 +629,9 @@
|
|||
;; Pipeline description for z15
|
||||
(include "8561.md")
|
||||
|
||||
;; Pipeline description for z16
|
||||
(include "3931.md")
|
||||
|
||||
;; Predicates
|
||||
(include "predicates.md")
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue