| 1 | // Licensed to the .NET Foundation under one or more agreements. |
| 2 | // The .NET Foundation licenses this file to you under the MIT license. |
| 3 | // See the LICENSE file in the project root for more information. |
| 4 | |
| 5 | // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 6 | // |
| 7 | // Automatically generated code. DO NOT MODIFY! |
| 8 | // To generate this file, do |
| 9 | // "WeightsArrayGen.pl matrix.txt results.txt > SMWeights.cpp" |
| 10 | // |
| 11 | // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 12 | |
| 13 | #include "jitpch.h" |
| 14 | |
| 15 | #define DEFAULT_WEIGHT_VALUE 65 // This is the average of all the weights. |
| 16 | |
| 17 | #define NA 9999 |
| 18 | |
| 19 | const short g_StateWeights[] = { |
| 20 | NA, // state 0 |
| 21 | NA, // state 1 |
| 22 | DEFAULT_WEIGHT_VALUE, // state 2 [noshow] |
| 23 | 10, // state 3 [ldarg.0] |
| 24 | 16, // state 4 [ldarg.1] |
| 25 | 35, // state 5 [ldarg.2] |
| 26 | 28, // state 6 [ldarg.3] |
| 27 | 12, // state 7 [ldloc.0] |
| 28 | 9, // state 8 [ldloc.1] |
| 29 | 22, // state 9 [ldloc.2] |
| 30 | 24, // state 10 [ldloc.3] |
| 31 | 6, // state 11 [stloc.0] |
| 32 | 34, // state 12 [stloc.1] |
| 33 | 4, // state 13 [stloc.2] |
| 34 | 49, // state 14 [stloc.3] |
| 35 | 32, // state 15 [ldarg.s] |
| 36 | 77, // state 16 [ldarga.s] |
| 37 | 21, // state 17 [starg.s] |
| 38 | 32, // state 18 [ldloc.s] |
| 39 | 61, // state 19 [ldloca.s] |
| 40 | -45, // state 20 [stloc.s] |
| 41 | 7, // state 21 [ldnull] |
| 42 | 22, // state 22 [ldc.i4.m1] |
| 43 | 15, // state 23 [ldc.i4.0] |
| 44 | 28, // state 24 [ldc.i4.1] |
| 45 | 34, // state 25 [ldc.i4.2] |
| 46 | -6, // state 26 [ldc.i4.3] |
| 47 | 20, // state 27 [ldc.i4.4] |
| 48 | 4, // state 28 [ldc.i4.5] |
| 49 | 10, // state 29 [ldc.i4.6] |
| 50 | 56, // state 30 [ldc.i4.7] |
| 51 | 42, // state 31 [ldc.i4.8] |
| 52 | 41, // state 32 [ldc.i4.s] |
| 53 | 38, // state 33 [ldc.i4] |
| 54 | 160, // state 34 [ldc.i8] |
| 55 | 33, // state 35 [ldc.r4] |
| 56 | 113, // state 36 [ldc.r8] |
| 57 | DEFAULT_WEIGHT_VALUE, // state 37 [unused] |
| 58 | 11, // state 38 [dup] |
| 59 | -24, // state 39 [pop] |
| 60 | 79, // state 40 [call] |
| 61 | DEFAULT_WEIGHT_VALUE, // state 41 [calli] |
| 62 | 19, // state 42 [ret] |
| 63 | 44, // state 43 [br.s] |
| 64 | 27, // state 44 [brfalse.s] |
| 65 | 25, // state 45 [brtrue.s] |
| 66 | 6, // state 46 [beq.s] |
| 67 | 20, // state 47 [bge.s] |
| 68 | 33, // state 48 [bgt.s] |
| 69 | 53, // state 49 [ble.s] |
| 70 | 28, // state 50 [blt.s] |
| 71 | 12, // state 51 [bne.un.s] |
| 72 | 85, // state 52 [bge.un.s] |
| 73 | -52, // state 53 [bgt.un.s] |
| 74 | 147, // state 54 [ble.un.s] |
| 75 | -63, // state 55 [blt.un.s] |
| 76 | DEFAULT_WEIGHT_VALUE, // state 56 [long.branch] |
| 77 | 116, // state 57 [switch] |
| 78 | -19, // state 58 [ldind.i1] |
| 79 | 17, // state 59 [ldind.u1] |
| 80 | -18, // state 60 [ldind.i2] |
| 81 | 10, // state 61 [ldind.u2] |
| 82 | -11, // state 62 [ldind.i4] |
| 83 | -33, // state 63 [ldind.u4] |
| 84 | 41, // state 64 [ldind.i8] |
| 85 | -110, // state 65 [ldind.i] |
| 86 | 31, // state 66 [ldind.r4] |
| 87 | 45, // state 67 [ldind.r8] |
| 88 | 1, // state 68 [ldind.ref] |
| 89 | 60, // state 69 [stind.ref] |
| 90 | 36, // state 70 [stind.i1] |
| 91 | 40, // state 71 [stind.i2] |
| 92 | 11, // state 72 [stind.i4] |
| 93 | 84, // state 73 [stind.i8] |
| 94 | 50, // state 74 [stind.r4] |
| 95 | 73, // state 75 [stind.r8] |
| 96 | -12, // state 76 [add] |
| 97 | -15, // state 77 [sub] |
| 98 | -9, // state 78 [mul] |
| 99 | 35, // state 79 [div] |
| 100 | 89, // state 80 [div.un] |
| 101 | 89, // state 81 [rem] |
| 102 | 82, // state 82 [rem.un] |
| 103 | -5, // state 83 [and] |
| 104 | -7, // state 84 [or] |
| 105 | 35, // state 85 [xor] |
| 106 | 0, // state 86 [shl] |
| 107 | 17, // state 87 [shr] |
| 108 | 27, // state 88 [shr.un] |
| 109 | 58, // state 89 [neg] |
| 110 | 19, // state 90 [not] |
| 111 | 78, // state 91 [conv.i1] |
| 112 | 54, // state 92 [conv.i2] |
| 113 | 2, // state 93 [conv.i4] |
| 114 | 99, // state 94 [conv.i8] |
| 115 | 273, // state 95 [conv.r4] |
| 116 | 197, // state 96 [conv.r8] |
| 117 | 45, // state 97 [conv.u4] |
| 118 | 55, // state 98 [conv.u8] |
| 119 | 83, // state 99 [callvirt] |
| 120 | DEFAULT_WEIGHT_VALUE, // state 100 [cpobj] |
| 121 | 29, // state 101 [ldobj] |
| 122 | 66, // state 102 [ldstr] |
| 123 | 227, // state 103 [newobj] |
| 124 | 261, // state 104 [castclass] |
| 125 | 166, // state 105 [isinst] |
| 126 | 209, // state 106 [conv.r.un] |
| 127 | DEFAULT_WEIGHT_VALUE, // state 107 [unbox] |
| 128 | 210, // state 108 [throw] |
| 129 | 18, // state 109 [ldfld] |
| 130 | 17, // state 110 [ldflda] |
| 131 | 31, // state 111 [stfld] |
| 132 | 159, // state 112 [ldsfld] |
| 133 | 177, // state 113 [ldsflda] |
| 134 | 125, // state 114 [stsfld] |
| 135 | 36, // state 115 [stobj] |
| 136 | 148, // state 116 [ovf.notype.un] |
| 137 | 247, // state 117 [box] |
| 138 | 152, // state 118 [newarr] |
| 139 | 7, // state 119 [ldlen] |
| 140 | 145, // state 120 [ldelema] |
| 141 | 103, // state 121 [ldelem.i1] |
| 142 | 91, // state 122 [ldelem.u1] |
| 143 | 267, // state 123 [ldelem.i2] |
| 144 | 148, // state 124 [ldelem.u2] |
| 145 | 92, // state 125 [ldelem.i4] |
| 146 | 213, // state 126 [ldelem.u4] |
| 147 | 223, // state 127 [ldelem.i8] |
| 148 | DEFAULT_WEIGHT_VALUE, // state 128 [ldelem.i] |
| 149 | DEFAULT_WEIGHT_VALUE, // state 129 [ldelem.r4] |
| 150 | 549, // state 130 [ldelem.r8] |
| 151 | 81, // state 131 [ldelem.ref] |
| 152 | DEFAULT_WEIGHT_VALUE, // state 132 [stelem.i] |
| 153 | 14, // state 133 [stelem.i1] |
| 154 | 23, // state 134 [stelem.i2] |
| 155 | 66, // state 135 [stelem.i4] |
| 156 | 254, // state 136 [stelem.i8] |
| 157 | DEFAULT_WEIGHT_VALUE, // state 137 [stelem.r4] |
| 158 | DEFAULT_WEIGHT_VALUE, // state 138 [stelem.r8] |
| 159 | 94, // state 139 [stelem.ref] |
| 160 | DEFAULT_WEIGHT_VALUE, // state 140 [ldelem] |
| 161 | DEFAULT_WEIGHT_VALUE, // state 141 [stelem] |
| 162 | 274, // state 142 [unbox.any] |
| 163 | DEFAULT_WEIGHT_VALUE, // state 143 [conv.ovf.i1] |
| 164 | DEFAULT_WEIGHT_VALUE, // state 144 [conv.ovf.u1] |
| 165 | DEFAULT_WEIGHT_VALUE, // state 145 [conv.ovf.i2] |
| 166 | DEFAULT_WEIGHT_VALUE, // state 146 [conv.ovf.u2] |
| 167 | 242, // state 147 [conv.ovf.i4] |
| 168 | DEFAULT_WEIGHT_VALUE, // state 148 [conv.ovf.u4] |
| 169 | 293, // state 149 [conv.ovf.i8] |
| 170 | 293, // state 150 [conv.ovf.u8] |
| 171 | DEFAULT_WEIGHT_VALUE, // state 151 [refanyval] |
| 172 | DEFAULT_WEIGHT_VALUE, // state 152 [ckfinite] |
| 173 | -17, // state 153 [mkrefany] |
| 174 | 32, // state 154 [ldtoken] |
| 175 | 25, // state 155 [conv.u2] |
| 176 | 50, // state 156 [conv.u1] |
| 177 | -0, // state 157 [conv.i] |
| 178 | 178, // state 158 [conv.ovf.i] |
| 179 | DEFAULT_WEIGHT_VALUE, // state 159 [conv.ovf.u] |
| 180 | DEFAULT_WEIGHT_VALUE, // state 160 [add.ovf] |
| 181 | DEFAULT_WEIGHT_VALUE, // state 161 [mul.ovf] |
| 182 | DEFAULT_WEIGHT_VALUE, // state 162 [sub.ovf] |
| 183 | -17, // state 163 [leave.s] |
| 184 | 182, // state 164 [stind.i] |
| 185 | -36, // state 165 [conv.u] |
| 186 | DEFAULT_WEIGHT_VALUE, // state 166 [prefix.n] |
| 187 | 120, // state 167 [arglist] |
| 188 | 20, // state 168 [ceq] |
| 189 | -1, // state 169 [cgt] |
| 190 | 47, // state 170 [cgt.un] |
| 191 | 26, // state 171 [clt] |
| 192 | 85, // state 172 [clt.un] |
| 193 | 102, // state 173 [ldftn] |
| 194 | 234, // state 174 [ldvirtftn] |
| 195 | DEFAULT_WEIGHT_VALUE, // state 175 [long.loc.arg] |
| 196 | 347, // state 176 [localloc] |
| 197 | DEFAULT_WEIGHT_VALUE, // state 177 [unaligned] |
| 198 | -44, // state 178 [volatile] |
| 199 | DEFAULT_WEIGHT_VALUE, // state 179 [tailcall] |
| 200 | 55, // state 180 [initobj] |
| 201 | DEFAULT_WEIGHT_VALUE, // state 181 [constrained] |
| 202 | DEFAULT_WEIGHT_VALUE, // state 182 [cpblk] |
| 203 | DEFAULT_WEIGHT_VALUE, // state 183 [initblk] |
| 204 | DEFAULT_WEIGHT_VALUE, // state 184 [rethrow] |
| 205 | 38, // state 185 [sizeof] |
| 206 | -68, // state 186 [refanytype] |
| 207 | DEFAULT_WEIGHT_VALUE, // state 187 [readonly] |
| 208 | 55, // state 188 [ldarga.s.normed] |
| 209 | 35, // state 189 [ldloca.s.normed] |
| 210 | 161, // state 190 [constrained -> callvirt] |
| 211 | 31, // state 191 [ldarg.0 -> ldfld] |
| 212 | 29, // state 192 [ldarg.1 -> ldfld] |
| 213 | 22, // state 193 [ldarg.2 -> ldfld] |
| 214 | 321, // state 194 [ldarg.3 -> ldfld] |
| 215 | 46, // state 195 [ldarga.s -> ldfld] |
| 216 | 8, // state 196 [ldloca.s -> ldfld] |
| 217 | 19, // state 197 [ldarga.s.normed -> ldfld] |
| 218 | -35, // state 198 [ldloca.s.normed -> ldfld] |
| 219 | 20, // state 199 [stloc.0 -> ldloc.0] |
| 220 | -7, // state 200 [stloc.1 -> ldloc.1] |
| 221 | -10, // state 201 [stloc.2 -> ldloc.2] |
| 222 | -4, // state 202 [stloc.3 -> ldloc.3] |
| 223 | DEFAULT_WEIGHT_VALUE, // state 203 [ldc.r4 -> add] |
| 224 | DEFAULT_WEIGHT_VALUE, // state 204 [ldc.r4 -> sub] |
| 225 | DEFAULT_WEIGHT_VALUE, // state 205 [ldc.r4 -> mul] |
| 226 | DEFAULT_WEIGHT_VALUE, // state 206 [ldc.r4 -> div] |
| 227 | 52, // state 207 [ldc.r8 -> add] |
| 228 | DEFAULT_WEIGHT_VALUE, // state 208 [ldc.r8 -> sub] |
| 229 | -169, // state 209 [ldc.r8 -> mul] |
| 230 | -17, // state 210 [ldc.r8 -> div] |
| 231 | DEFAULT_WEIGHT_VALUE, // state 211 [conv.r4 -> add] |
| 232 | DEFAULT_WEIGHT_VALUE, // state 212 [conv.r4 -> sub] |
| 233 | DEFAULT_WEIGHT_VALUE, // state 213 [conv.r4 -> mul] |
| 234 | DEFAULT_WEIGHT_VALUE, // state 214 [conv.r4 -> div] |
| 235 | 358, // state 215 [conv.r8 -> mul] |
| 236 | DEFAULT_WEIGHT_VALUE, // state 216 [conv.r8 -> div] |
| 237 | NA, // state 217 |
| 238 | 32, // state 218 [ldarg.0 -> ldc.i4.0 -> stfld] |
| 239 | NA, // state 219 |
| 240 | DEFAULT_WEIGHT_VALUE, // state 220 [ldarg.0 -> ldc.r4 -> stfld] |
| 241 | NA, // state 221 |
| 242 | 38, // state 222 [ldarg.0 -> ldc.r8 -> stfld] |
| 243 | NA, // state 223 |
| 244 | NA, // state 224 |
| 245 | 64, // state 225 [ldarg.0 -> ldarg.1 -> ldfld -> stfld] |
| 246 | 69, // state 226 [ldarg.0 -> ldarg.1 -> stfld] |
| 247 | NA, // state 227 |
| 248 | 98, // state 228 [ldarg.0 -> ldarg.2 -> stfld] |
| 249 | NA, // state 229 |
| 250 | 97, // state 230 [ldarg.0 -> ldarg.3 -> stfld] |
| 251 | NA, // state 231 |
| 252 | NA, // state 232 |
| 253 | NA, // state 233 |
| 254 | NA, // state 234 |
| 255 | 34, // state 235 [ldarg.0 -> dup -> ldfld -> ldarg.1 -> add -> stfld] |
| 256 | NA, // state 236 |
| 257 | -10, // state 237 [ldarg.0 -> dup -> ldfld -> ldarg.1 -> sub -> stfld] |
| 258 | NA, // state 238 |
| 259 | DEFAULT_WEIGHT_VALUE, // state 239 [ldarg.0 -> dup -> ldfld -> ldarg.1 -> mul -> stfld] |
| 260 | NA, // state 240 |
| 261 | DEFAULT_WEIGHT_VALUE, // state 241 [ldarg.0 -> dup -> ldfld -> ldarg.1 -> div -> stfld] |
| 262 | NA, // state 242 |
| 263 | NA, // state 243 |
| 264 | DEFAULT_WEIGHT_VALUE, // state 244 [ldarg.0 -> ldfld -> ldarg.1 -> ldfld -> add] |
| 265 | DEFAULT_WEIGHT_VALUE, // state 245 [ldarg.0 -> ldfld -> ldarg.1 -> ldfld -> sub] |
| 266 | NA, // state 246 |
| 267 | NA, // state 247 |
| 268 | DEFAULT_WEIGHT_VALUE, // state 248 [ldarga.s -> ldfld -> ldarga.s -> ldfld -> add] |
| 269 | DEFAULT_WEIGHT_VALUE, // state 249 [ldarga.s -> ldfld -> ldarga.s -> ldfld -> sub] |
| 270 | }; |
| 271 | |
| 272 | static_assert_no_msg(NUM_SM_STATES == _countof(g_StateWeights)); |
| 273 | |
| 274 | const short* gp_StateWeights = g_StateWeights; |
| 275 | |