seafoam 0.2

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