seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,3121 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-350[JavaExamples.exampleIntSwitch(int, int, int, int)]"
3
+ method "HotSpotCompilation-350[JavaExamples.exampleIntSwitch(int, int, int, int)]"
4
+ date 1583697383663
5
+ end_compilation
6
+ begin_cfg
7
+ name "Final HIR schedule"
8
+ begin_block
9
+ name "B0"
10
+ from_bci -1
11
+ to_bci -1
12
+ predecessors
13
+ successors "B1" "B2" "B3"
14
+ xhandlers
15
+ flags
16
+ probability 4607182418800017408
17
+ begin_IR
18
+ HIR
19
+ f <@#|@fixed with next>@ <|@
20
+ tid v0 <|@
21
+ d <@d|@=== Debug Properties ===
22
+ stamp: void
23
+ withSpeculationFence: false
24
+ === Inputs ===
25
+ stateAfter: -
26
+ === Succesors ===
27
+ next: v6
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v6 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid a27 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ isDefaultStable: false
36
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 29]
37
+ rawvalue: Instance<java.lang.Class>
38
+ stableDimension: 0
39
+ stamp: a!# Ljava/lang/Class;
40
+ stampKind: a -
41
+ value: Object[Instance<java.lang.Class>]
42
+ === Inputs ===
43
+ === Succesors ===
44
+ === Usages ===
45
+ v33
46
+ === Predecessor ===
47
+ - >@ <|@
48
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
49
+ f <@~|@floating>@ <|@
50
+ tid v33 <|@
51
+ d <@d|@=== Debug Properties ===
52
+ displacement: 128
53
+ scale: Times1
54
+ stamp: void*
55
+ === Inputs ===
56
+ base: a27
57
+ index: -
58
+ === Succesors ===
59
+ === Usages ===
60
+ v30 v31 v32
61
+ === Predecessor ===
62
+ - >@ <|@
63
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a27 index: - <|@ <|@
64
+ f <@~|@floating>@ <|@
65
+ tid i1 <|@
66
+ d <@d|@=== Debug Properties ===
67
+ index: 0
68
+ stamp: i32
69
+ uncheckedStamp: [null]
70
+ === Inputs ===
71
+ === Succesors ===
72
+ === Usages ===
73
+ v6
74
+ === Predecessor ===
75
+ - >@ <|@
76
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
77
+ f <@*|@fixed>@ <|@
78
+ tid v6 <|@
79
+ d <@d|@=== Debug Properties ===
80
+ keyProbabilities: [D@13601e300
81
+ keySuccessors: [I@13601e408
82
+ keys: [I@13601e3f0
83
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:166) [bci: 1]
84
+ stamp: void
85
+ === Inputs ===
86
+ value: i1
87
+ === Succesors ===
88
+ successors: v7 v8 v9
89
+ === Usages ===
90
+ === Predecessor ===
91
+ v0 >@ <|@
92
+ instruction <@IntegerSwitch|@org.graalvm.compiler.nodes.extended.IntegerSwitchNode>@ value: i1 #successors: v7 v8 v9 <|@ <|@
93
+ end_IR
94
+ end_block
95
+ begin_block
96
+ name "B1"
97
+ from_bci -1
98
+ to_bci -1
99
+ predecessors "B0"
100
+ successors
101
+ xhandlers
102
+ flags
103
+ probability 4598791501599548168
104
+ begin_IR
105
+ HIR
106
+ f <@#|@fixed with next>@ <|@
107
+ tid v7 <|@
108
+ d <@d|@=== Debug Properties ===
109
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 28]
110
+ stamp: void
111
+ withSpeculationFence: false
112
+ === Inputs ===
113
+ === Succesors ===
114
+ next: v34
115
+ === Usages ===
116
+ === Predecessor ===
117
+ v6 >@ <|@
118
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v34 <|@ <|@
119
+ f <@#|@fixed with next>@ <|@
120
+ tid v34 <|@
121
+ d <@d|@=== Debug Properties ===
122
+ barriers: 10
123
+ location: ANY_LOCATION
124
+ stamp: void
125
+ === Inputs ===
126
+ === Succesors ===
127
+ next: v30
128
+ === Usages ===
129
+ === Predecessor ===
130
+ v7 >@ <|@
131
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v30 <|@ <|@
132
+ f <@~|@floating>@ <|@
133
+ tid i2 <|@
134
+ d <@d|@=== Debug Properties ===
135
+ index: 1
136
+ stamp: i32
137
+ uncheckedStamp: [null]
138
+ === Inputs ===
139
+ === Succesors ===
140
+ === Usages ===
141
+ v26 v30
142
+ === Predecessor ===
143
+ - >@ <|@
144
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
145
+ f <@#|@fixed with next>@ <|@
146
+ tid v30 <|@
147
+ d <@d|@=== Debug Properties ===
148
+ barrierType: NONE
149
+ location: JavaExamples.intField
150
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 29]
151
+ nullCheck: false
152
+ stamp: void
153
+ volatileAccess: true
154
+ === Inputs ===
155
+ stateBefore: -
156
+ guard: -
157
+ address: v33
158
+ value: i2
159
+ stateAfter: -
160
+ lastLocationAccess: -
161
+ === Succesors ===
162
+ next: v35
163
+ === Usages ===
164
+ === Predecessor ===
165
+ v34 >@ <|@
166
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i2 stateAfter: - lastLocationAccess: - #next: v35 <|@ <|@
167
+ f <@#|@fixed with next>@ <|@
168
+ tid v35 <|@
169
+ d <@d|@=== Debug Properties ===
170
+ barriers: 12
171
+ location: ANY_LOCATION
172
+ stamp: void
173
+ === Inputs ===
174
+ === Succesors ===
175
+ next: v26
176
+ === Usages ===
177
+ === Predecessor ===
178
+ v30 >@ <|@
179
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
180
+ f <@*|@fixed>@ <|@
181
+ tid v26 <|@
182
+ d <@d|@=== Debug Properties ===
183
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
184
+ stamp: void
185
+ === Inputs ===
186
+ result: i2
187
+ memoryMap: -
188
+ === Succesors ===
189
+ === Usages ===
190
+ === Predecessor ===
191
+ v35 >@ <|@
192
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
193
+ end_IR
194
+ end_block
195
+ begin_block
196
+ name "B2"
197
+ from_bci -1
198
+ to_bci -1
199
+ predecessors "B0"
200
+ successors
201
+ xhandlers
202
+ flags
203
+ probability 4599929253084357557
204
+ begin_IR
205
+ HIR
206
+ f <@#|@fixed with next>@ <|@
207
+ tid v8 <|@
208
+ d <@d|@=== Debug Properties ===
209
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:172) [bci: 38]
210
+ stamp: void
211
+ withSpeculationFence: false
212
+ === Inputs ===
213
+ === Succesors ===
214
+ next: v36
215
+ === Usages ===
216
+ === Predecessor ===
217
+ v6 >@ <|@
218
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v36 <|@ <|@
219
+ f <@#|@fixed with next>@ <|@
220
+ tid v36 <|@
221
+ d <@d|@=== Debug Properties ===
222
+ barriers: 10
223
+ location: ANY_LOCATION
224
+ stamp: void
225
+ === Inputs ===
226
+ === Succesors ===
227
+ next: v31
228
+ === Usages ===
229
+ === Predecessor ===
230
+ v8 >@ <|@
231
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v31 <|@ <|@
232
+ f <@~|@floating>@ <|@
233
+ tid i3 <|@
234
+ d <@d|@=== Debug Properties ===
235
+ index: 2
236
+ stamp: i32
237
+ uncheckedStamp: [null]
238
+ === Inputs ===
239
+ === Succesors ===
240
+ === Usages ===
241
+ v25 v31
242
+ === Predecessor ===
243
+ - >@ <|@
244
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
245
+ f <@#|@fixed with next>@ <|@
246
+ tid v31 <|@
247
+ d <@d|@=== Debug Properties ===
248
+ barrierType: NONE
249
+ location: JavaExamples.intField
250
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:172) [bci: 39]
251
+ nullCheck: false
252
+ stamp: void
253
+ volatileAccess: true
254
+ === Inputs ===
255
+ stateBefore: -
256
+ guard: -
257
+ address: v33
258
+ value: i3
259
+ stateAfter: -
260
+ lastLocationAccess: -
261
+ === Succesors ===
262
+ next: v37
263
+ === Usages ===
264
+ === Predecessor ===
265
+ v36 >@ <|@
266
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i3 stateAfter: - lastLocationAccess: - #next: v37 <|@ <|@
267
+ f <@#|@fixed with next>@ <|@
268
+ tid v37 <|@
269
+ d <@d|@=== Debug Properties ===
270
+ barriers: 12
271
+ location: ANY_LOCATION
272
+ stamp: void
273
+ === Inputs ===
274
+ === Succesors ===
275
+ next: v25
276
+ === Usages ===
277
+ === Predecessor ===
278
+ v31 >@ <|@
279
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v25 <|@ <|@
280
+ f <@*|@fixed>@ <|@
281
+ tid v25 <|@
282
+ d <@d|@=== Debug Properties ===
283
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
284
+ stamp: void
285
+ === Inputs ===
286
+ result: i3
287
+ memoryMap: -
288
+ === Succesors ===
289
+ === Usages ===
290
+ === Predecessor ===
291
+ v37 >@ <|@
292
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
293
+ end_IR
294
+ end_block
295
+ begin_block
296
+ name "B3"
297
+ from_bci -1
298
+ to_bci -1
299
+ predecessors "B0"
300
+ successors
301
+ xhandlers
302
+ flags
303
+ probability 4600308503579294019
304
+ begin_IR
305
+ HIR
306
+ f <@#|@fixed with next>@ <|@
307
+ tid v9 <|@
308
+ d <@d|@=== Debug Properties ===
309
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:176) [bci: 48]
310
+ stamp: void
311
+ withSpeculationFence: false
312
+ === Inputs ===
313
+ === Succesors ===
314
+ next: v38
315
+ === Usages ===
316
+ === Predecessor ===
317
+ v6 >@ <|@
318
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v38 <|@ <|@
319
+ f <@#|@fixed with next>@ <|@
320
+ tid v38 <|@
321
+ d <@d|@=== Debug Properties ===
322
+ barriers: 10
323
+ location: ANY_LOCATION
324
+ stamp: void
325
+ === Inputs ===
326
+ === Succesors ===
327
+ next: v32
328
+ === Usages ===
329
+ === Predecessor ===
330
+ v9 >@ <|@
331
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v32 <|@ <|@
332
+ f <@~|@floating>@ <|@
333
+ tid i4 <|@
334
+ d <@d|@=== Debug Properties ===
335
+ index: 3
336
+ stamp: i32
337
+ uncheckedStamp: [null]
338
+ === Inputs ===
339
+ === Succesors ===
340
+ === Usages ===
341
+ v24 v32
342
+ === Predecessor ===
343
+ - >@ <|@
344
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
345
+ f <@#|@fixed with next>@ <|@
346
+ tid v32 <|@
347
+ d <@d|@=== Debug Properties ===
348
+ barrierType: NONE
349
+ location: JavaExamples.intField
350
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:176) [bci: 49]
351
+ nullCheck: false
352
+ stamp: void
353
+ volatileAccess: true
354
+ === Inputs ===
355
+ stateBefore: -
356
+ guard: -
357
+ address: v33
358
+ value: i4
359
+ stateAfter: -
360
+ lastLocationAccess: -
361
+ === Succesors ===
362
+ next: v39
363
+ === Usages ===
364
+ === Predecessor ===
365
+ v38 >@ <|@
366
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i4 stateAfter: - lastLocationAccess: - #next: v39 <|@ <|@
367
+ f <@#|@fixed with next>@ <|@
368
+ tid v39 <|@
369
+ d <@d|@=== Debug Properties ===
370
+ barriers: 12
371
+ location: ANY_LOCATION
372
+ stamp: void
373
+ === Inputs ===
374
+ === Succesors ===
375
+ next: v24
376
+ === Usages ===
377
+ === Predecessor ===
378
+ v32 >@ <|@
379
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v24 <|@ <|@
380
+ f <@*|@fixed>@ <|@
381
+ tid v24 <|@
382
+ d <@d|@=== Debug Properties ===
383
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
384
+ stamp: void
385
+ === Inputs ===
386
+ result: i4
387
+ memoryMap: -
388
+ === Succesors ===
389
+ === Usages ===
390
+ === Predecessor ===
391
+ v39 >@ <|@
392
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
393
+ end_IR
394
+ end_block
395
+ end_cfg
396
+ begin_cfg
397
+ name "After LIRGeneration"
398
+ begin_block
399
+ name "B0"
400
+ from_bci -1
401
+ to_bci -1
402
+ predecessors
403
+ successors "B1" "B2" "B3"
404
+ xhandlers
405
+ flags
406
+ probability 4607182418800017408
407
+ begin_IR
408
+ LIR
409
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
410
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
411
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
412
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
413
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
414
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
415
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
416
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
417
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
418
+ end_IR
419
+ end_block
420
+ begin_block
421
+ name "B3"
422
+ from_bci -1
423
+ to_bci -1
424
+ predecessors "B0"
425
+ successors
426
+ xhandlers
427
+ flags
428
+ probability 4600308503579294019
429
+ begin_IR
430
+ LIR
431
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
432
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
433
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
434
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
435
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
436
+ end_IR
437
+ end_block
438
+ begin_block
439
+ name "B2"
440
+ from_bci -1
441
+ to_bci -1
442
+ predecessors "B0"
443
+ successors
444
+ xhandlers
445
+ flags
446
+ probability 4599929253084357557
447
+ begin_IR
448
+ LIR
449
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
450
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
451
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
452
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
453
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
454
+ end_IR
455
+ end_block
456
+ begin_block
457
+ name "B1"
458
+ from_bci -1
459
+ to_bci -1
460
+ predecessors "B0"
461
+ successors
462
+ xhandlers
463
+ flags
464
+ probability 4598791501599548168
465
+ begin_IR
466
+ LIR
467
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
468
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
469
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
470
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
471
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
472
+ end_IR
473
+ end_block
474
+ end_cfg
475
+ begin_bytecodes
476
+ 0: iload_0
477
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
478
+ 28: iload_1
479
+ 29: putstatic #54 // intField:int
480
+ 32: iload_1
481
+ 33: istore 4
482
+ 35: goto 55
483
+ 38: iload_2
484
+ 39: putstatic #54 // intField:int
485
+ 42: iload_2
486
+ 43: istore 4
487
+ 45: goto 55
488
+ 48: iload_3
489
+ 49: putstatic #54 // intField:int
490
+ 52: iload_3
491
+ 53: istore 4
492
+ 55: iload 4
493
+ 57: ireturn
494
+ <|@
495
+ end_bytecodes
496
+ begin_cfg
497
+ name "After LIR generation"
498
+ begin_block
499
+ name "B0"
500
+ from_bci -1
501
+ to_bci -1
502
+ predecessors
503
+ successors "B1" "B2" "B3"
504
+ xhandlers
505
+ flags
506
+ probability 4607182418800017408
507
+ begin_IR
508
+ HIR
509
+ f <@#|@fixed with next>@ <|@
510
+ tid v0 <|@
511
+ d <@d|@=== Debug Properties ===
512
+ stamp: void
513
+ withSpeculationFence: false
514
+ === Inputs ===
515
+ stateAfter: -
516
+ === Succesors ===
517
+ next: v6
518
+ === Usages ===
519
+ === Predecessor ===
520
+ - >@ <|@
521
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v6 <|@ <|@
522
+ f <@~|@floating>@ <|@
523
+ tid a27 <|@
524
+ result v4|QWORD[.] <|@
525
+ d <@d|@=== Debug Properties ===
526
+ isDefaultStable: false
527
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 29]
528
+ rawvalue: Instance<java.lang.Class>
529
+ stableDimension: 0
530
+ stamp: a!# Ljava/lang/Class;
531
+ stampKind: a -
532
+ value: Object[Instance<java.lang.Class>]
533
+ === Inputs ===
534
+ === Succesors ===
535
+ === Usages ===
536
+ v33
537
+ === Predecessor ===
538
+ - >@ <|@
539
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
540
+ f <@~|@floating>@ <|@
541
+ tid v33 <|@
542
+ result [v4|QWORD[.] + 128] <|@
543
+ d <@d|@=== Debug Properties ===
544
+ displacement: 128
545
+ scale: Times1
546
+ stamp: void*
547
+ === Inputs ===
548
+ base: a27
549
+ index: -
550
+ === Succesors ===
551
+ === Usages ===
552
+ v30 v31 v32
553
+ === Predecessor ===
554
+ - >@ <|@
555
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a27 index: - <|@ <|@
556
+ f <@~|@floating>@ <|@
557
+ tid i1 <|@
558
+ result v0|DWORD <|@
559
+ d <@d|@=== Debug Properties ===
560
+ index: 0
561
+ stamp: i32
562
+ uncheckedStamp: [null]
563
+ === Inputs ===
564
+ === Succesors ===
565
+ === Usages ===
566
+ v6
567
+ === Predecessor ===
568
+ - >@ <|@
569
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
570
+ f <@*|@fixed>@ <|@
571
+ tid v6 <|@
572
+ d <@d|@=== Debug Properties ===
573
+ keyProbabilities: [D@13601e300
574
+ keySuccessors: [I@13601e408
575
+ keys: [I@13601e3f0
576
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:166) [bci: 1]
577
+ stamp: void
578
+ === Inputs ===
579
+ value: i1
580
+ === Succesors ===
581
+ successors: v7 v8 v9
582
+ === Usages ===
583
+ === Predecessor ===
584
+ v0 >@ <|@
585
+ instruction <@IntegerSwitch|@org.graalvm.compiler.nodes.extended.IntegerSwitchNode>@ value: i1 #successors: v7 v8 v9 <|@ <|@
586
+ end_IR
587
+ begin_IR
588
+ LIR
589
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
590
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
591
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
592
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
593
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
594
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
595
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
596
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
597
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
598
+ end_IR
599
+ end_block
600
+ begin_block
601
+ name "B1"
602
+ from_bci -1
603
+ to_bci -1
604
+ predecessors "B0"
605
+ successors
606
+ xhandlers
607
+ flags
608
+ probability 4598791501599548168
609
+ begin_IR
610
+ HIR
611
+ f <@#|@fixed with next>@ <|@
612
+ tid v7 <|@
613
+ d <@d|@=== Debug Properties ===
614
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 28]
615
+ stamp: void
616
+ withSpeculationFence: false
617
+ === Inputs ===
618
+ === Succesors ===
619
+ next: v34
620
+ === Usages ===
621
+ === Predecessor ===
622
+ v6 >@ <|@
623
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v34 <|@ <|@
624
+ f <@#|@fixed with next>@ <|@
625
+ tid v34 <|@
626
+ d <@d|@=== Debug Properties ===
627
+ barriers: 10
628
+ location: ANY_LOCATION
629
+ stamp: void
630
+ === Inputs ===
631
+ === Succesors ===
632
+ next: v30
633
+ === Usages ===
634
+ === Predecessor ===
635
+ v7 >@ <|@
636
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v30 <|@ <|@
637
+ f <@~|@floating>@ <|@
638
+ tid i2 <|@
639
+ result v1|DWORD <|@
640
+ d <@d|@=== Debug Properties ===
641
+ index: 1
642
+ stamp: i32
643
+ uncheckedStamp: [null]
644
+ === Inputs ===
645
+ === Succesors ===
646
+ === Usages ===
647
+ v26 v30
648
+ === Predecessor ===
649
+ - >@ <|@
650
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
651
+ f <@#|@fixed with next>@ <|@
652
+ tid v30 <|@
653
+ d <@d|@=== Debug Properties ===
654
+ barrierType: NONE
655
+ location: JavaExamples.intField
656
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:168) [bci: 29]
657
+ nullCheck: false
658
+ stamp: void
659
+ volatileAccess: true
660
+ === Inputs ===
661
+ stateBefore: -
662
+ guard: -
663
+ address: v33
664
+ value: i2
665
+ stateAfter: -
666
+ lastLocationAccess: -
667
+ === Succesors ===
668
+ next: v35
669
+ === Usages ===
670
+ === Predecessor ===
671
+ v34 >@ <|@
672
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i2 stateAfter: - lastLocationAccess: - #next: v35 <|@ <|@
673
+ f <@#|@fixed with next>@ <|@
674
+ tid v35 <|@
675
+ d <@d|@=== Debug Properties ===
676
+ barriers: 12
677
+ location: ANY_LOCATION
678
+ stamp: void
679
+ === Inputs ===
680
+ === Succesors ===
681
+ next: v26
682
+ === Usages ===
683
+ === Predecessor ===
684
+ v30 >@ <|@
685
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
686
+ f <@*|@fixed>@ <|@
687
+ tid v26 <|@
688
+ d <@d|@=== Debug Properties ===
689
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
690
+ stamp: void
691
+ === Inputs ===
692
+ result: i2
693
+ memoryMap: -
694
+ === Succesors ===
695
+ === Usages ===
696
+ === Predecessor ===
697
+ v35 >@ <|@
698
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
699
+ end_IR
700
+ begin_IR
701
+ LIR
702
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
703
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
704
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
705
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
706
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
707
+ end_IR
708
+ end_block
709
+ begin_block
710
+ name "B2"
711
+ from_bci -1
712
+ to_bci -1
713
+ predecessors "B0"
714
+ successors
715
+ xhandlers
716
+ flags
717
+ probability 4599929253084357557
718
+ begin_IR
719
+ HIR
720
+ f <@#|@fixed with next>@ <|@
721
+ tid v8 <|@
722
+ d <@d|@=== Debug Properties ===
723
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:172) [bci: 38]
724
+ stamp: void
725
+ withSpeculationFence: false
726
+ === Inputs ===
727
+ === Succesors ===
728
+ next: v36
729
+ === Usages ===
730
+ === Predecessor ===
731
+ v6 >@ <|@
732
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v36 <|@ <|@
733
+ f <@#|@fixed with next>@ <|@
734
+ tid v36 <|@
735
+ d <@d|@=== Debug Properties ===
736
+ barriers: 10
737
+ location: ANY_LOCATION
738
+ stamp: void
739
+ === Inputs ===
740
+ === Succesors ===
741
+ next: v31
742
+ === Usages ===
743
+ === Predecessor ===
744
+ v8 >@ <|@
745
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v31 <|@ <|@
746
+ f <@~|@floating>@ <|@
747
+ tid i3 <|@
748
+ result v2|DWORD <|@
749
+ d <@d|@=== Debug Properties ===
750
+ index: 2
751
+ stamp: i32
752
+ uncheckedStamp: [null]
753
+ === Inputs ===
754
+ === Succesors ===
755
+ === Usages ===
756
+ v25 v31
757
+ === Predecessor ===
758
+ - >@ <|@
759
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
760
+ f <@#|@fixed with next>@ <|@
761
+ tid v31 <|@
762
+ d <@d|@=== Debug Properties ===
763
+ barrierType: NONE
764
+ location: JavaExamples.intField
765
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:172) [bci: 39]
766
+ nullCheck: false
767
+ stamp: void
768
+ volatileAccess: true
769
+ === Inputs ===
770
+ stateBefore: -
771
+ guard: -
772
+ address: v33
773
+ value: i3
774
+ stateAfter: -
775
+ lastLocationAccess: -
776
+ === Succesors ===
777
+ next: v37
778
+ === Usages ===
779
+ === Predecessor ===
780
+ v36 >@ <|@
781
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i3 stateAfter: - lastLocationAccess: - #next: v37 <|@ <|@
782
+ f <@#|@fixed with next>@ <|@
783
+ tid v37 <|@
784
+ d <@d|@=== Debug Properties ===
785
+ barriers: 12
786
+ location: ANY_LOCATION
787
+ stamp: void
788
+ === Inputs ===
789
+ === Succesors ===
790
+ next: v25
791
+ === Usages ===
792
+ === Predecessor ===
793
+ v31 >@ <|@
794
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v25 <|@ <|@
795
+ f <@*|@fixed>@ <|@
796
+ tid v25 <|@
797
+ d <@d|@=== Debug Properties ===
798
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
799
+ stamp: void
800
+ === Inputs ===
801
+ result: i3
802
+ memoryMap: -
803
+ === Succesors ===
804
+ === Usages ===
805
+ === Predecessor ===
806
+ v37 >@ <|@
807
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
808
+ end_IR
809
+ begin_IR
810
+ LIR
811
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
812
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
813
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
814
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
815
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
816
+ end_IR
817
+ end_block
818
+ begin_block
819
+ name "B3"
820
+ from_bci -1
821
+ to_bci -1
822
+ predecessors "B0"
823
+ successors
824
+ xhandlers
825
+ flags
826
+ probability 4600308503579294019
827
+ begin_IR
828
+ HIR
829
+ f <@#|@fixed with next>@ <|@
830
+ tid v9 <|@
831
+ d <@d|@=== Debug Properties ===
832
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:176) [bci: 48]
833
+ stamp: void
834
+ withSpeculationFence: false
835
+ === Inputs ===
836
+ === Succesors ===
837
+ next: v38
838
+ === Usages ===
839
+ === Predecessor ===
840
+ v6 >@ <|@
841
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v38 <|@ <|@
842
+ f <@#|@fixed with next>@ <|@
843
+ tid v38 <|@
844
+ d <@d|@=== Debug Properties ===
845
+ barriers: 10
846
+ location: ANY_LOCATION
847
+ stamp: void
848
+ === Inputs ===
849
+ === Succesors ===
850
+ next: v32
851
+ === Usages ===
852
+ === Predecessor ===
853
+ v9 >@ <|@
854
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v32 <|@ <|@
855
+ f <@~|@floating>@ <|@
856
+ tid i4 <|@
857
+ result v3|DWORD <|@
858
+ d <@d|@=== Debug Properties ===
859
+ index: 3
860
+ stamp: i32
861
+ uncheckedStamp: [null]
862
+ === Inputs ===
863
+ === Succesors ===
864
+ === Usages ===
865
+ v24 v32
866
+ === Predecessor ===
867
+ - >@ <|@
868
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
869
+ f <@#|@fixed with next>@ <|@
870
+ tid v32 <|@
871
+ d <@d|@=== Debug Properties ===
872
+ barrierType: NONE
873
+ location: JavaExamples.intField
874
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:176) [bci: 49]
875
+ nullCheck: false
876
+ stamp: void
877
+ volatileAccess: true
878
+ === Inputs ===
879
+ stateBefore: -
880
+ guard: -
881
+ address: v33
882
+ value: i4
883
+ stateAfter: -
884
+ lastLocationAccess: -
885
+ === Succesors ===
886
+ next: v39
887
+ === Usages ===
888
+ === Predecessor ===
889
+ v38 >@ <|@
890
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v33 value: i4 stateAfter: - lastLocationAccess: - #next: v39 <|@ <|@
891
+ f <@#|@fixed with next>@ <|@
892
+ tid v39 <|@
893
+ d <@d|@=== Debug Properties ===
894
+ barriers: 12
895
+ location: ANY_LOCATION
896
+ stamp: void
897
+ === Inputs ===
898
+ === Succesors ===
899
+ next: v24
900
+ === Usages ===
901
+ === Predecessor ===
902
+ v32 >@ <|@
903
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v24 <|@ <|@
904
+ f <@*|@fixed>@ <|@
905
+ tid v24 <|@
906
+ d <@d|@=== Debug Properties ===
907
+ nodeSourcePosition: at JavaExamples.exampleIntSwitch(JavaExamples.java:180) [bci: 57]
908
+ stamp: void
909
+ === Inputs ===
910
+ result: i4
911
+ memoryMap: -
912
+ === Succesors ===
913
+ === Usages ===
914
+ === Predecessor ===
915
+ v39 >@ <|@
916
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
917
+ end_IR
918
+ begin_IR
919
+ LIR
920
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
921
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
922
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
923
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
924
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
925
+ end_IR
926
+ end_block
927
+ end_cfg
928
+ begin_cfg
929
+ name "After ConstantLoadOptimization"
930
+ begin_block
931
+ name "B0"
932
+ from_bci -1
933
+ to_bci -1
934
+ predecessors
935
+ successors "B1" "B2" "B3"
936
+ xhandlers
937
+ flags
938
+ probability 4607182418800017408
939
+ begin_IR
940
+ LIR
941
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
942
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
943
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
944
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
945
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
946
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
947
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
948
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
949
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
950
+ end_IR
951
+ end_block
952
+ begin_block
953
+ name "B3"
954
+ from_bci -1
955
+ to_bci -1
956
+ predecessors "B0"
957
+ successors
958
+ xhandlers
959
+ flags
960
+ probability 4600308503579294019
961
+ begin_IR
962
+ LIR
963
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
964
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
965
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
966
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
967
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
968
+ end_IR
969
+ end_block
970
+ begin_block
971
+ name "B2"
972
+ from_bci -1
973
+ to_bci -1
974
+ predecessors "B0"
975
+ successors
976
+ xhandlers
977
+ flags
978
+ probability 4599929253084357557
979
+ begin_IR
980
+ LIR
981
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
982
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
983
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
984
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
985
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
986
+ end_IR
987
+ end_block
988
+ begin_block
989
+ name "B1"
990
+ from_bci -1
991
+ to_bci -1
992
+ predecessors "B0"
993
+ successors
994
+ xhandlers
995
+ flags
996
+ probability 4598791501599548168
997
+ begin_IR
998
+ LIR
999
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1000
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1001
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1002
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1003
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1004
+ end_IR
1005
+ end_block
1006
+ end_cfg
1007
+ begin_bytecodes
1008
+ 0: iload_0
1009
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1010
+ 28: iload_1
1011
+ 29: putstatic #54 // intField:int
1012
+ 32: iload_1
1013
+ 33: istore 4
1014
+ 35: goto 55
1015
+ 38: iload_2
1016
+ 39: putstatic #54 // intField:int
1017
+ 42: iload_2
1018
+ 43: istore 4
1019
+ 45: goto 55
1020
+ 48: iload_3
1021
+ 49: putstatic #54 // intField:int
1022
+ 52: iload_3
1023
+ 53: istore 4
1024
+ 55: iload 4
1025
+ 57: ireturn
1026
+ <|@
1027
+ end_bytecodes
1028
+ begin_cfg
1029
+ name "After SaveCalleeSaveRegisters"
1030
+ begin_block
1031
+ name "B0"
1032
+ from_bci -1
1033
+ to_bci -1
1034
+ predecessors
1035
+ successors "B1" "B2" "B3"
1036
+ xhandlers
1037
+ flags
1038
+ probability 4607182418800017408
1039
+ begin_IR
1040
+ LIR
1041
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1042
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1043
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1044
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1045
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1046
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1047
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1048
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1049
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1050
+ end_IR
1051
+ end_block
1052
+ begin_block
1053
+ name "B3"
1054
+ from_bci -1
1055
+ to_bci -1
1056
+ predecessors "B0"
1057
+ successors
1058
+ xhandlers
1059
+ flags
1060
+ probability 4600308503579294019
1061
+ begin_IR
1062
+ LIR
1063
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1064
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1065
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1066
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1067
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1068
+ end_IR
1069
+ end_block
1070
+ begin_block
1071
+ name "B2"
1072
+ from_bci -1
1073
+ to_bci -1
1074
+ predecessors "B0"
1075
+ successors
1076
+ xhandlers
1077
+ flags
1078
+ probability 4599929253084357557
1079
+ begin_IR
1080
+ LIR
1081
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1082
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1083
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1084
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1085
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1086
+ end_IR
1087
+ end_block
1088
+ begin_block
1089
+ name "B1"
1090
+ from_bci -1
1091
+ to_bci -1
1092
+ predecessors "B0"
1093
+ successors
1094
+ xhandlers
1095
+ flags
1096
+ probability 4598791501599548168
1097
+ begin_IR
1098
+ LIR
1099
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1100
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1101
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1102
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1103
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1104
+ end_IR
1105
+ end_block
1106
+ end_cfg
1107
+ begin_bytecodes
1108
+ 0: iload_0
1109
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1110
+ 28: iload_1
1111
+ 29: putstatic #54 // intField:int
1112
+ 32: iload_1
1113
+ 33: istore 4
1114
+ 35: goto 55
1115
+ 38: iload_2
1116
+ 39: putstatic #54 // intField:int
1117
+ 42: iload_2
1118
+ 43: istore 4
1119
+ 45: goto 55
1120
+ 48: iload_3
1121
+ 49: putstatic #54 // intField:int
1122
+ 52: iload_3
1123
+ 53: istore 4
1124
+ 55: iload 4
1125
+ 57: ireturn
1126
+ <|@
1127
+ end_bytecodes
1128
+ begin_cfg
1129
+ name "After PreAllocationOptimizationStage"
1130
+ begin_block
1131
+ name "B0"
1132
+ from_bci -1
1133
+ to_bci -1
1134
+ predecessors
1135
+ successors "B1" "B2" "B3"
1136
+ xhandlers
1137
+ flags
1138
+ probability 4607182418800017408
1139
+ begin_IR
1140
+ LIR
1141
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1142
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1143
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1144
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1145
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1146
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1147
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1148
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1149
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1150
+ end_IR
1151
+ end_block
1152
+ begin_block
1153
+ name "B3"
1154
+ from_bci -1
1155
+ to_bci -1
1156
+ predecessors "B0"
1157
+ successors
1158
+ xhandlers
1159
+ flags
1160
+ probability 4600308503579294019
1161
+ begin_IR
1162
+ LIR
1163
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1164
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1165
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1166
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1167
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1168
+ end_IR
1169
+ end_block
1170
+ begin_block
1171
+ name "B2"
1172
+ from_bci -1
1173
+ to_bci -1
1174
+ predecessors "B0"
1175
+ successors
1176
+ xhandlers
1177
+ flags
1178
+ probability 4599929253084357557
1179
+ begin_IR
1180
+ LIR
1181
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1182
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1183
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1184
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1185
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1186
+ end_IR
1187
+ end_block
1188
+ begin_block
1189
+ name "B1"
1190
+ from_bci -1
1191
+ to_bci -1
1192
+ predecessors "B0"
1193
+ successors
1194
+ xhandlers
1195
+ flags
1196
+ probability 4598791501599548168
1197
+ begin_IR
1198
+ LIR
1199
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1200
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1201
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1202
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1203
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1204
+ end_IR
1205
+ end_block
1206
+ end_cfg
1207
+ begin_bytecodes
1208
+ 0: iload_0
1209
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1210
+ 28: iload_1
1211
+ 29: putstatic #54 // intField:int
1212
+ 32: iload_1
1213
+ 33: istore 4
1214
+ 35: goto 55
1215
+ 38: iload_2
1216
+ 39: putstatic #54 // intField:int
1217
+ 42: iload_2
1218
+ 43: istore 4
1219
+ 45: goto 55
1220
+ 48: iload_3
1221
+ 49: putstatic #54 // intField:int
1222
+ 52: iload_3
1223
+ 53: istore 4
1224
+ 55: iload 4
1225
+ 57: ireturn
1226
+ <|@
1227
+ end_bytecodes
1228
+ begin_cfg
1229
+ name "After MarkBasePointers"
1230
+ begin_block
1231
+ name "B0"
1232
+ from_bci -1
1233
+ to_bci -1
1234
+ predecessors
1235
+ successors "B1" "B2" "B3"
1236
+ xhandlers
1237
+ flags
1238
+ probability 4607182418800017408
1239
+ begin_IR
1240
+ LIR
1241
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1242
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1243
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1244
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1245
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1246
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1247
+ nr -1 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1248
+ nr -1 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1249
+ nr -1 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1250
+ end_IR
1251
+ end_block
1252
+ begin_block
1253
+ name "B3"
1254
+ from_bci -1
1255
+ to_bci -1
1256
+ predecessors "B0"
1257
+ successors
1258
+ xhandlers
1259
+ flags
1260
+ probability 4600308503579294019
1261
+ begin_IR
1262
+ LIR
1263
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1264
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1265
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1266
+ nr -1 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1267
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1268
+ end_IR
1269
+ end_block
1270
+ begin_block
1271
+ name "B2"
1272
+ from_bci -1
1273
+ to_bci -1
1274
+ predecessors "B0"
1275
+ successors
1276
+ xhandlers
1277
+ flags
1278
+ probability 4599929253084357557
1279
+ begin_IR
1280
+ LIR
1281
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1282
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1283
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1284
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1285
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1286
+ end_IR
1287
+ end_block
1288
+ begin_block
1289
+ name "B1"
1290
+ from_bci -1
1291
+ to_bci -1
1292
+ predecessors "B0"
1293
+ successors
1294
+ xhandlers
1295
+ flags
1296
+ probability 4598791501599548168
1297
+ begin_IR
1298
+ LIR
1299
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1300
+ nr -1 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1301
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1302
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1303
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1304
+ end_IR
1305
+ end_block
1306
+ end_cfg
1307
+ begin_bytecodes
1308
+ 0: iload_0
1309
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1310
+ 28: iload_1
1311
+ 29: putstatic #54 // intField:int
1312
+ 32: iload_1
1313
+ 33: istore 4
1314
+ 35: goto 55
1315
+ 38: iload_2
1316
+ 39: putstatic #54 // intField:int
1317
+ 42: iload_2
1318
+ 43: istore 4
1319
+ 45: goto 55
1320
+ 48: iload_3
1321
+ 49: putstatic #54 // intField:int
1322
+ 52: iload_3
1323
+ 53: istore 4
1324
+ 55: iload 4
1325
+ 57: ireturn
1326
+ <|@
1327
+ end_bytecodes
1328
+ begin_cfg
1329
+ name "Before register allocation"
1330
+ begin_block
1331
+ name "B0"
1332
+ from_bci -1
1333
+ to_bci -1
1334
+ predecessors
1335
+ successors "B1" "B2" "B3"
1336
+ xhandlers
1337
+ flags
1338
+ probability 4607182418800017408
1339
+ begin_IR
1340
+ LIR
1341
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1342
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1343
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1344
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1345
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1346
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1347
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1348
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1349
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1350
+ end_IR
1351
+ end_block
1352
+ begin_block
1353
+ name "B3"
1354
+ from_bci -1
1355
+ to_bci -1
1356
+ predecessors "B0"
1357
+ successors
1358
+ xhandlers
1359
+ flags
1360
+ probability 4600308503579294019
1361
+ begin_IR
1362
+ LIR
1363
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1364
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1365
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1366
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1367
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1368
+ end_IR
1369
+ end_block
1370
+ begin_block
1371
+ name "B2"
1372
+ from_bci -1
1373
+ to_bci -1
1374
+ predecessors "B0"
1375
+ successors
1376
+ xhandlers
1377
+ flags
1378
+ probability 4599929253084357557
1379
+ begin_IR
1380
+ LIR
1381
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1382
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1383
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1384
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1385
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1386
+ end_IR
1387
+ end_block
1388
+ begin_block
1389
+ name "B1"
1390
+ from_bci -1
1391
+ to_bci -1
1392
+ predecessors "B0"
1393
+ successors
1394
+ xhandlers
1395
+ flags
1396
+ probability 4598791501599548168
1397
+ begin_IR
1398
+ LIR
1399
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1400
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1401
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1402
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1403
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1404
+ end_IR
1405
+ end_block
1406
+ end_cfg
1407
+ begin_bytecodes
1408
+ 0: iload_0
1409
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1410
+ 28: iload_1
1411
+ 29: putstatic #54 // intField:int
1412
+ 32: iload_1
1413
+ 33: istore 4
1414
+ 35: goto 55
1415
+ 38: iload_2
1416
+ 39: putstatic #54 // intField:int
1417
+ 42: iload_2
1418
+ 43: istore 4
1419
+ 45: goto 55
1420
+ 48: iload_3
1421
+ 49: putstatic #54 // intField:int
1422
+ 52: iload_3
1423
+ 53: istore 4
1424
+ 55: iload 4
1425
+ 57: ireturn
1426
+ <|@
1427
+ end_bytecodes
1428
+ begin_cfg
1429
+ name "After SSALinearScanLifetimeAnalysis"
1430
+ begin_block
1431
+ name "B0"
1432
+ from_bci -1
1433
+ to_bci -1
1434
+ predecessors
1435
+ successors "B1" "B2" "B3"
1436
+ xhandlers
1437
+ flags
1438
+ probability 4607182418800017408
1439
+ begin_IR
1440
+ LIR
1441
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1442
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1443
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1444
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1445
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1446
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1447
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1448
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1449
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1450
+ end_IR
1451
+ end_block
1452
+ begin_block
1453
+ name "B3"
1454
+ from_bci -1
1455
+ to_bci -1
1456
+ predecessors "B0"
1457
+ successors
1458
+ xhandlers
1459
+ flags
1460
+ probability 4600308503579294019
1461
+ begin_IR
1462
+ LIR
1463
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1464
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1465
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1466
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1467
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1468
+ end_IR
1469
+ end_block
1470
+ begin_block
1471
+ name "B2"
1472
+ from_bci -1
1473
+ to_bci -1
1474
+ predecessors "B0"
1475
+ successors
1476
+ xhandlers
1477
+ flags
1478
+ probability 4599929253084357557
1479
+ begin_IR
1480
+ LIR
1481
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1482
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1483
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1484
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1485
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1486
+ end_IR
1487
+ end_block
1488
+ begin_block
1489
+ name "B1"
1490
+ from_bci -1
1491
+ to_bci -1
1492
+ predecessors "B0"
1493
+ successors
1494
+ xhandlers
1495
+ flags
1496
+ probability 4598791501599548168
1497
+ begin_IR
1498
+ LIR
1499
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1500
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1501
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1502
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1503
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1504
+ end_IR
1505
+ end_block
1506
+ end_cfg
1507
+ begin_bytecodes
1508
+ 0: iload_0
1509
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1510
+ 28: iload_1
1511
+ 29: putstatic #54 // intField:int
1512
+ 32: iload_1
1513
+ 33: istore 4
1514
+ 35: goto 55
1515
+ 38: iload_2
1516
+ 39: putstatic #54 // intField:int
1517
+ 42: iload_2
1518
+ 43: istore 4
1519
+ 45: goto 55
1520
+ 48: iload_3
1521
+ 49: putstatic #54 // intField:int
1522
+ 52: iload_3
1523
+ 53: istore 4
1524
+ 55: iload 4
1525
+ 57: ireturn
1526
+ <|@
1527
+ end_bytecodes
1528
+ begin_intervals
1529
+ name "Before register allocation"
1530
+ rax|d fixed "[rax|d]" rax|d v3|d [0, 1[[24, 26[[34, 36[[44, 46[ "NoOptimization"
1531
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1532
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1533
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1534
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1535
+ r8|d fixed "[r8|d]" r8|d -1 [0, 12[ "NoSpillStore"
1536
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 17[6 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1537
+ v1|d DWORD "[v1|d]" v1|d rdx|d [8, 18[[38, 44[8 MustHaveRegister 40 MustHaveRegister 44 ShouldHaveRegister "NoSpillStore"
1538
+ v2|d DWORD "[v2|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1539
+ v3|d DWORD "[v3|d]" v3|d r8|d [12, 24[12 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1540
+ v4|q QWORD "[v4|q]" v4|q -1 [14, 20[[28, 30[[38, 40[14 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister 40 MustHaveRegister "NoSpillStore"
1541
+ v5|q QWORD "[v5|q]" v5|q rbp|q [2, 26[[28, 36[[38, 46[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister 46 ShouldHaveRegister "NoSpillStore"
1542
+ end_intervals
1543
+ begin_intervals
1544
+ name "After register allocation"
1545
+ rax|d fixed "[rax|d]" rax|d v3|d [0, 1[[24, 26[[34, 36[[44, 46[ "NoOptimization"
1546
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1547
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1548
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1549
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1550
+ r8|d fixed "[r8|d]" r8|d -1 [0, 12[ "NoSpillStore"
1551
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 17[6 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1552
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 18[[38, 44[8 MustHaveRegister 40 MustHaveRegister 44 ShouldHaveRegister "NoSpillStore"
1553
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1554
+ v3|d DWORD "[r8|d]" v3|d r8|d [12, 24[12 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1555
+ v4|q QWORD "[r10|q]" v4|q -1 [14, 20[[28, 30[[38, 40[14 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister 40 MustHaveRegister "NoSpillStore"
1556
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 26[[28, 36[[38, 46[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister 46 ShouldHaveRegister "NoSpillStore"
1557
+ end_intervals
1558
+ begin_cfg
1559
+ name "After LinearScanRegisterAllocation"
1560
+ begin_block
1561
+ name "B0"
1562
+ from_bci -1
1563
+ to_bci -1
1564
+ predecessors
1565
+ successors "B1" "B2" "B3"
1566
+ xhandlers
1567
+ flags
1568
+ probability 4607182418800017408
1569
+ begin_IR
1570
+ LIR
1571
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1572
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1573
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1574
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1575
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1576
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1577
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1578
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1579
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1580
+ end_IR
1581
+ end_block
1582
+ begin_block
1583
+ name "B3"
1584
+ from_bci -1
1585
+ to_bci -1
1586
+ predecessors "B0"
1587
+ successors
1588
+ xhandlers
1589
+ flags
1590
+ probability 4600308503579294019
1591
+ begin_IR
1592
+ LIR
1593
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1594
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1595
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1596
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1597
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1598
+ end_IR
1599
+ end_block
1600
+ begin_block
1601
+ name "B2"
1602
+ from_bci -1
1603
+ to_bci -1
1604
+ predecessors "B0"
1605
+ successors
1606
+ xhandlers
1607
+ flags
1608
+ probability 4599929253084357557
1609
+ begin_IR
1610
+ LIR
1611
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1612
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1613
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1614
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1615
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1616
+ end_IR
1617
+ end_block
1618
+ begin_block
1619
+ name "B1"
1620
+ from_bci -1
1621
+ to_bci -1
1622
+ predecessors "B0"
1623
+ successors
1624
+ xhandlers
1625
+ flags
1626
+ probability 4598791501599548168
1627
+ begin_IR
1628
+ LIR
1629
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1630
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1631
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1632
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1633
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1634
+ end_IR
1635
+ end_block
1636
+ end_cfg
1637
+ begin_bytecodes
1638
+ 0: iload_0
1639
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1640
+ 28: iload_1
1641
+ 29: putstatic #54 // intField:int
1642
+ 32: iload_1
1643
+ 33: istore 4
1644
+ 35: goto 55
1645
+ 38: iload_2
1646
+ 39: putstatic #54 // intField:int
1647
+ 42: iload_2
1648
+ 43: istore 4
1649
+ 45: goto 55
1650
+ 48: iload_3
1651
+ 49: putstatic #54 // intField:int
1652
+ 52: iload_3
1653
+ 53: istore 4
1654
+ 55: iload 4
1655
+ 57: ireturn
1656
+ <|@
1657
+ end_bytecodes
1658
+ begin_intervals
1659
+ name "After optimize spill position"
1660
+ rax|d fixed "[rax|d]" rax|d v3|d [0, 1[[24, 26[[34, 36[[44, 46[ "NoOptimization"
1661
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1662
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1663
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1664
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1665
+ r8|d fixed "[r8|d]" r8|d -1 [0, 12[ "NoSpillStore"
1666
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 17[6 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1667
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 18[[38, 44[8 MustHaveRegister 40 MustHaveRegister 44 ShouldHaveRegister "NoSpillStore"
1668
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1669
+ v3|d DWORD "[r8|d]" v3|d r8|d [12, 24[12 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1670
+ v4|q QWORD "[r10|q]" v4|q -1 [14, 20[[28, 30[[38, 40[14 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister 40 MustHaveRegister "NoSpillStore"
1671
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 26[[28, 36[[38, 46[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister 46 ShouldHaveRegister "NoSpillStore"
1672
+ end_intervals
1673
+ begin_cfg
1674
+ name "After LinearScanOptimizeSpillPosition"
1675
+ begin_block
1676
+ name "B0"
1677
+ from_bci -1
1678
+ to_bci -1
1679
+ predecessors
1680
+ successors "B1" "B2" "B3"
1681
+ xhandlers
1682
+ flags
1683
+ probability 4607182418800017408
1684
+ begin_IR
1685
+ LIR
1686
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1687
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1688
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1689
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1690
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1691
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1692
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1693
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1694
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1695
+ end_IR
1696
+ end_block
1697
+ begin_block
1698
+ name "B3"
1699
+ from_bci -1
1700
+ to_bci -1
1701
+ predecessors "B0"
1702
+ successors
1703
+ xhandlers
1704
+ flags
1705
+ probability 4600308503579294019
1706
+ begin_IR
1707
+ LIR
1708
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1709
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1710
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1711
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1712
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1713
+ end_IR
1714
+ end_block
1715
+ begin_block
1716
+ name "B2"
1717
+ from_bci -1
1718
+ to_bci -1
1719
+ predecessors "B0"
1720
+ successors
1721
+ xhandlers
1722
+ flags
1723
+ probability 4599929253084357557
1724
+ begin_IR
1725
+ LIR
1726
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1727
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1728
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1729
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1730
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1731
+ end_IR
1732
+ end_block
1733
+ begin_block
1734
+ name "B1"
1735
+ from_bci -1
1736
+ to_bci -1
1737
+ predecessors "B0"
1738
+ successors
1739
+ xhandlers
1740
+ flags
1741
+ probability 4598791501599548168
1742
+ begin_IR
1743
+ LIR
1744
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1745
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1746
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1747
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1748
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1749
+ end_IR
1750
+ end_block
1751
+ end_cfg
1752
+ begin_bytecodes
1753
+ 0: iload_0
1754
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1755
+ 28: iload_1
1756
+ 29: putstatic #54 // intField:int
1757
+ 32: iload_1
1758
+ 33: istore 4
1759
+ 35: goto 55
1760
+ 38: iload_2
1761
+ 39: putstatic #54 // intField:int
1762
+ 42: iload_2
1763
+ 43: istore 4
1764
+ 45: goto 55
1765
+ 48: iload_3
1766
+ 49: putstatic #54 // intField:int
1767
+ 52: iload_3
1768
+ 53: istore 4
1769
+ 55: iload 4
1770
+ 57: ireturn
1771
+ <|@
1772
+ end_bytecodes
1773
+ begin_intervals
1774
+ name "After resolve data flow"
1775
+ rax|d fixed "[rax|d]" rax|d v3|d [0, 1[[24, 26[[34, 36[[44, 46[ "NoOptimization"
1776
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1777
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1778
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1779
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1780
+ r8|d fixed "[r8|d]" r8|d -1 [0, 12[ "NoSpillStore"
1781
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 17[6 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1782
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 18[[38, 44[8 MustHaveRegister 40 MustHaveRegister 44 ShouldHaveRegister "NoSpillStore"
1783
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1784
+ v3|d DWORD "[r8|d]" v3|d r8|d [12, 24[12 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1785
+ v4|q QWORD "[r10|q]" v4|q -1 [14, 20[[28, 30[[38, 40[14 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister 40 MustHaveRegister "NoSpillStore"
1786
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 26[[28, 36[[38, 46[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister 46 ShouldHaveRegister "NoSpillStore"
1787
+ end_intervals
1788
+ begin_cfg
1789
+ name "After SSALinearScanResolveDataFlow"
1790
+ begin_block
1791
+ name "B0"
1792
+ from_bci -1
1793
+ to_bci -1
1794
+ predecessors
1795
+ successors "B1" "B2" "B3"
1796
+ xhandlers
1797
+ flags
1798
+ probability 4607182418800017408
1799
+ begin_IR
1800
+ LIR
1801
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1802
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1803
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1804
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1805
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1806
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1807
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1808
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1809
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1810
+ end_IR
1811
+ end_block
1812
+ begin_block
1813
+ name "B3"
1814
+ from_bci -1
1815
+ to_bci -1
1816
+ predecessors "B0"
1817
+ successors
1818
+ xhandlers
1819
+ flags
1820
+ probability 4600308503579294019
1821
+ begin_IR
1822
+ LIR
1823
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1824
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1825
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1826
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1827
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1828
+ end_IR
1829
+ end_block
1830
+ begin_block
1831
+ name "B2"
1832
+ from_bci -1
1833
+ to_bci -1
1834
+ predecessors "B0"
1835
+ successors
1836
+ xhandlers
1837
+ flags
1838
+ probability 4599929253084357557
1839
+ begin_IR
1840
+ LIR
1841
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1842
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1843
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1844
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1845
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1846
+ end_IR
1847
+ end_block
1848
+ begin_block
1849
+ name "B1"
1850
+ from_bci -1
1851
+ to_bci -1
1852
+ predecessors "B0"
1853
+ successors
1854
+ xhandlers
1855
+ flags
1856
+ probability 4598791501599548168
1857
+ begin_IR
1858
+ LIR
1859
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1860
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1861
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1862
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1863
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1864
+ end_IR
1865
+ end_block
1866
+ end_cfg
1867
+ begin_bytecodes
1868
+ 0: iload_0
1869
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1870
+ 28: iload_1
1871
+ 29: putstatic #54 // intField:int
1872
+ 32: iload_1
1873
+ 33: istore 4
1874
+ 35: goto 55
1875
+ 38: iload_2
1876
+ 39: putstatic #54 // intField:int
1877
+ 42: iload_2
1878
+ 43: istore 4
1879
+ 45: goto 55
1880
+ 48: iload_3
1881
+ 49: putstatic #54 // intField:int
1882
+ 52: iload_3
1883
+ 53: istore 4
1884
+ 55: iload 4
1885
+ 57: ireturn
1886
+ <|@
1887
+ end_bytecodes
1888
+ begin_cfg
1889
+ name "After SSALinearScanEliminateSpillMove"
1890
+ begin_block
1891
+ name "B0"
1892
+ from_bci -1
1893
+ to_bci -1
1894
+ predecessors
1895
+ successors "B1" "B2" "B3"
1896
+ xhandlers
1897
+ flags
1898
+ probability 4607182418800017408
1899
+ begin_IR
1900
+ LIR
1901
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1902
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1903
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
1904
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1905
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1906
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1907
+ nr 12 <|@ instruction v3|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
1908
+ nr 14 <|@ instruction v4|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1909
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~v0|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
1910
+ end_IR
1911
+ end_block
1912
+ begin_block
1913
+ name "B3"
1914
+ from_bci -1
1915
+ to_bci -1
1916
+ predecessors "B0"
1917
+ successors
1918
+ xhandlers
1919
+ flags
1920
+ probability 4600308503579294019
1921
+ begin_IR
1922
+ LIR
1923
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1924
+ nr 20 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1925
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1926
+ nr 24 <|@ instruction rax|DWORD = MOVE v3|DWORD moveKind: DWORD <|@ <|@
1927
+ nr 26 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1928
+ end_IR
1929
+ end_block
1930
+ begin_block
1931
+ name "B2"
1932
+ from_bci -1
1933
+ to_bci -1
1934
+ predecessors "B0"
1935
+ successors
1936
+ xhandlers
1937
+ flags
1938
+ probability 4599929253084357557
1939
+ begin_IR
1940
+ LIR
1941
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1942
+ nr 30 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1943
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1944
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1945
+ nr 36 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1946
+ end_IR
1947
+ end_block
1948
+ begin_block
1949
+ name "B1"
1950
+ from_bci -1
1951
+ to_bci -1
1952
+ predecessors "B0"
1953
+ successors
1954
+ xhandlers
1955
+ flags
1956
+ probability 4598791501599548168
1957
+ begin_IR
1958
+ LIR
1959
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1960
+ nr 40 <|@ instruction MOV (x: [v4|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1961
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1962
+ nr 44 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1963
+ nr 46 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
1964
+ end_IR
1965
+ end_block
1966
+ end_cfg
1967
+ begin_bytecodes
1968
+ 0: iload_0
1969
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
1970
+ 28: iload_1
1971
+ 29: putstatic #54 // intField:int
1972
+ 32: iload_1
1973
+ 33: istore 4
1974
+ 35: goto 55
1975
+ 38: iload_2
1976
+ 39: putstatic #54 // intField:int
1977
+ 42: iload_2
1978
+ 43: istore 4
1979
+ 45: goto 55
1980
+ 48: iload_3
1981
+ 49: putstatic #54 // intField:int
1982
+ 52: iload_3
1983
+ 53: istore 4
1984
+ 55: iload 4
1985
+ 57: ireturn
1986
+ <|@
1987
+ end_bytecodes
1988
+ begin_cfg
1989
+ name "After LinearScanAssignLocations"
1990
+ begin_block
1991
+ name "B0"
1992
+ from_bci -1
1993
+ to_bci -1
1994
+ predecessors
1995
+ successors "B1" "B2" "B3"
1996
+ xhandlers
1997
+ flags
1998
+ probability 4607182418800017408
1999
+ begin_IR
2000
+ LIR
2001
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2002
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2003
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2004
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2005
+ end_IR
2006
+ end_block
2007
+ begin_block
2008
+ name "B3"
2009
+ from_bci -1
2010
+ to_bci -1
2011
+ predecessors "B0"
2012
+ successors
2013
+ xhandlers
2014
+ flags
2015
+ probability 4600308503579294019
2016
+ begin_IR
2017
+ LIR
2018
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2019
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2020
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2021
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2022
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2023
+ end_IR
2024
+ end_block
2025
+ begin_block
2026
+ name "B2"
2027
+ from_bci -1
2028
+ to_bci -1
2029
+ predecessors "B0"
2030
+ successors
2031
+ xhandlers
2032
+ flags
2033
+ probability 4599929253084357557
2034
+ begin_IR
2035
+ LIR
2036
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2037
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2038
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2039
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2040
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2041
+ end_IR
2042
+ end_block
2043
+ begin_block
2044
+ name "B1"
2045
+ from_bci -1
2046
+ to_bci -1
2047
+ predecessors "B0"
2048
+ successors
2049
+ xhandlers
2050
+ flags
2051
+ probability 4598791501599548168
2052
+ begin_IR
2053
+ LIR
2054
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2055
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2056
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2057
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2058
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2059
+ end_IR
2060
+ end_block
2061
+ end_cfg
2062
+ begin_bytecodes
2063
+ 0: iload_0
2064
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2065
+ 28: iload_1
2066
+ 29: putstatic #54 // intField:int
2067
+ 32: iload_1
2068
+ 33: istore 4
2069
+ 35: goto 55
2070
+ 38: iload_2
2071
+ 39: putstatic #54 // intField:int
2072
+ 42: iload_2
2073
+ 43: istore 4
2074
+ 45: goto 55
2075
+ 48: iload_3
2076
+ 49: putstatic #54 // intField:int
2077
+ 52: iload_3
2078
+ 53: istore 4
2079
+ 55: iload 4
2080
+ 57: ireturn
2081
+ <|@
2082
+ end_bytecodes
2083
+ begin_cfg
2084
+ name "After LinearScan"
2085
+ begin_block
2086
+ name "B0"
2087
+ from_bci -1
2088
+ to_bci -1
2089
+ predecessors
2090
+ successors "B1" "B2" "B3"
2091
+ xhandlers
2092
+ flags
2093
+ probability 4607182418800017408
2094
+ begin_IR
2095
+ LIR
2096
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2097
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2098
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2099
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2100
+ end_IR
2101
+ end_block
2102
+ begin_block
2103
+ name "B3"
2104
+ from_bci -1
2105
+ to_bci -1
2106
+ predecessors "B0"
2107
+ successors
2108
+ xhandlers
2109
+ flags
2110
+ probability 4600308503579294019
2111
+ begin_IR
2112
+ LIR
2113
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2114
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2115
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2116
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2117
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2118
+ end_IR
2119
+ end_block
2120
+ begin_block
2121
+ name "B2"
2122
+ from_bci -1
2123
+ to_bci -1
2124
+ predecessors "B0"
2125
+ successors
2126
+ xhandlers
2127
+ flags
2128
+ probability 4599929253084357557
2129
+ begin_IR
2130
+ LIR
2131
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2132
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2133
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2134
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2135
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2136
+ end_IR
2137
+ end_block
2138
+ begin_block
2139
+ name "B1"
2140
+ from_bci -1
2141
+ to_bci -1
2142
+ predecessors "B0"
2143
+ successors
2144
+ xhandlers
2145
+ flags
2146
+ probability 4598791501599548168
2147
+ begin_IR
2148
+ LIR
2149
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2150
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2151
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2152
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2153
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2154
+ end_IR
2155
+ end_block
2156
+ end_cfg
2157
+ begin_bytecodes
2158
+ 0: iload_0
2159
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2160
+ 28: iload_1
2161
+ 29: putstatic #54 // intField:int
2162
+ 32: iload_1
2163
+ 33: istore 4
2164
+ 35: goto 55
2165
+ 38: iload_2
2166
+ 39: putstatic #54 // intField:int
2167
+ 42: iload_2
2168
+ 43: istore 4
2169
+ 45: goto 55
2170
+ 48: iload_3
2171
+ 49: putstatic #54 // intField:int
2172
+ 52: iload_3
2173
+ 53: istore 4
2174
+ 55: iload 4
2175
+ 57: ireturn
2176
+ <|@
2177
+ end_bytecodes
2178
+ begin_cfg
2179
+ name "After LSStackSlotAllocator"
2180
+ begin_block
2181
+ name "B0"
2182
+ from_bci -1
2183
+ to_bci -1
2184
+ predecessors
2185
+ successors "B1" "B2" "B3"
2186
+ xhandlers
2187
+ flags
2188
+ probability 4607182418800017408
2189
+ begin_IR
2190
+ LIR
2191
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2192
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2193
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2194
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2195
+ end_IR
2196
+ end_block
2197
+ begin_block
2198
+ name "B3"
2199
+ from_bci -1
2200
+ to_bci -1
2201
+ predecessors "B0"
2202
+ successors
2203
+ xhandlers
2204
+ flags
2205
+ probability 4600308503579294019
2206
+ begin_IR
2207
+ LIR
2208
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2209
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2210
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2211
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2212
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2213
+ end_IR
2214
+ end_block
2215
+ begin_block
2216
+ name "B2"
2217
+ from_bci -1
2218
+ to_bci -1
2219
+ predecessors "B0"
2220
+ successors
2221
+ xhandlers
2222
+ flags
2223
+ probability 4599929253084357557
2224
+ begin_IR
2225
+ LIR
2226
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2227
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2228
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2229
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2230
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2231
+ end_IR
2232
+ end_block
2233
+ begin_block
2234
+ name "B1"
2235
+ from_bci -1
2236
+ to_bci -1
2237
+ predecessors "B0"
2238
+ successors
2239
+ xhandlers
2240
+ flags
2241
+ probability 4598791501599548168
2242
+ begin_IR
2243
+ LIR
2244
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2245
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2246
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2247
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2248
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2249
+ end_IR
2250
+ end_block
2251
+ end_cfg
2252
+ begin_bytecodes
2253
+ 0: iload_0
2254
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2255
+ 28: iload_1
2256
+ 29: putstatic #54 // intField:int
2257
+ 32: iload_1
2258
+ 33: istore 4
2259
+ 35: goto 55
2260
+ 38: iload_2
2261
+ 39: putstatic #54 // intField:int
2262
+ 42: iload_2
2263
+ 43: istore 4
2264
+ 45: goto 55
2265
+ 48: iload_3
2266
+ 49: putstatic #54 // intField:int
2267
+ 52: iload_3
2268
+ 53: istore 4
2269
+ 55: iload 4
2270
+ 57: ireturn
2271
+ <|@
2272
+ end_bytecodes
2273
+ begin_cfg
2274
+ name "After LocationMarker"
2275
+ begin_block
2276
+ name "B0"
2277
+ from_bci -1
2278
+ to_bci -1
2279
+ predecessors
2280
+ successors "B1" "B2" "B3"
2281
+ xhandlers
2282
+ flags
2283
+ probability 4607182418800017408
2284
+ begin_IR
2285
+ LIR
2286
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2287
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2288
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2289
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2290
+ end_IR
2291
+ end_block
2292
+ begin_block
2293
+ name "B3"
2294
+ from_bci -1
2295
+ to_bci -1
2296
+ predecessors "B0"
2297
+ successors
2298
+ xhandlers
2299
+ flags
2300
+ probability 4600308503579294019
2301
+ begin_IR
2302
+ LIR
2303
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2304
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2305
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2306
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2307
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2308
+ end_IR
2309
+ end_block
2310
+ begin_block
2311
+ name "B2"
2312
+ from_bci -1
2313
+ to_bci -1
2314
+ predecessors "B0"
2315
+ successors
2316
+ xhandlers
2317
+ flags
2318
+ probability 4599929253084357557
2319
+ begin_IR
2320
+ LIR
2321
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2322
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2323
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2324
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2325
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2326
+ end_IR
2327
+ end_block
2328
+ begin_block
2329
+ name "B1"
2330
+ from_bci -1
2331
+ to_bci -1
2332
+ predecessors "B0"
2333
+ successors
2334
+ xhandlers
2335
+ flags
2336
+ probability 4598791501599548168
2337
+ begin_IR
2338
+ LIR
2339
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2340
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2341
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2342
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2343
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2344
+ end_IR
2345
+ end_block
2346
+ end_cfg
2347
+ begin_bytecodes
2348
+ 0: iload_0
2349
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2350
+ 28: iload_1
2351
+ 29: putstatic #54 // intField:int
2352
+ 32: iload_1
2353
+ 33: istore 4
2354
+ 35: goto 55
2355
+ 38: iload_2
2356
+ 39: putstatic #54 // intField:int
2357
+ 42: iload_2
2358
+ 43: istore 4
2359
+ 45: goto 55
2360
+ 48: iload_3
2361
+ 49: putstatic #54 // intField:int
2362
+ 52: iload_3
2363
+ 53: istore 4
2364
+ 55: iload 4
2365
+ 57: ireturn
2366
+ <|@
2367
+ end_bytecodes
2368
+ begin_cfg
2369
+ name "After AllocationStage"
2370
+ begin_block
2371
+ name "B0"
2372
+ from_bci -1
2373
+ to_bci -1
2374
+ predecessors
2375
+ successors "B1" "B2" "B3"
2376
+ xhandlers
2377
+ flags
2378
+ probability 4607182418800017408
2379
+ begin_IR
2380
+ LIR
2381
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2382
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2383
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2384
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2385
+ end_IR
2386
+ end_block
2387
+ begin_block
2388
+ name "B3"
2389
+ from_bci -1
2390
+ to_bci -1
2391
+ predecessors "B0"
2392
+ successors
2393
+ xhandlers
2394
+ flags
2395
+ probability 4600308503579294019
2396
+ begin_IR
2397
+ LIR
2398
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2399
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2400
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2401
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2402
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2403
+ end_IR
2404
+ end_block
2405
+ begin_block
2406
+ name "B2"
2407
+ from_bci -1
2408
+ to_bci -1
2409
+ predecessors "B0"
2410
+ successors
2411
+ xhandlers
2412
+ flags
2413
+ probability 4599929253084357557
2414
+ begin_IR
2415
+ LIR
2416
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2417
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2418
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2419
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2420
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2421
+ end_IR
2422
+ end_block
2423
+ begin_block
2424
+ name "B1"
2425
+ from_bci -1
2426
+ to_bci -1
2427
+ predecessors "B0"
2428
+ successors
2429
+ xhandlers
2430
+ flags
2431
+ probability 4598791501599548168
2432
+ begin_IR
2433
+ LIR
2434
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2435
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2436
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2437
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2438
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2439
+ end_IR
2440
+ end_block
2441
+ end_cfg
2442
+ begin_bytecodes
2443
+ 0: iload_0
2444
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2445
+ 28: iload_1
2446
+ 29: putstatic #54 // intField:int
2447
+ 32: iload_1
2448
+ 33: istore 4
2449
+ 35: goto 55
2450
+ 38: iload_2
2451
+ 39: putstatic #54 // intField:int
2452
+ 42: iload_2
2453
+ 43: istore 4
2454
+ 45: goto 55
2455
+ 48: iload_3
2456
+ 49: putstatic #54 // intField:int
2457
+ 52: iload_3
2458
+ 53: istore 4
2459
+ 55: iload 4
2460
+ 57: ireturn
2461
+ <|@
2462
+ end_bytecodes
2463
+ begin_cfg
2464
+ name "After EdgeMoveOptimizer"
2465
+ begin_block
2466
+ name "B0"
2467
+ from_bci -1
2468
+ to_bci -1
2469
+ predecessors
2470
+ successors "B1" "B2" "B3"
2471
+ xhandlers
2472
+ flags
2473
+ probability 4607182418800017408
2474
+ begin_IR
2475
+ LIR
2476
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2477
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2478
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2479
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2480
+ end_IR
2481
+ end_block
2482
+ begin_block
2483
+ name "B3"
2484
+ from_bci -1
2485
+ to_bci -1
2486
+ predecessors "B0"
2487
+ successors
2488
+ xhandlers
2489
+ flags
2490
+ probability 4600308503579294019
2491
+ begin_IR
2492
+ LIR
2493
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2494
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2495
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2496
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2497
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2498
+ end_IR
2499
+ end_block
2500
+ begin_block
2501
+ name "B2"
2502
+ from_bci -1
2503
+ to_bci -1
2504
+ predecessors "B0"
2505
+ successors
2506
+ xhandlers
2507
+ flags
2508
+ probability 4599929253084357557
2509
+ begin_IR
2510
+ LIR
2511
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2512
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2513
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2514
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2515
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2516
+ end_IR
2517
+ end_block
2518
+ begin_block
2519
+ name "B1"
2520
+ from_bci -1
2521
+ to_bci -1
2522
+ predecessors "B0"
2523
+ successors
2524
+ xhandlers
2525
+ flags
2526
+ probability 4598791501599548168
2527
+ begin_IR
2528
+ LIR
2529
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2530
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2531
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2532
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2533
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2534
+ end_IR
2535
+ end_block
2536
+ end_cfg
2537
+ begin_bytecodes
2538
+ 0: iload_0
2539
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2540
+ 28: iload_1
2541
+ 29: putstatic #54 // intField:int
2542
+ 32: iload_1
2543
+ 33: istore 4
2544
+ 35: goto 55
2545
+ 38: iload_2
2546
+ 39: putstatic #54 // intField:int
2547
+ 42: iload_2
2548
+ 43: istore 4
2549
+ 45: goto 55
2550
+ 48: iload_3
2551
+ 49: putstatic #54 // intField:int
2552
+ 52: iload_3
2553
+ 53: istore 4
2554
+ 55: iload 4
2555
+ 57: ireturn
2556
+ <|@
2557
+ end_bytecodes
2558
+ begin_cfg
2559
+ name "After ControlFlowOptimizer"
2560
+ begin_block
2561
+ name "B0"
2562
+ from_bci -1
2563
+ to_bci -1
2564
+ predecessors
2565
+ successors "B1" "B2" "B3"
2566
+ xhandlers
2567
+ flags
2568
+ probability 4607182418800017408
2569
+ begin_IR
2570
+ LIR
2571
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2572
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2573
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2574
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2575
+ end_IR
2576
+ end_block
2577
+ begin_block
2578
+ name "B3"
2579
+ from_bci -1
2580
+ to_bci -1
2581
+ predecessors "B0"
2582
+ successors
2583
+ xhandlers
2584
+ flags
2585
+ probability 4600308503579294019
2586
+ begin_IR
2587
+ LIR
2588
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2589
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2590
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2591
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2592
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2593
+ end_IR
2594
+ end_block
2595
+ begin_block
2596
+ name "B2"
2597
+ from_bci -1
2598
+ to_bci -1
2599
+ predecessors "B0"
2600
+ successors
2601
+ xhandlers
2602
+ flags
2603
+ probability 4599929253084357557
2604
+ begin_IR
2605
+ LIR
2606
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2607
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2608
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2609
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2610
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2611
+ end_IR
2612
+ end_block
2613
+ begin_block
2614
+ name "B1"
2615
+ from_bci -1
2616
+ to_bci -1
2617
+ predecessors "B0"
2618
+ successors
2619
+ xhandlers
2620
+ flags
2621
+ probability 4598791501599548168
2622
+ begin_IR
2623
+ LIR
2624
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2625
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2626
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2627
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2628
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2629
+ end_IR
2630
+ end_block
2631
+ end_cfg
2632
+ begin_bytecodes
2633
+ 0: iload_0
2634
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2635
+ 28: iload_1
2636
+ 29: putstatic #54 // intField:int
2637
+ 32: iload_1
2638
+ 33: istore 4
2639
+ 35: goto 55
2640
+ 38: iload_2
2641
+ 39: putstatic #54 // intField:int
2642
+ 42: iload_2
2643
+ 43: istore 4
2644
+ 45: goto 55
2645
+ 48: iload_3
2646
+ 49: putstatic #54 // intField:int
2647
+ 52: iload_3
2648
+ 53: istore 4
2649
+ 55: iload 4
2650
+ 57: ireturn
2651
+ <|@
2652
+ end_bytecodes
2653
+ begin_cfg
2654
+ name "After RedundantMoveElimination"
2655
+ begin_block
2656
+ name "B0"
2657
+ from_bci -1
2658
+ to_bci -1
2659
+ predecessors
2660
+ successors "B1" "B2" "B3"
2661
+ xhandlers
2662
+ flags
2663
+ probability 4607182418800017408
2664
+ begin_IR
2665
+ LIR
2666
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2667
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2668
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2669
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2670
+ end_IR
2671
+ end_block
2672
+ begin_block
2673
+ name "B3"
2674
+ from_bci -1
2675
+ to_bci -1
2676
+ predecessors "B0"
2677
+ successors
2678
+ xhandlers
2679
+ flags
2680
+ probability 4600308503579294019
2681
+ begin_IR
2682
+ LIR
2683
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2684
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2685
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2686
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2687
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2688
+ end_IR
2689
+ end_block
2690
+ begin_block
2691
+ name "B2"
2692
+ from_bci -1
2693
+ to_bci -1
2694
+ predecessors "B0"
2695
+ successors
2696
+ xhandlers
2697
+ flags
2698
+ probability 4599929253084357557
2699
+ begin_IR
2700
+ LIR
2701
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2702
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2703
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2704
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2705
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2706
+ end_IR
2707
+ end_block
2708
+ begin_block
2709
+ name "B1"
2710
+ from_bci -1
2711
+ to_bci -1
2712
+ predecessors "B0"
2713
+ successors
2714
+ xhandlers
2715
+ flags
2716
+ probability 4598791501599548168
2717
+ begin_IR
2718
+ LIR
2719
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2720
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2721
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2722
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2723
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2724
+ end_IR
2725
+ end_block
2726
+ end_cfg
2727
+ begin_bytecodes
2728
+ 0: iload_0
2729
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2730
+ 28: iload_1
2731
+ 29: putstatic #54 // intField:int
2732
+ 32: iload_1
2733
+ 33: istore 4
2734
+ 35: goto 55
2735
+ 38: iload_2
2736
+ 39: putstatic #54 // intField:int
2737
+ 42: iload_2
2738
+ 43: istore 4
2739
+ 45: goto 55
2740
+ 48: iload_3
2741
+ 49: putstatic #54 // intField:int
2742
+ 52: iload_3
2743
+ 53: istore 4
2744
+ 55: iload 4
2745
+ 57: ireturn
2746
+ <|@
2747
+ end_bytecodes
2748
+ begin_cfg
2749
+ name "After NullCheckOptimizer"
2750
+ begin_block
2751
+ name "B0"
2752
+ from_bci -1
2753
+ to_bci -1
2754
+ predecessors
2755
+ successors "B1" "B2" "B3"
2756
+ xhandlers
2757
+ flags
2758
+ probability 4607182418800017408
2759
+ begin_IR
2760
+ LIR
2761
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2762
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2763
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2764
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2765
+ end_IR
2766
+ end_block
2767
+ begin_block
2768
+ name "B3"
2769
+ from_bci -1
2770
+ to_bci -1
2771
+ predecessors "B0"
2772
+ successors
2773
+ xhandlers
2774
+ flags
2775
+ probability 4600308503579294019
2776
+ begin_IR
2777
+ LIR
2778
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2779
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2780
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2781
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2782
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2783
+ end_IR
2784
+ end_block
2785
+ begin_block
2786
+ name "B2"
2787
+ from_bci -1
2788
+ to_bci -1
2789
+ predecessors "B0"
2790
+ successors
2791
+ xhandlers
2792
+ flags
2793
+ probability 4599929253084357557
2794
+ begin_IR
2795
+ LIR
2796
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2797
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2798
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2799
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2800
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2801
+ end_IR
2802
+ end_block
2803
+ begin_block
2804
+ name "B1"
2805
+ from_bci -1
2806
+ to_bci -1
2807
+ predecessors "B0"
2808
+ successors
2809
+ xhandlers
2810
+ flags
2811
+ probability 4598791501599548168
2812
+ begin_IR
2813
+ LIR
2814
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2815
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2816
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2817
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2818
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2819
+ end_IR
2820
+ end_block
2821
+ end_cfg
2822
+ begin_bytecodes
2823
+ 0: iload_0
2824
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2825
+ 28: iload_1
2826
+ 29: putstatic #54 // intField:int
2827
+ 32: iload_1
2828
+ 33: istore 4
2829
+ 35: goto 55
2830
+ 38: iload_2
2831
+ 39: putstatic #54 // intField:int
2832
+ 42: iload_2
2833
+ 43: istore 4
2834
+ 45: goto 55
2835
+ 48: iload_3
2836
+ 49: putstatic #54 // intField:int
2837
+ 52: iload_3
2838
+ 53: istore 4
2839
+ 55: iload 4
2840
+ 57: ireturn
2841
+ <|@
2842
+ end_bytecodes
2843
+ begin_cfg
2844
+ name "After StackMoveOptimization"
2845
+ begin_block
2846
+ name "B0"
2847
+ from_bci -1
2848
+ to_bci -1
2849
+ predecessors
2850
+ successors "B1" "B2" "B3"
2851
+ xhandlers
2852
+ flags
2853
+ probability 4607182418800017408
2854
+ begin_IR
2855
+ LIR
2856
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2857
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2858
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2859
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2860
+ end_IR
2861
+ end_block
2862
+ begin_block
2863
+ name "B3"
2864
+ from_bci -1
2865
+ to_bci -1
2866
+ predecessors "B0"
2867
+ successors
2868
+ xhandlers
2869
+ flags
2870
+ probability 4600308503579294019
2871
+ begin_IR
2872
+ LIR
2873
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2874
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2875
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2876
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2877
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2878
+ end_IR
2879
+ end_block
2880
+ begin_block
2881
+ name "B2"
2882
+ from_bci -1
2883
+ to_bci -1
2884
+ predecessors "B0"
2885
+ successors
2886
+ xhandlers
2887
+ flags
2888
+ probability 4599929253084357557
2889
+ begin_IR
2890
+ LIR
2891
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2892
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2893
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2894
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2895
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2896
+ end_IR
2897
+ end_block
2898
+ begin_block
2899
+ name "B1"
2900
+ from_bci -1
2901
+ to_bci -1
2902
+ predecessors "B0"
2903
+ successors
2904
+ xhandlers
2905
+ flags
2906
+ probability 4598791501599548168
2907
+ begin_IR
2908
+ LIR
2909
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2910
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2911
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2912
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2913
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2914
+ end_IR
2915
+ end_block
2916
+ end_cfg
2917
+ begin_bytecodes
2918
+ 0: iload_0
2919
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
2920
+ 28: iload_1
2921
+ 29: putstatic #54 // intField:int
2922
+ 32: iload_1
2923
+ 33: istore 4
2924
+ 35: goto 55
2925
+ 38: iload_2
2926
+ 39: putstatic #54 // intField:int
2927
+ 42: iload_2
2928
+ 43: istore 4
2929
+ 45: goto 55
2930
+ 48: iload_3
2931
+ 49: putstatic #54 // intField:int
2932
+ 52: iload_3
2933
+ 53: istore 4
2934
+ 55: iload 4
2935
+ 57: ireturn
2936
+ <|@
2937
+ end_bytecodes
2938
+ begin_cfg
2939
+ name "After PostAllocationOptimizationStage"
2940
+ begin_block
2941
+ name "B0"
2942
+ from_bci -1
2943
+ to_bci -1
2944
+ predecessors
2945
+ successors "B1" "B2" "B3"
2946
+ xhandlers
2947
+ flags
2948
+ probability 4607182418800017408
2949
+ begin_IR
2950
+ LIR
2951
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2952
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <|@ <|@
2953
+ nr 14 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2954
+ nr 16 <|@ instruction AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <|@ <|@
2955
+ end_IR
2956
+ end_block
2957
+ begin_block
2958
+ name "B3"
2959
+ from_bci -1
2960
+ to_bci -1
2961
+ predecessors "B0"
2962
+ successors
2963
+ xhandlers
2964
+ flags
2965
+ probability 4600308503579294019
2966
+ begin_IR
2967
+ LIR
2968
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2969
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <|@ <|@
2970
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2971
+ nr 24 <|@ instruction rax|DWORD = MOVE r8|DWORD moveKind: DWORD <|@ <|@
2972
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2973
+ end_IR
2974
+ end_block
2975
+ begin_block
2976
+ name "B2"
2977
+ from_bci -1
2978
+ to_bci -1
2979
+ predecessors "B0"
2980
+ successors
2981
+ xhandlers
2982
+ flags
2983
+ probability 4599929253084357557
2984
+ begin_IR
2985
+ LIR
2986
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2987
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2988
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2989
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2990
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
2991
+ end_IR
2992
+ end_block
2993
+ begin_block
2994
+ name "B1"
2995
+ from_bci -1
2996
+ to_bci -1
2997
+ predecessors "B0"
2998
+ successors
2999
+ xhandlers
3000
+ flags
3001
+ probability 4598791501599548168
3002
+ begin_IR
3003
+ LIR
3004
+ nr 38 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3005
+ nr 40 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
3006
+ nr 42 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3007
+ nr 44 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
3008
+ nr 46 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <|@ <|@
3009
+ end_IR
3010
+ end_block
3011
+ end_cfg
3012
+ begin_bytecodes
3013
+ 0: iload_0
3014
+ 1: lookupswitch [2] {0: 28, 1: 38} default: 48
3015
+ 28: iload_1
3016
+ 29: putstatic #54 // intField:int
3017
+ 32: iload_1
3018
+ 33: istore 4
3019
+ 35: goto 55
3020
+ 38: iload_2
3021
+ 39: putstatic #54 // intField:int
3022
+ 42: iload_2
3023
+ 43: istore 4
3024
+ 45: goto 55
3025
+ 48: iload_3
3026
+ 49: putstatic #54 // intField:int
3027
+ 52: iload_3
3028
+ 53: istore 4
3029
+ 55: iload 4
3030
+ 57: ireturn
3031
+ <|@
3032
+ end_bytecodes
3033
+ begin_cfg
3034
+ name "After code generation"
3035
+ end_cfg
3036
+ begin_nmethod
3037
+ <<<HexCodeFile
3038
+ Platform AMD64 64 <||@
3039
+ HexCode 0 0f1f44000049baaddeaddeaddeadde83fe010f842200000083fe000f843100000045898280000000f083042400418bc0850500000000c5f877c341898a80000000f0830424008bc1850500000000c5f877c341899280000000f0830424008bc2850500000000c5f877c3e80000000090e80000000090 <||@
3040
+ Comment 0 3 <||@
3041
+ Comment 0 1 <||@
3042
+ Comment 5 block B0 null <||@
3043
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3044
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <||@
3045
+ Comment 5 14 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
3046
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
3047
+ Comment 15 16 AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <||@
3048
+ Comment 33 block B3 null <||@
3049
+ Comment 33 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
3050
+ Comment 33 20 MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <||@
3051
+ Comment 40 22 MEMBAR barriers: 4 <||@
3052
+ Comment 45 24 rax|DWORD = MOVE r8|DWORD moveKind: DWORD <||@
3053
+ Comment 48 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3054
+ Comment 48 12 <||@
3055
+ Comment 58 block B2 null <||@
3056
+ Comment 58 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
3057
+ Comment 58 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
3058
+ Comment 65 32 MEMBAR barriers: 4 <||@
3059
+ Comment 70 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
3060
+ Comment 72 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3061
+ Comment 72 12 <||@
3062
+ Comment 82 block B1 null <||@
3063
+ Comment 82 38 [] = LABEL numbPhis: 0 align: false label: ? <||@
3064
+ Comment 82 40 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
3065
+ Comment 89 42 MEMBAR barriers: 4 <||@
3066
+ Comment 94 44 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3067
+ Comment 96 46 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3068
+ Comment 96 12 <||@
3069
+ Comment 106 {Stub<ExceptionHandlerStub.exceptionHandler>@0x110125b20:CallingConvention[rax|QWORD[.], rdx|QWORD]:CallingConvention[rax|QWORD[.], rdx|QWORD]; temps=rdi|ILLEGAL,xmm14|ILLEGAL,xmm15|ILLEGAL,xmm12|ILLEGAL,xmm13|ILLEGAL,xmm10|ILLEGAL,xmm11|ILLEGAL,xmm7|ILLEGAL,xmm8|ILLEGAL,xmm9|ILLEGAL,xmm0|ILLEGAL,xmm1|ILLEGAL,xmm2|ILLEGAL,xmm3|ILLEGAL,xmm4|ILLEGAL,xmm5|ILLEGAL,xmm6|ILLEGAL,rax|ILLEGAL,rcx|ILLEGAL,rdx|ILLEGAL,rsi|ILLEGAL,r8|ILLEGAL,r9|ILLEGAL,r10|ILLEGAL,r11|ILLEGAL} <||@
3070
+ Comment 106 4 <||@
3071
+ Comment 112 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x105ebc128, value=4563296832]:0x10ffe6240} <||@
3072
+ Comment 112 5 <||@
3073
+ HexCodeFile>>> <|@
3074
+ end_nmethod
3075
+ begin_compilation
3076
+ name " HotSpotCompilation-350[JavaExamples.exampleIntSwitch(int, int, int, int)]"
3077
+ method "HotSpotCompilation-350[JavaExamples.exampleIntSwitch(int, int, int, int)]"
3078
+ date 1583697383700
3079
+ end_compilation
3080
+ begin_cfg
3081
+ name "After code installation"
3082
+ end_cfg
3083
+ begin_nmethod
3084
+ <<<HexCodeFile
3085
+ Platform AMD64 64 <||@
3086
+ HexCode 11012d260 0f1f44000049bab0275f150700000083fe010f842200000083fe000f843100000045898280000000f083042400418bc08505706db1f3c5f877c341898a80000000f0830424008bc18505586db1f3c5f877c341899280000000f0830424008bc28505406db1f3c5f877c3e85188ffff90e86b8febff90f4f4 <||@
3087
+ Comment 0 3 <||@
3088
+ Comment 0 1 <||@
3089
+ Comment 5 block B0 null <||@
3090
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, r8|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3091
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@136728e98 slotKind: QWORD <||@
3092
+ Comment 5 14 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
3093
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
3094
+ Comment 15 16 AMD64HOTSPOTSTRATEGYSWITCH ~rsi|DWORD - keyConstants: [int[0|0x0], int[1|0x1]] keyTargets: [B0 -> B1, B0 -> B2] defaultTarget: B0 -> B3 strategy: SequentialStrategy[avgEffort=1.6526315789473682] <||@
3095
+ Comment 33 block B3 null <||@
3096
+ Comment 33 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
3097
+ Comment 33 20 MOV (x: [r10|QWORD[.] + 128], y: r8|DWORD) size: DWORD <||@
3098
+ Comment 40 22 MEMBAR barriers: 4 <||@
3099
+ Comment 45 24 rax|DWORD = MOVE r8|DWORD moveKind: DWORD <||@
3100
+ Comment 48 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3101
+ Comment 48 12 <||@
3102
+ Comment 58 block B2 null <||@
3103
+ Comment 58 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
3104
+ Comment 58 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
3105
+ Comment 65 32 MEMBAR barriers: 4 <||@
3106
+ Comment 70 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
3107
+ Comment 72 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3108
+ Comment 72 12 <||@
3109
+ Comment 82 block B1 null <||@
3110
+ Comment 82 38 [] = LABEL numbPhis: 0 align: false label: ? <||@
3111
+ Comment 82 40 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
3112
+ Comment 89 42 MEMBAR barriers: 4 <||@
3113
+ Comment 94 44 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3114
+ Comment 96 46 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@10e2187d8 <||@
3115
+ Comment 96 12 <||@
3116
+ Comment 106 {Stub<ExceptionHandlerStub.exceptionHandler>@0x110125b20:CallingConvention[rax|QWORD[.], rdx|QWORD]:CallingConvention[rax|QWORD[.], rdx|QWORD]; temps=rdi|ILLEGAL,xmm14|ILLEGAL,xmm15|ILLEGAL,xmm12|ILLEGAL,xmm13|ILLEGAL,xmm10|ILLEGAL,xmm11|ILLEGAL,xmm7|ILLEGAL,xmm8|ILLEGAL,xmm9|ILLEGAL,xmm0|ILLEGAL,xmm1|ILLEGAL,xmm2|ILLEGAL,xmm3|ILLEGAL,xmm4|ILLEGAL,xmm5|ILLEGAL,xmm6|ILLEGAL,rax|ILLEGAL,rcx|ILLEGAL,rdx|ILLEGAL,rsi|ILLEGAL,r8|ILLEGAL,r9|ILLEGAL,r10|ILLEGAL,r11|ILLEGAL} <||@
3117
+ Comment 106 4 <||@
3118
+ Comment 112 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x105ebc128, value=4563296832]:0x10ffe6240} <||@
3119
+ Comment 112 5 <||@
3120
+ HexCodeFile>>> <|@
3121
+ end_nmethod