| 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 NVPTX { |
| 15 | enum { |
| 16 | PTX32 = 0, |
| 17 | PTX40 = 1, |
| 18 | PTX41 = 2, |
| 19 | PTX42 = 3, |
| 20 | PTX43 = 4, |
| 21 | PTX50 = 5, |
| 22 | PTX60 = 6, |
| 23 | PTX61 = 7, |
| 24 | PTX62 = 8, |
| 25 | PTX63 = 9, |
| 26 | PTX64 = 10, |
| 27 | PTX65 = 11, |
| 28 | PTX70 = 12, |
| 29 | PTX71 = 13, |
| 30 | PTX72 = 14, |
| 31 | PTX73 = 15, |
| 32 | PTX74 = 16, |
| 33 | PTX75 = 17, |
| 34 | PTX76 = 18, |
| 35 | PTX77 = 19, |
| 36 | PTX78 = 20, |
| 37 | PTX80 = 21, |
| 38 | PTX81 = 22, |
| 39 | PTX82 = 23, |
| 40 | PTX83 = 24, |
| 41 | PTX84 = 25, |
| 42 | PTX85 = 26, |
| 43 | PTX86 = 27, |
| 44 | PTX87 = 28, |
| 45 | PTX88 = 29, |
| 46 | SM20 = 30, |
| 47 | SM21 = 31, |
| 48 | SM30 = 32, |
| 49 | SM32 = 33, |
| 50 | SM35 = 34, |
| 51 | SM37 = 35, |
| 52 | SM50 = 36, |
| 53 | SM52 = 37, |
| 54 | SM53 = 38, |
| 55 | SM60 = 39, |
| 56 | SM61 = 40, |
| 57 | SM62 = 41, |
| 58 | SM70 = 42, |
| 59 | SM72 = 43, |
| 60 | SM75 = 44, |
| 61 | SM80 = 45, |
| 62 | SM86 = 46, |
| 63 | SM87 = 47, |
| 64 | SM89 = 48, |
| 65 | SM90 = 49, |
| 66 | SM90a = 50, |
| 67 | SM100 = 51, |
| 68 | SM100a = 52, |
| 69 | SM100f = 53, |
| 70 | SM101 = 54, |
| 71 | SM101a = 55, |
| 72 | SM101f = 56, |
| 73 | SM103 = 57, |
| 74 | SM103a = 58, |
| 75 | SM103f = 59, |
| 76 | SM120 = 60, |
| 77 | SM120a = 61, |
| 78 | SM120f = 62, |
| 79 | SM121 = 63, |
| 80 | SM121a = 64, |
| 81 | SM121f = 65, |
| 82 | NumSubtargetFeatures = 66 |
| 83 | }; |
| 84 | } // end namespace NVPTX |
| 85 | } // end namespace llvm |
| 86 | |
| 87 | #endif // GET_SUBTARGETINFO_ENUM |
| 88 | |
| 89 | |
| 90 | #ifdef GET_SUBTARGETINFO_MACRO |
| 91 | #undef GET_SUBTARGETINFO_MACRO |
| 92 | #endif // GET_SUBTARGETINFO_MACRO |
| 93 | |
| 94 | |
| 95 | #ifdef GET_SUBTARGETINFO_MC_DESC |
| 96 | #undef GET_SUBTARGETINFO_MC_DESC |
| 97 | |
| 98 | namespace llvm { |
| 99 | // Sorted (by key) array of values for CPU features. |
| 100 | extern const llvm::SubtargetFeatureKV NVPTXFeatureKV[] = { |
| 101 | { "ptx32" , "Use PTX version 32" , NVPTX::PTX32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 102 | { "ptx40" , "Use PTX version 40" , NVPTX::PTX40, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 103 | { "ptx41" , "Use PTX version 41" , NVPTX::PTX41, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 104 | { "ptx42" , "Use PTX version 42" , NVPTX::PTX42, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 105 | { "ptx43" , "Use PTX version 43" , NVPTX::PTX43, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 106 | { "ptx50" , "Use PTX version 50" , NVPTX::PTX50, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 107 | { "ptx60" , "Use PTX version 60" , NVPTX::PTX60, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 108 | { "ptx61" , "Use PTX version 61" , NVPTX::PTX61, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 109 | { "ptx62" , "Use PTX version 62" , NVPTX::PTX62, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 110 | { "ptx63" , "Use PTX version 63" , NVPTX::PTX63, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 111 | { "ptx64" , "Use PTX version 64" , NVPTX::PTX64, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 112 | { "ptx65" , "Use PTX version 65" , NVPTX::PTX65, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 113 | { "ptx70" , "Use PTX version 70" , NVPTX::PTX70, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 114 | { "ptx71" , "Use PTX version 71" , NVPTX::PTX71, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 115 | { "ptx72" , "Use PTX version 72" , NVPTX::PTX72, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 116 | { "ptx73" , "Use PTX version 73" , NVPTX::PTX73, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 117 | { "ptx74" , "Use PTX version 74" , NVPTX::PTX74, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 118 | { "ptx75" , "Use PTX version 75" , NVPTX::PTX75, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 119 | { "ptx76" , "Use PTX version 76" , NVPTX::PTX76, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 120 | { "ptx77" , "Use PTX version 77" , NVPTX::PTX77, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 121 | { "ptx78" , "Use PTX version 78" , NVPTX::PTX78, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 122 | { "ptx80" , "Use PTX version 80" , NVPTX::PTX80, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 123 | { "ptx81" , "Use PTX version 81" , NVPTX::PTX81, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 124 | { "ptx82" , "Use PTX version 82" , NVPTX::PTX82, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 125 | { "ptx83" , "Use PTX version 83" , NVPTX::PTX83, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 126 | { "ptx84" , "Use PTX version 84" , NVPTX::PTX84, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 127 | { "ptx85" , "Use PTX version 85" , NVPTX::PTX85, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 128 | { "ptx86" , "Use PTX version 86" , NVPTX::PTX86, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 129 | { "ptx87" , "Use PTX version 87" , NVPTX::PTX87, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 130 | { "ptx88" , "Use PTX version 88" , NVPTX::PTX88, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 131 | { "sm_100" , "Target SM 100" , NVPTX::SM100, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 132 | { "sm_100a" , "Target SM 100a" , NVPTX::SM100a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 133 | { "sm_100f" , "Target SM 100f" , NVPTX::SM100f, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 134 | { "sm_101" , "Target SM 101" , NVPTX::SM101, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 135 | { "sm_101a" , "Target SM 101a" , NVPTX::SM101a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 136 | { "sm_101f" , "Target SM 101f" , NVPTX::SM101f, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 137 | { "sm_103" , "Target SM 103" , NVPTX::SM103, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 138 | { "sm_103a" , "Target SM 103a" , NVPTX::SM103a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 139 | { "sm_103f" , "Target SM 103f" , NVPTX::SM103f, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 140 | { "sm_120" , "Target SM 120" , NVPTX::SM120, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 141 | { "sm_120a" , "Target SM 120a" , NVPTX::SM120a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 142 | { "sm_120f" , "Target SM 120f" , NVPTX::SM120f, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 143 | { "sm_121" , "Target SM 121" , NVPTX::SM121, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 144 | { "sm_121a" , "Target SM 121a" , NVPTX::SM121a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 145 | { "sm_121f" , "Target SM 121f" , NVPTX::SM121f, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 146 | { "sm_20" , "Target SM 20" , NVPTX::SM20, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 147 | { "sm_21" , "Target SM 21" , NVPTX::SM21, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 148 | { "sm_30" , "Target SM 30" , NVPTX::SM30, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 149 | { "sm_32" , "Target SM 32" , NVPTX::SM32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 150 | { "sm_35" , "Target SM 35" , NVPTX::SM35, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 151 | { "sm_37" , "Target SM 37" , NVPTX::SM37, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 152 | { "sm_50" , "Target SM 50" , NVPTX::SM50, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 153 | { "sm_52" , "Target SM 52" , NVPTX::SM52, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 154 | { "sm_53" , "Target SM 53" , NVPTX::SM53, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 155 | { "sm_60" , "Target SM 60" , NVPTX::SM60, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 156 | { "sm_61" , "Target SM 61" , NVPTX::SM61, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 157 | { "sm_62" , "Target SM 62" , NVPTX::SM62, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 158 | { "sm_70" , "Target SM 70" , NVPTX::SM70, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 159 | { "sm_72" , "Target SM 72" , NVPTX::SM72, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 160 | { "sm_75" , "Target SM 75" , NVPTX::SM75, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 161 | { "sm_80" , "Target SM 80" , NVPTX::SM80, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 162 | { "sm_86" , "Target SM 86" , NVPTX::SM86, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 163 | { "sm_87" , "Target SM 87" , NVPTX::SM87, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 164 | { "sm_89" , "Target SM 89" , NVPTX::SM89, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 165 | { "sm_90" , "Target SM 90" , NVPTX::SM90, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 166 | { "sm_90a" , "Target SM 90a" , NVPTX::SM90a, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| 167 | }; |
| 168 | |
| 169 | #ifdef DBGFIELD |
| 170 | #error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro" |
| 171 | #endif |
| 172 | #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) |
| 173 | #define DBGFIELD(x) x, |
| 174 | #define DBGVAL_OR_NULLPTR(x) x |
| 175 | #else |
| 176 | #define DBGFIELD(x) |
| 177 | #define DBGVAL_OR_NULLPTR(x) nullptr |
| 178 | #endif |
| 179 | |
| 180 | // =============================================================== |
| 181 | // Data tables for the new per-operand machine model. |
| 182 | |
| 183 | // {ProcResourceIdx, ReleaseAtCycle, AcquireAtCycle} |
| 184 | extern const llvm::MCWriteProcResEntry NVPTXWriteProcResTable[] = { |
| 185 | { 0, 0, 0 }, // Invalid |
| 186 | }; // NVPTXWriteProcResTable |
| 187 | |
| 188 | // {Cycles, WriteResourceID} |
| 189 | extern const llvm::MCWriteLatencyEntry NVPTXWriteLatencyTable[] = { |
| 190 | { 0, 0}, // Invalid |
| 191 | }; // NVPTXWriteLatencyTable |
| 192 | |
| 193 | // {UseIdx, WriteResourceID, Cycles} |
| 194 | extern const llvm::MCReadAdvanceEntry NVPTXReadAdvanceTable[] = { |
| 195 | {0, 0, 0}, // Invalid |
| 196 | }; // NVPTXReadAdvanceTable |
| 197 | |
| 198 | #ifdef __GNUC__ |
| 199 | #pragma GCC diagnostic push |
| 200 | #pragma GCC diagnostic ignored "-Woverlength-strings" |
| 201 | #endif |
| 202 | static constexpr char NVPTXSchedClassNamesStorage[] = |
| 203 | "\0" |
| 204 | "InvalidSchedClass\0" |
| 205 | ; |
| 206 | #ifdef __GNUC__ |
| 207 | #pragma GCC diagnostic pop |
| 208 | #endif |
| 209 | |
| 210 | static constexpr llvm::StringTable NVPTXSchedClassNames = |
| 211 | NVPTXSchedClassNamesStorage; |
| 212 | |
| 213 | static const llvm::MCSchedModel NoSchedModel = { |
| 214 | MCSchedModel::DefaultIssueWidth, |
| 215 | MCSchedModel::DefaultMicroOpBufferSize, |
| 216 | MCSchedModel::DefaultLoopMicroOpBufferSize, |
| 217 | MCSchedModel::DefaultLoadLatency, |
| 218 | MCSchedModel::DefaultHighLatency, |
| 219 | MCSchedModel::DefaultMispredictPenalty, |
| 220 | false, // PostRAScheduler |
| 221 | false, // CompleteModel |
| 222 | false, // EnableIntervals |
| 223 | 0, // Processor ID |
| 224 | nullptr, nullptr, 0, 0, // No instruction-level machine model. |
| 225 | DBGVAL_OR_NULLPTR(&NVPTXSchedClassNames), // SchedClassNames |
| 226 | nullptr, // No Itinerary |
| 227 | nullptr // No extra processor descriptor |
| 228 | }; |
| 229 | |
| 230 | #undef DBGFIELD |
| 231 | |
| 232 | #undef DBGVAL_OR_NULLPTR |
| 233 | |
| 234 | // Sorted (by key) array of values for CPU subtype. |
| 235 | extern const llvm::SubtargetSubTypeKV NVPTXSubTypeKV[] = { |
| 236 | { "sm_100" , { { { 0x8000008000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 237 | { "sm_100a" , { { { 0x10000008000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 238 | { "sm_100f" , { { { 0x20000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 239 | { "sm_101" , { { { 0x40000008000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 240 | { "sm_101a" , { { { 0x80000008000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 241 | { "sm_101f" , { { { 0x100000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 242 | { "sm_103" , { { { 0x200000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 243 | { "sm_103a" , { { { 0x400000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 244 | { "sm_103f" , { { { 0x800000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 245 | { "sm_120" , { { { 0x1000000010000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 246 | { "sm_120a" , { { { 0x2000000010000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 247 | { "sm_120f" , { { { 0x4000000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 248 | { "sm_121" , { { { 0x8000000020000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 249 | { "sm_121a" , { { { 0x20000000ULL, 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 250 | { "sm_121f" , { { { 0x20000000ULL, 0x2ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 251 | { "sm_20" , { { { 0x40000001ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 252 | { "sm_21" , { { { 0x80000001ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 253 | { "sm_30" , { { { 0x100000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 254 | { "sm_32" , { { { 0x200000002ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 255 | { "sm_35" , { { { 0x400000001ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 256 | { "sm_37" , { { { 0x800000004ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 257 | { "sm_50" , { { { 0x1000000002ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 258 | { "sm_52" , { { { 0x2000000004ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 259 | { "sm_53" , { { { 0x4000000008ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 260 | { "sm_60" , { { { 0x8000000020ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 261 | { "sm_61" , { { { 0x10000000020ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 262 | { "sm_62" , { { { 0x20000000020ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 263 | { "sm_70" , { { { 0x40000000040ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 264 | { "sm_72" , { { { 0x80000000080ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 265 | { "sm_75" , { { { 0x100000000200ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 266 | { "sm_80" , { { { 0x200000001000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 267 | { "sm_86" , { { { 0x400000002000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 268 | { "sm_87" , { { { 0x800000010000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 269 | { "sm_89" , { { { 0x1000000100000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 270 | { "sm_90" , { { { 0x2000000100000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 271 | { "sm_90a" , { { { 0x4000000200000ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, |
| 272 | }; |
| 273 | |
| 274 | // Sorted array of names of CPU subtypes, including aliases. |
| 275 | extern const llvm::StringRef NVPTXNames[] = { |
| 276 | "sm_100" , |
| 277 | "sm_100a" , |
| 278 | "sm_100f" , |
| 279 | "sm_101" , |
| 280 | "sm_101a" , |
| 281 | "sm_101f" , |
| 282 | "sm_103" , |
| 283 | "sm_103a" , |
| 284 | "sm_103f" , |
| 285 | "sm_120" , |
| 286 | "sm_120a" , |
| 287 | "sm_120f" , |
| 288 | "sm_121" , |
| 289 | "sm_121a" , |
| 290 | "sm_121f" , |
| 291 | "sm_20" , |
| 292 | "sm_21" , |
| 293 | "sm_30" , |
| 294 | "sm_32" , |
| 295 | "sm_35" , |
| 296 | "sm_37" , |
| 297 | "sm_50" , |
| 298 | "sm_52" , |
| 299 | "sm_53" , |
| 300 | "sm_60" , |
| 301 | "sm_61" , |
| 302 | "sm_62" , |
| 303 | "sm_70" , |
| 304 | "sm_72" , |
| 305 | "sm_75" , |
| 306 | "sm_80" , |
| 307 | "sm_86" , |
| 308 | "sm_87" , |
| 309 | "sm_89" , |
| 310 | "sm_90" , |
| 311 | "sm_90a" }; |
| 312 | |
| 313 | namespace NVPTX_MC { |
| 314 | unsigned resolveVariantSchedClassImpl(unsigned SchedClass, |
| 315 | const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) { |
| 316 | // Don't know how to resolve this scheduling class. |
| 317 | return 0; |
| 318 | } |
| 319 | } // end namespace NVPTX_MC |
| 320 | |
| 321 | struct NVPTXGenMCSubtargetInfo : public MCSubtargetInfo { |
| 322 | NVPTXGenMCSubtargetInfo(const Triple &TT, |
| 323 | StringRef CPU, StringRef TuneCPU, StringRef FS, |
| 324 | ArrayRef<StringRef> PN, |
| 325 | ArrayRef<SubtargetFeatureKV> PF, |
| 326 | ArrayRef<SubtargetSubTypeKV> PD, |
| 327 | const MCWriteProcResEntry *WPR, |
| 328 | const MCWriteLatencyEntry *WL, |
| 329 | const MCReadAdvanceEntry *RA, const InstrStage *IS, |
| 330 | const unsigned *OC, const unsigned *FP) : |
| 331 | MCSubtargetInfo(TT, CPU, TuneCPU, FS, PN, PF, PD, |
| 332 | WPR, WL, RA, IS, OC, FP) { } |
| 333 | |
| 334 | unsigned resolveVariantSchedClass(unsigned SchedClass, |
| 335 | const MCInst *MI, const MCInstrInfo *MCII, |
| 336 | unsigned CPUID) const override { |
| 337 | return NVPTX_MC::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID); |
| 338 | } |
| 339 | }; |
| 340 | |
| 341 | static inline MCSubtargetInfo *createNVPTXMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS) { |
| 342 | return new NVPTXGenMCSubtargetInfo(TT, CPU, TuneCPU, FS, NVPTXNames, NVPTXFeatureKV, NVPTXSubTypeKV, |
| 343 | NVPTXWriteProcResTable, NVPTXWriteLatencyTable, NVPTXReadAdvanceTable, |
| 344 | nullptr, nullptr, nullptr); |
| 345 | } |
| 346 | |
| 347 | } // end namespace llvm |
| 348 | |
| 349 | #endif // GET_SUBTARGETINFO_MC_DESC |
| 350 | |
| 351 | |
| 352 | #ifdef GET_SUBTARGETINFO_TARGET_DESC |
| 353 | #undef GET_SUBTARGETINFO_TARGET_DESC |
| 354 | |
| 355 | #include "llvm/ADT/BitmaskEnum.h" |
| 356 | #include "llvm/Support/Debug.h" |
| 357 | #include "llvm/Support/raw_ostream.h" |
| 358 | |
| 359 | // ParseSubtargetFeatures - Parses features string setting specified |
| 360 | // subtarget options. |
| 361 | void llvm::NVPTXSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS) { |
| 362 | LLVM_DEBUG(dbgs() << "\nFeatures:" << FS); |
| 363 | LLVM_DEBUG(dbgs() << "\nCPU:" << CPU); |
| 364 | LLVM_DEBUG(dbgs() << "\nTuneCPU:" << TuneCPU << "\n\n" ); |
| 365 | InitMCProcessorInfo(CPU, TuneCPU, FS); |
| 366 | const FeatureBitset &Bits = getFeatureBits(); |
| 367 | if (Bits[NVPTX::PTX32] && PTXVersion < 32) PTXVersion = 32; |
| 368 | if (Bits[NVPTX::PTX40] && PTXVersion < 40) PTXVersion = 40; |
| 369 | if (Bits[NVPTX::PTX41] && PTXVersion < 41) PTXVersion = 41; |
| 370 | if (Bits[NVPTX::PTX42] && PTXVersion < 42) PTXVersion = 42; |
| 371 | if (Bits[NVPTX::PTX43] && PTXVersion < 43) PTXVersion = 43; |
| 372 | if (Bits[NVPTX::PTX50] && PTXVersion < 50) PTXVersion = 50; |
| 373 | if (Bits[NVPTX::PTX60] && PTXVersion < 60) PTXVersion = 60; |
| 374 | if (Bits[NVPTX::PTX61] && PTXVersion < 61) PTXVersion = 61; |
| 375 | if (Bits[NVPTX::PTX62] && PTXVersion < 62) PTXVersion = 62; |
| 376 | if (Bits[NVPTX::PTX63] && PTXVersion < 63) PTXVersion = 63; |
| 377 | if (Bits[NVPTX::PTX64] && PTXVersion < 64) PTXVersion = 64; |
| 378 | if (Bits[NVPTX::PTX65] && PTXVersion < 65) PTXVersion = 65; |
| 379 | if (Bits[NVPTX::PTX70] && PTXVersion < 70) PTXVersion = 70; |
| 380 | if (Bits[NVPTX::PTX71] && PTXVersion < 71) PTXVersion = 71; |
| 381 | if (Bits[NVPTX::PTX72] && PTXVersion < 72) PTXVersion = 72; |
| 382 | if (Bits[NVPTX::PTX73] && PTXVersion < 73) PTXVersion = 73; |
| 383 | if (Bits[NVPTX::PTX74] && PTXVersion < 74) PTXVersion = 74; |
| 384 | if (Bits[NVPTX::PTX75] && PTXVersion < 75) PTXVersion = 75; |
| 385 | if (Bits[NVPTX::PTX76] && PTXVersion < 76) PTXVersion = 76; |
| 386 | if (Bits[NVPTX::PTX77] && PTXVersion < 77) PTXVersion = 77; |
| 387 | if (Bits[NVPTX::PTX78] && PTXVersion < 78) PTXVersion = 78; |
| 388 | if (Bits[NVPTX::PTX80] && PTXVersion < 80) PTXVersion = 80; |
| 389 | if (Bits[NVPTX::PTX81] && PTXVersion < 81) PTXVersion = 81; |
| 390 | if (Bits[NVPTX::PTX82] && PTXVersion < 82) PTXVersion = 82; |
| 391 | if (Bits[NVPTX::PTX83] && PTXVersion < 83) PTXVersion = 83; |
| 392 | if (Bits[NVPTX::PTX84] && PTXVersion < 84) PTXVersion = 84; |
| 393 | if (Bits[NVPTX::PTX85] && PTXVersion < 85) PTXVersion = 85; |
| 394 | if (Bits[NVPTX::PTX86] && PTXVersion < 86) PTXVersion = 86; |
| 395 | if (Bits[NVPTX::PTX87] && PTXVersion < 87) PTXVersion = 87; |
| 396 | if (Bits[NVPTX::PTX88] && PTXVersion < 88) PTXVersion = 88; |
| 397 | if (Bits[NVPTX::SM20] && FullSmVersion < 200) FullSmVersion = 200; |
| 398 | if (Bits[NVPTX::SM21] && FullSmVersion < 210) FullSmVersion = 210; |
| 399 | if (Bits[NVPTX::SM30] && FullSmVersion < 300) FullSmVersion = 300; |
| 400 | if (Bits[NVPTX::SM32] && FullSmVersion < 320) FullSmVersion = 320; |
| 401 | if (Bits[NVPTX::SM35] && FullSmVersion < 350) FullSmVersion = 350; |
| 402 | if (Bits[NVPTX::SM37] && FullSmVersion < 370) FullSmVersion = 370; |
| 403 | if (Bits[NVPTX::SM50] && FullSmVersion < 500) FullSmVersion = 500; |
| 404 | if (Bits[NVPTX::SM52] && FullSmVersion < 520) FullSmVersion = 520; |
| 405 | if (Bits[NVPTX::SM53] && FullSmVersion < 530) FullSmVersion = 530; |
| 406 | if (Bits[NVPTX::SM60] && FullSmVersion < 600) FullSmVersion = 600; |
| 407 | if (Bits[NVPTX::SM61] && FullSmVersion < 610) FullSmVersion = 610; |
| 408 | if (Bits[NVPTX::SM62] && FullSmVersion < 620) FullSmVersion = 620; |
| 409 | if (Bits[NVPTX::SM70] && FullSmVersion < 700) FullSmVersion = 700; |
| 410 | if (Bits[NVPTX::SM72] && FullSmVersion < 720) FullSmVersion = 720; |
| 411 | if (Bits[NVPTX::SM75] && FullSmVersion < 750) FullSmVersion = 750; |
| 412 | if (Bits[NVPTX::SM80] && FullSmVersion < 800) FullSmVersion = 800; |
| 413 | if (Bits[NVPTX::SM86] && FullSmVersion < 860) FullSmVersion = 860; |
| 414 | if (Bits[NVPTX::SM87] && FullSmVersion < 870) FullSmVersion = 870; |
| 415 | if (Bits[NVPTX::SM89] && FullSmVersion < 890) FullSmVersion = 890; |
| 416 | if (Bits[NVPTX::SM90] && FullSmVersion < 900) FullSmVersion = 900; |
| 417 | if (Bits[NVPTX::SM90a] && FullSmVersion < 903) FullSmVersion = 903; |
| 418 | if (Bits[NVPTX::SM100] && FullSmVersion < 1000) FullSmVersion = 1000; |
| 419 | if (Bits[NVPTX::SM100a] && FullSmVersion < 1003) FullSmVersion = 1003; |
| 420 | if (Bits[NVPTX::SM100f] && FullSmVersion < 1002) FullSmVersion = 1002; |
| 421 | if (Bits[NVPTX::SM101] && FullSmVersion < 1010) FullSmVersion = 1010; |
| 422 | if (Bits[NVPTX::SM101a] && FullSmVersion < 1013) FullSmVersion = 1013; |
| 423 | if (Bits[NVPTX::SM101f] && FullSmVersion < 1012) FullSmVersion = 1012; |
| 424 | if (Bits[NVPTX::SM103] && FullSmVersion < 1030) FullSmVersion = 1030; |
| 425 | if (Bits[NVPTX::SM103a] && FullSmVersion < 1033) FullSmVersion = 1033; |
| 426 | if (Bits[NVPTX::SM103f] && FullSmVersion < 1032) FullSmVersion = 1032; |
| 427 | if (Bits[NVPTX::SM120] && FullSmVersion < 1200) FullSmVersion = 1200; |
| 428 | if (Bits[NVPTX::SM120a] && FullSmVersion < 1203) FullSmVersion = 1203; |
| 429 | if (Bits[NVPTX::SM120f] && FullSmVersion < 1202) FullSmVersion = 1202; |
| 430 | if (Bits[NVPTX::SM121] && FullSmVersion < 1210) FullSmVersion = 1210; |
| 431 | if (Bits[NVPTX::SM121a] && FullSmVersion < 1213) FullSmVersion = 1213; |
| 432 | if (Bits[NVPTX::SM121f] && FullSmVersion < 1212) FullSmVersion = 1212; |
| 433 | } |
| 434 | #endif // GET_SUBTARGETINFO_TARGET_DESC |
| 435 | |
| 436 | |
| 437 | #ifdef GET_SUBTARGETINFO_HEADER |
| 438 | #undef GET_SUBTARGETINFO_HEADER |
| 439 | |
| 440 | namespace llvm { |
| 441 | class DFAPacketizer; |
| 442 | namespace NVPTX_MC { |
| 443 | unsigned resolveVariantSchedClassImpl(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID); |
| 444 | } // end namespace NVPTX_MC |
| 445 | |
| 446 | struct NVPTXGenSubtargetInfo : public TargetSubtargetInfo { |
| 447 | explicit NVPTXGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS); |
| 448 | public: |
| 449 | unsigned resolveSchedClass(unsigned SchedClass, const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override; |
| 450 | unsigned resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) const override; |
| 451 | DFAPacketizer *createDFAPacketizer(const InstrItineraryData *IID) const; |
| 452 | }; |
| 453 | } // end namespace llvm |
| 454 | |
| 455 | #endif // GET_SUBTARGETINFO_HEADER |
| 456 | |
| 457 | |
| 458 | #ifdef GET_SUBTARGETINFO_CTOR |
| 459 | #undef GET_SUBTARGETINFO_CTOR |
| 460 | |
| 461 | #include "llvm/CodeGen/TargetSchedule.h" |
| 462 | |
| 463 | namespace llvm { |
| 464 | extern const llvm::StringRef NVPTXNames[]; |
| 465 | extern const llvm::SubtargetFeatureKV NVPTXFeatureKV[]; |
| 466 | extern const llvm::SubtargetSubTypeKV NVPTXSubTypeKV[]; |
| 467 | extern const llvm::MCWriteProcResEntry NVPTXWriteProcResTable[]; |
| 468 | extern const llvm::MCWriteLatencyEntry NVPTXWriteLatencyTable[]; |
| 469 | extern const llvm::MCReadAdvanceEntry NVPTXReadAdvanceTable[]; |
| 470 | NVPTXGenSubtargetInfo::NVPTXGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS) |
| 471 | : TargetSubtargetInfo(TT, CPU, TuneCPU, FS, ArrayRef(NVPTXNames, 36), ArrayRef(NVPTXFeatureKV, 66), ArrayRef(NVPTXSubTypeKV, 36), |
| 472 | NVPTXWriteProcResTable, NVPTXWriteLatencyTable, NVPTXReadAdvanceTable, |
| 473 | nullptr, nullptr, nullptr) {} |
| 474 | |
| 475 | unsigned NVPTXGenSubtargetInfo |
| 476 | ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const { |
| 477 | report_fatal_error("Expected a variant SchedClass" ); |
| 478 | } // NVPTXGenSubtargetInfo::resolveSchedClass |
| 479 | |
| 480 | unsigned NVPTXGenSubtargetInfo |
| 481 | ::resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, const MCInstrInfo *MCII, unsigned CPUID) const { |
| 482 | return NVPTX_MC::resolveVariantSchedClassImpl(SchedClass, MI, MCII, CPUID); |
| 483 | } // NVPTXGenSubtargetInfo::resolveVariantSchedClass |
| 484 | |
| 485 | } // end namespace llvm |
| 486 | |
| 487 | #endif // GET_SUBTARGETINFO_CTOR |
| 488 | |
| 489 | |
| 490 | #ifdef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS |
| 491 | #undef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS |
| 492 | |
| 493 | #endif // GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS |
| 494 | |
| 495 | |
| 496 | #ifdef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS |
| 497 | #undef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS |
| 498 | |
| 499 | #endif // GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS |
| 500 | |
| 501 | |