seafoam 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,2462 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
3
+ method "HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
4
+ date 1583364091932
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"
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: v9
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid a23 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ isDefaultStable: false
36
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
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
+ v28
46
+ === Predecessor ===
47
+ - >@ <|@
48
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
49
+ f <@~|@floating>@ <|@
50
+ tid v28 <|@
51
+ d <@d|@=== Debug Properties ===
52
+ displacement: 128
53
+ scale: Times1
54
+ stamp: void*
55
+ === Inputs ===
56
+ base: a23
57
+ index: -
58
+ === Succesors ===
59
+ === Usages ===
60
+ v26 v27
61
+ === Predecessor ===
62
+ - >@ <|@
63
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a23 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 <@~|@floating>@ <|@
78
+ tid i5 <|@
79
+ d <@d|@=== Debug Properties ===
80
+ isDefaultStable: false
81
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
82
+ rawvalue: 0
83
+ stableDimension: 0
84
+ stamp: i32 [0] ⇈0000000000000000
85
+ stampKind: i32
86
+ value: int[0|0x0]
87
+ === Inputs ===
88
+ === Succesors ===
89
+ === Usages ===
90
+ v6
91
+ === Predecessor ===
92
+ - >@ <|@
93
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
94
+ f <@~|@floating>@ <|@
95
+ tid v6 <|@
96
+ d <@d|@=== Debug Properties ===
97
+ condition: EQ
98
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
99
+ stamp: void
100
+ unorderedIsTrue: false
101
+ === Inputs ===
102
+ x: i1
103
+ y: i5
104
+ === Succesors ===
105
+ === Usages ===
106
+ v9
107
+ === Predecessor ===
108
+ - >@ <|@
109
+ instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i5 <|@ <|@
110
+ f <@*|@fixed>@ <|@
111
+ tid v9 <|@
112
+ d <@d|@=== Debug Properties ===
113
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
114
+ stamp: void
115
+ trueSuccessorProbability: 0.4998114985862394
116
+ === Inputs ===
117
+ condition: v6
118
+ === Succesors ===
119
+ trueSuccessor: v8
120
+ falseSuccessor: v7
121
+ === Usages ===
122
+ === Predecessor ===
123
+ v0 >@ <|@
124
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v6 #trueSuccessor: v8 #falseSuccessor: v7 <|@ <|@
125
+ end_IR
126
+ end_block
127
+ begin_block
128
+ name "B1"
129
+ from_bci -1
130
+ to_bci -1
131
+ predecessors "B0"
132
+ successors
133
+ xhandlers
134
+ flags
135
+ probability 4602675423433059828
136
+ begin_IR
137
+ HIR
138
+ f <@#|@fixed with next>@ <|@
139
+ tid v8 <|@
140
+ d <@d|@=== Debug Properties ===
141
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 13]
142
+ stamp: void
143
+ withSpeculationFence: false
144
+ === Inputs ===
145
+ === Succesors ===
146
+ next: v29
147
+ === Usages ===
148
+ === Predecessor ===
149
+ v9 >@ <|@
150
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v29 <|@ <|@
151
+ f <@#|@fixed with next>@ <|@
152
+ tid v29 <|@
153
+ d <@d|@=== Debug Properties ===
154
+ barriers: 10
155
+ location: ANY_LOCATION
156
+ stamp: void
157
+ === Inputs ===
158
+ === Succesors ===
159
+ next: v26
160
+ === Usages ===
161
+ === Predecessor ===
162
+ v8 >@ <|@
163
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
164
+ f <@~|@floating>@ <|@
165
+ tid i3 <|@
166
+ d <@d|@=== Debug Properties ===
167
+ index: 2
168
+ stamp: i32
169
+ uncheckedStamp: [null]
170
+ === Inputs ===
171
+ === Succesors ===
172
+ === Usages ===
173
+ v22 v26
174
+ === Predecessor ===
175
+ - >@ <|@
176
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
177
+ f <@#|@fixed with next>@ <|@
178
+ tid v26 <|@
179
+ d <@d|@=== Debug Properties ===
180
+ barrierType: NONE
181
+ location: JavaExamples.intField
182
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
183
+ nullCheck: false
184
+ stamp: void
185
+ volatileAccess: true
186
+ === Inputs ===
187
+ stateBefore: -
188
+ guard: -
189
+ address: v28
190
+ value: i3
191
+ stateAfter: -
192
+ lastLocationAccess: -
193
+ === Succesors ===
194
+ next: v30
195
+ === Usages ===
196
+ === Predecessor ===
197
+ v29 >@ <|@
198
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i3 stateAfter: - lastLocationAccess: - #next: v30 <|@ <|@
199
+ f <@#|@fixed with next>@ <|@
200
+ tid v30 <|@
201
+ d <@d|@=== Debug Properties ===
202
+ barriers: 12
203
+ location: ANY_LOCATION
204
+ stamp: void
205
+ === Inputs ===
206
+ === Succesors ===
207
+ next: v22
208
+ === Usages ===
209
+ === Predecessor ===
210
+ v26 >@ <|@
211
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v22 <|@ <|@
212
+ f <@*|@fixed>@ <|@
213
+ tid v22 <|@
214
+ d <@d|@=== Debug Properties ===
215
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
216
+ stamp: void
217
+ === Inputs ===
218
+ result: i3
219
+ memoryMap: -
220
+ === Succesors ===
221
+ === Usages ===
222
+ === Predecessor ===
223
+ v30 >@ <|@
224
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
225
+ end_IR
226
+ end_block
227
+ begin_block
228
+ name "B2"
229
+ from_bci -1
230
+ to_bci -1
231
+ predecessors "B0"
232
+ successors
233
+ xhandlers
234
+ flags
235
+ probability 4602680517042440454
236
+ begin_IR
237
+ HIR
238
+ f <@#|@fixed with next>@ <|@
239
+ tid v7 <|@
240
+ d <@d|@=== Debug Properties ===
241
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 4]
242
+ stamp: void
243
+ withSpeculationFence: false
244
+ === Inputs ===
245
+ === Succesors ===
246
+ next: v31
247
+ === Usages ===
248
+ === Predecessor ===
249
+ v9 >@ <|@
250
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v31 <|@ <|@
251
+ f <@#|@fixed with next>@ <|@
252
+ tid v31 <|@
253
+ d <@d|@=== Debug Properties ===
254
+ barriers: 10
255
+ location: ANY_LOCATION
256
+ stamp: void
257
+ === Inputs ===
258
+ === Succesors ===
259
+ next: v27
260
+ === Usages ===
261
+ === Predecessor ===
262
+ v7 >@ <|@
263
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v27 <|@ <|@
264
+ f <@~|@floating>@ <|@
265
+ tid i2 <|@
266
+ d <@d|@=== Debug Properties ===
267
+ index: 1
268
+ stamp: i32
269
+ uncheckedStamp: [null]
270
+ === Inputs ===
271
+ === Succesors ===
272
+ === Usages ===
273
+ v21 v27
274
+ === Predecessor ===
275
+ - >@ <|@
276
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
277
+ f <@#|@fixed with next>@ <|@
278
+ tid v27 <|@
279
+ d <@d|@=== Debug Properties ===
280
+ barrierType: NONE
281
+ location: JavaExamples.intField
282
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 5]
283
+ nullCheck: false
284
+ stamp: void
285
+ volatileAccess: true
286
+ === Inputs ===
287
+ stateBefore: -
288
+ guard: -
289
+ address: v28
290
+ value: i2
291
+ stateAfter: -
292
+ lastLocationAccess: -
293
+ === Succesors ===
294
+ next: v32
295
+ === Usages ===
296
+ === Predecessor ===
297
+ v31 >@ <|@
298
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i2 stateAfter: - lastLocationAccess: - #next: v32 <|@ <|@
299
+ f <@#|@fixed with next>@ <|@
300
+ tid v32 <|@
301
+ d <@d|@=== Debug Properties ===
302
+ barriers: 12
303
+ location: ANY_LOCATION
304
+ stamp: void
305
+ === Inputs ===
306
+ === Succesors ===
307
+ next: v21
308
+ === Usages ===
309
+ === Predecessor ===
310
+ v27 >@ <|@
311
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v21 <|@ <|@
312
+ f <@*|@fixed>@ <|@
313
+ tid v21 <|@
314
+ d <@d|@=== Debug Properties ===
315
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
316
+ stamp: void
317
+ === Inputs ===
318
+ result: i2
319
+ memoryMap: -
320
+ === Succesors ===
321
+ === Usages ===
322
+ === Predecessor ===
323
+ v32 >@ <|@
324
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
325
+ end_IR
326
+ end_block
327
+ end_cfg
328
+ begin_cfg
329
+ name "After LIRGeneration"
330
+ begin_block
331
+ name "B0"
332
+ from_bci -1
333
+ to_bci -1
334
+ predecessors
335
+ successors "B1" "B2"
336
+ xhandlers
337
+ flags
338
+ probability 4607182418800017408
339
+ begin_IR
340
+ LIR
341
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
342
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
343
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
344
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
345
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
346
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
347
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
348
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
349
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
350
+ end_IR
351
+ end_block
352
+ begin_block
353
+ name "B2"
354
+ from_bci -1
355
+ to_bci -1
356
+ predecessors "B0"
357
+ successors
358
+ xhandlers
359
+ flags
360
+ probability 4602680517042440454
361
+ begin_IR
362
+ LIR
363
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
364
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
365
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
366
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
367
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
368
+ end_IR
369
+ end_block
370
+ begin_block
371
+ name "B1"
372
+ from_bci -1
373
+ to_bci -1
374
+ predecessors "B0"
375
+ successors
376
+ xhandlers
377
+ flags
378
+ probability 4602675423433059828
379
+ begin_IR
380
+ LIR
381
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
382
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
383
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
384
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
385
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
386
+ end_IR
387
+ end_block
388
+ end_cfg
389
+ begin_bytecodes
390
+ 0: iload_0
391
+ 1: ifeq 13
392
+ 4: iload_1
393
+ 5: putstatic #54 // intField:int
394
+ 8: iload_1
395
+ 9: istore_3
396
+ 10: goto 19
397
+ 13: iload_2
398
+ 14: putstatic #54 // intField:int
399
+ 17: iload_2
400
+ 18: istore_3
401
+ 19: iload_3
402
+ 20: ireturn
403
+ <|@
404
+ end_bytecodes
405
+ begin_cfg
406
+ name "After LIR generation"
407
+ begin_block
408
+ name "B0"
409
+ from_bci -1
410
+ to_bci -1
411
+ predecessors
412
+ successors "B1" "B2"
413
+ xhandlers
414
+ flags
415
+ probability 4607182418800017408
416
+ begin_IR
417
+ HIR
418
+ f <@#|@fixed with next>@ <|@
419
+ tid v0 <|@
420
+ d <@d|@=== Debug Properties ===
421
+ stamp: void
422
+ withSpeculationFence: false
423
+ === Inputs ===
424
+ stateAfter: -
425
+ === Succesors ===
426
+ next: v9
427
+ === Usages ===
428
+ === Predecessor ===
429
+ - >@ <|@
430
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
431
+ f <@~|@floating>@ <|@
432
+ tid a23 <|@
433
+ result v3|QWORD[.] <|@
434
+ d <@d|@=== Debug Properties ===
435
+ isDefaultStable: false
436
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
437
+ rawvalue: Instance<java.lang.Class>
438
+ stableDimension: 0
439
+ stamp: a!# Ljava/lang/Class;
440
+ stampKind: a -
441
+ value: Object[Instance<java.lang.Class>]
442
+ === Inputs ===
443
+ === Succesors ===
444
+ === Usages ===
445
+ v28
446
+ === Predecessor ===
447
+ - >@ <|@
448
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
449
+ f <@~|@floating>@ <|@
450
+ tid v28 <|@
451
+ result [v3|QWORD[.] + 128] <|@
452
+ d <@d|@=== Debug Properties ===
453
+ displacement: 128
454
+ scale: Times1
455
+ stamp: void*
456
+ === Inputs ===
457
+ base: a23
458
+ index: -
459
+ === Succesors ===
460
+ === Usages ===
461
+ v26 v27
462
+ === Predecessor ===
463
+ - >@ <|@
464
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a23 index: - <|@ <|@
465
+ f <@~|@floating>@ <|@
466
+ tid i1 <|@
467
+ result v0|DWORD <|@
468
+ d <@d|@=== Debug Properties ===
469
+ index: 0
470
+ stamp: i32
471
+ uncheckedStamp: [null]
472
+ === Inputs ===
473
+ === Succesors ===
474
+ === Usages ===
475
+ v6
476
+ === Predecessor ===
477
+ - >@ <|@
478
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
479
+ f <@~|@floating>@ <|@
480
+ tid i5 <|@
481
+ result int[0|0x0] <|@
482
+ d <@d|@=== Debug Properties ===
483
+ isDefaultStable: false
484
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
485
+ rawvalue: 0
486
+ stableDimension: 0
487
+ stamp: i32 [0] ⇈0000000000000000
488
+ stampKind: i32
489
+ value: int[0|0x0]
490
+ === Inputs ===
491
+ === Succesors ===
492
+ === Usages ===
493
+ v6
494
+ === Predecessor ===
495
+ - >@ <|@
496
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
497
+ f <@~|@floating>@ <|@
498
+ tid v6 <|@
499
+ d <@d|@=== Debug Properties ===
500
+ condition: EQ
501
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
502
+ stamp: void
503
+ unorderedIsTrue: false
504
+ === Inputs ===
505
+ x: i1
506
+ y: i5
507
+ === Succesors ===
508
+ === Usages ===
509
+ v9
510
+ === Predecessor ===
511
+ - >@ <|@
512
+ instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i5 <|@ <|@
513
+ f <@*|@fixed>@ <|@
514
+ tid v9 <|@
515
+ d <@d|@=== Debug Properties ===
516
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
517
+ stamp: void
518
+ trueSuccessorProbability: 0.4998114985862394
519
+ === Inputs ===
520
+ condition: v6
521
+ === Succesors ===
522
+ trueSuccessor: v8
523
+ falseSuccessor: v7
524
+ === Usages ===
525
+ === Predecessor ===
526
+ v0 >@ <|@
527
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v6 #trueSuccessor: v8 #falseSuccessor: v7 <|@ <|@
528
+ end_IR
529
+ begin_IR
530
+ LIR
531
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
532
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
533
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
534
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
535
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
536
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
537
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
538
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
539
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
540
+ end_IR
541
+ end_block
542
+ begin_block
543
+ name "B1"
544
+ from_bci -1
545
+ to_bci -1
546
+ predecessors "B0"
547
+ successors
548
+ xhandlers
549
+ flags
550
+ probability 4602675423433059828
551
+ begin_IR
552
+ HIR
553
+ f <@#|@fixed with next>@ <|@
554
+ tid v8 <|@
555
+ d <@d|@=== Debug Properties ===
556
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 13]
557
+ stamp: void
558
+ withSpeculationFence: false
559
+ === Inputs ===
560
+ === Succesors ===
561
+ next: v29
562
+ === Usages ===
563
+ === Predecessor ===
564
+ v9 >@ <|@
565
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v29 <|@ <|@
566
+ f <@#|@fixed with next>@ <|@
567
+ tid v29 <|@
568
+ d <@d|@=== Debug Properties ===
569
+ barriers: 10
570
+ location: ANY_LOCATION
571
+ stamp: void
572
+ === Inputs ===
573
+ === Succesors ===
574
+ next: v26
575
+ === Usages ===
576
+ === Predecessor ===
577
+ v8 >@ <|@
578
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
579
+ f <@~|@floating>@ <|@
580
+ tid i3 <|@
581
+ result v2|DWORD <|@
582
+ d <@d|@=== Debug Properties ===
583
+ index: 2
584
+ stamp: i32
585
+ uncheckedStamp: [null]
586
+ === Inputs ===
587
+ === Succesors ===
588
+ === Usages ===
589
+ v22 v26
590
+ === Predecessor ===
591
+ - >@ <|@
592
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
593
+ f <@#|@fixed with next>@ <|@
594
+ tid v26 <|@
595
+ d <@d|@=== Debug Properties ===
596
+ barrierType: NONE
597
+ location: JavaExamples.intField
598
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
599
+ nullCheck: false
600
+ stamp: void
601
+ volatileAccess: true
602
+ === Inputs ===
603
+ stateBefore: -
604
+ guard: -
605
+ address: v28
606
+ value: i3
607
+ stateAfter: -
608
+ lastLocationAccess: -
609
+ === Succesors ===
610
+ next: v30
611
+ === Usages ===
612
+ === Predecessor ===
613
+ v29 >@ <|@
614
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i3 stateAfter: - lastLocationAccess: - #next: v30 <|@ <|@
615
+ f <@#|@fixed with next>@ <|@
616
+ tid v30 <|@
617
+ d <@d|@=== Debug Properties ===
618
+ barriers: 12
619
+ location: ANY_LOCATION
620
+ stamp: void
621
+ === Inputs ===
622
+ === Succesors ===
623
+ next: v22
624
+ === Usages ===
625
+ === Predecessor ===
626
+ v26 >@ <|@
627
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v22 <|@ <|@
628
+ f <@*|@fixed>@ <|@
629
+ tid v22 <|@
630
+ d <@d|@=== Debug Properties ===
631
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
632
+ stamp: void
633
+ === Inputs ===
634
+ result: i3
635
+ memoryMap: -
636
+ === Succesors ===
637
+ === Usages ===
638
+ === Predecessor ===
639
+ v30 >@ <|@
640
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
641
+ end_IR
642
+ begin_IR
643
+ LIR
644
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
645
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
646
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
647
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
648
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
649
+ end_IR
650
+ end_block
651
+ begin_block
652
+ name "B2"
653
+ from_bci -1
654
+ to_bci -1
655
+ predecessors "B0"
656
+ successors
657
+ xhandlers
658
+ flags
659
+ probability 4602680517042440454
660
+ begin_IR
661
+ HIR
662
+ f <@#|@fixed with next>@ <|@
663
+ tid v7 <|@
664
+ d <@d|@=== Debug Properties ===
665
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 4]
666
+ stamp: void
667
+ withSpeculationFence: false
668
+ === Inputs ===
669
+ === Succesors ===
670
+ next: v31
671
+ === Usages ===
672
+ === Predecessor ===
673
+ v9 >@ <|@
674
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v31 <|@ <|@
675
+ f <@#|@fixed with next>@ <|@
676
+ tid v31 <|@
677
+ d <@d|@=== Debug Properties ===
678
+ barriers: 10
679
+ location: ANY_LOCATION
680
+ stamp: void
681
+ === Inputs ===
682
+ === Succesors ===
683
+ next: v27
684
+ === Usages ===
685
+ === Predecessor ===
686
+ v7 >@ <|@
687
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v27 <|@ <|@
688
+ f <@~|@floating>@ <|@
689
+ tid i2 <|@
690
+ result v1|DWORD <|@
691
+ d <@d|@=== Debug Properties ===
692
+ index: 1
693
+ stamp: i32
694
+ uncheckedStamp: [null]
695
+ === Inputs ===
696
+ === Succesors ===
697
+ === Usages ===
698
+ v21 v27
699
+ === Predecessor ===
700
+ - >@ <|@
701
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
702
+ f <@#|@fixed with next>@ <|@
703
+ tid v27 <|@
704
+ d <@d|@=== Debug Properties ===
705
+ barrierType: NONE
706
+ location: JavaExamples.intField
707
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 5]
708
+ nullCheck: false
709
+ stamp: void
710
+ volatileAccess: true
711
+ === Inputs ===
712
+ stateBefore: -
713
+ guard: -
714
+ address: v28
715
+ value: i2
716
+ stateAfter: -
717
+ lastLocationAccess: -
718
+ === Succesors ===
719
+ next: v32
720
+ === Usages ===
721
+ === Predecessor ===
722
+ v31 >@ <|@
723
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i2 stateAfter: - lastLocationAccess: - #next: v32 <|@ <|@
724
+ f <@#|@fixed with next>@ <|@
725
+ tid v32 <|@
726
+ d <@d|@=== Debug Properties ===
727
+ barriers: 12
728
+ location: ANY_LOCATION
729
+ stamp: void
730
+ === Inputs ===
731
+ === Succesors ===
732
+ next: v21
733
+ === Usages ===
734
+ === Predecessor ===
735
+ v27 >@ <|@
736
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v21 <|@ <|@
737
+ f <@*|@fixed>@ <|@
738
+ tid v21 <|@
739
+ d <@d|@=== Debug Properties ===
740
+ nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
741
+ stamp: void
742
+ === Inputs ===
743
+ result: i2
744
+ memoryMap: -
745
+ === Succesors ===
746
+ === Usages ===
747
+ === Predecessor ===
748
+ v32 >@ <|@
749
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
750
+ end_IR
751
+ begin_IR
752
+ LIR
753
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
754
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
755
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
756
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
757
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
758
+ end_IR
759
+ end_block
760
+ end_cfg
761
+ begin_cfg
762
+ name "After ConstantLoadOptimization"
763
+ begin_block
764
+ name "B0"
765
+ from_bci -1
766
+ to_bci -1
767
+ predecessors
768
+ successors "B1" "B2"
769
+ xhandlers
770
+ flags
771
+ probability 4607182418800017408
772
+ begin_IR
773
+ LIR
774
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
775
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
776
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
777
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
778
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
779
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
780
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
781
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
782
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
783
+ end_IR
784
+ end_block
785
+ begin_block
786
+ name "B2"
787
+ from_bci -1
788
+ to_bci -1
789
+ predecessors "B0"
790
+ successors
791
+ xhandlers
792
+ flags
793
+ probability 4602680517042440454
794
+ begin_IR
795
+ LIR
796
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
797
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
798
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
799
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
800
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
801
+ end_IR
802
+ end_block
803
+ begin_block
804
+ name "B1"
805
+ from_bci -1
806
+ to_bci -1
807
+ predecessors "B0"
808
+ successors
809
+ xhandlers
810
+ flags
811
+ probability 4602675423433059828
812
+ begin_IR
813
+ LIR
814
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
815
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
816
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
817
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
818
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
819
+ end_IR
820
+ end_block
821
+ end_cfg
822
+ begin_bytecodes
823
+ 0: iload_0
824
+ 1: ifeq 13
825
+ 4: iload_1
826
+ 5: putstatic #54 // intField:int
827
+ 8: iload_1
828
+ 9: istore_3
829
+ 10: goto 19
830
+ 13: iload_2
831
+ 14: putstatic #54 // intField:int
832
+ 17: iload_2
833
+ 18: istore_3
834
+ 19: iload_3
835
+ 20: ireturn
836
+ <|@
837
+ end_bytecodes
838
+ begin_cfg
839
+ name "After SaveCalleeSaveRegisters"
840
+ begin_block
841
+ name "B0"
842
+ from_bci -1
843
+ to_bci -1
844
+ predecessors
845
+ successors "B1" "B2"
846
+ xhandlers
847
+ flags
848
+ probability 4607182418800017408
849
+ begin_IR
850
+ LIR
851
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
852
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
853
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
854
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
855
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
856
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
857
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
858
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
859
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
860
+ end_IR
861
+ end_block
862
+ begin_block
863
+ name "B2"
864
+ from_bci -1
865
+ to_bci -1
866
+ predecessors "B0"
867
+ successors
868
+ xhandlers
869
+ flags
870
+ probability 4602680517042440454
871
+ begin_IR
872
+ LIR
873
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
874
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
875
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
876
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
877
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
878
+ end_IR
879
+ end_block
880
+ begin_block
881
+ name "B1"
882
+ from_bci -1
883
+ to_bci -1
884
+ predecessors "B0"
885
+ successors
886
+ xhandlers
887
+ flags
888
+ probability 4602675423433059828
889
+ begin_IR
890
+ LIR
891
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
892
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
893
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
894
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
895
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
896
+ end_IR
897
+ end_block
898
+ end_cfg
899
+ begin_bytecodes
900
+ 0: iload_0
901
+ 1: ifeq 13
902
+ 4: iload_1
903
+ 5: putstatic #54 // intField:int
904
+ 8: iload_1
905
+ 9: istore_3
906
+ 10: goto 19
907
+ 13: iload_2
908
+ 14: putstatic #54 // intField:int
909
+ 17: iload_2
910
+ 18: istore_3
911
+ 19: iload_3
912
+ 20: ireturn
913
+ <|@
914
+ end_bytecodes
915
+ begin_cfg
916
+ name "After PreAllocationOptimizationStage"
917
+ begin_block
918
+ name "B0"
919
+ from_bci -1
920
+ to_bci -1
921
+ predecessors
922
+ successors "B1" "B2"
923
+ xhandlers
924
+ flags
925
+ probability 4607182418800017408
926
+ begin_IR
927
+ LIR
928
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
929
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
930
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
931
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
932
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
933
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
934
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
935
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
936
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
937
+ end_IR
938
+ end_block
939
+ begin_block
940
+ name "B2"
941
+ from_bci -1
942
+ to_bci -1
943
+ predecessors "B0"
944
+ successors
945
+ xhandlers
946
+ flags
947
+ probability 4602680517042440454
948
+ begin_IR
949
+ LIR
950
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
951
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
952
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
953
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
954
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
955
+ end_IR
956
+ end_block
957
+ begin_block
958
+ name "B1"
959
+ from_bci -1
960
+ to_bci -1
961
+ predecessors "B0"
962
+ successors
963
+ xhandlers
964
+ flags
965
+ probability 4602675423433059828
966
+ begin_IR
967
+ LIR
968
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
969
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
970
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
971
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
972
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
973
+ end_IR
974
+ end_block
975
+ end_cfg
976
+ begin_bytecodes
977
+ 0: iload_0
978
+ 1: ifeq 13
979
+ 4: iload_1
980
+ 5: putstatic #54 // intField:int
981
+ 8: iload_1
982
+ 9: istore_3
983
+ 10: goto 19
984
+ 13: iload_2
985
+ 14: putstatic #54 // intField:int
986
+ 17: iload_2
987
+ 18: istore_3
988
+ 19: iload_3
989
+ 20: ireturn
990
+ <|@
991
+ end_bytecodes
992
+ begin_cfg
993
+ name "After MarkBasePointers"
994
+ begin_block
995
+ name "B0"
996
+ from_bci -1
997
+ to_bci -1
998
+ predecessors
999
+ successors "B1" "B2"
1000
+ xhandlers
1001
+ flags
1002
+ probability 4607182418800017408
1003
+ begin_IR
1004
+ LIR
1005
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1006
+ nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1007
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1008
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1009
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1010
+ nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1011
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1012
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1013
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1014
+ end_IR
1015
+ end_block
1016
+ begin_block
1017
+ name "B2"
1018
+ from_bci -1
1019
+ to_bci -1
1020
+ predecessors "B0"
1021
+ successors
1022
+ xhandlers
1023
+ flags
1024
+ probability 4602680517042440454
1025
+ begin_IR
1026
+ LIR
1027
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1028
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1029
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1030
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1031
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1032
+ end_IR
1033
+ end_block
1034
+ begin_block
1035
+ name "B1"
1036
+ from_bci -1
1037
+ to_bci -1
1038
+ predecessors "B0"
1039
+ successors
1040
+ xhandlers
1041
+ flags
1042
+ probability 4602675423433059828
1043
+ begin_IR
1044
+ LIR
1045
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1046
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1047
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1048
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1049
+ nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1050
+ end_IR
1051
+ end_block
1052
+ end_cfg
1053
+ begin_bytecodes
1054
+ 0: iload_0
1055
+ 1: ifeq 13
1056
+ 4: iload_1
1057
+ 5: putstatic #54 // intField:int
1058
+ 8: iload_1
1059
+ 9: istore_3
1060
+ 10: goto 19
1061
+ 13: iload_2
1062
+ 14: putstatic #54 // intField:int
1063
+ 17: iload_2
1064
+ 18: istore_3
1065
+ 19: iload_3
1066
+ 20: ireturn
1067
+ <|@
1068
+ end_bytecodes
1069
+ begin_cfg
1070
+ name "Before register allocation"
1071
+ begin_block
1072
+ name "B0"
1073
+ from_bci -1
1074
+ to_bci -1
1075
+ predecessors
1076
+ successors "B1" "B2"
1077
+ xhandlers
1078
+ flags
1079
+ probability 4607182418800017408
1080
+ begin_IR
1081
+ LIR
1082
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1083
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1084
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1085
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1086
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1087
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1088
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1089
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1090
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1091
+ end_IR
1092
+ end_block
1093
+ begin_block
1094
+ name "B2"
1095
+ from_bci -1
1096
+ to_bci -1
1097
+ predecessors "B0"
1098
+ successors
1099
+ xhandlers
1100
+ flags
1101
+ probability 4602680517042440454
1102
+ begin_IR
1103
+ LIR
1104
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1105
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1106
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1107
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1108
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1109
+ end_IR
1110
+ end_block
1111
+ begin_block
1112
+ name "B1"
1113
+ from_bci -1
1114
+ to_bci -1
1115
+ predecessors "B0"
1116
+ successors
1117
+ xhandlers
1118
+ flags
1119
+ probability 4602675423433059828
1120
+ begin_IR
1121
+ LIR
1122
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1123
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1124
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1125
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1126
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1127
+ end_IR
1128
+ end_block
1129
+ end_cfg
1130
+ begin_bytecodes
1131
+ 0: iload_0
1132
+ 1: ifeq 13
1133
+ 4: iload_1
1134
+ 5: putstatic #54 // intField:int
1135
+ 8: iload_1
1136
+ 9: istore_3
1137
+ 10: goto 19
1138
+ 13: iload_2
1139
+ 14: putstatic #54 // intField:int
1140
+ 17: iload_2
1141
+ 18: istore_3
1142
+ 19: iload_3
1143
+ 20: ireturn
1144
+ <|@
1145
+ end_bytecodes
1146
+ begin_cfg
1147
+ name "After SSALinearScanLifetimeAnalysis"
1148
+ begin_block
1149
+ name "B0"
1150
+ from_bci -1
1151
+ to_bci -1
1152
+ predecessors
1153
+ successors "B1" "B2"
1154
+ xhandlers
1155
+ flags
1156
+ probability 4607182418800017408
1157
+ begin_IR
1158
+ LIR
1159
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1160
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1161
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1162
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1163
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1164
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1165
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1166
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1167
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
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 4602680517042440454
1179
+ begin_IR
1180
+ LIR
1181
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1182
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1183
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1184
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1185
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
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 4602675423433059828
1197
+ begin_IR
1198
+ LIR
1199
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1200
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1201
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1202
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1203
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1204
+ end_IR
1205
+ end_block
1206
+ end_cfg
1207
+ begin_bytecodes
1208
+ 0: iload_0
1209
+ 1: ifeq 13
1210
+ 4: iload_1
1211
+ 5: putstatic #54 // intField:int
1212
+ 8: iload_1
1213
+ 9: istore_3
1214
+ 10: goto 19
1215
+ 13: iload_2
1216
+ 14: putstatic #54 // intField:int
1217
+ 17: iload_2
1218
+ 18: istore_3
1219
+ 19: iload_3
1220
+ 20: ireturn
1221
+ <|@
1222
+ end_bytecodes
1223
+ begin_intervals
1224
+ name "Before register allocation"
1225
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1226
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1227
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1228
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1229
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1230
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1231
+ v1|d DWORD "[v1|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1232
+ v2|d DWORD "[v2|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1233
+ v3|q QWORD "[v3|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1234
+ v4|q QWORD "[v4|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1235
+ end_intervals
1236
+ begin_intervals
1237
+ name "After register allocation"
1238
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1239
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1240
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1241
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1242
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1243
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1244
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1245
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1246
+ v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1247
+ v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1248
+ end_intervals
1249
+ begin_cfg
1250
+ name "After LinearScanRegisterAllocation"
1251
+ begin_block
1252
+ name "B0"
1253
+ from_bci -1
1254
+ to_bci -1
1255
+ predecessors
1256
+ successors "B1" "B2"
1257
+ xhandlers
1258
+ flags
1259
+ probability 4607182418800017408
1260
+ begin_IR
1261
+ LIR
1262
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1263
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1264
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1265
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1266
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1267
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1268
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1269
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1270
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1271
+ end_IR
1272
+ end_block
1273
+ begin_block
1274
+ name "B2"
1275
+ from_bci -1
1276
+ to_bci -1
1277
+ predecessors "B0"
1278
+ successors
1279
+ xhandlers
1280
+ flags
1281
+ probability 4602680517042440454
1282
+ begin_IR
1283
+ LIR
1284
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1285
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1286
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1287
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1288
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1289
+ end_IR
1290
+ end_block
1291
+ begin_block
1292
+ name "B1"
1293
+ from_bci -1
1294
+ to_bci -1
1295
+ predecessors "B0"
1296
+ successors
1297
+ xhandlers
1298
+ flags
1299
+ probability 4602675423433059828
1300
+ begin_IR
1301
+ LIR
1302
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1303
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1304
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1305
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1306
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1307
+ end_IR
1308
+ end_block
1309
+ end_cfg
1310
+ begin_bytecodes
1311
+ 0: iload_0
1312
+ 1: ifeq 13
1313
+ 4: iload_1
1314
+ 5: putstatic #54 // intField:int
1315
+ 8: iload_1
1316
+ 9: istore_3
1317
+ 10: goto 19
1318
+ 13: iload_2
1319
+ 14: putstatic #54 // intField:int
1320
+ 17: iload_2
1321
+ 18: istore_3
1322
+ 19: iload_3
1323
+ 20: ireturn
1324
+ <|@
1325
+ end_bytecodes
1326
+ begin_intervals
1327
+ name "After optimize spill position"
1328
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1329
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1330
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1331
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1332
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1333
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1334
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1335
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1336
+ v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1337
+ v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1338
+ end_intervals
1339
+ begin_cfg
1340
+ name "After LinearScanOptimizeSpillPosition"
1341
+ begin_block
1342
+ name "B0"
1343
+ from_bci -1
1344
+ to_bci -1
1345
+ predecessors
1346
+ successors "B1" "B2"
1347
+ xhandlers
1348
+ flags
1349
+ probability 4607182418800017408
1350
+ begin_IR
1351
+ LIR
1352
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1353
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1354
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1355
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1356
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1357
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1358
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1359
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1360
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1361
+ end_IR
1362
+ end_block
1363
+ begin_block
1364
+ name "B2"
1365
+ from_bci -1
1366
+ to_bci -1
1367
+ predecessors "B0"
1368
+ successors
1369
+ xhandlers
1370
+ flags
1371
+ probability 4602680517042440454
1372
+ begin_IR
1373
+ LIR
1374
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1375
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1376
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1377
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1378
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1379
+ end_IR
1380
+ end_block
1381
+ begin_block
1382
+ name "B1"
1383
+ from_bci -1
1384
+ to_bci -1
1385
+ predecessors "B0"
1386
+ successors
1387
+ xhandlers
1388
+ flags
1389
+ probability 4602675423433059828
1390
+ begin_IR
1391
+ LIR
1392
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1393
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1394
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1395
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1396
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1397
+ end_IR
1398
+ end_block
1399
+ end_cfg
1400
+ begin_bytecodes
1401
+ 0: iload_0
1402
+ 1: ifeq 13
1403
+ 4: iload_1
1404
+ 5: putstatic #54 // intField:int
1405
+ 8: iload_1
1406
+ 9: istore_3
1407
+ 10: goto 19
1408
+ 13: iload_2
1409
+ 14: putstatic #54 // intField:int
1410
+ 17: iload_2
1411
+ 18: istore_3
1412
+ 19: iload_3
1413
+ 20: ireturn
1414
+ <|@
1415
+ end_bytecodes
1416
+ begin_intervals
1417
+ name "After resolve data flow"
1418
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1419
+ rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1420
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1421
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1422
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1423
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1424
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1425
+ v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1426
+ v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1427
+ v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1428
+ end_intervals
1429
+ begin_cfg
1430
+ name "After SSALinearScanResolveDataFlow"
1431
+ begin_block
1432
+ name "B0"
1433
+ from_bci -1
1434
+ to_bci -1
1435
+ predecessors
1436
+ successors "B1" "B2"
1437
+ xhandlers
1438
+ flags
1439
+ probability 4607182418800017408
1440
+ begin_IR
1441
+ LIR
1442
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1443
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1444
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1445
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1446
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1447
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1448
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1449
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1450
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1451
+ end_IR
1452
+ end_block
1453
+ begin_block
1454
+ name "B2"
1455
+ from_bci -1
1456
+ to_bci -1
1457
+ predecessors "B0"
1458
+ successors
1459
+ xhandlers
1460
+ flags
1461
+ probability 4602680517042440454
1462
+ begin_IR
1463
+ LIR
1464
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1465
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1466
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1467
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1468
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1469
+ end_IR
1470
+ end_block
1471
+ begin_block
1472
+ name "B1"
1473
+ from_bci -1
1474
+ to_bci -1
1475
+ predecessors "B0"
1476
+ successors
1477
+ xhandlers
1478
+ flags
1479
+ probability 4602675423433059828
1480
+ begin_IR
1481
+ LIR
1482
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1483
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1484
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1485
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1486
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1487
+ end_IR
1488
+ end_block
1489
+ end_cfg
1490
+ begin_bytecodes
1491
+ 0: iload_0
1492
+ 1: ifeq 13
1493
+ 4: iload_1
1494
+ 5: putstatic #54 // intField:int
1495
+ 8: iload_1
1496
+ 9: istore_3
1497
+ 10: goto 19
1498
+ 13: iload_2
1499
+ 14: putstatic #54 // intField:int
1500
+ 17: iload_2
1501
+ 18: istore_3
1502
+ 19: iload_3
1503
+ 20: ireturn
1504
+ <|@
1505
+ end_bytecodes
1506
+ begin_cfg
1507
+ name "After SSALinearScanEliminateSpillMove"
1508
+ begin_block
1509
+ name "B0"
1510
+ from_bci -1
1511
+ to_bci -1
1512
+ predecessors
1513
+ successors "B1" "B2"
1514
+ xhandlers
1515
+ flags
1516
+ probability 4607182418800017408
1517
+ begin_IR
1518
+ LIR
1519
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1520
+ nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1521
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1522
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1523
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1524
+ nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1525
+ nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1526
+ nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1527
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1528
+ end_IR
1529
+ end_block
1530
+ begin_block
1531
+ name "B2"
1532
+ from_bci -1
1533
+ to_bci -1
1534
+ predecessors "B0"
1535
+ successors
1536
+ xhandlers
1537
+ flags
1538
+ probability 4602680517042440454
1539
+ begin_IR
1540
+ LIR
1541
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1542
+ nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1543
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1544
+ nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1545
+ nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1546
+ end_IR
1547
+ end_block
1548
+ begin_block
1549
+ name "B1"
1550
+ from_bci -1
1551
+ to_bci -1
1552
+ predecessors "B0"
1553
+ successors
1554
+ xhandlers
1555
+ flags
1556
+ probability 4602675423433059828
1557
+ begin_IR
1558
+ LIR
1559
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1560
+ nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1561
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1562
+ nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1563
+ nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1564
+ end_IR
1565
+ end_block
1566
+ end_cfg
1567
+ begin_bytecodes
1568
+ 0: iload_0
1569
+ 1: ifeq 13
1570
+ 4: iload_1
1571
+ 5: putstatic #54 // intField:int
1572
+ 8: iload_1
1573
+ 9: istore_3
1574
+ 10: goto 19
1575
+ 13: iload_2
1576
+ 14: putstatic #54 // intField:int
1577
+ 17: iload_2
1578
+ 18: istore_3
1579
+ 19: iload_3
1580
+ 20: ireturn
1581
+ <|@
1582
+ end_bytecodes
1583
+ begin_cfg
1584
+ name "After LinearScanAssignLocations"
1585
+ begin_block
1586
+ name "B0"
1587
+ from_bci -1
1588
+ to_bci -1
1589
+ predecessors
1590
+ successors "B1" "B2"
1591
+ xhandlers
1592
+ flags
1593
+ probability 4607182418800017408
1594
+ begin_IR
1595
+ LIR
1596
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1597
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1598
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1599
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1600
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1601
+ end_IR
1602
+ end_block
1603
+ begin_block
1604
+ name "B2"
1605
+ from_bci -1
1606
+ to_bci -1
1607
+ predecessors "B0"
1608
+ successors
1609
+ xhandlers
1610
+ flags
1611
+ probability 4602680517042440454
1612
+ begin_IR
1613
+ LIR
1614
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1615
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1616
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1617
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1618
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1619
+ end_IR
1620
+ end_block
1621
+ begin_block
1622
+ name "B1"
1623
+ from_bci -1
1624
+ to_bci -1
1625
+ predecessors "B0"
1626
+ successors
1627
+ xhandlers
1628
+ flags
1629
+ probability 4602675423433059828
1630
+ begin_IR
1631
+ LIR
1632
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1633
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1634
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1635
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1636
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1637
+ end_IR
1638
+ end_block
1639
+ end_cfg
1640
+ begin_bytecodes
1641
+ 0: iload_0
1642
+ 1: ifeq 13
1643
+ 4: iload_1
1644
+ 5: putstatic #54 // intField:int
1645
+ 8: iload_1
1646
+ 9: istore_3
1647
+ 10: goto 19
1648
+ 13: iload_2
1649
+ 14: putstatic #54 // intField:int
1650
+ 17: iload_2
1651
+ 18: istore_3
1652
+ 19: iload_3
1653
+ 20: ireturn
1654
+ <|@
1655
+ end_bytecodes
1656
+ begin_cfg
1657
+ name "After LinearScan"
1658
+ begin_block
1659
+ name "B0"
1660
+ from_bci -1
1661
+ to_bci -1
1662
+ predecessors
1663
+ successors "B1" "B2"
1664
+ xhandlers
1665
+ flags
1666
+ probability 4607182418800017408
1667
+ begin_IR
1668
+ LIR
1669
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1670
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1671
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1672
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1673
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1674
+ end_IR
1675
+ end_block
1676
+ begin_block
1677
+ name "B2"
1678
+ from_bci -1
1679
+ to_bci -1
1680
+ predecessors "B0"
1681
+ successors
1682
+ xhandlers
1683
+ flags
1684
+ probability 4602680517042440454
1685
+ begin_IR
1686
+ LIR
1687
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1688
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1689
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1690
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1691
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1692
+ end_IR
1693
+ end_block
1694
+ begin_block
1695
+ name "B1"
1696
+ from_bci -1
1697
+ to_bci -1
1698
+ predecessors "B0"
1699
+ successors
1700
+ xhandlers
1701
+ flags
1702
+ probability 4602675423433059828
1703
+ begin_IR
1704
+ LIR
1705
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1706
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1707
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1708
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1709
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1710
+ end_IR
1711
+ end_block
1712
+ end_cfg
1713
+ begin_bytecodes
1714
+ 0: iload_0
1715
+ 1: ifeq 13
1716
+ 4: iload_1
1717
+ 5: putstatic #54 // intField:int
1718
+ 8: iload_1
1719
+ 9: istore_3
1720
+ 10: goto 19
1721
+ 13: iload_2
1722
+ 14: putstatic #54 // intField:int
1723
+ 17: iload_2
1724
+ 18: istore_3
1725
+ 19: iload_3
1726
+ 20: ireturn
1727
+ <|@
1728
+ end_bytecodes
1729
+ begin_cfg
1730
+ name "After LSStackSlotAllocator"
1731
+ begin_block
1732
+ name "B0"
1733
+ from_bci -1
1734
+ to_bci -1
1735
+ predecessors
1736
+ successors "B1" "B2"
1737
+ xhandlers
1738
+ flags
1739
+ probability 4607182418800017408
1740
+ begin_IR
1741
+ LIR
1742
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1743
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1744
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1745
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1746
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1747
+ end_IR
1748
+ end_block
1749
+ begin_block
1750
+ name "B2"
1751
+ from_bci -1
1752
+ to_bci -1
1753
+ predecessors "B0"
1754
+ successors
1755
+ xhandlers
1756
+ flags
1757
+ probability 4602680517042440454
1758
+ begin_IR
1759
+ LIR
1760
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1761
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1762
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1763
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1764
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1765
+ end_IR
1766
+ end_block
1767
+ begin_block
1768
+ name "B1"
1769
+ from_bci -1
1770
+ to_bci -1
1771
+ predecessors "B0"
1772
+ successors
1773
+ xhandlers
1774
+ flags
1775
+ probability 4602675423433059828
1776
+ begin_IR
1777
+ LIR
1778
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1779
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1780
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1781
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1782
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1783
+ end_IR
1784
+ end_block
1785
+ end_cfg
1786
+ begin_bytecodes
1787
+ 0: iload_0
1788
+ 1: ifeq 13
1789
+ 4: iload_1
1790
+ 5: putstatic #54 // intField:int
1791
+ 8: iload_1
1792
+ 9: istore_3
1793
+ 10: goto 19
1794
+ 13: iload_2
1795
+ 14: putstatic #54 // intField:int
1796
+ 17: iload_2
1797
+ 18: istore_3
1798
+ 19: iload_3
1799
+ 20: ireturn
1800
+ <|@
1801
+ end_bytecodes
1802
+ begin_cfg
1803
+ name "After LocationMarker"
1804
+ begin_block
1805
+ name "B0"
1806
+ from_bci -1
1807
+ to_bci -1
1808
+ predecessors
1809
+ successors "B1" "B2"
1810
+ xhandlers
1811
+ flags
1812
+ probability 4607182418800017408
1813
+ begin_IR
1814
+ LIR
1815
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1816
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1817
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1818
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1819
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1820
+ end_IR
1821
+ end_block
1822
+ begin_block
1823
+ name "B2"
1824
+ from_bci -1
1825
+ to_bci -1
1826
+ predecessors "B0"
1827
+ successors
1828
+ xhandlers
1829
+ flags
1830
+ probability 4602680517042440454
1831
+ begin_IR
1832
+ LIR
1833
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1834
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1835
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1836
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1837
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1838
+ end_IR
1839
+ end_block
1840
+ begin_block
1841
+ name "B1"
1842
+ from_bci -1
1843
+ to_bci -1
1844
+ predecessors "B0"
1845
+ successors
1846
+ xhandlers
1847
+ flags
1848
+ probability 4602675423433059828
1849
+ begin_IR
1850
+ LIR
1851
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1852
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1853
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1854
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1855
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1856
+ end_IR
1857
+ end_block
1858
+ end_cfg
1859
+ begin_bytecodes
1860
+ 0: iload_0
1861
+ 1: ifeq 13
1862
+ 4: iload_1
1863
+ 5: putstatic #54 // intField:int
1864
+ 8: iload_1
1865
+ 9: istore_3
1866
+ 10: goto 19
1867
+ 13: iload_2
1868
+ 14: putstatic #54 // intField:int
1869
+ 17: iload_2
1870
+ 18: istore_3
1871
+ 19: iload_3
1872
+ 20: ireturn
1873
+ <|@
1874
+ end_bytecodes
1875
+ begin_cfg
1876
+ name "After AllocationStage"
1877
+ begin_block
1878
+ name "B0"
1879
+ from_bci -1
1880
+ to_bci -1
1881
+ predecessors
1882
+ successors "B1" "B2"
1883
+ xhandlers
1884
+ flags
1885
+ probability 4607182418800017408
1886
+ begin_IR
1887
+ LIR
1888
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1889
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1890
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1891
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1892
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1893
+ end_IR
1894
+ end_block
1895
+ begin_block
1896
+ name "B2"
1897
+ from_bci -1
1898
+ to_bci -1
1899
+ predecessors "B0"
1900
+ successors
1901
+ xhandlers
1902
+ flags
1903
+ probability 4602680517042440454
1904
+ begin_IR
1905
+ LIR
1906
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1907
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1908
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1909
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1910
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1911
+ end_IR
1912
+ end_block
1913
+ begin_block
1914
+ name "B1"
1915
+ from_bci -1
1916
+ to_bci -1
1917
+ predecessors "B0"
1918
+ successors
1919
+ xhandlers
1920
+ flags
1921
+ probability 4602675423433059828
1922
+ begin_IR
1923
+ LIR
1924
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1925
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1926
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1927
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1928
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1929
+ end_IR
1930
+ end_block
1931
+ end_cfg
1932
+ begin_bytecodes
1933
+ 0: iload_0
1934
+ 1: ifeq 13
1935
+ 4: iload_1
1936
+ 5: putstatic #54 // intField:int
1937
+ 8: iload_1
1938
+ 9: istore_3
1939
+ 10: goto 19
1940
+ 13: iload_2
1941
+ 14: putstatic #54 // intField:int
1942
+ 17: iload_2
1943
+ 18: istore_3
1944
+ 19: iload_3
1945
+ 20: ireturn
1946
+ <|@
1947
+ end_bytecodes
1948
+ begin_cfg
1949
+ name "After EdgeMoveOptimizer"
1950
+ begin_block
1951
+ name "B0"
1952
+ from_bci -1
1953
+ to_bci -1
1954
+ predecessors
1955
+ successors "B1" "B2"
1956
+ xhandlers
1957
+ flags
1958
+ probability 4607182418800017408
1959
+ begin_IR
1960
+ LIR
1961
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1962
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1963
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1964
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1965
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1966
+ end_IR
1967
+ end_block
1968
+ begin_block
1969
+ name "B2"
1970
+ from_bci -1
1971
+ to_bci -1
1972
+ predecessors "B0"
1973
+ successors
1974
+ xhandlers
1975
+ flags
1976
+ probability 4602680517042440454
1977
+ begin_IR
1978
+ LIR
1979
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1980
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1981
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1982
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1983
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1984
+ end_IR
1985
+ end_block
1986
+ begin_block
1987
+ name "B1"
1988
+ from_bci -1
1989
+ to_bci -1
1990
+ predecessors "B0"
1991
+ successors
1992
+ xhandlers
1993
+ flags
1994
+ probability 4602675423433059828
1995
+ begin_IR
1996
+ LIR
1997
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1998
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1999
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2000
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2001
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2002
+ end_IR
2003
+ end_block
2004
+ end_cfg
2005
+ begin_bytecodes
2006
+ 0: iload_0
2007
+ 1: ifeq 13
2008
+ 4: iload_1
2009
+ 5: putstatic #54 // intField:int
2010
+ 8: iload_1
2011
+ 9: istore_3
2012
+ 10: goto 19
2013
+ 13: iload_2
2014
+ 14: putstatic #54 // intField:int
2015
+ 17: iload_2
2016
+ 18: istore_3
2017
+ 19: iload_3
2018
+ 20: ireturn
2019
+ <|@
2020
+ end_bytecodes
2021
+ begin_cfg
2022
+ name "After ControlFlowOptimizer"
2023
+ begin_block
2024
+ name "B0"
2025
+ from_bci -1
2026
+ to_bci -1
2027
+ predecessors
2028
+ successors "B1" "B2"
2029
+ xhandlers
2030
+ flags
2031
+ probability 4607182418800017408
2032
+ begin_IR
2033
+ LIR
2034
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2035
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2036
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2037
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2038
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2039
+ end_IR
2040
+ end_block
2041
+ begin_block
2042
+ name "B2"
2043
+ from_bci -1
2044
+ to_bci -1
2045
+ predecessors "B0"
2046
+ successors
2047
+ xhandlers
2048
+ flags
2049
+ probability 4602680517042440454
2050
+ begin_IR
2051
+ LIR
2052
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2053
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2054
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2055
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2056
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2057
+ end_IR
2058
+ end_block
2059
+ begin_block
2060
+ name "B1"
2061
+ from_bci -1
2062
+ to_bci -1
2063
+ predecessors "B0"
2064
+ successors
2065
+ xhandlers
2066
+ flags
2067
+ probability 4602675423433059828
2068
+ begin_IR
2069
+ LIR
2070
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2071
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2072
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2073
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2074
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2075
+ end_IR
2076
+ end_block
2077
+ end_cfg
2078
+ begin_bytecodes
2079
+ 0: iload_0
2080
+ 1: ifeq 13
2081
+ 4: iload_1
2082
+ 5: putstatic #54 // intField:int
2083
+ 8: iload_1
2084
+ 9: istore_3
2085
+ 10: goto 19
2086
+ 13: iload_2
2087
+ 14: putstatic #54 // intField:int
2088
+ 17: iload_2
2089
+ 18: istore_3
2090
+ 19: iload_3
2091
+ 20: ireturn
2092
+ <|@
2093
+ end_bytecodes
2094
+ begin_cfg
2095
+ name "After RedundantMoveElimination"
2096
+ begin_block
2097
+ name "B0"
2098
+ from_bci -1
2099
+ to_bci -1
2100
+ predecessors
2101
+ successors "B1" "B2"
2102
+ xhandlers
2103
+ flags
2104
+ probability 4607182418800017408
2105
+ begin_IR
2106
+ LIR
2107
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2108
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2109
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2110
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2111
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2112
+ end_IR
2113
+ end_block
2114
+ begin_block
2115
+ name "B2"
2116
+ from_bci -1
2117
+ to_bci -1
2118
+ predecessors "B0"
2119
+ successors
2120
+ xhandlers
2121
+ flags
2122
+ probability 4602680517042440454
2123
+ begin_IR
2124
+ LIR
2125
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2126
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2127
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2128
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2129
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2130
+ end_IR
2131
+ end_block
2132
+ begin_block
2133
+ name "B1"
2134
+ from_bci -1
2135
+ to_bci -1
2136
+ predecessors "B0"
2137
+ successors
2138
+ xhandlers
2139
+ flags
2140
+ probability 4602675423433059828
2141
+ begin_IR
2142
+ LIR
2143
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2144
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2145
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2146
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2147
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2148
+ end_IR
2149
+ end_block
2150
+ end_cfg
2151
+ begin_bytecodes
2152
+ 0: iload_0
2153
+ 1: ifeq 13
2154
+ 4: iload_1
2155
+ 5: putstatic #54 // intField:int
2156
+ 8: iload_1
2157
+ 9: istore_3
2158
+ 10: goto 19
2159
+ 13: iload_2
2160
+ 14: putstatic #54 // intField:int
2161
+ 17: iload_2
2162
+ 18: istore_3
2163
+ 19: iload_3
2164
+ 20: ireturn
2165
+ <|@
2166
+ end_bytecodes
2167
+ begin_cfg
2168
+ name "After NullCheckOptimizer"
2169
+ begin_block
2170
+ name "B0"
2171
+ from_bci -1
2172
+ to_bci -1
2173
+ predecessors
2174
+ successors "B1" "B2"
2175
+ xhandlers
2176
+ flags
2177
+ probability 4607182418800017408
2178
+ begin_IR
2179
+ LIR
2180
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2181
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2182
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2183
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2184
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2185
+ end_IR
2186
+ end_block
2187
+ begin_block
2188
+ name "B2"
2189
+ from_bci -1
2190
+ to_bci -1
2191
+ predecessors "B0"
2192
+ successors
2193
+ xhandlers
2194
+ flags
2195
+ probability 4602680517042440454
2196
+ begin_IR
2197
+ LIR
2198
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2199
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2200
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2201
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2202
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2203
+ end_IR
2204
+ end_block
2205
+ begin_block
2206
+ name "B1"
2207
+ from_bci -1
2208
+ to_bci -1
2209
+ predecessors "B0"
2210
+ successors
2211
+ xhandlers
2212
+ flags
2213
+ probability 4602675423433059828
2214
+ begin_IR
2215
+ LIR
2216
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2217
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2218
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2219
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2220
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2221
+ end_IR
2222
+ end_block
2223
+ end_cfg
2224
+ begin_bytecodes
2225
+ 0: iload_0
2226
+ 1: ifeq 13
2227
+ 4: iload_1
2228
+ 5: putstatic #54 // intField:int
2229
+ 8: iload_1
2230
+ 9: istore_3
2231
+ 10: goto 19
2232
+ 13: iload_2
2233
+ 14: putstatic #54 // intField:int
2234
+ 17: iload_2
2235
+ 18: istore_3
2236
+ 19: iload_3
2237
+ 20: ireturn
2238
+ <|@
2239
+ end_bytecodes
2240
+ begin_cfg
2241
+ name "After StackMoveOptimization"
2242
+ begin_block
2243
+ name "B0"
2244
+ from_bci -1
2245
+ to_bci -1
2246
+ predecessors
2247
+ successors "B1" "B2"
2248
+ xhandlers
2249
+ flags
2250
+ probability 4607182418800017408
2251
+ begin_IR
2252
+ LIR
2253
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2254
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2255
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2256
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2257
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2258
+ end_IR
2259
+ end_block
2260
+ begin_block
2261
+ name "B2"
2262
+ from_bci -1
2263
+ to_bci -1
2264
+ predecessors "B0"
2265
+ successors
2266
+ xhandlers
2267
+ flags
2268
+ probability 4602680517042440454
2269
+ begin_IR
2270
+ LIR
2271
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2272
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2273
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2274
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2275
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2276
+ end_IR
2277
+ end_block
2278
+ begin_block
2279
+ name "B1"
2280
+ from_bci -1
2281
+ to_bci -1
2282
+ predecessors "B0"
2283
+ successors
2284
+ xhandlers
2285
+ flags
2286
+ probability 4602675423433059828
2287
+ begin_IR
2288
+ LIR
2289
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2290
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2291
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2292
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2293
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2294
+ end_IR
2295
+ end_block
2296
+ end_cfg
2297
+ begin_bytecodes
2298
+ 0: iload_0
2299
+ 1: ifeq 13
2300
+ 4: iload_1
2301
+ 5: putstatic #54 // intField:int
2302
+ 8: iload_1
2303
+ 9: istore_3
2304
+ 10: goto 19
2305
+ 13: iload_2
2306
+ 14: putstatic #54 // intField:int
2307
+ 17: iload_2
2308
+ 18: istore_3
2309
+ 19: iload_3
2310
+ 20: ireturn
2311
+ <|@
2312
+ end_bytecodes
2313
+ begin_cfg
2314
+ name "After PostAllocationOptimizationStage"
2315
+ begin_block
2316
+ name "B0"
2317
+ from_bci -1
2318
+ to_bci -1
2319
+ predecessors
2320
+ successors "B1" "B2"
2321
+ xhandlers
2322
+ flags
2323
+ probability 4607182418800017408
2324
+ begin_IR
2325
+ LIR
2326
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2327
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2328
+ nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2329
+ nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2330
+ nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2331
+ end_IR
2332
+ end_block
2333
+ begin_block
2334
+ name "B2"
2335
+ from_bci -1
2336
+ to_bci -1
2337
+ predecessors "B0"
2338
+ successors
2339
+ xhandlers
2340
+ flags
2341
+ probability 4602680517042440454
2342
+ begin_IR
2343
+ LIR
2344
+ nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2345
+ nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2346
+ nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2347
+ nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2348
+ nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2349
+ end_IR
2350
+ end_block
2351
+ begin_block
2352
+ name "B1"
2353
+ from_bci -1
2354
+ to_bci -1
2355
+ predecessors "B0"
2356
+ successors
2357
+ xhandlers
2358
+ flags
2359
+ probability 4602675423433059828
2360
+ begin_IR
2361
+ LIR
2362
+ nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2363
+ nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2364
+ nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2365
+ nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2366
+ nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2367
+ end_IR
2368
+ end_block
2369
+ end_cfg
2370
+ begin_bytecodes
2371
+ 0: iload_0
2372
+ 1: ifeq 13
2373
+ 4: iload_1
2374
+ 5: putstatic #54 // intField:int
2375
+ 8: iload_1
2376
+ 9: istore_3
2377
+ 10: goto 19
2378
+ 13: iload_2
2379
+ 14: putstatic #54 // intField:int
2380
+ 17: iload_2
2381
+ 18: istore_3
2382
+ 19: iload_3
2383
+ 20: ireturn
2384
+ <|@
2385
+ end_bytecodes
2386
+ begin_cfg
2387
+ name "After code generation"
2388
+ end_cfg
2389
+ begin_nmethod
2390
+ <<<HexCodeFile
2391
+ Platform AMD64 64 <||@
2392
+ HexCode 0 0f1f44000049baaddeaddeaddeadde85f60f841800000041899280000000f0830424008bc2850500000000c5f877c341898a80000000f0830424008bc1850500000000c5f877c3e80000000090e80000000090 <||@
2393
+ Comment 0 3 <||@
2394
+ Comment 0 1 <||@
2395
+ Comment 5 block B0 null <||@
2396
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
2397
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <||@
2398
+ Comment 5 12 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
2399
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
2400
+ Comment 15 14 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
2401
+ Comment 17 16 BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
2402
+ Comment 23 block B2 null <||@
2403
+ Comment 23 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
2404
+ Comment 23 20 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
2405
+ Comment 30 22 MEMBAR barriers: 4 <||@
2406
+ Comment 35 24 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
2407
+ Comment 37 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2408
+ Comment 37 12 <||@
2409
+ Comment 47 block B1 null <||@
2410
+ Comment 47 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
2411
+ Comment 47 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
2412
+ Comment 54 32 MEMBAR barriers: 4 <||@
2413
+ Comment 59 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
2414
+ Comment 61 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2415
+ Comment 61 12 <||@
2416
+ Comment 71 {Stub<ExceptionHandlerStub.exceptionHandler>@0x112e24320: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} <||@
2417
+ Comment 71 4 <||@
2418
+ Comment 77 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
2419
+ Comment 77 5 <||@
2420
+ HexCodeFile>>> <|@
2421
+ end_nmethod
2422
+ begin_compilation
2423
+ name " HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
2424
+ method "HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
2425
+ date 1583364091967
2426
+ end_compilation
2427
+ begin_cfg
2428
+ name "After code installation"
2429
+ end_cfg
2430
+ begin_nmethod
2431
+ <<<HexCodeFile
2432
+ Platform AMD64 64 <||@
2433
+ HexCode 112e35c20 0f1f44000049bab0275f150700000085f60f841800000041899280000000f0830424008bc28505bb5393fbc5f877c341898a80000000f0830424008bc18505a35393fbc5f877c3e8b4e6feff90e8cee5eaff90f4f4f4f4f4 <||@
2434
+ Comment 0 3 <||@
2435
+ Comment 0 1 <||@
2436
+ Comment 5 block B0 null <||@
2437
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
2438
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <||@
2439
+ Comment 5 12 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
2440
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
2441
+ Comment 15 14 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
2442
+ Comment 17 16 BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
2443
+ Comment 23 block B2 null <||@
2444
+ Comment 23 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
2445
+ Comment 23 20 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
2446
+ Comment 30 22 MEMBAR barriers: 4 <||@
2447
+ Comment 35 24 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
2448
+ Comment 37 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2449
+ Comment 37 12 <||@
2450
+ Comment 47 block B1 null <||@
2451
+ Comment 47 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
2452
+ Comment 47 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
2453
+ Comment 54 32 MEMBAR barriers: 4 <||@
2454
+ Comment 59 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
2455
+ Comment 61 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2456
+ Comment 61 12 <||@
2457
+ Comment 71 {Stub<ExceptionHandlerStub.exceptionHandler>@0x112e24320: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} <||@
2458
+ Comment 71 4 <||@
2459
+ Comment 77 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
2460
+ Comment 77 5 <||@
2461
+ HexCodeFile>>> <|@
2462
+ end_nmethod