Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/AMDGPU/R600GenDFAPacketizer.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Target DFA Packetizer Tables                                               *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
10
#include "llvm/CodeGen/DFAPacketizer.h"
11
namespace llvm {
12
} // end namespace llvm
13
14
namespace {
15
constexpr unsigned R600ResourceIndices[] = {
16
  0, 1, 2, 3, 1, 4, 0, 1, 2, 2, 1, 0, 
17
};
18
19
constexpr unsigned R600ProcResourceIndexStart[] = {
20
  0, // NoSchedModel
21
  0, // R600_VLIW5_ItinModel
22
  6, // R600_VLIW4_ItinModel
23
  12
24
};
25
26
// Input NFA has 32 states with 176 transitions.
27
// Generated DFA has 23 states with 70 transitions.
28
29
// A zero-terminated sequence of NFA state transitions. Every DFA
30
// transition implies a set of NFA transitions. These are referred
31
// to by index in R600Transitions[].
32
const std::array<NfaStatePair, 367> R600TransitionInfo = {{
33
  /* 0 */ {0, 1}, {0ULL, 0ULL},
34
  /* 2 */ {0, 1}, {0, 2}, {0, 4}, {0, 8}, {0ULL, 0ULL},
35
  /* 7 */ {0, 1}, {0, 2}, {0, 4}, {0, 8}, {0, 16}, {0ULL, 0ULL},
36
  /* 13 */ {1, 3}, {1, 5}, {1, 9}, {0ULL, 0ULL},
37
  /* 17 */ {1, 3}, {1, 5}, {1, 9}, {1, 17}, {0ULL, 0ULL},
38
  /* 22 */ {2, 3}, {4, 5}, {8, 9}, {0ULL, 0ULL},
39
  /* 26 */ {1, 3}, {1, 5}, {1, 9}, {2, 3}, {2, 6}, {2, 10}, {4, 5}, {4, 6}, {4, 12}, {8, 9}, {8, 10}, {8, 12}, {0ULL, 0ULL},
40
  /* 39 */ {1, 17}, {2, 18}, {4, 20}, {8, 24}, {0ULL, 0ULL},
41
  /* 44 */ {1, 3}, {1, 5}, {1, 9}, {1, 17}, {2, 3}, {2, 6}, {2, 10}, {2, 18}, {4, 5}, {4, 6}, {4, 12}, {4, 20}, {8, 9}, {8, 10}, {8, 12}, {8, 24}, {0ULL, 0ULL},
42
  /* 61 */ {3, 7}, {3, 11}, {5, 7}, {5, 13}, {9, 11}, {9, 13}, {0ULL, 0ULL},
43
  /* 68 */ {3, 19}, {5, 21}, {9, 25}, {0ULL, 0ULL},
44
  /* 72 */ {3, 7}, {3, 11}, {3, 19}, {5, 7}, {5, 13}, {5, 21}, {9, 11}, {9, 13}, {9, 25}, {0ULL, 0ULL},
45
  /* 82 */ {6, 7}, {10, 11}, {12, 13}, {0ULL, 0ULL},
46
  /* 86 */ {3, 7}, {3, 11}, {5, 7}, {5, 13}, {6, 7}, {6, 14}, {9, 11}, {9, 13}, {10, 11}, {10, 14}, {12, 13}, {12, 14}, {0ULL, 0ULL},
47
  /* 99 */ {3, 19}, {5, 21}, {6, 22}, {9, 25}, {10, 26}, {12, 28}, {0ULL, 0ULL},
48
  /* 106 */ {3, 7}, {3, 11}, {3, 19}, {5, 7}, {5, 13}, {5, 21}, {6, 7}, {6, 14}, {6, 22}, {9, 11}, {9, 13}, {9, 25}, {10, 11}, {10, 14}, {10, 26}, {12, 13}, {12, 14}, {12, 28}, {0ULL, 0ULL},
49
  /* 125 */ {7, 15}, {11, 15}, {13, 15}, {0ULL, 0ULL},
50
  /* 129 */ {7, 23}, {11, 27}, {13, 29}, {0ULL, 0ULL},
51
  /* 133 */ {7, 15}, {7, 23}, {11, 15}, {11, 27}, {13, 15}, {13, 29}, {0ULL, 0ULL},
52
  /* 140 */ {7, 15}, {11, 15}, {13, 15}, {14, 15}, {0ULL, 0ULL},
53
  /* 145 */ {7, 23}, {11, 27}, {13, 29}, {14, 30}, {0ULL, 0ULL},
54
  /* 150 */ {7, 15}, {7, 23}, {11, 15}, {11, 27}, {13, 15}, {13, 29}, {14, 15}, {14, 30}, {0ULL, 0ULL},
55
  /* 159 */ {15, 31}, {0ULL, 0ULL},
56
  /* 161 */ {2, 3}, {4, 5}, {8, 9}, {16, 17}, {0ULL, 0ULL},
57
  /* 166 */ {1, 3}, {1, 5}, {1, 9}, {2, 3}, {2, 6}, {2, 10}, {4, 5}, {4, 6}, {4, 12}, {8, 9}, {8, 10}, {8, 12}, {16, 17}, {16, 18}, {16, 20}, {16, 24}, {0ULL, 0ULL},
58
  /* 183 */ {1, 3}, {1, 5}, {1, 9}, {1, 17}, {2, 3}, {2, 6}, {2, 10}, {2, 18}, {4, 5}, {4, 6}, {4, 12}, {4, 20}, {8, 9}, {8, 10}, {8, 12}, {8, 24}, {16, 17}, {16, 18}, {16, 20}, {16, 24}, {0ULL, 0ULL},
59
  /* 204 */ {3, 7}, {3, 11}, {5, 7}, {5, 13}, {9, 11}, {9, 13}, {17, 19}, {17, 21}, {17, 25}, {0ULL, 0ULL},
60
  /* 214 */ {3, 7}, {3, 11}, {3, 19}, {5, 7}, {5, 13}, {5, 21}, {9, 11}, {9, 13}, {9, 25}, {17, 19}, {17, 21}, {17, 25}, {0ULL, 0ULL},
61
  /* 227 */ {6, 7}, {10, 11}, {12, 13}, {18, 19}, {20, 21}, {24, 25}, {0ULL, 0ULL},
62
  /* 234 */ {3, 7}, {3, 11}, {5, 7}, {5, 13}, {6, 7}, {6, 14}, {9, 11}, {9, 13}, {10, 11}, {10, 14}, {12, 13}, {12, 14}, {17, 19}, {17, 21}, {17, 25}, {18, 19}, {18, 22}, {18, 26}, {20, 21}, {20, 22}, {20, 28}, {24, 25}, {24, 26}, {24, 28}, {0ULL, 0ULL},
63
  /* 259 */ {3, 7}, {3, 11}, {3, 19}, {5, 7}, {5, 13}, {5, 21}, {6, 7}, {6, 14}, {6, 22}, {9, 11}, {9, 13}, {9, 25}, {10, 11}, {10, 14}, {10, 26}, {12, 13}, {12, 14}, {12, 28}, {17, 19}, {17, 21}, {17, 25}, {18, 19}, {18, 22}, {18, 26}, {20, 21}, {20, 22}, {20, 28}, {24, 25}, {24, 26}, {24, 28}, {0ULL, 0ULL},
64
  /* 290 */ {7, 15}, {11, 15}, {13, 15}, {19, 23}, {19, 27}, {21, 23}, {21, 29}, {25, 27}, {25, 29}, {0ULL, 0ULL},
65
  /* 300 */ {7, 15}, {7, 23}, {11, 15}, {11, 27}, {13, 15}, {13, 29}, {19, 23}, {19, 27}, {21, 23}, {21, 29}, {25, 27}, {25, 29}, {0ULL, 0ULL},
66
  /* 313 */ {14, 15}, {22, 23}, {26, 27}, {28, 29}, {0ULL, 0ULL},
67
  /* 318 */ {7, 15}, {11, 15}, {13, 15}, {14, 15}, {19, 23}, {19, 27}, {21, 23}, {21, 29}, {22, 23}, {22, 30}, {25, 27}, {25, 29}, {26, 27}, {26, 30}, {28, 29}, {28, 30}, {0ULL, 0ULL},
68
  /* 335 */ {7, 15}, {7, 23}, {11, 15}, {11, 27}, {13, 15}, {13, 29}, {14, 15}, {14, 30}, {19, 23}, {19, 27}, {21, 23}, {21, 29}, {22, 23}, {22, 30}, {25, 27}, {25, 29}, {26, 27}, {26, 30}, {28, 29}, {28, 30}, {0ULL, 0ULL},
69
  /* 356 */ {15, 31}, {23, 31}, {27, 31}, {29, 31}, {0ULL, 0ULL},
70
  /* 361 */ {15, 31}, {23, 31}, {27, 31}, {29, 31}, {30, 31}, {0ULL, 0ULL},
71
}};
72
73
// A transition in the generated R600 DFA.
74
struct R600Transition {
75
  unsigned FromDfaState; // The transitioned-from DFA state.
76
  uint64_t Action;       // The input symbol that causes this transition.
77
  unsigned ToDfaState;   // The transitioned-to DFA state.
78
  unsigned InfoIdx;      // Start index into R600TransitionInfo.
79
};
80
81
// A table of DFA transitions, ordered by {FromDfaState, Action}.
82
// The initial state is 1, not zero.
83
const std::array<R600Transition, 70> R600Transitions = {{
84
  {1, 1, 2, 11},
85
  {1, 2, 3, 2},
86
  {1, 3, 4, 7},
87
  {1, 4, 5, 0},
88
  {2, 2, 6, 178},
89
  {2, 3, 6, 178},
90
  {2, 4, 7, 164},
91
  {3, 1, 6, 39},
92
  {3, 2, 8, 26},
93
  {3, 3, 9, 44},
94
  {3, 4, 10, 22},
95
  {4, 1, 6, 39},
96
  {4, 2, 9, 166},
97
  {4, 3, 9, 183},
98
  {4, 4, 11, 161},
99
  {5, 1, 7, 20},
100
  {5, 2, 10, 13},
101
  {5, 3, 11, 17},
102
  {6, 2, 12, 246},
103
  {6, 3, 12, 246},
104
  {6, 4, 13, 230},
105
  {7, 2, 13, 210},
106
  {7, 3, 13, 210},
107
  {8, 1, 12, 99},
108
  {8, 2, 14, 86},
109
  {8, 3, 15, 106},
110
  {8, 4, 16, 82},
111
  {9, 1, 12, 99},
112
  {9, 2, 15, 234},
113
  {9, 3, 15, 259},
114
  {9, 4, 17, 227},
115
  {10, 1, 13, 68},
116
  {10, 2, 16, 61},
117
  {10, 3, 17, 72},
118
  {11, 1, 13, 68},
119
  {11, 2, 17, 204},
120
  {11, 3, 17, 214},
121
  {12, 2, 18, 322},
122
  {12, 3, 18, 322},
123
  {12, 4, 19, 314},
124
  {13, 2, 19, 293},
125
  {13, 3, 19, 293},
126
  {14, 1, 18, 145},
127
  {14, 2, 20, 140},
128
  {14, 3, 21, 150},
129
  {14, 4, 20, 143},
130
  {15, 1, 18, 145},
131
  {15, 2, 21, 318},
132
  {15, 3, 21, 335},
133
  {15, 4, 22, 313},
134
  {16, 1, 19, 129},
135
  {16, 2, 20, 125},
136
  {16, 3, 22, 133},
137
  {17, 1, 19, 129},
138
  {17, 2, 22, 290},
139
  {17, 3, 22, 300},
140
  {18, 2, 23, 362},
141
  {18, 3, 23, 362},
142
  {18, 4, 23, 365},
143
  {19, 2, 23, 357},
144
  {19, 3, 23, 357},
145
  {20, 1, 23, 159},
146
  {20, 3, 23, 159},
147
  {21, 1, 23, 159},
148
  {21, 2, 23, 362},
149
  {21, 3, 23, 361},
150
  {21, 4, 23, 365},
151
  {22, 1, 23, 159},
152
  {22, 2, 23, 357},
153
  {22, 3, 23, 356},
154
155
}};
156
157
} // end anonymous namespace
158
159
namespace llvm {
160
0
DFAPacketizer *R600GenSubtargetInfo::createDFAPacketizer(const InstrItineraryData *IID) const {
161
0
  static Automaton<uint64_t> A(ArrayRef<R600Transition>(R600Transitions), R600TransitionInfo);
162
0
  unsigned ProcResIdxStart = R600ProcResourceIndexStart[IID->SchedModel.ProcID];
163
0
  unsigned ProcResIdxNum = R600ProcResourceIndexStart[IID->SchedModel.ProcID + 1] - ProcResIdxStart;
164
0
  return new DFAPacketizer(IID, A, {&R600ResourceIndices[ProcResIdxStart], ProcResIdxNum});
165
166
0
}
167
168
} // end namespace llvm