seafoam 0.2

Sign up to get free protection for your applications and to get access to all the features.
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