seafoam 0.3 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +40 -0
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/Gemfile.lock +59 -0
  7. data/README.md +76 -3
  8. data/bin/bgv2isabelle +16 -45
  9. data/bin/bgv2json +18 -36
  10. data/bin/cfg2asm +24 -0
  11. data/bin/seafoam +1 -1
  12. data/demos/box-unbox-stats +65 -0
  13. data/docs/bgv.md +2 -1
  14. data/docs/getting-graphs.md +8 -0
  15. data/examples/Fib.java +1 -1
  16. data/examples/fib-java.bgv.gz +0 -0
  17. data/examples/fib.js +1 -1
  18. data/examples/java/JavaExamples.java +1 -1
  19. data/examples/ruby/clamps.rb +20 -0
  20. data/examples/ruby/graal.patch +15 -0
  21. data/examples/ruby/ruby_examples.rb +278 -0
  22. data/lib/seafoam.rb +5 -1
  23. data/lib/seafoam/annotators/graal.rb +1 -1
  24. data/lib/seafoam/bgv/bgv_parser.rb +10 -2
  25. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  26. data/lib/seafoam/cfg/disassembler.rb +70 -0
  27. data/lib/seafoam/commands.rb +190 -30
  28. data/lib/seafoam/graal/source.rb +23 -0
  29. data/lib/seafoam/graph.rb +25 -1
  30. data/lib/seafoam/graphviz_writer.rb +21 -2
  31. data/lib/seafoam/isabelle_writer.rb +46 -0
  32. data/lib/seafoam/json_writer.rb +58 -0
  33. data/lib/seafoam/version.rb +1 -1
  34. data/seafoam.gemspec +4 -2
  35. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  36. data/spec/seafoam/bgv/bgv_parser_spec.rb +13 -3
  37. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  38. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  39. data/spec/seafoam/command_spec.rb +86 -40
  40. data/spec/seafoam/json_writer_spec.rb +14 -0
  41. data/spec/seafoam/spec_helpers.rb +4 -0
  42. data/spec/seafoam/spotlight_spec.rb +1 -1
  43. data/tools/render-all +2 -2
  44. metadata +33 -96
  45. data/.github/workflows/rubocop.yml +0 -10
  46. data/.github/workflows/specs.yml +0 -19
  47. data/examples/fib-java.bgv +0 -0
  48. data/examples/fib-js.bgv +0 -0
  49. data/examples/fib-ruby.bgv +0 -0
  50. data/examples/identity.bgv +0 -0
  51. data/examples/java/exampleArithOperator.bgv +0 -0
  52. data/examples/java/exampleArithOperator.cfg +0 -925
  53. data/examples/java/exampleArrayAllocation.bgv +0 -0
  54. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  55. data/examples/java/exampleArrayRead.bgv +0 -0
  56. data/examples/java/exampleArrayRead.cfg +0 -2263
  57. data/examples/java/exampleArrayWrite.bgv +0 -0
  58. data/examples/java/exampleArrayWrite.cfg +0 -2315
  59. data/examples/java/exampleCatch.bgv +0 -0
  60. data/examples/java/exampleCatch.cfg +0 -4150
  61. data/examples/java/exampleCompareOperator.bgv +0 -0
  62. data/examples/java/exampleCompareOperator.cfg +0 -1109
  63. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  64. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  65. data/examples/java/exampleExactArith.bgv +0 -0
  66. data/examples/java/exampleExactArith.cfg +0 -1888
  67. data/examples/java/exampleFieldRead.bgv +0 -0
  68. data/examples/java/exampleFieldRead.cfg +0 -1228
  69. data/examples/java/exampleFieldWrite.bgv +0 -0
  70. data/examples/java/exampleFieldWrite.cfg +0 -1102
  71. data/examples/java/exampleFor.bgv +0 -0
  72. data/examples/java/exampleFor.cfg +0 -3936
  73. data/examples/java/exampleFullEscape.bgv +0 -0
  74. data/examples/java/exampleFullEscape.cfg +0 -5893
  75. data/examples/java/exampleIf.bgv +0 -0
  76. data/examples/java/exampleIf.cfg +0 -2462
  77. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  78. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  79. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  80. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  81. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  82. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  83. data/examples/java/exampleIntSwitch.bgv +0 -0
  84. data/examples/java/exampleIntSwitch.cfg +0 -3121
  85. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  86. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  87. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  88. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  89. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  90. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  91. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  92. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  93. data/examples/java/exampleLocalVariables.bgv +0 -0
  94. data/examples/java/exampleLocalVariables.cfg +0 -1195
  95. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  96. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  97. data/examples/java/exampleNestedWhile.bgv +0 -0
  98. data/examples/java/exampleNestedWhile.cfg +0 -15499
  99. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  100. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  101. data/examples/java/exampleNoEscape.bgv +0 -0
  102. data/examples/java/exampleNoEscape.cfg +0 -974
  103. data/examples/java/exampleObjectAllocation.bgv +0 -0
  104. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  105. data/examples/java/examplePartialEscape.bgv +0 -0
  106. data/examples/java/examplePartialEscape.cfg +0 -7042
  107. data/examples/java/examplePhi.bgv +0 -0
  108. data/examples/java/examplePhi.cfg +0 -3227
  109. data/examples/java/exampleReducible.bgv +0 -0
  110. data/examples/java/exampleReducible.cfg +0 -5578
  111. data/examples/java/exampleSimpleCall.bgv +0 -0
  112. data/examples/java/exampleSimpleCall.cfg +0 -1435
  113. data/examples/java/exampleStamp.bgv +0 -0
  114. data/examples/java/exampleStamp.cfg +0 -913
  115. data/examples/java/exampleStaticCall.bgv +0 -0
  116. data/examples/java/exampleStaticCall.cfg +0 -1154
  117. data/examples/java/exampleStringSwitch.bgv +0 -0
  118. data/examples/java/exampleStringSwitch.cfg +0 -15377
  119. data/examples/java/exampleSynchronized.bgv +0 -0
  120. data/examples/java/exampleSynchronized.cfg +0 -26027
  121. data/examples/java/exampleThrow.bgv +0 -0
  122. data/examples/java/exampleThrow.cfg +0 -780
  123. data/examples/java/exampleThrowCatch.bgv +0 -0
  124. data/examples/java/exampleThrowCatch.cfg +0 -744
  125. data/examples/java/exampleUnsafeRead.bgv +0 -0
  126. data/examples/java/exampleUnsafeRead.cfg +0 -912
  127. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  128. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  129. data/examples/java/exampleWhile.bgv +0 -0
  130. data/examples/java/exampleWhile.cfg +0 -3936
  131. data/examples/java/exampleWhileBreak.bgv +0 -0
  132. data/examples/java/exampleWhileBreak.cfg +0 -5963
  133. data/examples/matmult-java.bgv +0 -0
  134. data/examples/matmult-ruby.bgv +0 -0
  135. data/examples/overflow.bgv +0 -0
  136. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  137. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
Binary file
@@ -1,3121 +0,0 @@
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