1
- //-- SystemZScheduleArch13 .td - SystemZ Scheduling Definitions ----*- tblgen -*-=//
1
+ //-- SystemZScheduleZ15 .td - SystemZ Scheduling Definitions ----*- tblgen -*-=//
2
2
//
3
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
4
// See https://llvm.org/LICENSE.txt for license information.
5
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
6
//
7
7
//===----------------------------------------------------------------------===//
8
8
//
9
- // This file defines the machine model for Arch13 to support instruction
9
+ // This file defines the machine model for Z15 to support instruction
10
10
// scheduling and other instruction cost heuristics.
11
11
//
12
12
// Pseudos expanded right after isel do not need to be modelled here.
13
13
//
14
14
//===----------------------------------------------------------------------===//
15
15
16
- def Arch13Model : SchedMachineModel {
16
+ def Z15Model : SchedMachineModel {
17
17
18
18
let UnsupportedFeatures = Arch13UnsupportedFeatures.List;
19
19
@@ -27,7 +27,7 @@ def Arch13Model : SchedMachineModel {
27
27
let MispredictPenalty = 20;
28
28
}
29
29
30
- let SchedModel = Arch13Model in {
30
+ let SchedModel = Z15Model in {
31
31
// These definitions need the SchedModel value. They could be put in a
32
32
// subtarget common include file, but it seems the include system in Tablegen
33
33
// currently (2016) rejects multiple includes of same file.
@@ -73,43 +73,43 @@ let NumMicroOps = 0 in {
73
73
}
74
74
75
75
// Execution units.
76
- def Arch13_FXaUnit : ProcResource<2>;
77
- def Arch13_FXbUnit : ProcResource<2>;
78
- def Arch13_LSUnit : ProcResource<2>;
79
- def Arch13_VecUnit : ProcResource<2>;
80
- def Arch13_VecFPdUnit : ProcResource<2> { let BufferSize = 1; /* blocking */ }
81
- def Arch13_VBUnit : ProcResource<2>;
82
- def Arch13_MCD : ProcResource<1>;
76
+ def Z15_FXaUnit : ProcResource<2>;
77
+ def Z15_FXbUnit : ProcResource<2>;
78
+ def Z15_LSUnit : ProcResource<2>;
79
+ def Z15_VecUnit : ProcResource<2>;
80
+ def Z15_VecFPdUnit : ProcResource<2> { let BufferSize = 1; /* blocking */ }
81
+ def Z15_VBUnit : ProcResource<2>;
82
+ def Z15_MCD : ProcResource<1>;
83
83
84
84
// Subtarget specific definitions of scheduling resources.
85
85
let NumMicroOps = 0 in {
86
- def : WriteRes<FXa, [Arch13_FXaUnit ]>;
87
- def : WriteRes<FXb, [Arch13_FXbUnit ]>;
88
- def : WriteRes<LSU, [Arch13_LSUnit ]>;
89
- def : WriteRes<VecBF, [Arch13_VecUnit ]>;
90
- def : WriteRes<VecDF, [Arch13_VecUnit ]>;
91
- def : WriteRes<VecDFX, [Arch13_VecUnit ]>;
92
- def : WriteRes<VecMul, [Arch13_VecUnit ]>;
93
- def : WriteRes<VecStr, [Arch13_VecUnit ]>;
94
- def : WriteRes<VecXsPm, [Arch13_VecUnit ]>;
86
+ def : WriteRes<FXa, [Z15_FXaUnit ]>;
87
+ def : WriteRes<FXb, [Z15_FXbUnit ]>;
88
+ def : WriteRes<LSU, [Z15_LSUnit ]>;
89
+ def : WriteRes<VecBF, [Z15_VecUnit ]>;
90
+ def : WriteRes<VecDF, [Z15_VecUnit ]>;
91
+ def : WriteRes<VecDFX, [Z15_VecUnit ]>;
92
+ def : WriteRes<VecMul, [Z15_VecUnit ]>;
93
+ def : WriteRes<VecStr, [Z15_VecUnit ]>;
94
+ def : WriteRes<VecXsPm, [Z15_VecUnit ]>;
95
95
foreach Num = 2-5 in { let ResourceCycles = [Num] in {
96
- def : WriteRes<!cast<SchedWrite>("FXa"#Num), [Arch13_FXaUnit ]>;
97
- def : WriteRes<!cast<SchedWrite>("FXb"#Num), [Arch13_FXbUnit ]>;
98
- def : WriteRes<!cast<SchedWrite>("LSU"#Num), [Arch13_LSUnit ]>;
99
- def : WriteRes<!cast<SchedWrite>("VecBF"#Num), [Arch13_VecUnit ]>;
100
- def : WriteRes<!cast<SchedWrite>("VecDF"#Num), [Arch13_VecUnit ]>;
101
- def : WriteRes<!cast<SchedWrite>("VecDFX"#Num), [Arch13_VecUnit ]>;
102
- def : WriteRes<!cast<SchedWrite>("VecMul"#Num), [Arch13_VecUnit ]>;
103
- def : WriteRes<!cast<SchedWrite>("VecStr"#Num), [Arch13_VecUnit ]>;
104
- def : WriteRes<!cast<SchedWrite>("VecXsPm"#Num), [Arch13_VecUnit ]>;
96
+ def : WriteRes<!cast<SchedWrite>("FXa"#Num), [Z15_FXaUnit ]>;
97
+ def : WriteRes<!cast<SchedWrite>("FXb"#Num), [Z15_FXbUnit ]>;
98
+ def : WriteRes<!cast<SchedWrite>("LSU"#Num), [Z15_LSUnit ]>;
99
+ def : WriteRes<!cast<SchedWrite>("VecBF"#Num), [Z15_VecUnit ]>;
100
+ def : WriteRes<!cast<SchedWrite>("VecDF"#Num), [Z15_VecUnit ]>;
101
+ def : WriteRes<!cast<SchedWrite>("VecDFX"#Num), [Z15_VecUnit ]>;
102
+ def : WriteRes<!cast<SchedWrite>("VecMul"#Num), [Z15_VecUnit ]>;
103
+ def : WriteRes<!cast<SchedWrite>("VecStr"#Num), [Z15_VecUnit ]>;
104
+ def : WriteRes<!cast<SchedWrite>("VecXsPm"#Num), [Z15_VecUnit ]>;
105
105
}}
106
106
107
- def : WriteRes<VecFPd, [Arch13_VecFPdUnit ]> { let ResourceCycles = [30]; }
107
+ def : WriteRes<VecFPd, [Z15_VecFPdUnit ]> { let ResourceCycles = [30]; }
108
108
109
- def : WriteRes<VBU, [Arch13_VBUnit ]>; // Virtual Branching Unit
109
+ def : WriteRes<VBU, [Z15_VBUnit ]>; // Virtual Branching Unit
110
110
}
111
111
112
- def : WriteRes<MCD, [Arch13_MCD ]> { let NumMicroOps = 3;
112
+ def : WriteRes<MCD, [Z15_MCD ]> { let NumMicroOps = 3;
113
113
let BeginGroup = 1;
114
114
let EndGroup = 1; }
115
115
0 commit comments