Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/BPF/BPFGenSubtargetInfo.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Subtarget Enumeration Source Fragment                                      *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
10
#ifdef GET_SUBTARGETINFO_ENUM
11
#undef GET_SUBTARGETINFO_ENUM
12
13
namespace llvm {
14
namespace BPF {
15
enum {
16
  ALU32 = 0,
17
  DummyFeature = 1,
18
  DwarfRIS = 2,
19
  NumSubtargetFeatures = 3
20
};
21
} // end namespace BPF
22
} // end namespace llvm
23
24
#endif // GET_SUBTARGETINFO_ENUM
25
26
27
#ifdef GET_SUBTARGETINFO_MACRO
28
GET_SUBTARGETINFO_MACRO(HasAlu32, false, hasAlu32)
29
GET_SUBTARGETINFO_MACRO(UseDwarfRIS, false, useDwarfRIS)
30
GET_SUBTARGETINFO_MACRO(isDummyMode, false, isDummyMode)
31
#undef GET_SUBTARGETINFO_MACRO
32
#endif // GET_SUBTARGETINFO_MACRO
33
34
35
#ifdef GET_SUBTARGETINFO_MC_DESC
36
#undef GET_SUBTARGETINFO_MC_DESC
37
38
namespace llvm {
39
// Sorted (by key) array of values for CPU features.
40
extern const llvm::SubtargetFeatureKV BPFFeatureKV[] = {
41
  { "alu32", "Enable ALU32 instructions", BPF::ALU32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
42
  { "dummy", "unused feature", BPF::DummyFeature, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
43
  { "dwarfris", "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections", BPF::DwarfRIS, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
44
};
45
46
#ifdef DBGFIELD
47
#error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro"
48
#endif
49
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
50
#define DBGFIELD(x) x,
51
#else
52
#define DBGFIELD(x)
53
#endif
54
55
// ===============================================================
56
// Data tables for the new per-operand machine model.
57
58
// {ProcResourceIdx, ReleaseAtCycle, AcquireAtCycle}
59
extern const llvm::MCWriteProcResEntry BPFWriteProcResTable[] = {
60
  { 0,  0,  0 }, // Invalid
61
}; // BPFWriteProcResTable
62
63
// {Cycles, WriteResourceID}
64
extern const llvm::MCWriteLatencyEntry BPFWriteLatencyTable[] = {
65
  { 0,  0}, // Invalid
66
}; // BPFWriteLatencyTable
67
68
// {UseIdx, WriteResourceID, Cycles}
69
extern const llvm::MCReadAdvanceEntry BPFReadAdvanceTable[] = {
70
  {0,  0,  0}, // Invalid
71
}; // BPFReadAdvanceTable
72
73
#undef DBGFIELD
74
75
static const llvm::MCSchedModel NoSchedModel = {
76
  MCSchedModel::DefaultIssueWidth,
77
  MCSchedModel::DefaultMicroOpBufferSize,
78
  MCSchedModel::DefaultLoopMicroOpBufferSize,
79
  MCSchedModel::DefaultLoadLatency,
80
  MCSchedModel::DefaultHighLatency,
81
  MCSchedModel::DefaultMispredictPenalty,
82
  false, // PostRAScheduler
83
  false, // CompleteModel
84
  false, // EnableIntervals
85
  0, // Processor ID
86
  nullptr, nullptr, 0, 0, // No instruction-level machine model.
87
  nullptr, // No Itinerary
88
  nullptr // No extra processor descriptor
89
};
90
91
// Sorted (by key) array of values for CPU subtype.
92
extern const llvm::SubtargetSubTypeKV BPFSubTypeKV[] = {
93
 { "generic", { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
94
 { "probe", { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
95
 { "v1", { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
96
 { "v2", { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
97
 { "v3", { { { 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
98
 { "v4", { { { 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
99
};
100
101
namespace BPF_MC {
102
unsigned resolveVariantSchedClassImpl(unsigned SchedClass,
103
0
    const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) {
104
  // Don't know how to resolve this scheduling class.
105
0
  return 0;
106
0
}
107
} // end namespace BPF_MC
108
109
struct BPFGenMCSubtargetInfo : public MCSubtargetInfo {
110
  BPFGenMCSubtargetInfo(const Triple &TT,
111
    StringRef CPU, StringRef TuneCPU, StringRef FS,
112
    ArrayRef<SubtargetFeatureKV> PF,
113
    ArrayRef<SubtargetSubTypeKV> PD,
114
    const MCWriteProcResEntry *WPR,
115
    const MCWriteLatencyEntry *WL,
116
    const MCReadAdvanceEntry *RA, const InstrStage *IS,
117
    const unsigned *OC, const unsigned *FP) :
118
      MCSubtargetInfo(TT, CPU, TuneCPU, FS, PF, PD,
119
2
                      WPR, WL, RA, IS, OC, FP) { }
120
121
  unsigned resolveVariantSchedClass(unsigned SchedClass,
122
      const MCInst *MI, const MCInstrInfo *MCII,
123
0
      unsigned CPUID) const override {
124
0
    return BPF_MC::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID);
125
0
  }
126
};
127
128
2
static inline MCSubtargetInfo *createBPFMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS) {
129
2
  return new BPFGenMCSubtargetInfo(TT, CPU, TuneCPU, FS, BPFFeatureKV, BPFSubTypeKV, 
130
2
                      BPFWriteProcResTable, BPFWriteLatencyTable, BPFReadAdvanceTable, 
131
2
                      nullptr, nullptr, nullptr);
132
2
}
133
134
} // end namespace llvm
135
136
#endif // GET_SUBTARGETINFO_MC_DESC
137
138
139
#ifdef GET_SUBTARGETINFO_TARGET_DESC
140
#undef GET_SUBTARGETINFO_TARGET_DESC
141
142
#include "llvm/Support/Debug.h"
143
#include "llvm/Support/raw_ostream.h"
144
145
// ParseSubtargetFeatures - Parses features string setting specified
146
// subtarget options.
147
2
void llvm::BPFSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS) {
148
2
  LLVM_DEBUG(dbgs() << "\nFeatures:" << FS);
149
2
  LLVM_DEBUG(dbgs() << "\nCPU:" << CPU);
150
2
  LLVM_DEBUG(dbgs() << "\nTuneCPU:" << TuneCPU << "\n\n");
151
2
  InitMCProcessorInfo(CPU, TuneCPU, FS);
152
2
  const FeatureBitset &Bits = getFeatureBits();
153
2
  if (Bits[BPF::ALU32]) HasAlu32 = true;
154
2
  if (Bits[BPF::DummyFeature]) isDummyMode = true;
155
2
  if (Bits[BPF::DwarfRIS]) UseDwarfRIS = true;
156
2
}
157
#endif // GET_SUBTARGETINFO_TARGET_DESC
158
159
160
#ifdef GET_SUBTARGETINFO_HEADER
161
#undef GET_SUBTARGETINFO_HEADER
162
163
namespace llvm {
164
class DFAPacketizer;
165
namespace BPF_MC {
166
unsigned resolveVariantSchedClassImpl(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID);
167
} // end namespace BPF_MC
168
169
struct BPFGenSubtargetInfo : public TargetSubtargetInfo {
170
  explicit BPFGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS);
171
public:
172
  unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
173
  unsigned resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) const override;
174
  DFAPacketizer *createDFAPacketizer(const InstrItineraryData *IID) const;
175
};
176
} // end namespace llvm
177
178
#endif // GET_SUBTARGETINFO_HEADER
179
180
181
#ifdef GET_SUBTARGETINFO_CTOR
182
#undef GET_SUBTARGETINFO_CTOR
183
184
#include "llvm/CodeGen/TargetSchedule.h"
185
186
namespace llvm {
187
extern const llvm::SubtargetFeatureKV BPFFeatureKV[];
188
extern const llvm::SubtargetSubTypeKV BPFSubTypeKV[];
189
extern const llvm::MCWriteProcResEntry BPFWriteProcResTable[];
190
extern const llvm::MCWriteLatencyEntry BPFWriteLatencyTable[];
191
extern const llvm::MCReadAdvanceEntry BPFReadAdvanceTable[];
192
BPFGenSubtargetInfo::BPFGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS)
193
  : TargetSubtargetInfo(TT, CPU, TuneCPU, FS, ArrayRef(BPFFeatureKV, 3), ArrayRef(BPFSubTypeKV, 6), 
194
                        BPFWriteProcResTable, BPFWriteLatencyTable, BPFReadAdvanceTable, 
195
2
                        nullptr, nullptr, nullptr) {}
196
197
unsigned BPFGenSubtargetInfo
198
0
::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
199
0
  report_fatal_error("Expected a variant SchedClass");
200
0
} // BPFGenSubtargetInfo::resolveSchedClass
201
202
unsigned BPFGenSubtargetInfo
203
0
::resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) const {
204
0
  return BPF_MC::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID);
205
0
} // BPFGenSubtargetInfo::resolveVariantSchedClass
206
207
} // end namespace llvm
208
209
#endif // GET_SUBTARGETINFO_CTOR
210
211
212
#ifdef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
213
#undef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
214
215
#endif // GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
216
217
218
#ifdef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
219
#undef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
220
221
#endif // GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
222