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,3859 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-360[JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)]"
3
+ method "HotSpotCompilation-360[JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)]"
4
+ date 1583840237783
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: v37
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v37 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid a1 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 0
36
+ stamp: a -
37
+ uncheckedStamp: a# LJavaExamples$OneImpl;
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ ?2 v11 v47 v32
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid v32 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
49
+ nullConstant: Object[null]
50
+ stamp: void
51
+ === Inputs ===
52
+ value: a1
53
+ === Succesors ===
54
+ === Usages ===
55
+ v37
56
+ === Predecessor ===
57
+ - >@ <|@
58
+ instruction <@IsNull|@org.graalvm.compiler.nodes.calc.IsNullNode>@ value: a1 <|@ <|@
59
+ f <@*|@fixed>@ <|@
60
+ tid v37 <|@
61
+ d <@d|@=== Debug Properties ===
62
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
63
+ stamp: void
64
+ trueSuccessorProbability: 0.5
65
+ === Inputs ===
66
+ condition: v32
67
+ === Succesors ===
68
+ trueSuccessor: v35
69
+ falseSuccessor: v36
70
+ === Usages ===
71
+ === Predecessor ===
72
+ v0 >@ <|@
73
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v32 #trueSuccessor: v35 #falseSuccessor: v36 <|@ <|@
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 v35 <|@
89
+ d <@d|@=== Debug Properties ===
90
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
91
+ stamp: void
92
+ withSpeculationFence: false
93
+ === Inputs ===
94
+ === Succesors ===
95
+ next: v33
96
+ === Usages ===
97
+ === Predecessor ===
98
+ v37 >@ <|@
99
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v33 <|@ <|@
100
+ f <@~|@floating>@ <|@
101
+ tid v39 <|@
102
+ d <@d|@=== Debug Properties ===
103
+ isDefaultStable: false
104
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [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
+ v45
114
+ === Predecessor ===
115
+ - >@ <|@
116
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
117
+ f <@*|@fixed>@ <|@
118
+ tid v33 <|@
119
+ d <@d|@=== Debug Properties ===
120
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
121
+ stamp: void
122
+ === Inputs ===
123
+ === Succesors ===
124
+ === Usages ===
125
+ v38
126
+ === Predecessor ===
127
+ v35 >@ <|@
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 v36 <|@
144
+ d <@d|@=== Debug Properties ===
145
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
146
+ stamp: void
147
+ withSpeculationFence: false
148
+ === Inputs ===
149
+ === Succesors ===
150
+ next: v46
151
+ === Usages ===
152
+ === Predecessor ===
153
+ v37 >@ <|@
154
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v46 <|@ <|@
155
+ f <@~|@floating>@ <|@
156
+ tid v47 <|@
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
+ v46
167
+ === Predecessor ===
168
+ - >@ <|@
169
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
170
+ f <@#|@fixed with next>@ <|@
171
+ tid v46 <|@
172
+ d <@d|@=== Debug Properties ===
173
+ barrierType: NONE
174
+ forceFixed: false
175
+ location: CompressedHub:final
176
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
177
+ nullCheck: false
178
+ stamp: Klass*!(compressed base: 0 shift: 3)
179
+ === Inputs ===
180
+ stateBefore: -
181
+ guard: -
182
+ address: v47
183
+ lastLocationAccess: -
184
+ === Succesors ===
185
+ next: v34
186
+ === Usages ===
187
+ v44
188
+ === Predecessor ===
189
+ v36 >@ <|@
190
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v47 lastLocationAccess: - #next: v34 <|@ <|@
191
+ f <@~|@floating>@ <|@
192
+ tid v44 <|@
193
+ d <@d|@=== Debug Properties ===
194
+ encoding: base: 0 shift: 3
195
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
196
+ op: Uncompress
197
+ stamp: Klass*!
198
+ === Inputs ===
199
+ value: v46
200
+ === Succesors ===
201
+ === Usages ===
202
+ v45
203
+ === Predecessor ===
204
+ - >@ <|@
205
+ instruction <@HotSpotCompression|@org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode>@ value: v46 <|@ <|@
206
+ f <@*|@fixed>@ <|@
207
+ tid v34 <|@
208
+ d <@d|@=== Debug Properties ===
209
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
210
+ stamp: void
211
+ === Inputs ===
212
+ === Succesors ===
213
+ === Usages ===
214
+ v38
215
+ === Predecessor ===
216
+ v46 >@ <|@
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 "B4" "B5"
226
+ xhandlers
227
+ flags
228
+ probability 4607182418800017408
229
+ begin_IR
230
+ HIR
231
+ f <@~|@floating>@ <|@
232
+ tid v45 <|@
233
+ d <@d|@=== Debug Properties ===
234
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
235
+ stamp: Klass*
236
+ valueDescription: Klass*
237
+ === Inputs ===
238
+ merge: v38
239
+ values: v39 v44
240
+ === Succesors ===
241
+ === Usages ===
242
+ v21
243
+ === Predecessor ===
244
+ - >@ <|@
245
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v38 values: v39 v44 <|@ <|@
246
+ f <@#|@fixed with next>@ <|@
247
+ tid v38 <|@
248
+ d <@d|@=== Debug Properties ===
249
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
250
+ stamp: void
251
+ withSpeculationFence: false
252
+ === Inputs ===
253
+ stateAfter: -
254
+ ends: v33 v34
255
+ === Succesors ===
256
+ next: v15
257
+ === Usages ===
258
+ v45
259
+ === Predecessor ===
260
+ - >@ <|@
261
+ instruction <@Merge|@org.graalvm.compiler.nodes.MergeNode>@ stateAfter: - ends: v33 v34 #next: v15 <|@ <|@
262
+ f <@~|@floating>@ <|@
263
+ tid v18 <|@
264
+ d <@d|@=== Debug Properties ===
265
+ isDefaultStable: false
266
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [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
+ v21
276
+ === Predecessor ===
277
+ - >@ <|@
278
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
279
+ f <@~|@floating>@ <|@
280
+ tid v21 <|@
281
+ d <@d|@=== Debug Properties ===
282
+ condition: EQ
283
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
284
+ stamp: void
285
+ unorderedIsTrue: false
286
+ === Inputs ===
287
+ x: v45
288
+ y: v18
289
+ === Succesors ===
290
+ === Usages ===
291
+ v15
292
+ === Predecessor ===
293
+ - >@ <|@
294
+ instruction <@==|@org.graalvm.compiler.nodes.calc.PointerEqualsNode>@ x: v45 y: v18 <|@ <|@
295
+ f <@*|@fixed>@ <|@
296
+ tid v15 <|@
297
+ d <@d|@=== Debug Properties ===
298
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
299
+ stamp: void
300
+ trueSuccessorProbability: 1.0
301
+ === Inputs ===
302
+ condition: v21
303
+ === Succesors ===
304
+ trueSuccessor: v12
305
+ falseSuccessor: v14
306
+ === Usages ===
307
+ === Predecessor ===
308
+ v38 >@ <|@
309
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v21 #trueSuccessor: v12 #falseSuccessor: v14 <|@ <|@
310
+ end_IR
311
+ end_block
312
+ begin_block
313
+ name "B4"
314
+ from_bci -1
315
+ to_bci -1
316
+ predecessors "B3"
317
+ successors
318
+ xhandlers
319
+ flags
320
+ probability 4607182418800017408
321
+ begin_IR
322
+ HIR
323
+ f <@#|@fixed with next>@ <|@
324
+ tid v12 <|@
325
+ d <@d|@=== Debug Properties ===
326
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
327
+ stamp: void
328
+ withSpeculationFence: false
329
+ === Inputs ===
330
+ === Succesors ===
331
+ next: i4
332
+ === Usages ===
333
+ === Predecessor ===
334
+ v15 >@ <|@
335
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i4 <|@ <|@
336
+ tid v11 <|@
337
+ d <@d|@=== Debug Properties ===
338
+ callType: JavaCall
339
+ invokeKind: Special
340
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
341
+ returnStamp: i32
342
+ signature: [Ljdk.vm.ci.meta.JavaType;@10eadbf70
343
+ stamp: void
344
+ targetMethod: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()>
345
+ === Inputs ===
346
+ arguments: a1
347
+ === Succesors ===
348
+ === Usages ===
349
+ i4
350
+ === Predecessor ===
351
+ - >@ <|@
352
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ arguments: a1 <|@ <|@
353
+ tid ?31 <|@
354
+ d <@d|@=== Debug Properties ===
355
+ bci: 1
356
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)>
357
+ duringCall: true
358
+ localsSize: 1
359
+ locksSize: 0
360
+ rethrowException: false
361
+ sourceFile: JavaExamples.java
362
+ sourceLine: 107
363
+ stackSize: 0
364
+ === Inputs ===
365
+ outerFrameState: -
366
+ values: -
367
+ === Succesors ===
368
+ === Usages ===
369
+ i4
370
+ === Predecessor ===
371
+ - >@ <|@
372
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
373
+ f <@#|@fixed with next>@ <|@
374
+ tid i4 <|@
375
+ d <@d|@=== Debug Properties ===
376
+ bci: 1
377
+ identity: ANY_LOCATION
378
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
379
+ polymorphic: false
380
+ stamp: i32
381
+ targetMethod: Direct#JavaExamples$OneImpl.interfaceCall
382
+ useForInlining: true
383
+ === Inputs ===
384
+ stateAfter: -
385
+ classInit: -
386
+ callTarget: v11
387
+ stateDuring: ?31
388
+ === Succesors ===
389
+ next: v6
390
+ === Usages ===
391
+ v6
392
+ === Predecessor ===
393
+ v12 >@ <|@
394
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v11 stateDuring: ?31 #next: v6 <|@ <|@
395
+ f <@*|@fixed>@ <|@
396
+ tid v6 <|@
397
+ d <@d|@=== Debug Properties ===
398
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 6]
399
+ stamp: void
400
+ === Inputs ===
401
+ result: i4
402
+ memoryMap: -
403
+ === Succesors ===
404
+ === Usages ===
405
+ === Predecessor ===
406
+ i4 >@ <|@
407
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
408
+ end_IR
409
+ end_block
410
+ begin_block
411
+ name "B5"
412
+ from_bci -1
413
+ to_bci -1
414
+ predecessors "B3"
415
+ successors
416
+ xhandlers
417
+ flags
418
+ probability 2355382605114769408
419
+ begin_IR
420
+ HIR
421
+ f <@#|@fixed with next>@ <|@
422
+ tid v14 <|@
423
+ d <@d|@=== Debug Properties ===
424
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
425
+ stamp: void
426
+ withSpeculationFence: false
427
+ === Inputs ===
428
+ === Succesors ===
429
+ next: v13
430
+ === Usages ===
431
+ === Predecessor ===
432
+ v15 >@ <|@
433
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v13 <|@ <|@
434
+ tid ?2 <|@
435
+ d <@d|@=== Debug Properties ===
436
+ bci: 0
437
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)>
438
+ duringCall: false
439
+ localsSize: 1
440
+ locksSize: 0
441
+ rethrowException: false
442
+ sourceFile: JavaExamples.java
443
+ sourceLine: 107
444
+ stackSize: 0
445
+ === Inputs ===
446
+ outerFrameState: -
447
+ values: a1
448
+ === Succesors ===
449
+ === Usages ===
450
+ v13
451
+ === Predecessor ===
452
+ - >@ <|@
453
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a1 <|@ <|@
454
+ f <@*|@fixed>@ <|@
455
+ tid v13 <|@
456
+ d <@d|@=== Debug Properties ===
457
+ action: InvalidateRecompile
458
+ debugId: 10
459
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
460
+ reason: OptimizedTypeCheckViolated
461
+ speculation: jdk.vm.ci.meta.SpeculationLog$NoSpeculationReason@10b94c448
462
+ stamp: void
463
+ === Inputs ===
464
+ stateBefore: ?2
465
+ === Succesors ===
466
+ === Usages ===
467
+ === Predecessor ===
468
+ v14 >@ <|@
469
+ instruction <@Deopt|@org.graalvm.compiler.nodes.DeoptimizeNode>@ stateBefore: ?2 <|@ <|@
470
+ end_IR
471
+ end_block
472
+ end_cfg
473
+ begin_cfg
474
+ name "After LIRGeneration"
475
+ begin_block
476
+ name "B0"
477
+ from_bci -1
478
+ to_bci -1
479
+ predecessors
480
+ successors "B1" "B2"
481
+ xhandlers
482
+ flags
483
+ probability 4607182418800017408
484
+ begin_IR
485
+ LIR
486
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
487
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
488
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
489
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
490
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
491
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
492
+ end_IR
493
+ end_block
494
+ begin_block
495
+ name "B2"
496
+ from_bci -1
497
+ to_bci -1
498
+ predecessors "B0"
499
+ successors "B3"
500
+ xhandlers
501
+ flags
502
+ probability 4602678819172646912
503
+ begin_IR
504
+ LIR
505
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
506
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
507
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
508
+ nr -1 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
509
+ end_IR
510
+ end_block
511
+ begin_block
512
+ name "B3"
513
+ from_bci -1
514
+ to_bci -1
515
+ predecessors "B1" "B2"
516
+ successors "B4" "B5"
517
+ xhandlers
518
+ flags
519
+ probability 4607182418800017408
520
+ begin_IR
521
+ LIR
522
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
523
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
524
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
525
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
526
+ end_IR
527
+ end_block
528
+ begin_block
529
+ name "B4"
530
+ from_bci -1
531
+ to_bci -1
532
+ predecessors "B3"
533
+ successors
534
+ xhandlers
535
+ flags
536
+ probability 4607182418800017408
537
+ begin_IR
538
+ LIR
539
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
540
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
541
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
542
+ locals: -
543
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
544
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
545
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
546
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
547
+ end_IR
548
+ end_block
549
+ begin_block
550
+ name "B1"
551
+ from_bci -1
552
+ to_bci -1
553
+ predecessors "B0"
554
+ successors "B3"
555
+ xhandlers
556
+ flags
557
+ probability 4602678819172646912
558
+ begin_IR
559
+ LIR
560
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
561
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
562
+ end_IR
563
+ end_block
564
+ begin_block
565
+ name "B5"
566
+ from_bci -1
567
+ to_bci -1
568
+ predecessors "B3"
569
+ successors
570
+ xhandlers
571
+ flags
572
+ probability 2355382605114769408
573
+ begin_IR
574
+ LIR
575
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
576
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
577
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
578
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
579
+ locals: v0|QWORD[.]
580
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
581
+ end_IR
582
+ end_block
583
+ end_cfg
584
+ begin_bytecodes
585
+ 0: aload_0
586
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
587
+ 6: ireturn
588
+ <|@
589
+ end_bytecodes
590
+ begin_cfg
591
+ name "After LIR generation"
592
+ begin_block
593
+ name "B0"
594
+ from_bci -1
595
+ to_bci -1
596
+ predecessors
597
+ successors "B1" "B2"
598
+ xhandlers
599
+ flags
600
+ probability 4607182418800017408
601
+ begin_IR
602
+ HIR
603
+ f <@#|@fixed with next>@ <|@
604
+ tid v0 <|@
605
+ d <@d|@=== Debug Properties ===
606
+ stamp: void
607
+ withSpeculationFence: false
608
+ === Inputs ===
609
+ stateAfter: -
610
+ === Succesors ===
611
+ next: v37
612
+ === Usages ===
613
+ === Predecessor ===
614
+ - >@ <|@
615
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v37 <|@ <|@
616
+ f <@~|@floating>@ <|@
617
+ tid a1 <|@
618
+ result v0|QWORD[.] <|@
619
+ d <@d|@=== Debug Properties ===
620
+ index: 0
621
+ stamp: a -
622
+ uncheckedStamp: a# LJavaExamples$OneImpl;
623
+ === Inputs ===
624
+ === Succesors ===
625
+ === Usages ===
626
+ ?2 v11 v47 v32
627
+ === Predecessor ===
628
+ - >@ <|@
629
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
630
+ f <@~|@floating>@ <|@
631
+ tid v32 <|@
632
+ d <@d|@=== Debug Properties ===
633
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
634
+ nullConstant: Object[null]
635
+ stamp: void
636
+ === Inputs ===
637
+ value: a1
638
+ === Succesors ===
639
+ === Usages ===
640
+ v37
641
+ === Predecessor ===
642
+ - >@ <|@
643
+ instruction <@IsNull|@org.graalvm.compiler.nodes.calc.IsNullNode>@ value: a1 <|@ <|@
644
+ f <@*|@fixed>@ <|@
645
+ tid v37 <|@
646
+ d <@d|@=== Debug Properties ===
647
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
648
+ stamp: void
649
+ trueSuccessorProbability: 0.5
650
+ === Inputs ===
651
+ condition: v32
652
+ === Succesors ===
653
+ trueSuccessor: v35
654
+ falseSuccessor: v36
655
+ === Usages ===
656
+ === Predecessor ===
657
+ v0 >@ <|@
658
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v32 #trueSuccessor: v35 #falseSuccessor: v36 <|@ <|@
659
+ end_IR
660
+ begin_IR
661
+ LIR
662
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
663
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
664
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
665
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
666
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
667
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
668
+ end_IR
669
+ end_block
670
+ begin_block
671
+ name "B1"
672
+ from_bci -1
673
+ to_bci -1
674
+ predecessors "B0"
675
+ successors "B3"
676
+ xhandlers
677
+ flags
678
+ probability 4602678819172646912
679
+ begin_IR
680
+ HIR
681
+ f <@#|@fixed with next>@ <|@
682
+ tid v35 <|@
683
+ d <@d|@=== Debug Properties ===
684
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
685
+ stamp: void
686
+ withSpeculationFence: false
687
+ === Inputs ===
688
+ === Succesors ===
689
+ next: v33
690
+ === Usages ===
691
+ === Predecessor ===
692
+ v37 >@ <|@
693
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v33 <|@ <|@
694
+ f <@~|@floating>@ <|@
695
+ tid v39 <|@
696
+ result Object[null] <|@
697
+ d <@d|@=== Debug Properties ===
698
+ isDefaultStable: false
699
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
700
+ rawvalue: null
701
+ stableDimension: 0
702
+ stamp: Klass* NULL
703
+ stampKind: Klass*
704
+ value: Object[null]
705
+ === Inputs ===
706
+ === Succesors ===
707
+ === Usages ===
708
+ v45
709
+ === Predecessor ===
710
+ - >@ <|@
711
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
712
+ f <@*|@fixed>@ <|@
713
+ tid v33 <|@
714
+ d <@d|@=== Debug Properties ===
715
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
716
+ stamp: void
717
+ === Inputs ===
718
+ === Succesors ===
719
+ === Usages ===
720
+ v38
721
+ === Predecessor ===
722
+ v35 >@ <|@
723
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
724
+ end_IR
725
+ begin_IR
726
+ LIR
727
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
728
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
729
+ end_IR
730
+ end_block
731
+ begin_block
732
+ name "B2"
733
+ from_bci -1
734
+ to_bci -1
735
+ predecessors "B0"
736
+ successors "B3"
737
+ xhandlers
738
+ flags
739
+ probability 4602678819172646912
740
+ begin_IR
741
+ HIR
742
+ f <@#|@fixed with next>@ <|@
743
+ tid v36 <|@
744
+ d <@d|@=== Debug Properties ===
745
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
746
+ stamp: void
747
+ withSpeculationFence: false
748
+ === Inputs ===
749
+ === Succesors ===
750
+ next: v46
751
+ === Usages ===
752
+ === Predecessor ===
753
+ v37 >@ <|@
754
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v46 <|@ <|@
755
+ f <@~|@floating>@ <|@
756
+ tid v47 <|@
757
+ result [v0|QWORD[.] + 8] <|@
758
+ d <@d|@=== Debug Properties ===
759
+ displacement: 8
760
+ scale: Times1
761
+ stamp: void*
762
+ === Inputs ===
763
+ base: a1
764
+ index: -
765
+ === Succesors ===
766
+ === Usages ===
767
+ v46
768
+ === Predecessor ===
769
+ - >@ <|@
770
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
771
+ f <@#|@fixed with next>@ <|@
772
+ tid v46 <|@
773
+ result v1|DWORD <|@
774
+ d <@d|@=== Debug Properties ===
775
+ barrierType: NONE
776
+ forceFixed: false
777
+ location: CompressedHub:final
778
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
779
+ nullCheck: false
780
+ stamp: Klass*!(compressed base: 0 shift: 3)
781
+ === Inputs ===
782
+ stateBefore: -
783
+ guard: -
784
+ address: v47
785
+ lastLocationAccess: -
786
+ === Succesors ===
787
+ next: v34
788
+ === Usages ===
789
+ v44
790
+ === Predecessor ===
791
+ v36 >@ <|@
792
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v47 lastLocationAccess: - #next: v34 <|@ <|@
793
+ f <@~|@floating>@ <|@
794
+ tid v44 <|@
795
+ result v2|QWORD <|@
796
+ d <@d|@=== Debug Properties ===
797
+ encoding: base: 0 shift: 3
798
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
799
+ op: Uncompress
800
+ stamp: Klass*!
801
+ === Inputs ===
802
+ value: v46
803
+ === Succesors ===
804
+ === Usages ===
805
+ v45
806
+ === Predecessor ===
807
+ - >@ <|@
808
+ instruction <@HotSpotCompression|@org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode>@ value: v46 <|@ <|@
809
+ f <@*|@fixed>@ <|@
810
+ tid v34 <|@
811
+ d <@d|@=== Debug Properties ===
812
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
813
+ stamp: void
814
+ === Inputs ===
815
+ === Succesors ===
816
+ === Usages ===
817
+ v38
818
+ === Predecessor ===
819
+ v46 >@ <|@
820
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
821
+ end_IR
822
+ begin_IR
823
+ LIR
824
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
825
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
826
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
827
+ nr -1 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
828
+ end_IR
829
+ end_block
830
+ begin_block
831
+ name "B3"
832
+ from_bci -1
833
+ to_bci -1
834
+ predecessors "B1" "B2"
835
+ successors "B4" "B5"
836
+ xhandlers
837
+ flags
838
+ probability 4607182418800017408
839
+ begin_IR
840
+ HIR
841
+ f <@~|@floating>@ <|@
842
+ tid v45 <|@
843
+ result v3|QWORD <|@
844
+ d <@d|@=== Debug Properties ===
845
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
846
+ stamp: Klass*
847
+ valueDescription: Klass*
848
+ === Inputs ===
849
+ merge: v38
850
+ values: v39 v44
851
+ === Succesors ===
852
+ === Usages ===
853
+ v21
854
+ === Predecessor ===
855
+ - >@ <|@
856
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v38 values: v39 v44 <|@ <|@
857
+ f <@#|@fixed with next>@ <|@
858
+ tid v38 <|@
859
+ d <@d|@=== Debug Properties ===
860
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
861
+ stamp: void
862
+ withSpeculationFence: false
863
+ === Inputs ===
864
+ stateAfter: -
865
+ ends: v33 v34
866
+ === Succesors ===
867
+ next: v15
868
+ === Usages ===
869
+ v45
870
+ === Predecessor ===
871
+ - >@ <|@
872
+ instruction <@Merge|@org.graalvm.compiler.nodes.MergeNode>@ stateAfter: - ends: v33 v34 #next: v15 <|@ <|@
873
+ f <@~|@floating>@ <|@
874
+ tid v18 <|@
875
+ result v4|QWORD <|@
876
+ d <@d|@=== Debug Properties ===
877
+ isDefaultStable: false
878
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
879
+ rawvalue: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>}
880
+ stableDimension: 0
881
+ stamp: Klass*!
882
+ stampKind: Klass*
883
+ value: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>}
884
+ === Inputs ===
885
+ === Succesors ===
886
+ === Usages ===
887
+ v21
888
+ === Predecessor ===
889
+ - >@ <|@
890
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
891
+ f <@~|@floating>@ <|@
892
+ tid v21 <|@
893
+ d <@d|@=== Debug Properties ===
894
+ condition: EQ
895
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
896
+ stamp: void
897
+ unorderedIsTrue: false
898
+ === Inputs ===
899
+ x: v45
900
+ y: v18
901
+ === Succesors ===
902
+ === Usages ===
903
+ v15
904
+ === Predecessor ===
905
+ - >@ <|@
906
+ instruction <@==|@org.graalvm.compiler.nodes.calc.PointerEqualsNode>@ x: v45 y: v18 <|@ <|@
907
+ f <@*|@fixed>@ <|@
908
+ tid v15 <|@
909
+ d <@d|@=== Debug Properties ===
910
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
911
+ stamp: void
912
+ trueSuccessorProbability: 1.0
913
+ === Inputs ===
914
+ condition: v21
915
+ === Succesors ===
916
+ trueSuccessor: v12
917
+ falseSuccessor: v14
918
+ === Usages ===
919
+ === Predecessor ===
920
+ v38 >@ <|@
921
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v21 #trueSuccessor: v12 #falseSuccessor: v14 <|@ <|@
922
+ end_IR
923
+ begin_IR
924
+ LIR
925
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
926
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
927
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
928
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
929
+ end_IR
930
+ end_block
931
+ begin_block
932
+ name "B4"
933
+ from_bci -1
934
+ to_bci -1
935
+ predecessors "B3"
936
+ successors
937
+ xhandlers
938
+ flags
939
+ probability 4607182418800017408
940
+ begin_IR
941
+ HIR
942
+ f <@#|@fixed with next>@ <|@
943
+ tid v12 <|@
944
+ d <@d|@=== Debug Properties ===
945
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
946
+ stamp: void
947
+ withSpeculationFence: false
948
+ === Inputs ===
949
+ === Succesors ===
950
+ next: i4
951
+ === Usages ===
952
+ === Predecessor ===
953
+ v15 >@ <|@
954
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i4 <|@ <|@
955
+ tid v11 <|@
956
+ d <@d|@=== Debug Properties ===
957
+ callType: JavaCall
958
+ invokeKind: Special
959
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
960
+ returnStamp: i32
961
+ signature: [Ljdk.vm.ci.meta.JavaType;@10eadbf70
962
+ stamp: void
963
+ targetMethod: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()>
964
+ === Inputs ===
965
+ arguments: a1
966
+ === Succesors ===
967
+ === Usages ===
968
+ i4
969
+ === Predecessor ===
970
+ - >@ <|@
971
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ arguments: a1 <|@ <|@
972
+ tid ?31 <|@
973
+ d <@d|@=== Debug Properties ===
974
+ bci: 1
975
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)>
976
+ duringCall: true
977
+ localsSize: 1
978
+ locksSize: 0
979
+ rethrowException: false
980
+ sourceFile: JavaExamples.java
981
+ sourceLine: 107
982
+ stackSize: 0
983
+ === Inputs ===
984
+ outerFrameState: -
985
+ values: -
986
+ === Succesors ===
987
+ === Usages ===
988
+ i4
989
+ === Predecessor ===
990
+ - >@ <|@
991
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
992
+ f <@#|@fixed with next>@ <|@
993
+ tid i4 <|@
994
+ result v5|DWORD <|@
995
+ d <@d|@=== Debug Properties ===
996
+ bci: 1
997
+ identity: ANY_LOCATION
998
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
999
+ polymorphic: false
1000
+ stamp: i32
1001
+ targetMethod: Direct#JavaExamples$OneImpl.interfaceCall
1002
+ useForInlining: true
1003
+ === Inputs ===
1004
+ stateAfter: -
1005
+ classInit: -
1006
+ callTarget: v11
1007
+ stateDuring: ?31
1008
+ === Succesors ===
1009
+ next: v6
1010
+ === Usages ===
1011
+ v6
1012
+ === Predecessor ===
1013
+ v12 >@ <|@
1014
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v11 stateDuring: ?31 #next: v6 <|@ <|@
1015
+ f <@*|@fixed>@ <|@
1016
+ tid v6 <|@
1017
+ d <@d|@=== Debug Properties ===
1018
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 6]
1019
+ stamp: void
1020
+ === Inputs ===
1021
+ result: i4
1022
+ memoryMap: -
1023
+ === Succesors ===
1024
+ === Usages ===
1025
+ === Predecessor ===
1026
+ i4 >@ <|@
1027
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
1028
+ end_IR
1029
+ begin_IR
1030
+ LIR
1031
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1032
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1033
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1034
+ locals: -
1035
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1036
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1037
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1038
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1039
+ end_IR
1040
+ end_block
1041
+ begin_block
1042
+ name "B5"
1043
+ from_bci -1
1044
+ to_bci -1
1045
+ predecessors "B3"
1046
+ successors
1047
+ xhandlers
1048
+ flags
1049
+ probability 2355382605114769408
1050
+ begin_IR
1051
+ HIR
1052
+ f <@#|@fixed with next>@ <|@
1053
+ tid v14 <|@
1054
+ d <@d|@=== Debug Properties ===
1055
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1056
+ stamp: void
1057
+ withSpeculationFence: false
1058
+ === Inputs ===
1059
+ === Succesors ===
1060
+ next: v13
1061
+ === Usages ===
1062
+ === Predecessor ===
1063
+ v15 >@ <|@
1064
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v13 <|@ <|@
1065
+ tid ?2 <|@
1066
+ d <@d|@=== Debug Properties ===
1067
+ bci: 0
1068
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)>
1069
+ duringCall: false
1070
+ localsSize: 1
1071
+ locksSize: 0
1072
+ rethrowException: false
1073
+ sourceFile: JavaExamples.java
1074
+ sourceLine: 107
1075
+ stackSize: 0
1076
+ === Inputs ===
1077
+ outerFrameState: -
1078
+ values: a1
1079
+ === Succesors ===
1080
+ === Usages ===
1081
+ v13
1082
+ === Predecessor ===
1083
+ - >@ <|@
1084
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a1 <|@ <|@
1085
+ f <@*|@fixed>@ <|@
1086
+ tid v13 <|@
1087
+ d <@d|@=== Debug Properties ===
1088
+ action: InvalidateRecompile
1089
+ debugId: 10
1090
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1091
+ reason: OptimizedTypeCheckViolated
1092
+ speculation: jdk.vm.ci.meta.SpeculationLog$NoSpeculationReason@10b94c448
1093
+ stamp: void
1094
+ === Inputs ===
1095
+ stateBefore: ?2
1096
+ === Succesors ===
1097
+ === Usages ===
1098
+ === Predecessor ===
1099
+ v14 >@ <|@
1100
+ instruction <@Deopt|@org.graalvm.compiler.nodes.DeoptimizeNode>@ stateBefore: ?2 <|@ <|@
1101
+ end_IR
1102
+ begin_IR
1103
+ LIR
1104
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1105
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1106
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1107
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1108
+ locals: v0|QWORD[.]
1109
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1110
+ end_IR
1111
+ end_block
1112
+ end_cfg
1113
+ begin_cfg
1114
+ name "After ConstantLoadOptimization"
1115
+ begin_block
1116
+ name "B0"
1117
+ from_bci -1
1118
+ to_bci -1
1119
+ predecessors
1120
+ successors "B1" "B2"
1121
+ xhandlers
1122
+ flags
1123
+ probability 4607182418800017408
1124
+ begin_IR
1125
+ LIR
1126
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1127
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1128
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1129
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1130
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1131
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1132
+ end_IR
1133
+ end_block
1134
+ begin_block
1135
+ name "B2"
1136
+ from_bci -1
1137
+ to_bci -1
1138
+ predecessors "B0"
1139
+ successors "B3"
1140
+ xhandlers
1141
+ flags
1142
+ probability 4602678819172646912
1143
+ begin_IR
1144
+ LIR
1145
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1146
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1147
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1148
+ nr -1 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1149
+ end_IR
1150
+ end_block
1151
+ begin_block
1152
+ name "B3"
1153
+ from_bci -1
1154
+ to_bci -1
1155
+ predecessors "B1" "B2"
1156
+ successors "B4" "B5"
1157
+ xhandlers
1158
+ flags
1159
+ probability 4607182418800017408
1160
+ begin_IR
1161
+ LIR
1162
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1163
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1164
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1165
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1166
+ end_IR
1167
+ end_block
1168
+ begin_block
1169
+ name "B4"
1170
+ from_bci -1
1171
+ to_bci -1
1172
+ predecessors "B3"
1173
+ successors
1174
+ xhandlers
1175
+ flags
1176
+ probability 4607182418800017408
1177
+ begin_IR
1178
+ LIR
1179
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1180
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1181
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1182
+ locals: -
1183
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1184
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1185
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1186
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1187
+ end_IR
1188
+ end_block
1189
+ begin_block
1190
+ name "B1"
1191
+ from_bci -1
1192
+ to_bci -1
1193
+ predecessors "B0"
1194
+ successors "B3"
1195
+ xhandlers
1196
+ flags
1197
+ probability 4602678819172646912
1198
+ begin_IR
1199
+ LIR
1200
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1201
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1202
+ end_IR
1203
+ end_block
1204
+ begin_block
1205
+ name "B5"
1206
+ from_bci -1
1207
+ to_bci -1
1208
+ predecessors "B3"
1209
+ successors
1210
+ xhandlers
1211
+ flags
1212
+ probability 2355382605114769408
1213
+ begin_IR
1214
+ LIR
1215
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1216
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1217
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1218
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1219
+ locals: v0|QWORD[.]
1220
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1221
+ end_IR
1222
+ end_block
1223
+ end_cfg
1224
+ begin_bytecodes
1225
+ 0: aload_0
1226
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1227
+ 6: ireturn
1228
+ <|@
1229
+ end_bytecodes
1230
+ begin_cfg
1231
+ name "After SaveCalleeSaveRegisters"
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 -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1244
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1245
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1246
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1247
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1248
+ nr -1 <|@ 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 -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1263
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1264
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1265
+ nr -1 <|@ 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 "B4" "B5"
1274
+ xhandlers
1275
+ flags
1276
+ probability 4607182418800017408
1277
+ begin_IR
1278
+ LIR
1279
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1280
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1281
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1282
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1283
+ end_IR
1284
+ end_block
1285
+ begin_block
1286
+ name "B4"
1287
+ from_bci -1
1288
+ to_bci -1
1289
+ predecessors "B3"
1290
+ successors
1291
+ xhandlers
1292
+ flags
1293
+ probability 4607182418800017408
1294
+ begin_IR
1295
+ LIR
1296
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1297
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1298
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1299
+ locals: -
1300
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1301
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1302
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1303
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1304
+ end_IR
1305
+ end_block
1306
+ begin_block
1307
+ name "B1"
1308
+ from_bci -1
1309
+ to_bci -1
1310
+ predecessors "B0"
1311
+ successors "B3"
1312
+ xhandlers
1313
+ flags
1314
+ probability 4602678819172646912
1315
+ begin_IR
1316
+ LIR
1317
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1318
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1319
+ end_IR
1320
+ end_block
1321
+ begin_block
1322
+ name "B5"
1323
+ from_bci -1
1324
+ to_bci -1
1325
+ predecessors "B3"
1326
+ successors
1327
+ xhandlers
1328
+ flags
1329
+ probability 2355382605114769408
1330
+ begin_IR
1331
+ LIR
1332
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1333
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1334
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1335
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1336
+ locals: v0|QWORD[.]
1337
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1338
+ end_IR
1339
+ end_block
1340
+ end_cfg
1341
+ begin_bytecodes
1342
+ 0: aload_0
1343
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1344
+ 6: ireturn
1345
+ <|@
1346
+ end_bytecodes
1347
+ begin_cfg
1348
+ name "After PreAllocationOptimizationStage"
1349
+ begin_block
1350
+ name "B0"
1351
+ from_bci -1
1352
+ to_bci -1
1353
+ predecessors
1354
+ successors "B1" "B2"
1355
+ xhandlers
1356
+ flags
1357
+ probability 4607182418800017408
1358
+ begin_IR
1359
+ LIR
1360
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1361
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1362
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1363
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1364
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1365
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1366
+ end_IR
1367
+ end_block
1368
+ begin_block
1369
+ name "B2"
1370
+ from_bci -1
1371
+ to_bci -1
1372
+ predecessors "B0"
1373
+ successors "B3"
1374
+ xhandlers
1375
+ flags
1376
+ probability 4602678819172646912
1377
+ begin_IR
1378
+ LIR
1379
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1380
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1381
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1382
+ nr -1 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1383
+ end_IR
1384
+ end_block
1385
+ begin_block
1386
+ name "B3"
1387
+ from_bci -1
1388
+ to_bci -1
1389
+ predecessors "B1" "B2"
1390
+ successors "B4" "B5"
1391
+ xhandlers
1392
+ flags
1393
+ probability 4607182418800017408
1394
+ begin_IR
1395
+ LIR
1396
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1397
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1398
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1399
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1400
+ end_IR
1401
+ end_block
1402
+ begin_block
1403
+ name "B4"
1404
+ from_bci -1
1405
+ to_bci -1
1406
+ predecessors "B3"
1407
+ successors
1408
+ xhandlers
1409
+ flags
1410
+ probability 4607182418800017408
1411
+ begin_IR
1412
+ LIR
1413
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1414
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1415
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1416
+ locals: -
1417
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1418
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1419
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1420
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1421
+ end_IR
1422
+ end_block
1423
+ begin_block
1424
+ name "B1"
1425
+ from_bci -1
1426
+ to_bci -1
1427
+ predecessors "B0"
1428
+ successors "B3"
1429
+ xhandlers
1430
+ flags
1431
+ probability 4602678819172646912
1432
+ begin_IR
1433
+ LIR
1434
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1435
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1436
+ end_IR
1437
+ end_block
1438
+ begin_block
1439
+ name "B5"
1440
+ from_bci -1
1441
+ to_bci -1
1442
+ predecessors "B3"
1443
+ successors
1444
+ xhandlers
1445
+ flags
1446
+ probability 2355382605114769408
1447
+ begin_IR
1448
+ LIR
1449
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1450
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1451
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1452
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1453
+ locals: v0|QWORD[.]
1454
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1455
+ end_IR
1456
+ end_block
1457
+ end_cfg
1458
+ begin_bytecodes
1459
+ 0: aload_0
1460
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1461
+ 6: ireturn
1462
+ <|@
1463
+ end_bytecodes
1464
+ begin_cfg
1465
+ name "After MarkBasePointers"
1466
+ begin_block
1467
+ name "B0"
1468
+ from_bci -1
1469
+ to_bci -1
1470
+ predecessors
1471
+ successors "B1" "B2"
1472
+ xhandlers
1473
+ flags
1474
+ probability 4607182418800017408
1475
+ begin_IR
1476
+ LIR
1477
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1478
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1479
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1480
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1481
+ nr -1 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1482
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1483
+ end_IR
1484
+ end_block
1485
+ begin_block
1486
+ name "B2"
1487
+ from_bci -1
1488
+ to_bci -1
1489
+ predecessors "B0"
1490
+ successors "B3"
1491
+ xhandlers
1492
+ flags
1493
+ probability 4602678819172646912
1494
+ begin_IR
1495
+ LIR
1496
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1497
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1498
+ nr -1 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1499
+ nr -1 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1500
+ end_IR
1501
+ end_block
1502
+ begin_block
1503
+ name "B3"
1504
+ from_bci -1
1505
+ to_bci -1
1506
+ predecessors "B1" "B2"
1507
+ successors "B4" "B5"
1508
+ xhandlers
1509
+ flags
1510
+ probability 4607182418800017408
1511
+ begin_IR
1512
+ LIR
1513
+ nr -1 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1514
+ nr -1 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1515
+ nr -1 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1516
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1517
+ end_IR
1518
+ end_block
1519
+ begin_block
1520
+ name "B4"
1521
+ from_bci -1
1522
+ to_bci -1
1523
+ predecessors "B3"
1524
+ successors
1525
+ xhandlers
1526
+ flags
1527
+ probability 4607182418800017408
1528
+ begin_IR
1529
+ LIR
1530
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1531
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1532
+ nr -1 <|@ st <@st|@live-base-pointers: []
1533
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1534
+ locals: -
1535
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1536
+ nr -1 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1537
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1538
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1539
+ end_IR
1540
+ end_block
1541
+ begin_block
1542
+ name "B1"
1543
+ from_bci -1
1544
+ to_bci -1
1545
+ predecessors "B0"
1546
+ successors "B3"
1547
+ xhandlers
1548
+ flags
1549
+ probability 4602678819172646912
1550
+ begin_IR
1551
+ LIR
1552
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1553
+ nr -1 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1554
+ end_IR
1555
+ end_block
1556
+ begin_block
1557
+ name "B5"
1558
+ from_bci -1
1559
+ to_bci -1
1560
+ predecessors "B3"
1561
+ successors
1562
+ xhandlers
1563
+ flags
1564
+ probability 2355382605114769408
1565
+ begin_IR
1566
+ LIR
1567
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1568
+ nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1569
+ nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1570
+ nr -1 <|@ st <@st|@live-base-pointers: []
1571
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1572
+ locals: v0|QWORD[.]
1573
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1574
+ end_IR
1575
+ end_block
1576
+ end_cfg
1577
+ begin_bytecodes
1578
+ 0: aload_0
1579
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1580
+ 6: ireturn
1581
+ <|@
1582
+ end_bytecodes
1583
+ begin_cfg
1584
+ name "Before register allocation"
1585
+ begin_block
1586
+ name "B0"
1587
+ from_bci -1
1588
+ to_bci -1
1589
+ predecessors
1590
+ successors "B1" "B2"
1591
+ xhandlers
1592
+ flags
1593
+ probability 4607182418800017408
1594
+ begin_IR
1595
+ LIR
1596
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1597
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1598
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1599
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1600
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1601
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1602
+ end_IR
1603
+ end_block
1604
+ begin_block
1605
+ name "B2"
1606
+ from_bci -1
1607
+ to_bci -1
1608
+ predecessors "B0"
1609
+ successors "B3"
1610
+ xhandlers
1611
+ flags
1612
+ probability 4602678819172646912
1613
+ begin_IR
1614
+ LIR
1615
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1616
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1617
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1618
+ nr 18 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1619
+ end_IR
1620
+ end_block
1621
+ begin_block
1622
+ name "B3"
1623
+ from_bci -1
1624
+ to_bci -1
1625
+ predecessors "B1" "B2"
1626
+ successors "B4" "B5"
1627
+ xhandlers
1628
+ flags
1629
+ probability 4607182418800017408
1630
+ begin_IR
1631
+ LIR
1632
+ nr 24 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1633
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1634
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1635
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1636
+ end_IR
1637
+ end_block
1638
+ begin_block
1639
+ name "B4"
1640
+ from_bci -1
1641
+ to_bci -1
1642
+ predecessors "B3"
1643
+ successors
1644
+ xhandlers
1645
+ flags
1646
+ probability 4607182418800017408
1647
+ begin_IR
1648
+ LIR
1649
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1650
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1651
+ nr 36 <|@ st <@st|@live-base-pointers: []
1652
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1653
+ locals: -
1654
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1655
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1656
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1657
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1658
+ end_IR
1659
+ end_block
1660
+ begin_block
1661
+ name "B1"
1662
+ from_bci -1
1663
+ to_bci -1
1664
+ predecessors "B0"
1665
+ successors "B3"
1666
+ xhandlers
1667
+ flags
1668
+ probability 4602678819172646912
1669
+ begin_IR
1670
+ LIR
1671
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1672
+ nr 22 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1673
+ end_IR
1674
+ end_block
1675
+ begin_block
1676
+ name "B5"
1677
+ from_bci -1
1678
+ to_bci -1
1679
+ predecessors "B3"
1680
+ successors
1681
+ xhandlers
1682
+ flags
1683
+ probability 2355382605114769408
1684
+ begin_IR
1685
+ LIR
1686
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1687
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1688
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1689
+ nr 50 <|@ st <@st|@live-base-pointers: []
1690
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1691
+ locals: v0|QWORD[.]
1692
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1693
+ end_IR
1694
+ end_block
1695
+ end_cfg
1696
+ begin_bytecodes
1697
+ 0: aload_0
1698
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1699
+ 6: ireturn
1700
+ <|@
1701
+ end_bytecodes
1702
+ begin_cfg
1703
+ name "After SSALinearScanLifetimeAnalysis"
1704
+ begin_block
1705
+ name "B0"
1706
+ from_bci -1
1707
+ to_bci -1
1708
+ predecessors
1709
+ successors "B1" "B2"
1710
+ xhandlers
1711
+ flags
1712
+ probability 4607182418800017408
1713
+ begin_IR
1714
+ LIR
1715
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1716
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1717
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1718
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1719
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1720
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1721
+ end_IR
1722
+ end_block
1723
+ begin_block
1724
+ name "B2"
1725
+ from_bci -1
1726
+ to_bci -1
1727
+ predecessors "B0"
1728
+ successors "B3"
1729
+ xhandlers
1730
+ flags
1731
+ probability 4602678819172646912
1732
+ begin_IR
1733
+ LIR
1734
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1735
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1736
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1737
+ nr 18 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1738
+ end_IR
1739
+ end_block
1740
+ begin_block
1741
+ name "B3"
1742
+ from_bci -1
1743
+ to_bci -1
1744
+ predecessors "B1" "B2"
1745
+ successors "B4" "B5"
1746
+ xhandlers
1747
+ flags
1748
+ probability 4607182418800017408
1749
+ begin_IR
1750
+ LIR
1751
+ nr 24 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1752
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1753
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1754
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1755
+ end_IR
1756
+ end_block
1757
+ begin_block
1758
+ name "B4"
1759
+ from_bci -1
1760
+ to_bci -1
1761
+ predecessors "B3"
1762
+ successors
1763
+ xhandlers
1764
+ flags
1765
+ probability 4607182418800017408
1766
+ begin_IR
1767
+ LIR
1768
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1769
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1770
+ nr 36 <|@ st <@st|@live-base-pointers: []
1771
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1772
+ locals: -
1773
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1774
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1775
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1776
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1777
+ end_IR
1778
+ end_block
1779
+ begin_block
1780
+ name "B1"
1781
+ from_bci -1
1782
+ to_bci -1
1783
+ predecessors "B0"
1784
+ successors "B3"
1785
+ xhandlers
1786
+ flags
1787
+ probability 4602678819172646912
1788
+ begin_IR
1789
+ LIR
1790
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1791
+ nr 22 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1792
+ end_IR
1793
+ end_block
1794
+ begin_block
1795
+ name "B5"
1796
+ from_bci -1
1797
+ to_bci -1
1798
+ predecessors "B3"
1799
+ successors
1800
+ xhandlers
1801
+ flags
1802
+ probability 2355382605114769408
1803
+ begin_IR
1804
+ LIR
1805
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1806
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
1807
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
1808
+ nr 50 <|@ st <@st|@live-base-pointers: []
1809
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
1810
+ locals: v0|QWORD[.]
1811
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
1812
+ end_IR
1813
+ end_block
1814
+ end_cfg
1815
+ begin_bytecodes
1816
+ 0: aload_0
1817
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
1818
+ 6: ireturn
1819
+ <|@
1820
+ end_bytecodes
1821
+ begin_intervals
1822
+ name "Before register allocation"
1823
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[36, 38[[40, 42[ "NoOptimization"
1824
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1825
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1826
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1827
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[36, 37[ "NoSpillStore"
1828
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[34, 37[ "NoOptimization"
1829
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1830
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1831
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1832
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1833
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1834
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1835
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1836
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1837
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1838
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1839
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1840
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1841
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1842
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1843
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1844
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1845
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1846
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1847
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1848
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1849
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1850
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1851
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1852
+ v0|q QWORD "[v0|q]" v0|q rsi|- [6, 34[[44, 51[6 MustHaveRegister 8 MustHaveRegister 14 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1853
+ v1|d DWORD "[v1|d]" v1|d -1 [14, 16[14 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1854
+ v2|q QWORD "[v2|q]" v2|q v1|d [16, 19[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
1855
+ v3|q QWORD "[v3|q]" v3|q v2|q [24, 28[28 ShouldHaveRegister "NoSpillStore"
1856
+ v4|q QWORD "[v4|q]" v4|q -1 [26, 28[26 MustHaveRegister 28 MustHaveRegister "NoSpillStore"
1857
+ v5|d DWORD "[v5|d]" v5|d rax|d [38, 40[38 MustHaveRegister 40 ShouldHaveRegister "NoSpillStore"
1858
+ end_intervals
1859
+ begin_intervals
1860
+ name "After register allocation"
1861
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[36, 38[[40, 42[ "NoOptimization"
1862
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1863
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1864
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1865
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[36, 37[ "NoSpillStore"
1866
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[34, 37[ "NoOptimization"
1867
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1868
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1869
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1870
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1871
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1872
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1873
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1874
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1875
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1876
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1877
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1878
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1879
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1880
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1881
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1882
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1883
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1884
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1885
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1886
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1887
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1888
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1889
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
1890
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 34[[44, 51[6 MustHaveRegister 8 MustHaveRegister 14 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1891
+ v1|d DWORD "[r10|d]" v1|d -1 [14, 16[14 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
1892
+ v2|q QWORD "[r10|q]" v2|q v1|d [16, 19[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
1893
+ v3|q QWORD "[r10|q]" v3|q v2|q [24, 28[28 ShouldHaveRegister "NoSpillStore"
1894
+ v4|q QWORD "[r11|q]" v4|q -1 [26, 28[26 MustHaveRegister 28 MustHaveRegister "NoSpillStore"
1895
+ v5|d DWORD "[rax|d]" v5|d rax|d [38, 40[38 MustHaveRegister 40 ShouldHaveRegister "NoSpillStore"
1896
+ end_intervals
1897
+ begin_cfg
1898
+ name "After LinearScanRegisterAllocation"
1899
+ begin_block
1900
+ name "B0"
1901
+ from_bci -1
1902
+ to_bci -1
1903
+ predecessors
1904
+ successors "B1" "B2"
1905
+ xhandlers
1906
+ flags
1907
+ probability 4607182418800017408
1908
+ begin_IR
1909
+ LIR
1910
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1911
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1912
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
1913
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
1914
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
1915
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1916
+ end_IR
1917
+ end_block
1918
+ begin_block
1919
+ name "B2"
1920
+ from_bci -1
1921
+ to_bci -1
1922
+ predecessors "B0"
1923
+ successors "B3"
1924
+ xhandlers
1925
+ flags
1926
+ probability 4602678819172646912
1927
+ begin_IR
1928
+ LIR
1929
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1930
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1931
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
1932
+ nr 18 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
1933
+ end_IR
1934
+ end_block
1935
+ begin_block
1936
+ name "B3"
1937
+ from_bci -1
1938
+ to_bci -1
1939
+ predecessors "B1" "B2"
1940
+ successors "B4" "B5"
1941
+ xhandlers
1942
+ flags
1943
+ probability 4607182418800017408
1944
+ begin_IR
1945
+ LIR
1946
+ nr 24 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1947
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
1948
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
1949
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1950
+ end_IR
1951
+ end_block
1952
+ begin_block
1953
+ name "B4"
1954
+ from_bci -1
1955
+ to_bci -1
1956
+ predecessors "B3"
1957
+ successors
1958
+ xhandlers
1959
+ flags
1960
+ probability 4607182418800017408
1961
+ begin_IR
1962
+ LIR
1963
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1964
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1965
+ nr 36 <|@ st <@st|@live-base-pointers: []
1966
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
1967
+ locals: -
1968
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1969
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1970
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1971
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1972
+ end_IR
1973
+ end_block
1974
+ begin_block
1975
+ name "B1"
1976
+ from_bci -1
1977
+ to_bci -1
1978
+ predecessors "B0"
1979
+ successors "B3"
1980
+ xhandlers
1981
+ flags
1982
+ probability 4602678819172646912
1983
+ begin_IR
1984
+ LIR
1985
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1986
+ nr 22 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
1987
+ end_IR
1988
+ end_block
1989
+ begin_block
1990
+ name "B5"
1991
+ from_bci -1
1992
+ to_bci -1
1993
+ predecessors "B3"
1994
+ successors
1995
+ xhandlers
1996
+ flags
1997
+ probability 2355382605114769408
1998
+ begin_IR
1999
+ LIR
2000
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2001
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2002
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2003
+ nr 50 <|@ st <@st|@live-base-pointers: []
2004
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2005
+ locals: v0|QWORD[.]
2006
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2007
+ end_IR
2008
+ end_block
2009
+ end_cfg
2010
+ begin_bytecodes
2011
+ 0: aload_0
2012
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2013
+ 6: ireturn
2014
+ <|@
2015
+ end_bytecodes
2016
+ begin_intervals
2017
+ name "After optimize spill position"
2018
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[36, 38[[40, 42[ "NoOptimization"
2019
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2020
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2021
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2022
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[36, 37[ "NoSpillStore"
2023
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[34, 37[ "NoOptimization"
2024
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2025
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2026
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2027
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2028
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2029
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2030
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2031
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2032
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2033
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2034
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2035
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2036
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2037
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2038
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2039
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2040
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2041
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2042
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2043
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2044
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2045
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2046
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2047
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 34[[44, 51[6 MustHaveRegister 8 MustHaveRegister 14 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
2048
+ v1|d DWORD "[r10|d]" v1|d -1 [14, 16[14 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
2049
+ v2|q QWORD "[r10|q]" v2|q v1|d [16, 19[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
2050
+ v3|q QWORD "[r10|q]" v3|q v2|q [24, 28[28 ShouldHaveRegister "NoSpillStore"
2051
+ v4|q QWORD "[r11|q]" v4|q -1 [26, 28[26 MustHaveRegister 28 MustHaveRegister "NoSpillStore"
2052
+ v5|d DWORD "[rax|d]" v5|d rax|d [38, 40[38 MustHaveRegister 40 ShouldHaveRegister "NoSpillStore"
2053
+ end_intervals
2054
+ begin_cfg
2055
+ name "After LinearScanOptimizeSpillPosition"
2056
+ begin_block
2057
+ name "B0"
2058
+ from_bci -1
2059
+ to_bci -1
2060
+ predecessors
2061
+ successors "B1" "B2"
2062
+ xhandlers
2063
+ flags
2064
+ probability 4607182418800017408
2065
+ begin_IR
2066
+ LIR
2067
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2068
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2069
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2070
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
2071
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
2072
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2073
+ end_IR
2074
+ end_block
2075
+ begin_block
2076
+ name "B2"
2077
+ from_bci -1
2078
+ to_bci -1
2079
+ predecessors "B0"
2080
+ successors "B3"
2081
+ xhandlers
2082
+ flags
2083
+ probability 4602678819172646912
2084
+ begin_IR
2085
+ LIR
2086
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2087
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2088
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2089
+ nr 18 <|@ instruction JUMP ~[v2|QWORD] destination: B2 -> B3 <|@ <|@
2090
+ end_IR
2091
+ end_block
2092
+ begin_block
2093
+ name "B3"
2094
+ from_bci -1
2095
+ to_bci -1
2096
+ predecessors "B1" "B2"
2097
+ successors "B4" "B5"
2098
+ xhandlers
2099
+ flags
2100
+ probability 4607182418800017408
2101
+ begin_IR
2102
+ LIR
2103
+ nr 24 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2104
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2105
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
2106
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2107
+ end_IR
2108
+ end_block
2109
+ begin_block
2110
+ name "B4"
2111
+ from_bci -1
2112
+ to_bci -1
2113
+ predecessors "B3"
2114
+ successors
2115
+ xhandlers
2116
+ flags
2117
+ probability 4607182418800017408
2118
+ begin_IR
2119
+ LIR
2120
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2121
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2122
+ nr 36 <|@ st <@st|@live-base-pointers: []
2123
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2124
+ locals: -
2125
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2126
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
2127
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
2128
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2129
+ end_IR
2130
+ end_block
2131
+ begin_block
2132
+ name "B1"
2133
+ from_bci -1
2134
+ to_bci -1
2135
+ predecessors "B0"
2136
+ successors "B3"
2137
+ xhandlers
2138
+ flags
2139
+ probability 4602678819172646912
2140
+ begin_IR
2141
+ LIR
2142
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2143
+ nr 22 <|@ instruction JUMP ~[Object[null]] destination: B1 -> B3 <|@ <|@
2144
+ end_IR
2145
+ end_block
2146
+ begin_block
2147
+ name "B5"
2148
+ from_bci -1
2149
+ to_bci -1
2150
+ predecessors "B3"
2151
+ successors
2152
+ xhandlers
2153
+ flags
2154
+ probability 2355382605114769408
2155
+ begin_IR
2156
+ LIR
2157
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2158
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2159
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2160
+ nr 50 <|@ st <@st|@live-base-pointers: []
2161
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2162
+ locals: v0|QWORD[.]
2163
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2164
+ end_IR
2165
+ end_block
2166
+ end_cfg
2167
+ begin_bytecodes
2168
+ 0: aload_0
2169
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2170
+ 6: ireturn
2171
+ <|@
2172
+ end_bytecodes
2173
+ begin_intervals
2174
+ name "After resolve data flow"
2175
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[36, 38[[40, 42[ "NoOptimization"
2176
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2177
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2178
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2179
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[36, 37[ "NoSpillStore"
2180
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[34, 37[ "NoOptimization"
2181
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2182
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2183
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2184
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2185
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2186
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2187
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2188
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2189
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2190
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2191
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2192
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2193
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2194
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2195
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2196
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2197
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2198
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2199
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2200
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2201
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2202
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2203
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[36, 37[ "NoDefinitionFound"
2204
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 34[[44, 51[6 MustHaveRegister 8 MustHaveRegister 14 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
2205
+ v1|d DWORD "[r10|d]" v1|d -1 [14, 16[14 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
2206
+ v2|q QWORD "[r10|q]" v2|q v1|d [16, 19[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
2207
+ v3|q QWORD "[r10|q]" v3|q v2|q [24, 28[28 ShouldHaveRegister "NoSpillStore"
2208
+ v4|q QWORD "[r11|q]" v4|q -1 [26, 28[26 MustHaveRegister 28 MustHaveRegister "NoSpillStore"
2209
+ v5|d DWORD "[rax|d]" v5|d rax|d [38, 40[38 MustHaveRegister 40 ShouldHaveRegister "NoSpillStore"
2210
+ end_intervals
2211
+ begin_cfg
2212
+ name "After SSALinearScanResolveDataFlow"
2213
+ begin_block
2214
+ name "B0"
2215
+ from_bci -1
2216
+ to_bci -1
2217
+ predecessors
2218
+ successors "B1" "B2"
2219
+ xhandlers
2220
+ flags
2221
+ probability 4607182418800017408
2222
+ begin_IR
2223
+ LIR
2224
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2225
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2226
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2227
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
2228
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
2229
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2230
+ end_IR
2231
+ end_block
2232
+ begin_block
2233
+ name "B2"
2234
+ from_bci -1
2235
+ to_bci -1
2236
+ predecessors "B0"
2237
+ successors "B3"
2238
+ xhandlers
2239
+ flags
2240
+ probability 4602678819172646912
2241
+ begin_IR
2242
+ LIR
2243
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2244
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2245
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2246
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2247
+ end_IR
2248
+ end_block
2249
+ begin_block
2250
+ name "B3"
2251
+ from_bci -1
2252
+ to_bci -1
2253
+ predecessors "B1" "B2"
2254
+ successors "B4" "B5"
2255
+ xhandlers
2256
+ flags
2257
+ probability 4607182418800017408
2258
+ begin_IR
2259
+ LIR
2260
+ nr 24 <|@ instruction [v3|QWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2261
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2262
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
2263
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2264
+ end_IR
2265
+ end_block
2266
+ begin_block
2267
+ name "B4"
2268
+ from_bci -1
2269
+ to_bci -1
2270
+ predecessors "B3"
2271
+ successors
2272
+ xhandlers
2273
+ flags
2274
+ probability 4607182418800017408
2275
+ begin_IR
2276
+ LIR
2277
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2278
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2279
+ nr 36 <|@ st <@st|@live-base-pointers: []
2280
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2281
+ locals: -
2282
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2283
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
2284
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
2285
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2286
+ end_IR
2287
+ end_block
2288
+ begin_block
2289
+ name "B1"
2290
+ from_bci -1
2291
+ to_bci -1
2292
+ predecessors "B0"
2293
+ successors "B3"
2294
+ xhandlers
2295
+ flags
2296
+ probability 4602678819172646912
2297
+ begin_IR
2298
+ LIR
2299
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2300
+ nr -1 <|@ instruction v3|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2301
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2302
+ end_IR
2303
+ end_block
2304
+ begin_block
2305
+ name "B5"
2306
+ from_bci -1
2307
+ to_bci -1
2308
+ predecessors "B3"
2309
+ successors
2310
+ xhandlers
2311
+ flags
2312
+ probability 2355382605114769408
2313
+ begin_IR
2314
+ LIR
2315
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2316
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2317
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2318
+ nr 50 <|@ st <@st|@live-base-pointers: []
2319
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2320
+ locals: v0|QWORD[.]
2321
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2322
+ end_IR
2323
+ end_block
2324
+ end_cfg
2325
+ begin_bytecodes
2326
+ 0: aload_0
2327
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2328
+ 6: ireturn
2329
+ <|@
2330
+ end_bytecodes
2331
+ begin_cfg
2332
+ name "After SSALinearScanEliminateSpillMove"
2333
+ begin_block
2334
+ name "B0"
2335
+ from_bci -1
2336
+ to_bci -1
2337
+ predecessors
2338
+ successors "B1" "B2"
2339
+ xhandlers
2340
+ flags
2341
+ probability 4607182418800017408
2342
+ begin_IR
2343
+ LIR
2344
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2345
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2346
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2347
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
2348
+ nr 8 <|@ instruction TEST (x: v0|QWORD[.], y: v0|QWORD[.]) size: QWORD <|@ <|@
2349
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2350
+ end_IR
2351
+ end_block
2352
+ begin_block
2353
+ name "B2"
2354
+ from_bci -1
2355
+ to_bci -1
2356
+ predecessors "B0"
2357
+ successors "B3"
2358
+ xhandlers
2359
+ flags
2360
+ probability 4602678819172646912
2361
+ begin_IR
2362
+ LIR
2363
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2364
+ nr 14 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2365
+ nr 16 <|@ instruction v2|QWORD = UNCOMPRESSPOINTER (input: v1|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2366
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2367
+ end_IR
2368
+ end_block
2369
+ begin_block
2370
+ name "B3"
2371
+ from_bci -1
2372
+ to_bci -1
2373
+ predecessors "B1" "B2"
2374
+ successors "B4" "B5"
2375
+ xhandlers
2376
+ flags
2377
+ probability 4607182418800017408
2378
+ begin_IR
2379
+ LIR
2380
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2381
+ nr 26 <|@ instruction v4|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2382
+ nr 28 <|@ instruction CMP (x: v4|QWORD, y: v3|QWORD) size: QWORD <|@ <|@
2383
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2384
+ end_IR
2385
+ end_block
2386
+ begin_block
2387
+ name "B4"
2388
+ from_bci -1
2389
+ to_bci -1
2390
+ predecessors "B3"
2391
+ successors
2392
+ xhandlers
2393
+ flags
2394
+ probability 4607182418800017408
2395
+ begin_IR
2396
+ LIR
2397
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2398
+ nr 34 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2399
+ nr 36 <|@ st <@st|@live-base-pointers: []
2400
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2401
+ locals: -
2402
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2403
+ nr 38 <|@ instruction v5|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
2404
+ nr 40 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
2405
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2406
+ end_IR
2407
+ end_block
2408
+ begin_block
2409
+ name "B1"
2410
+ from_bci -1
2411
+ to_bci -1
2412
+ predecessors "B0"
2413
+ successors "B3"
2414
+ xhandlers
2415
+ flags
2416
+ probability 4602678819172646912
2417
+ begin_IR
2418
+ LIR
2419
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2420
+ nr -1 <|@ instruction v3|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2421
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2422
+ end_IR
2423
+ end_block
2424
+ begin_block
2425
+ name "B5"
2426
+ from_bci -1
2427
+ to_bci -1
2428
+ predecessors "B3"
2429
+ successors
2430
+ xhandlers
2431
+ flags
2432
+ probability 2355382605114769408
2433
+ begin_IR
2434
+ LIR
2435
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2436
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2437
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2438
+ nr 50 <|@ st <@st|@live-base-pointers: []
2439
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2440
+ locals: v0|QWORD[.]
2441
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2442
+ end_IR
2443
+ end_block
2444
+ end_cfg
2445
+ begin_bytecodes
2446
+ 0: aload_0
2447
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2448
+ 6: ireturn
2449
+ <|@
2450
+ end_bytecodes
2451
+ begin_cfg
2452
+ name "After LinearScanAssignLocations"
2453
+ begin_block
2454
+ name "B0"
2455
+ from_bci -1
2456
+ to_bci -1
2457
+ predecessors
2458
+ successors "B1" "B2"
2459
+ xhandlers
2460
+ flags
2461
+ probability 4607182418800017408
2462
+ begin_IR
2463
+ LIR
2464
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2465
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2466
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2467
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
2468
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2469
+ end_IR
2470
+ end_block
2471
+ begin_block
2472
+ name "B2"
2473
+ from_bci -1
2474
+ to_bci -1
2475
+ predecessors "B0"
2476
+ successors "B3"
2477
+ xhandlers
2478
+ flags
2479
+ probability 4602678819172646912
2480
+ begin_IR
2481
+ LIR
2482
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2483
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
2484
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2485
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2486
+ end_IR
2487
+ end_block
2488
+ begin_block
2489
+ name "B3"
2490
+ from_bci -1
2491
+ to_bci -1
2492
+ predecessors "B1" "B2"
2493
+ successors "B4" "B5"
2494
+ xhandlers
2495
+ flags
2496
+ probability 4607182418800017408
2497
+ begin_IR
2498
+ LIR
2499
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2500
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2501
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
2502
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2503
+ end_IR
2504
+ end_block
2505
+ begin_block
2506
+ name "B4"
2507
+ from_bci -1
2508
+ to_bci -1
2509
+ predecessors "B3"
2510
+ successors
2511
+ xhandlers
2512
+ flags
2513
+ probability 4607182418800017408
2514
+ begin_IR
2515
+ LIR
2516
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2517
+ nr 36 <|@ st <@st|@live-base-pointers: []
2518
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2519
+ locals: -
2520
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2521
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2522
+ end_IR
2523
+ end_block
2524
+ begin_block
2525
+ name "B1"
2526
+ from_bci -1
2527
+ to_bci -1
2528
+ predecessors "B0"
2529
+ successors "B3"
2530
+ xhandlers
2531
+ flags
2532
+ probability 4602678819172646912
2533
+ begin_IR
2534
+ LIR
2535
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2536
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2537
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2538
+ end_IR
2539
+ end_block
2540
+ begin_block
2541
+ name "B5"
2542
+ from_bci -1
2543
+ to_bci -1
2544
+ predecessors "B3"
2545
+ successors
2546
+ xhandlers
2547
+ flags
2548
+ probability 2355382605114769408
2549
+ begin_IR
2550
+ LIR
2551
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2552
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2553
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2554
+ nr 50 <|@ st <@st|@live-base-pointers: []
2555
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2556
+ locals: rsi|QWORD[.]
2557
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2558
+ end_IR
2559
+ end_block
2560
+ end_cfg
2561
+ begin_bytecodes
2562
+ 0: aload_0
2563
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2564
+ 6: ireturn
2565
+ <|@
2566
+ end_bytecodes
2567
+ begin_cfg
2568
+ name "After LinearScan"
2569
+ begin_block
2570
+ name "B0"
2571
+ from_bci -1
2572
+ to_bci -1
2573
+ predecessors
2574
+ successors "B1" "B2"
2575
+ xhandlers
2576
+ flags
2577
+ probability 4607182418800017408
2578
+ begin_IR
2579
+ LIR
2580
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2581
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2582
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2583
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
2584
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2585
+ end_IR
2586
+ end_block
2587
+ begin_block
2588
+ name "B2"
2589
+ from_bci -1
2590
+ to_bci -1
2591
+ predecessors "B0"
2592
+ successors "B3"
2593
+ xhandlers
2594
+ flags
2595
+ probability 4602678819172646912
2596
+ begin_IR
2597
+ LIR
2598
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2599
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
2600
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2601
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2602
+ end_IR
2603
+ end_block
2604
+ begin_block
2605
+ name "B3"
2606
+ from_bci -1
2607
+ to_bci -1
2608
+ predecessors "B1" "B2"
2609
+ successors "B4" "B5"
2610
+ xhandlers
2611
+ flags
2612
+ probability 4607182418800017408
2613
+ begin_IR
2614
+ LIR
2615
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2616
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2617
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
2618
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2619
+ end_IR
2620
+ end_block
2621
+ begin_block
2622
+ name "B4"
2623
+ from_bci -1
2624
+ to_bci -1
2625
+ predecessors "B3"
2626
+ successors
2627
+ xhandlers
2628
+ flags
2629
+ probability 4607182418800017408
2630
+ begin_IR
2631
+ LIR
2632
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2633
+ nr 36 <|@ st <@st|@live-base-pointers: []
2634
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2635
+ locals: -
2636
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2637
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2638
+ end_IR
2639
+ end_block
2640
+ begin_block
2641
+ name "B1"
2642
+ from_bci -1
2643
+ to_bci -1
2644
+ predecessors "B0"
2645
+ successors "B3"
2646
+ xhandlers
2647
+ flags
2648
+ probability 4602678819172646912
2649
+ begin_IR
2650
+ LIR
2651
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2652
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2653
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2654
+ end_IR
2655
+ end_block
2656
+ begin_block
2657
+ name "B5"
2658
+ from_bci -1
2659
+ to_bci -1
2660
+ predecessors "B3"
2661
+ successors
2662
+ xhandlers
2663
+ flags
2664
+ probability 2355382605114769408
2665
+ begin_IR
2666
+ LIR
2667
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2668
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2669
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2670
+ nr 50 <|@ st <@st|@live-base-pointers: []
2671
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2672
+ locals: rsi|QWORD[.]
2673
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2674
+ end_IR
2675
+ end_block
2676
+ end_cfg
2677
+ begin_bytecodes
2678
+ 0: aload_0
2679
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2680
+ 6: ireturn
2681
+ <|@
2682
+ end_bytecodes
2683
+ begin_cfg
2684
+ name "After LSStackSlotAllocator"
2685
+ begin_block
2686
+ name "B0"
2687
+ from_bci -1
2688
+ to_bci -1
2689
+ predecessors
2690
+ successors "B1" "B2"
2691
+ xhandlers
2692
+ flags
2693
+ probability 4607182418800017408
2694
+ begin_IR
2695
+ LIR
2696
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2697
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2698
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2699
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
2700
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2701
+ end_IR
2702
+ end_block
2703
+ begin_block
2704
+ name "B2"
2705
+ from_bci -1
2706
+ to_bci -1
2707
+ predecessors "B0"
2708
+ successors "B3"
2709
+ xhandlers
2710
+ flags
2711
+ probability 4602678819172646912
2712
+ begin_IR
2713
+ LIR
2714
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2715
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
2716
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2717
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2718
+ end_IR
2719
+ end_block
2720
+ begin_block
2721
+ name "B3"
2722
+ from_bci -1
2723
+ to_bci -1
2724
+ predecessors "B1" "B2"
2725
+ successors "B4" "B5"
2726
+ xhandlers
2727
+ flags
2728
+ probability 4607182418800017408
2729
+ begin_IR
2730
+ LIR
2731
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2732
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2733
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
2734
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2735
+ end_IR
2736
+ end_block
2737
+ begin_block
2738
+ name "B4"
2739
+ from_bci -1
2740
+ to_bci -1
2741
+ predecessors "B3"
2742
+ successors
2743
+ xhandlers
2744
+ flags
2745
+ probability 4607182418800017408
2746
+ begin_IR
2747
+ LIR
2748
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2749
+ nr 36 <|@ st <@st|@live-base-pointers: []
2750
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2751
+ locals: -
2752
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2753
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2754
+ end_IR
2755
+ end_block
2756
+ begin_block
2757
+ name "B1"
2758
+ from_bci -1
2759
+ to_bci -1
2760
+ predecessors "B0"
2761
+ successors "B3"
2762
+ xhandlers
2763
+ flags
2764
+ probability 4602678819172646912
2765
+ begin_IR
2766
+ LIR
2767
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2768
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2769
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2770
+ end_IR
2771
+ end_block
2772
+ begin_block
2773
+ name "B5"
2774
+ from_bci -1
2775
+ to_bci -1
2776
+ predecessors "B3"
2777
+ successors
2778
+ xhandlers
2779
+ flags
2780
+ probability 2355382605114769408
2781
+ begin_IR
2782
+ LIR
2783
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2784
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2785
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2786
+ nr 50 <|@ st <@st|@live-base-pointers: []
2787
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2788
+ locals: rsi|QWORD[.]
2789
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2790
+ end_IR
2791
+ end_block
2792
+ end_cfg
2793
+ begin_bytecodes
2794
+ 0: aload_0
2795
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2796
+ 6: ireturn
2797
+ <|@
2798
+ end_bytecodes
2799
+ begin_cfg
2800
+ name "After LocationMarker"
2801
+ begin_block
2802
+ name "B0"
2803
+ from_bci -1
2804
+ to_bci -1
2805
+ predecessors
2806
+ successors "B1" "B2"
2807
+ xhandlers
2808
+ flags
2809
+ probability 4607182418800017408
2810
+ begin_IR
2811
+ LIR
2812
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2813
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2814
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2815
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
2816
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2817
+ end_IR
2818
+ end_block
2819
+ begin_block
2820
+ name "B2"
2821
+ from_bci -1
2822
+ to_bci -1
2823
+ predecessors "B0"
2824
+ successors "B3"
2825
+ xhandlers
2826
+ flags
2827
+ probability 4602678819172646912
2828
+ begin_IR
2829
+ LIR
2830
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2831
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
2832
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2833
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2834
+ end_IR
2835
+ end_block
2836
+ begin_block
2837
+ name "B3"
2838
+ from_bci -1
2839
+ to_bci -1
2840
+ predecessors "B1" "B2"
2841
+ successors "B4" "B5"
2842
+ xhandlers
2843
+ flags
2844
+ probability 4607182418800017408
2845
+ begin_IR
2846
+ LIR
2847
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2848
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2849
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
2850
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2851
+ end_IR
2852
+ end_block
2853
+ begin_block
2854
+ name "B4"
2855
+ from_bci -1
2856
+ to_bci -1
2857
+ predecessors "B3"
2858
+ successors
2859
+ xhandlers
2860
+ flags
2861
+ probability 4607182418800017408
2862
+ begin_IR
2863
+ LIR
2864
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2865
+ nr 36 <|@ st <@st|@reference-map: []
2866
+ live-base-pointers: []
2867
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2868
+ locals: -
2869
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2870
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2871
+ end_IR
2872
+ end_block
2873
+ begin_block
2874
+ name "B1"
2875
+ from_bci -1
2876
+ to_bci -1
2877
+ predecessors "B0"
2878
+ successors "B3"
2879
+ xhandlers
2880
+ flags
2881
+ probability 4602678819172646912
2882
+ begin_IR
2883
+ LIR
2884
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2885
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
2886
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2887
+ end_IR
2888
+ end_block
2889
+ begin_block
2890
+ name "B5"
2891
+ from_bci -1
2892
+ to_bci -1
2893
+ predecessors "B3"
2894
+ successors
2895
+ xhandlers
2896
+ flags
2897
+ probability 2355382605114769408
2898
+ begin_IR
2899
+ LIR
2900
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2901
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
2902
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
2903
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
2904
+ live-base-pointers: []
2905
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
2906
+ locals: rsi|QWORD[.]
2907
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
2908
+ end_IR
2909
+ end_block
2910
+ end_cfg
2911
+ begin_bytecodes
2912
+ 0: aload_0
2913
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
2914
+ 6: ireturn
2915
+ <|@
2916
+ end_bytecodes
2917
+ begin_cfg
2918
+ name "After AllocationStage"
2919
+ begin_block
2920
+ name "B0"
2921
+ from_bci -1
2922
+ to_bci -1
2923
+ predecessors
2924
+ successors "B1" "B2"
2925
+ xhandlers
2926
+ flags
2927
+ probability 4607182418800017408
2928
+ begin_IR
2929
+ LIR
2930
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2931
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2932
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
2933
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
2934
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2935
+ end_IR
2936
+ end_block
2937
+ begin_block
2938
+ name "B2"
2939
+ from_bci -1
2940
+ to_bci -1
2941
+ predecessors "B0"
2942
+ successors "B3"
2943
+ xhandlers
2944
+ flags
2945
+ probability 4602678819172646912
2946
+ begin_IR
2947
+ LIR
2948
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2949
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
2950
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
2951
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2952
+ end_IR
2953
+ end_block
2954
+ begin_block
2955
+ name "B3"
2956
+ from_bci -1
2957
+ to_bci -1
2958
+ predecessors "B1" "B2"
2959
+ successors "B4" "B5"
2960
+ xhandlers
2961
+ flags
2962
+ probability 4607182418800017408
2963
+ begin_IR
2964
+ LIR
2965
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2966
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
2967
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
2968
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2969
+ end_IR
2970
+ end_block
2971
+ begin_block
2972
+ name "B4"
2973
+ from_bci -1
2974
+ to_bci -1
2975
+ predecessors "B3"
2976
+ successors
2977
+ xhandlers
2978
+ flags
2979
+ probability 4607182418800017408
2980
+ begin_IR
2981
+ LIR
2982
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2983
+ nr 36 <|@ st <@st|@reference-map: []
2984
+ live-base-pointers: []
2985
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
2986
+ locals: -
2987
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
2988
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
2989
+ end_IR
2990
+ end_block
2991
+ begin_block
2992
+ name "B1"
2993
+ from_bci -1
2994
+ to_bci -1
2995
+ predecessors "B0"
2996
+ successors "B3"
2997
+ xhandlers
2998
+ flags
2999
+ probability 4602678819172646912
3000
+ begin_IR
3001
+ LIR
3002
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3003
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3004
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3005
+ end_IR
3006
+ end_block
3007
+ begin_block
3008
+ name "B5"
3009
+ from_bci -1
3010
+ to_bci -1
3011
+ predecessors "B3"
3012
+ successors
3013
+ xhandlers
3014
+ flags
3015
+ probability 2355382605114769408
3016
+ begin_IR
3017
+ LIR
3018
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3019
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3020
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3021
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3022
+ live-base-pointers: []
3023
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3024
+ locals: rsi|QWORD[.]
3025
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3026
+ end_IR
3027
+ end_block
3028
+ end_cfg
3029
+ begin_bytecodes
3030
+ 0: aload_0
3031
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3032
+ 6: ireturn
3033
+ <|@
3034
+ end_bytecodes
3035
+ begin_cfg
3036
+ name "After EdgeMoveOptimizer"
3037
+ begin_block
3038
+ name "B0"
3039
+ from_bci -1
3040
+ to_bci -1
3041
+ predecessors
3042
+ successors "B1" "B2"
3043
+ xhandlers
3044
+ flags
3045
+ probability 4607182418800017408
3046
+ begin_IR
3047
+ LIR
3048
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3049
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3050
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3051
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3052
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3053
+ end_IR
3054
+ end_block
3055
+ begin_block
3056
+ name "B2"
3057
+ from_bci -1
3058
+ to_bci -1
3059
+ predecessors "B0"
3060
+ successors "B3"
3061
+ xhandlers
3062
+ flags
3063
+ probability 4602678819172646912
3064
+ begin_IR
3065
+ LIR
3066
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3067
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3068
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3069
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3070
+ end_IR
3071
+ end_block
3072
+ begin_block
3073
+ name "B3"
3074
+ from_bci -1
3075
+ to_bci -1
3076
+ predecessors "B1" "B2"
3077
+ successors "B4" "B5"
3078
+ xhandlers
3079
+ flags
3080
+ probability 4607182418800017408
3081
+ begin_IR
3082
+ LIR
3083
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3084
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3085
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3086
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3087
+ end_IR
3088
+ end_block
3089
+ begin_block
3090
+ name "B4"
3091
+ from_bci -1
3092
+ to_bci -1
3093
+ predecessors "B3"
3094
+ successors
3095
+ xhandlers
3096
+ flags
3097
+ probability 4607182418800017408
3098
+ begin_IR
3099
+ LIR
3100
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3101
+ nr 36 <|@ st <@st|@reference-map: []
3102
+ live-base-pointers: []
3103
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3104
+ locals: -
3105
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3106
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3107
+ end_IR
3108
+ end_block
3109
+ begin_block
3110
+ name "B1"
3111
+ from_bci -1
3112
+ to_bci -1
3113
+ predecessors "B0"
3114
+ successors "B3"
3115
+ xhandlers
3116
+ flags
3117
+ probability 4602678819172646912
3118
+ begin_IR
3119
+ LIR
3120
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3121
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3122
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3123
+ end_IR
3124
+ end_block
3125
+ begin_block
3126
+ name "B5"
3127
+ from_bci -1
3128
+ to_bci -1
3129
+ predecessors "B3"
3130
+ successors
3131
+ xhandlers
3132
+ flags
3133
+ probability 2355382605114769408
3134
+ begin_IR
3135
+ LIR
3136
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3137
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3138
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3139
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3140
+ live-base-pointers: []
3141
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3142
+ locals: rsi|QWORD[.]
3143
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3144
+ end_IR
3145
+ end_block
3146
+ end_cfg
3147
+ begin_bytecodes
3148
+ 0: aload_0
3149
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3150
+ 6: ireturn
3151
+ <|@
3152
+ end_bytecodes
3153
+ begin_cfg
3154
+ name "After ControlFlowOptimizer"
3155
+ begin_block
3156
+ name "B0"
3157
+ from_bci -1
3158
+ to_bci -1
3159
+ predecessors
3160
+ successors "B1" "B2"
3161
+ xhandlers
3162
+ flags
3163
+ probability 4607182418800017408
3164
+ begin_IR
3165
+ LIR
3166
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3167
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3168
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3169
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3170
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3171
+ end_IR
3172
+ end_block
3173
+ begin_block
3174
+ name "B2"
3175
+ from_bci -1
3176
+ to_bci -1
3177
+ predecessors "B0"
3178
+ successors "B3"
3179
+ xhandlers
3180
+ flags
3181
+ probability 4602678819172646912
3182
+ begin_IR
3183
+ LIR
3184
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3185
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3186
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3187
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3188
+ end_IR
3189
+ end_block
3190
+ begin_block
3191
+ name "B3"
3192
+ from_bci -1
3193
+ to_bci -1
3194
+ predecessors "B1" "B2"
3195
+ successors "B4" "B5"
3196
+ xhandlers
3197
+ flags
3198
+ probability 4607182418800017408
3199
+ begin_IR
3200
+ LIR
3201
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3202
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3203
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3204
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3205
+ end_IR
3206
+ end_block
3207
+ begin_block
3208
+ name "B4"
3209
+ from_bci -1
3210
+ to_bci -1
3211
+ predecessors "B3"
3212
+ successors
3213
+ xhandlers
3214
+ flags
3215
+ probability 4607182418800017408
3216
+ begin_IR
3217
+ LIR
3218
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3219
+ nr 36 <|@ st <@st|@reference-map: []
3220
+ live-base-pointers: []
3221
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3222
+ locals: -
3223
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3224
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3225
+ end_IR
3226
+ end_block
3227
+ begin_block
3228
+ name "B1"
3229
+ from_bci -1
3230
+ to_bci -1
3231
+ predecessors "B0"
3232
+ successors "B3"
3233
+ xhandlers
3234
+ flags
3235
+ probability 4602678819172646912
3236
+ begin_IR
3237
+ LIR
3238
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3239
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3240
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3241
+ end_IR
3242
+ end_block
3243
+ begin_block
3244
+ name "B5"
3245
+ from_bci -1
3246
+ to_bci -1
3247
+ predecessors "B3"
3248
+ successors
3249
+ xhandlers
3250
+ flags
3251
+ probability 2355382605114769408
3252
+ begin_IR
3253
+ LIR
3254
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3255
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3256
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3257
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3258
+ live-base-pointers: []
3259
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3260
+ locals: rsi|QWORD[.]
3261
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3262
+ end_IR
3263
+ end_block
3264
+ end_cfg
3265
+ begin_bytecodes
3266
+ 0: aload_0
3267
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3268
+ 6: ireturn
3269
+ <|@
3270
+ end_bytecodes
3271
+ begin_cfg
3272
+ name "After RedundantMoveElimination"
3273
+ begin_block
3274
+ name "B0"
3275
+ from_bci -1
3276
+ to_bci -1
3277
+ predecessors
3278
+ successors "B1" "B2"
3279
+ xhandlers
3280
+ flags
3281
+ probability 4607182418800017408
3282
+ begin_IR
3283
+ LIR
3284
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3285
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3286
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3287
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3288
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3289
+ end_IR
3290
+ end_block
3291
+ begin_block
3292
+ name "B2"
3293
+ from_bci -1
3294
+ to_bci -1
3295
+ predecessors "B0"
3296
+ successors "B3"
3297
+ xhandlers
3298
+ flags
3299
+ probability 4602678819172646912
3300
+ begin_IR
3301
+ LIR
3302
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3303
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3304
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3305
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3306
+ end_IR
3307
+ end_block
3308
+ begin_block
3309
+ name "B3"
3310
+ from_bci -1
3311
+ to_bci -1
3312
+ predecessors "B1" "B2"
3313
+ successors "B4" "B5"
3314
+ xhandlers
3315
+ flags
3316
+ probability 4607182418800017408
3317
+ begin_IR
3318
+ LIR
3319
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3320
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3321
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3322
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3323
+ end_IR
3324
+ end_block
3325
+ begin_block
3326
+ name "B4"
3327
+ from_bci -1
3328
+ to_bci -1
3329
+ predecessors "B3"
3330
+ successors
3331
+ xhandlers
3332
+ flags
3333
+ probability 4607182418800017408
3334
+ begin_IR
3335
+ LIR
3336
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3337
+ nr 36 <|@ st <@st|@reference-map: []
3338
+ live-base-pointers: []
3339
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3340
+ locals: -
3341
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3342
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3343
+ end_IR
3344
+ end_block
3345
+ begin_block
3346
+ name "B1"
3347
+ from_bci -1
3348
+ to_bci -1
3349
+ predecessors "B0"
3350
+ successors "B3"
3351
+ xhandlers
3352
+ flags
3353
+ probability 4602678819172646912
3354
+ begin_IR
3355
+ LIR
3356
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3357
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3358
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3359
+ end_IR
3360
+ end_block
3361
+ begin_block
3362
+ name "B5"
3363
+ from_bci -1
3364
+ to_bci -1
3365
+ predecessors "B3"
3366
+ successors
3367
+ xhandlers
3368
+ flags
3369
+ probability 2355382605114769408
3370
+ begin_IR
3371
+ LIR
3372
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3373
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3374
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3375
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3376
+ live-base-pointers: []
3377
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3378
+ locals: rsi|QWORD[.]
3379
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3380
+ end_IR
3381
+ end_block
3382
+ end_cfg
3383
+ begin_bytecodes
3384
+ 0: aload_0
3385
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3386
+ 6: ireturn
3387
+ <|@
3388
+ end_bytecodes
3389
+ begin_cfg
3390
+ name "After NullCheckOptimizer"
3391
+ begin_block
3392
+ name "B0"
3393
+ from_bci -1
3394
+ to_bci -1
3395
+ predecessors
3396
+ successors "B1" "B2"
3397
+ xhandlers
3398
+ flags
3399
+ probability 4607182418800017408
3400
+ begin_IR
3401
+ LIR
3402
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3403
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3404
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3405
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3406
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3407
+ end_IR
3408
+ end_block
3409
+ begin_block
3410
+ name "B2"
3411
+ from_bci -1
3412
+ to_bci -1
3413
+ predecessors "B0"
3414
+ successors "B3"
3415
+ xhandlers
3416
+ flags
3417
+ probability 4602678819172646912
3418
+ begin_IR
3419
+ LIR
3420
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3421
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3422
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3423
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3424
+ end_IR
3425
+ end_block
3426
+ begin_block
3427
+ name "B3"
3428
+ from_bci -1
3429
+ to_bci -1
3430
+ predecessors "B1" "B2"
3431
+ successors "B4" "B5"
3432
+ xhandlers
3433
+ flags
3434
+ probability 4607182418800017408
3435
+ begin_IR
3436
+ LIR
3437
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3438
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3439
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3440
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3441
+ end_IR
3442
+ end_block
3443
+ begin_block
3444
+ name "B4"
3445
+ from_bci -1
3446
+ to_bci -1
3447
+ predecessors "B3"
3448
+ successors
3449
+ xhandlers
3450
+ flags
3451
+ probability 4607182418800017408
3452
+ begin_IR
3453
+ LIR
3454
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3455
+ nr 36 <|@ st <@st|@reference-map: []
3456
+ live-base-pointers: []
3457
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3458
+ locals: -
3459
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3460
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3461
+ end_IR
3462
+ end_block
3463
+ begin_block
3464
+ name "B1"
3465
+ from_bci -1
3466
+ to_bci -1
3467
+ predecessors "B0"
3468
+ successors "B3"
3469
+ xhandlers
3470
+ flags
3471
+ probability 4602678819172646912
3472
+ begin_IR
3473
+ LIR
3474
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3475
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3476
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3477
+ end_IR
3478
+ end_block
3479
+ begin_block
3480
+ name "B5"
3481
+ from_bci -1
3482
+ to_bci -1
3483
+ predecessors "B3"
3484
+ successors
3485
+ xhandlers
3486
+ flags
3487
+ probability 2355382605114769408
3488
+ begin_IR
3489
+ LIR
3490
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3491
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3492
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3493
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3494
+ live-base-pointers: []
3495
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3496
+ locals: rsi|QWORD[.]
3497
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3498
+ end_IR
3499
+ end_block
3500
+ end_cfg
3501
+ begin_bytecodes
3502
+ 0: aload_0
3503
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3504
+ 6: ireturn
3505
+ <|@
3506
+ end_bytecodes
3507
+ begin_cfg
3508
+ name "After StackMoveOptimization"
3509
+ begin_block
3510
+ name "B0"
3511
+ from_bci -1
3512
+ to_bci -1
3513
+ predecessors
3514
+ successors "B1" "B2"
3515
+ xhandlers
3516
+ flags
3517
+ probability 4607182418800017408
3518
+ begin_IR
3519
+ LIR
3520
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3521
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3522
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3523
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3524
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3525
+ end_IR
3526
+ end_block
3527
+ begin_block
3528
+ name "B2"
3529
+ from_bci -1
3530
+ to_bci -1
3531
+ predecessors "B0"
3532
+ successors "B3"
3533
+ xhandlers
3534
+ flags
3535
+ probability 4602678819172646912
3536
+ begin_IR
3537
+ LIR
3538
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3539
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3540
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3541
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3542
+ end_IR
3543
+ end_block
3544
+ begin_block
3545
+ name "B3"
3546
+ from_bci -1
3547
+ to_bci -1
3548
+ predecessors "B1" "B2"
3549
+ successors "B4" "B5"
3550
+ xhandlers
3551
+ flags
3552
+ probability 4607182418800017408
3553
+ begin_IR
3554
+ LIR
3555
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3556
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3557
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3558
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3559
+ end_IR
3560
+ end_block
3561
+ begin_block
3562
+ name "B4"
3563
+ from_bci -1
3564
+ to_bci -1
3565
+ predecessors "B3"
3566
+ successors
3567
+ xhandlers
3568
+ flags
3569
+ probability 4607182418800017408
3570
+ begin_IR
3571
+ LIR
3572
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3573
+ nr 36 <|@ st <@st|@reference-map: []
3574
+ live-base-pointers: []
3575
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3576
+ locals: -
3577
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3578
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3579
+ end_IR
3580
+ end_block
3581
+ begin_block
3582
+ name "B1"
3583
+ from_bci -1
3584
+ to_bci -1
3585
+ predecessors "B0"
3586
+ successors "B3"
3587
+ xhandlers
3588
+ flags
3589
+ probability 4602678819172646912
3590
+ begin_IR
3591
+ LIR
3592
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3593
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3594
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3595
+ end_IR
3596
+ end_block
3597
+ begin_block
3598
+ name "B5"
3599
+ from_bci -1
3600
+ to_bci -1
3601
+ predecessors "B3"
3602
+ successors
3603
+ xhandlers
3604
+ flags
3605
+ probability 2355382605114769408
3606
+ begin_IR
3607
+ LIR
3608
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3609
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3610
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3611
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3612
+ live-base-pointers: []
3613
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3614
+ locals: rsi|QWORD[.]
3615
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3616
+ end_IR
3617
+ end_block
3618
+ end_cfg
3619
+ begin_bytecodes
3620
+ 0: aload_0
3621
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3622
+ 6: ireturn
3623
+ <|@
3624
+ end_bytecodes
3625
+ begin_cfg
3626
+ name "After PostAllocationOptimizationStage"
3627
+ begin_block
3628
+ name "B0"
3629
+ from_bci -1
3630
+ to_bci -1
3631
+ predecessors
3632
+ successors "B1" "B2"
3633
+ xhandlers
3634
+ flags
3635
+ probability 4607182418800017408
3636
+ begin_IR
3637
+ LIR
3638
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3639
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3640
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <|@ <|@
3641
+ nr 8 <|@ instruction TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <|@ <|@
3642
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3643
+ end_IR
3644
+ end_block
3645
+ begin_block
3646
+ name "B2"
3647
+ from_bci -1
3648
+ to_bci -1
3649
+ predecessors "B0"
3650
+ successors "B3"
3651
+ xhandlers
3652
+ flags
3653
+ probability 4602678819172646912
3654
+ begin_IR
3655
+ LIR
3656
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3657
+ nr 14 <|@ instruction r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <|@ <|@
3658
+ nr 16 <|@ instruction r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <|@ <|@
3659
+ nr 18 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3660
+ end_IR
3661
+ end_block
3662
+ begin_block
3663
+ name "B3"
3664
+ from_bci -1
3665
+ to_bci -1
3666
+ predecessors "B1" "B2"
3667
+ successors "B4" "B5"
3668
+ xhandlers
3669
+ flags
3670
+ probability 4607182418800017408
3671
+ begin_IR
3672
+ LIR
3673
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3674
+ nr 26 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <|@ <|@
3675
+ nr 28 <|@ instruction CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <|@ <|@
3676
+ nr 30 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3677
+ end_IR
3678
+ end_block
3679
+ begin_block
3680
+ name "B4"
3681
+ from_bci -1
3682
+ to_bci -1
3683
+ predecessors "B3"
3684
+ successors
3685
+ xhandlers
3686
+ flags
3687
+ probability 4607182418800017408
3688
+ begin_IR
3689
+ LIR
3690
+ nr 32 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3691
+ nr 36 <|@ st <@st|@reference-map: []
3692
+ live-base-pointers: []
3693
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1]
3694
+ locals: -
3695
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
3696
+ nr 42 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
3697
+ end_IR
3698
+ end_block
3699
+ begin_block
3700
+ name "B1"
3701
+ from_bci -1
3702
+ to_bci -1
3703
+ predecessors "B0"
3704
+ successors "B3"
3705
+ xhandlers
3706
+ flags
3707
+ probability 4602678819172646912
3708
+ begin_IR
3709
+ LIR
3710
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3711
+ nr -1 <|@ instruction r10|QWORD = MOVE input: Object[null] // MoveResolver resolve mapping <|@ <|@
3712
+ nr 22 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3713
+ end_IR
3714
+ end_block
3715
+ begin_block
3716
+ name "B5"
3717
+ from_bci -1
3718
+ to_bci -1
3719
+ predecessors "B3"
3720
+ successors
3721
+ xhandlers
3722
+ flags
3723
+ probability 2355382605114769408
3724
+ begin_IR
3725
+ LIR
3726
+ nr 44 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3727
+ nr 46 <|@ instruction MOV [r15|QWORD + 644] y: -2620 size: DWORD <|@ <|@
3728
+ nr 48 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
3729
+ nr 50 <|@ st <@st|@reference-map: [rsi:0]
3730
+ live-base-pointers: []
3731
+ JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0]
3732
+ locals: rsi|QWORD[.]
3733
+ >@ <|@ instruction DEOPT info [bci:0] <|@ <|@
3734
+ end_IR
3735
+ end_block
3736
+ end_cfg
3737
+ begin_bytecodes
3738
+ 0: aload_0
3739
+ 1: invokeinterface#54, 1 // JavaExamples$InterfaceOneImpl.interfaceCall:()int
3740
+ 6: ireturn
3741
+ <|@
3742
+ end_bytecodes
3743
+ begin_cfg
3744
+ name "After code generation"
3745
+ end_cfg
3746
+ begin_nmethod
3747
+ <<<HexCodeFile
3748
+ Platform AMD64 64 <||@
3749
+ HexCode 0 89842400c0feff4883ec1848896c24104885f60f8437000000448b560849c1e20349bbaddeaddeaddeadde4d3bda0f8525000000666690e80000000090488b6c24104883c418850500000000c5f877c349c7c200000000ebc841c78784020000c4f5ffff49c7879002000000000000e80000000090e80000000090e80000000090 <||@
3750
+ Comment 0 [stack overflow check] <||@
3751
+ Comment 0 3 <||@
3752
+ Comment 0 1 <||@
3753
+ Comment 11 block B0 null <||@
3754
+ Comment 11 0 [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3755
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
3756
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <||@
3757
+ Comment 16 8 TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <||@
3758
+ Comment 19 10 BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3759
+ Comment 25 block B2 null <||@
3760
+ Comment 25 12 [] = LABEL numbPhis: 0 align: false label: ? <||@
3761
+ Comment 25 14 r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <||@
3762
+ Comment 29 16 r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <||@
3763
+ Comment 33 18 JUMP ~[] destination: B2 -> B3 <||@
3764
+ Comment 33 block B3 null <||@
3765
+ Comment 33 24 [] = LABEL numbPhis: 1 align: false label: ? <||@
3766
+ Comment 33 26 r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <||@
3767
+ Comment 33 {meta{HotSpotType<LJavaExamples$OneImpl;, resolved>}} <||@
3768
+ Comment 43 28 CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <||@
3769
+ Comment 46 30 BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <||@
3770
+ Comment 52 block B4 null <||@
3771
+ Comment 52 32 [] = LABEL numbPhis: 0 align: false label: ? <||@
3772
+ Comment 52 36 rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <||@
3773
+ Comment 52 9 <||@
3774
+ Comment 55 {HotSpotMethod<JavaExamples$OneImpl.interfaceCall()>} <||@
3775
+ Comment 60 []at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1, duringCall: true, rethrow: false]
3776
+ |0
3777
+ locals: |- <||@
3778
+ Comment 61 42 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <||@
3779
+ Comment 70 12 <||@
3780
+ Comment 80 block B1 null <||@
3781
+ Comment 80 20 [] = LABEL numbPhis: 0 align: false label: ? <||@
3782
+ Comment 80 -1 r10|QWORD = MOVE input: Object[null] <||@
3783
+ Comment 87 22 JUMP ~[] destination: B1 -> B3 <||@
3784
+ Comment 89 block B5 null <||@
3785
+ Comment 89 44 [] = LABEL numbPhis: 0 align: false label: ? <||@
3786
+ Comment 89 46 MOV [r15|QWORD + 644] y: -2620 size: DWORD <||@
3787
+ Comment 100 48 MOV [r15|QWORD + 656] y: 0 size: QWORD <||@
3788
+ Comment 111 50 DEOPT info [bci:0] <||@
3789
+ Comment 111 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap, type=address, offset=0, address=0x1044bc130, value=4562715454]:0x10ff5833e} <||@
3790
+ Comment 116 [rsi:0]at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0, duringCall: false, rethrow: false]
3791
+ |0
3792
+ locals: |rsi|QWORD[.] <||@
3793
+ Comment 117 {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} <||@
3794
+ Comment 117 4 <||@
3795
+ Comment 123 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1044bc128, value=4562715200]:0x10ff58240} <||@
3796
+ Comment 123 5 <||@
3797
+ HexCodeFile>>> <|@
3798
+ end_nmethod
3799
+ begin_compilation
3800
+ name " HotSpotCompilation-360[JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)]"
3801
+ method "HotSpotCompilation-360[JavaExamples.exampleInterfaceCallOneImpl(JavaExamples$InterfaceOneImpl)]"
3802
+ date 1583840237824
3803
+ end_compilation
3804
+ begin_cfg
3805
+ name "After code installation"
3806
+ end_cfg
3807
+ begin_nmethod
3808
+ <<<HexCodeFile
3809
+ Platform AMD64 64 <||@
3810
+ HexCode 1100a7a60 89842400c0feff4883ec1848896c24104885f60f8437000000448b560849c1e20349bb280806c0070000004d3bda0f8525000000666690e80422f8ff90488b6c24104883c41885055ac51ff2c5f877c349c7c200000000ebc841c78784020000c4f5ffff49c7879002000000000000e86a08ebff90e8c627ffff90e86007ebff90f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f448bb0000000000000000e9fbfffffff4 <||@
3811
+ Comment 0 [stack overflow check] <||@
3812
+ Comment 0 3 <||@
3813
+ Comment 0 1 <||@
3814
+ Comment 11 block B0 null <||@
3815
+ Comment 11 0 [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3816
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
3817
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@130304450 slotKind: QWORD <||@
3818
+ Comment 16 8 TEST (x: rsi|QWORD[.], y: rsi|QWORD[.]) size: QWORD <||@
3819
+ Comment 19 10 BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3820
+ Comment 25 block B2 null <||@
3821
+ Comment 25 12 [] = LABEL numbPhis: 0 align: false label: ? <||@
3822
+ Comment 25 14 r10|DWORD = MOV [rsi|QWORD[.] + 8] size: DWORD <||@
3823
+ Comment 29 16 r10|QWORD = UNCOMPRESSPOINTER (input: r10|DWORD, ~baseRegister: -) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@130304738 encoding: base: 0 shift: 3 <||@
3824
+ Comment 33 18 JUMP ~[] destination: B2 -> B3 <||@
3825
+ Comment 33 block B3 null <||@
3826
+ Comment 33 24 [] = LABEL numbPhis: 1 align: false label: ? <||@
3827
+ Comment 33 26 r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<LJavaExamples$OneImpl;, resolved>} <||@
3828
+ Comment 33 {meta{HotSpotType<LJavaExamples$OneImpl;, resolved>}} <||@
3829
+ Comment 43 28 CMP (x: r11|QWORD, y: r10|QWORD) size: QWORD <||@
3830
+ Comment 46 30 BRANCH trueDestinationProbability: 1.0 condition: = trueDestination: B3 -> B4 falseDestination: B3 -> B5 <||@
3831
+ Comment 52 block B4 null <||@
3832
+ Comment 52 32 [] = LABEL numbPhis: 0 align: false label: ? <||@
3833
+ Comment 52 36 rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$OneImpl.interfaceCall()> invokeKind: Special config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <||@
3834
+ Comment 52 9 <||@
3835
+ Comment 55 {HotSpotMethod<JavaExamples$OneImpl.interfaceCall()>} <||@
3836
+ Comment 60 []at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 1, duringCall: true, rethrow: false]
3837
+ |0
3838
+ locals: |- <||@
3839
+ Comment 61 42 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <||@
3840
+ Comment 70 12 <||@
3841
+ Comment 80 block B1 null <||@
3842
+ Comment 80 20 [] = LABEL numbPhis: 0 align: false label: ? <||@
3843
+ Comment 80 -1 r10|QWORD = MOVE input: Object[null] <||@
3844
+ Comment 87 22 JUMP ~[] destination: B1 -> B3 <||@
3845
+ Comment 89 block B5 null <||@
3846
+ Comment 89 44 [] = LABEL numbPhis: 0 align: false label: ? <||@
3847
+ Comment 89 46 MOV [r15|QWORD + 644] y: -2620 size: DWORD <||@
3848
+ Comment 100 48 MOV [r15|QWORD + 656] y: 0 size: QWORD <||@
3849
+ Comment 111 50 DEOPT info [bci:0] <||@
3850
+ Comment 111 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap, type=address, offset=0, address=0x1044bc130, value=4562715454]:0x10ff5833e} <||@
3851
+ Comment 116 [rsi:0]at JavaExamples.exampleInterfaceCallOneImpl(JavaExamples.java:107) [bci: 0, duringCall: false, rethrow: false]
3852
+ |0
3853
+ locals: |rsi|QWORD[.] <||@
3854
+ Comment 117 {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} <||@
3855
+ Comment 117 4 <||@
3856
+ Comment 123 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1044bc128, value=4562715200]:0x10ff58240} <||@
3857
+ Comment 123 5 <||@
3858
+ HexCodeFile>>> <|@
3859
+ end_nmethod