seafoam 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,1358 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-361[JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)]"
3
+ method "HotSpotCompilation-361[JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)]"
4
+ date 1583840237781
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
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: v17
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v17 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid a16 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ isDefaultStable: false
36
+ rawvalue: null
37
+ stableDimension: 0
38
+ stamp: a - NULL
39
+ stampKind: a -
40
+ value: Object[null]
41
+ === Inputs ===
42
+ === Succesors ===
43
+ === Usages ===
44
+ ?2
45
+ === Predecessor ===
46
+ - >@ <|@
47
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
48
+ tid ?2 <|@
49
+ d <@d|@=== Debug Properties ===
50
+ bci: 0
51
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)>
52
+ duringCall: false
53
+ localsSize: 1
54
+ locksSize: 0
55
+ rethrowException: false
56
+ sourceFile: JavaExamples.java
57
+ sourceLine: 111
58
+ stackSize: 0
59
+ === Inputs ===
60
+ outerFrameState: -
61
+ values: a16
62
+ === Succesors ===
63
+ === Usages ===
64
+ v17
65
+ === Predecessor ===
66
+ - >@ <|@
67
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a16 <|@ <|@
68
+ f <@~|@floating>@ <|@
69
+ tid a1 <|@
70
+ d <@d|@=== Debug Properties ===
71
+ index: 0
72
+ stamp: a -
73
+ uncheckedStamp: a LJavaExamples$InterfaceManyImpls;
74
+ === Inputs ===
75
+ === Succesors ===
76
+ === Usages ===
77
+ v17 v10
78
+ === Predecessor ===
79
+ - >@ <|@
80
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
81
+ f <@#|@fixed with next>@ <|@
82
+ tid v17 <|@
83
+ d <@d|@=== Debug Properties ===
84
+ stamp: void
85
+ === Inputs ===
86
+ stateBefore: ?2
87
+ object: a1
88
+ === Succesors ===
89
+ next: i4
90
+ === Usages ===
91
+ === Predecessor ===
92
+ v0 >@ <|@
93
+ instruction <@NullCheck|@org.graalvm.compiler.nodes.extended.NullCheckNode>@ stateBefore: ?2 object: a1 #next: i4 <|@ <|@
94
+ tid v10 <|@
95
+ d <@d|@=== Debug Properties ===
96
+ callType: JavaCall
97
+ invokeKind: Interface
98
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
99
+ returnStamp: i32
100
+ signature: [Ljdk.vm.ci.meta.JavaType;@10f0cdc60
101
+ stamp: void
102
+ targetMethod: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()>
103
+ === Inputs ===
104
+ arguments: a1
105
+ === Succesors ===
106
+ === Usages ===
107
+ i4
108
+ === Predecessor ===
109
+ - >@ <|@
110
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ arguments: a1 <|@ <|@
111
+ tid ?15 <|@
112
+ d <@d|@=== Debug Properties ===
113
+ bci: 1
114
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)>
115
+ duringCall: true
116
+ localsSize: 1
117
+ locksSize: 0
118
+ rethrowException: false
119
+ sourceFile: JavaExamples.java
120
+ sourceLine: 111
121
+ stackSize: 0
122
+ === Inputs ===
123
+ outerFrameState: -
124
+ values: -
125
+ === Succesors ===
126
+ === Usages ===
127
+ i4
128
+ === Predecessor ===
129
+ - >@ <|@
130
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
131
+ f <@#|@fixed with next>@ <|@
132
+ tid i4 <|@
133
+ d <@d|@=== Debug Properties ===
134
+ bci: 1
135
+ identity: ANY_LOCATION
136
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
137
+ polymorphic: true
138
+ stamp: i32
139
+ targetMethod: Direct#JavaExamples$InterfaceManyImpls.interfaceCall
140
+ useForInlining: true
141
+ === Inputs ===
142
+ stateAfter: -
143
+ classInit: -
144
+ callTarget: v10
145
+ stateDuring: ?15
146
+ === Succesors ===
147
+ next: v6
148
+ === Usages ===
149
+ v6
150
+ === Predecessor ===
151
+ v17 >@ <|@
152
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v10 stateDuring: ?15 #next: v6 <|@ <|@
153
+ f <@*|@fixed>@ <|@
154
+ tid v6 <|@
155
+ d <@d|@=== Debug Properties ===
156
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 6]
157
+ stamp: void
158
+ === Inputs ===
159
+ result: i4
160
+ memoryMap: -
161
+ === Succesors ===
162
+ === Usages ===
163
+ === Predecessor ===
164
+ i4 >@ <|@
165
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
166
+ end_IR
167
+ end_block
168
+ end_cfg
169
+ begin_cfg
170
+ name "After LIRGeneration"
171
+ begin_block
172
+ name "B0"
173
+ from_bci -1
174
+ to_bci -1
175
+ predecessors
176
+ successors
177
+ xhandlers
178
+ flags
179
+ probability 4607182418800017408
180
+ begin_IR
181
+ LIR
182
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
183
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
184
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
185
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
186
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
187
+ locals: Object[null]
188
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
189
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
190
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
191
+ locals: -
192
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
193
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
194
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
195
+ 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 <|@ <|@
196
+ end_IR
197
+ end_block
198
+ end_cfg
199
+ begin_bytecodes
200
+ 0: aload_0
201
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
202
+ 6: ireturn
203
+ <|@
204
+ end_bytecodes
205
+ begin_cfg
206
+ name "After LIR generation"
207
+ begin_block
208
+ name "B0"
209
+ from_bci -1
210
+ to_bci -1
211
+ predecessors
212
+ successors
213
+ xhandlers
214
+ flags
215
+ probability 4607182418800017408
216
+ begin_IR
217
+ HIR
218
+ f <@#|@fixed with next>@ <|@
219
+ tid v0 <|@
220
+ d <@d|@=== Debug Properties ===
221
+ stamp: void
222
+ withSpeculationFence: false
223
+ === Inputs ===
224
+ stateAfter: -
225
+ === Succesors ===
226
+ next: v17
227
+ === Usages ===
228
+ === Predecessor ===
229
+ - >@ <|@
230
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v17 <|@ <|@
231
+ f <@~|@floating>@ <|@
232
+ tid a16 <|@
233
+ result Object[null] <|@
234
+ d <@d|@=== Debug Properties ===
235
+ isDefaultStable: false
236
+ rawvalue: null
237
+ stableDimension: 0
238
+ stamp: a - NULL
239
+ stampKind: a -
240
+ value: Object[null]
241
+ === Inputs ===
242
+ === Succesors ===
243
+ === Usages ===
244
+ ?2
245
+ === Predecessor ===
246
+ - >@ <|@
247
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
248
+ tid ?2 <|@
249
+ d <@d|@=== Debug Properties ===
250
+ bci: 0
251
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)>
252
+ duringCall: false
253
+ localsSize: 1
254
+ locksSize: 0
255
+ rethrowException: false
256
+ sourceFile: JavaExamples.java
257
+ sourceLine: 111
258
+ stackSize: 0
259
+ === Inputs ===
260
+ outerFrameState: -
261
+ values: a16
262
+ === Succesors ===
263
+ === Usages ===
264
+ v17
265
+ === Predecessor ===
266
+ - >@ <|@
267
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a16 <|@ <|@
268
+ f <@~|@floating>@ <|@
269
+ tid a1 <|@
270
+ result v0|QWORD[.] <|@
271
+ d <@d|@=== Debug Properties ===
272
+ index: 0
273
+ stamp: a -
274
+ uncheckedStamp: a LJavaExamples$InterfaceManyImpls;
275
+ === Inputs ===
276
+ === Succesors ===
277
+ === Usages ===
278
+ v17 v10
279
+ === Predecessor ===
280
+ - >@ <|@
281
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
282
+ f <@#|@fixed with next>@ <|@
283
+ tid v17 <|@
284
+ d <@d|@=== Debug Properties ===
285
+ stamp: void
286
+ === Inputs ===
287
+ stateBefore: ?2
288
+ object: a1
289
+ === Succesors ===
290
+ next: i4
291
+ === Usages ===
292
+ === Predecessor ===
293
+ v0 >@ <|@
294
+ instruction <@NullCheck|@org.graalvm.compiler.nodes.extended.NullCheckNode>@ stateBefore: ?2 object: a1 #next: i4 <|@ <|@
295
+ tid v10 <|@
296
+ d <@d|@=== Debug Properties ===
297
+ callType: JavaCall
298
+ invokeKind: Interface
299
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
300
+ returnStamp: i32
301
+ signature: [Ljdk.vm.ci.meta.JavaType;@10f0cdc60
302
+ stamp: void
303
+ targetMethod: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()>
304
+ === Inputs ===
305
+ arguments: a1
306
+ === Succesors ===
307
+ === Usages ===
308
+ i4
309
+ === Predecessor ===
310
+ - >@ <|@
311
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ arguments: a1 <|@ <|@
312
+ tid ?15 <|@
313
+ d <@d|@=== Debug Properties ===
314
+ bci: 1
315
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)>
316
+ duringCall: true
317
+ localsSize: 1
318
+ locksSize: 0
319
+ rethrowException: false
320
+ sourceFile: JavaExamples.java
321
+ sourceLine: 111
322
+ stackSize: 0
323
+ === Inputs ===
324
+ outerFrameState: -
325
+ values: -
326
+ === Succesors ===
327
+ === Usages ===
328
+ i4
329
+ === Predecessor ===
330
+ - >@ <|@
331
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
332
+ f <@#|@fixed with next>@ <|@
333
+ tid i4 <|@
334
+ result v1|DWORD <|@
335
+ d <@d|@=== Debug Properties ===
336
+ bci: 1
337
+ identity: ANY_LOCATION
338
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
339
+ polymorphic: true
340
+ stamp: i32
341
+ targetMethod: Direct#JavaExamples$InterfaceManyImpls.interfaceCall
342
+ useForInlining: true
343
+ === Inputs ===
344
+ stateAfter: -
345
+ classInit: -
346
+ callTarget: v10
347
+ stateDuring: ?15
348
+ === Succesors ===
349
+ next: v6
350
+ === Usages ===
351
+ v6
352
+ === Predecessor ===
353
+ v17 >@ <|@
354
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v10 stateDuring: ?15 #next: v6 <|@ <|@
355
+ f <@*|@fixed>@ <|@
356
+ tid v6 <|@
357
+ d <@d|@=== Debug Properties ===
358
+ nodeSourcePosition: at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 6]
359
+ stamp: void
360
+ === Inputs ===
361
+ result: i4
362
+ memoryMap: -
363
+ === Succesors ===
364
+ === Usages ===
365
+ === Predecessor ===
366
+ i4 >@ <|@
367
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
368
+ end_IR
369
+ begin_IR
370
+ LIR
371
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
372
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
373
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
374
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
375
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
376
+ locals: Object[null]
377
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
378
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
379
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
380
+ locals: -
381
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
382
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
383
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
384
+ 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 <|@ <|@
385
+ end_IR
386
+ end_block
387
+ end_cfg
388
+ begin_cfg
389
+ name "After ConstantLoadOptimization"
390
+ begin_block
391
+ name "B0"
392
+ from_bci -1
393
+ to_bci -1
394
+ predecessors
395
+ successors
396
+ xhandlers
397
+ flags
398
+ probability 4607182418800017408
399
+ begin_IR
400
+ LIR
401
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
402
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
403
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
404
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
405
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
406
+ locals: Object[null]
407
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
408
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
409
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
410
+ locals: -
411
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
412
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
413
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
414
+ 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 <|@ <|@
415
+ end_IR
416
+ end_block
417
+ end_cfg
418
+ begin_bytecodes
419
+ 0: aload_0
420
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
421
+ 6: ireturn
422
+ <|@
423
+ end_bytecodes
424
+ begin_cfg
425
+ name "After SaveCalleeSaveRegisters"
426
+ begin_block
427
+ name "B0"
428
+ from_bci -1
429
+ to_bci -1
430
+ predecessors
431
+ successors
432
+ xhandlers
433
+ flags
434
+ probability 4607182418800017408
435
+ begin_IR
436
+ LIR
437
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
438
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
439
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
440
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
441
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
442
+ locals: Object[null]
443
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
444
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
445
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
446
+ locals: -
447
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
448
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
449
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
450
+ 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 <|@ <|@
451
+ end_IR
452
+ end_block
453
+ end_cfg
454
+ begin_bytecodes
455
+ 0: aload_0
456
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
457
+ 6: ireturn
458
+ <|@
459
+ end_bytecodes
460
+ begin_cfg
461
+ name "After PreAllocationOptimizationStage"
462
+ begin_block
463
+ name "B0"
464
+ from_bci -1
465
+ to_bci -1
466
+ predecessors
467
+ successors
468
+ xhandlers
469
+ flags
470
+ probability 4607182418800017408
471
+ begin_IR
472
+ LIR
473
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
474
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
475
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
476
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
477
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
478
+ locals: Object[null]
479
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
480
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
481
+ nr -1 <|@ st <@st|@JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
482
+ locals: -
483
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
484
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
485
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
486
+ 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 <|@ <|@
487
+ end_IR
488
+ end_block
489
+ end_cfg
490
+ begin_bytecodes
491
+ 0: aload_0
492
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
493
+ 6: ireturn
494
+ <|@
495
+ end_bytecodes
496
+ begin_cfg
497
+ name "After MarkBasePointers"
498
+ begin_block
499
+ name "B0"
500
+ from_bci -1
501
+ to_bci -1
502
+ predecessors
503
+ successors
504
+ xhandlers
505
+ flags
506
+ probability 4607182418800017408
507
+ begin_IR
508
+ LIR
509
+ nr -1 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
510
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
511
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
512
+ nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
513
+ nr -1 <|@ st <@st|@live-base-pointers: []
514
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
515
+ locals: Object[null]
516
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
517
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
518
+ nr -1 <|@ st <@st|@live-base-pointers: []
519
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
520
+ locals: -
521
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
522
+ nr -1 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
523
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
524
+ 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 <|@ <|@
525
+ end_IR
526
+ end_block
527
+ end_cfg
528
+ begin_bytecodes
529
+ 0: aload_0
530
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
531
+ 6: ireturn
532
+ <|@
533
+ end_bytecodes
534
+ begin_cfg
535
+ name "Before register allocation"
536
+ begin_block
537
+ name "B0"
538
+ from_bci -1
539
+ to_bci -1
540
+ predecessors
541
+ successors
542
+ xhandlers
543
+ flags
544
+ probability 4607182418800017408
545
+ begin_IR
546
+ LIR
547
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
548
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
549
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
550
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
551
+ nr 8 <|@ st <@st|@live-base-pointers: []
552
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
553
+ locals: Object[null]
554
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
555
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
556
+ nr 12 <|@ st <@st|@live-base-pointers: []
557
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
558
+ locals: -
559
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
560
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
561
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
562
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
563
+ end_IR
564
+ end_block
565
+ end_cfg
566
+ begin_bytecodes
567
+ 0: aload_0
568
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
569
+ 6: ireturn
570
+ <|@
571
+ end_bytecodes
572
+ begin_cfg
573
+ name "After SSALinearScanLifetimeAnalysis"
574
+ begin_block
575
+ name "B0"
576
+ from_bci -1
577
+ to_bci -1
578
+ predecessors
579
+ successors
580
+ xhandlers
581
+ flags
582
+ probability 4607182418800017408
583
+ begin_IR
584
+ LIR
585
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
586
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
587
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
588
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
589
+ nr 8 <|@ st <@st|@live-base-pointers: []
590
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
591
+ locals: Object[null]
592
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
593
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
594
+ nr 12 <|@ st <@st|@live-base-pointers: []
595
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
596
+ locals: -
597
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
598
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
599
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
600
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
601
+ end_IR
602
+ end_block
603
+ end_cfg
604
+ begin_bytecodes
605
+ 0: aload_0
606
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
607
+ 6: ireturn
608
+ <|@
609
+ end_bytecodes
610
+ begin_intervals
611
+ name "Before register allocation"
612
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[12, 14[[16, 18[ "NoOptimization"
613
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
614
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
615
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
616
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[12, 13[ "NoSpillStore"
617
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[10, 13[ "NoOptimization"
618
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
619
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
620
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
621
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
622
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
623
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
624
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
625
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
626
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
627
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
628
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
629
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
630
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
631
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
632
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
633
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
634
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
635
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
636
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
637
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
638
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
639
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
640
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
641
+ v0|q QWORD "[v0|q]" v0|q rsi|- [6, 10[6 MustHaveRegister 8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
642
+ v1|d DWORD "[v1|d]" v1|d rax|d [14, 16[14 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
643
+ end_intervals
644
+ begin_intervals
645
+ name "After register allocation"
646
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[12, 14[[16, 18[ "NoOptimization"
647
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
648
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
649
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
650
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[12, 13[ "NoSpillStore"
651
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[10, 13[ "NoOptimization"
652
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
653
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
654
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
655
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
656
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
657
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
658
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
659
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
660
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
661
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
662
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
663
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
664
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
665
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
666
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
667
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
668
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
669
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
670
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
671
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
672
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
673
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
674
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
675
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 10[6 MustHaveRegister 8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
676
+ v1|d DWORD "[rax|d]" v1|d rax|d [14, 16[14 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
677
+ end_intervals
678
+ begin_cfg
679
+ name "After LinearScanRegisterAllocation"
680
+ begin_block
681
+ name "B0"
682
+ from_bci -1
683
+ to_bci -1
684
+ predecessors
685
+ successors
686
+ xhandlers
687
+ flags
688
+ probability 4607182418800017408
689
+ begin_IR
690
+ LIR
691
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
692
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
693
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
694
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
695
+ nr 8 <|@ st <@st|@live-base-pointers: []
696
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
697
+ locals: Object[null]
698
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
699
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
700
+ nr 12 <|@ st <@st|@live-base-pointers: []
701
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
702
+ locals: -
703
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
704
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
705
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
706
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
707
+ end_IR
708
+ end_block
709
+ end_cfg
710
+ begin_bytecodes
711
+ 0: aload_0
712
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
713
+ 6: ireturn
714
+ <|@
715
+ end_bytecodes
716
+ begin_intervals
717
+ name "After optimize spill position"
718
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[12, 14[[16, 18[ "NoOptimization"
719
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
720
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
721
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
722
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[12, 13[ "NoSpillStore"
723
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[10, 13[ "NoOptimization"
724
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
725
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
726
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
727
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
728
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
729
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
730
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
731
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
732
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
733
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
734
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
735
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
736
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
737
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
738
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
739
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
740
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
741
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
742
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
743
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
744
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
745
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
746
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
747
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 10[6 MustHaveRegister 8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
748
+ v1|d DWORD "[rax|d]" v1|d rax|d [14, 16[14 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
749
+ end_intervals
750
+ begin_cfg
751
+ name "After LinearScanOptimizeSpillPosition"
752
+ begin_block
753
+ name "B0"
754
+ from_bci -1
755
+ to_bci -1
756
+ predecessors
757
+ successors
758
+ xhandlers
759
+ flags
760
+ probability 4607182418800017408
761
+ begin_IR
762
+ LIR
763
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
764
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
765
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
766
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
767
+ nr 8 <|@ st <@st|@live-base-pointers: []
768
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
769
+ locals: Object[null]
770
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
771
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
772
+ nr 12 <|@ st <@st|@live-base-pointers: []
773
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
774
+ locals: -
775
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
776
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
777
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
778
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
779
+ end_IR
780
+ end_block
781
+ end_cfg
782
+ begin_bytecodes
783
+ 0: aload_0
784
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
785
+ 6: ireturn
786
+ <|@
787
+ end_bytecodes
788
+ begin_intervals
789
+ name "After resolve data flow"
790
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[12, 14[[16, 18[ "NoOptimization"
791
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
792
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
793
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
794
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[12, 13[ "NoSpillStore"
795
+ rsi|- fixed "[rsi|-]" rsi|- v0|q [0, 6[[10, 13[ "NoOptimization"
796
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
797
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
798
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
799
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
800
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
801
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
802
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
803
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
804
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
805
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
806
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
807
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
808
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
809
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
810
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
811
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
812
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
813
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
814
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
815
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
816
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
817
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
818
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[12, 13[ "NoDefinitionFound"
819
+ v0|q QWORD "[rsi|q]" v0|q rsi|- [6, 10[6 MustHaveRegister 8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
820
+ v1|d DWORD "[rax|d]" v1|d rax|d [14, 16[14 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
821
+ end_intervals
822
+ begin_cfg
823
+ name "After SSALinearScanResolveDataFlow"
824
+ begin_block
825
+ name "B0"
826
+ from_bci -1
827
+ to_bci -1
828
+ predecessors
829
+ successors
830
+ xhandlers
831
+ flags
832
+ probability 4607182418800017408
833
+ begin_IR
834
+ LIR
835
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
836
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
837
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
838
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
839
+ nr 8 <|@ st <@st|@live-base-pointers: []
840
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
841
+ locals: Object[null]
842
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
843
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
844
+ nr 12 <|@ st <@st|@live-base-pointers: []
845
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
846
+ locals: -
847
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
848
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
849
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
850
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
851
+ end_IR
852
+ end_block
853
+ end_cfg
854
+ begin_bytecodes
855
+ 0: aload_0
856
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
857
+ 6: ireturn
858
+ <|@
859
+ end_bytecodes
860
+ begin_cfg
861
+ name "After SSALinearScanEliminateSpillMove"
862
+ begin_block
863
+ name "B0"
864
+ from_bci -1
865
+ to_bci -1
866
+ predecessors
867
+ successors
868
+ xhandlers
869
+ flags
870
+ probability 4607182418800017408
871
+ begin_IR
872
+ LIR
873
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
874
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
875
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
876
+ nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
877
+ nr 8 <|@ st <@st|@live-base-pointers: []
878
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
879
+ locals: Object[null]
880
+ >@ <|@ instruction NULLCHECK [v0|QWORD[.]] state [bci:0] <|@ <|@
881
+ nr 10 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
882
+ nr 12 <|@ st <@st|@live-base-pointers: []
883
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
884
+ locals: -
885
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
886
+ nr 14 <|@ instruction v1|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
887
+ nr 16 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
888
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
889
+ end_IR
890
+ end_block
891
+ end_cfg
892
+ begin_bytecodes
893
+ 0: aload_0
894
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
895
+ 6: ireturn
896
+ <|@
897
+ end_bytecodes
898
+ begin_cfg
899
+ name "After LinearScanAssignLocations"
900
+ begin_block
901
+ name "B0"
902
+ from_bci -1
903
+ to_bci -1
904
+ predecessors
905
+ successors
906
+ xhandlers
907
+ flags
908
+ probability 4607182418800017408
909
+ begin_IR
910
+ LIR
911
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
912
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
913
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
914
+ nr 8 <|@ st <@st|@live-base-pointers: []
915
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
916
+ locals: Object[null]
917
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
918
+ nr 12 <|@ st <@st|@live-base-pointers: []
919
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
920
+ locals: -
921
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
922
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
923
+ end_IR
924
+ end_block
925
+ end_cfg
926
+ begin_bytecodes
927
+ 0: aload_0
928
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
929
+ 6: ireturn
930
+ <|@
931
+ end_bytecodes
932
+ begin_cfg
933
+ name "After LinearScan"
934
+ begin_block
935
+ name "B0"
936
+ from_bci -1
937
+ to_bci -1
938
+ predecessors
939
+ successors
940
+ xhandlers
941
+ flags
942
+ probability 4607182418800017408
943
+ begin_IR
944
+ LIR
945
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
946
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
947
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
948
+ nr 8 <|@ st <@st|@live-base-pointers: []
949
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
950
+ locals: Object[null]
951
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
952
+ nr 12 <|@ st <@st|@live-base-pointers: []
953
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
954
+ locals: -
955
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
956
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
957
+ end_IR
958
+ end_block
959
+ end_cfg
960
+ begin_bytecodes
961
+ 0: aload_0
962
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
963
+ 6: ireturn
964
+ <|@
965
+ end_bytecodes
966
+ begin_cfg
967
+ name "After LSStackSlotAllocator"
968
+ begin_block
969
+ name "B0"
970
+ from_bci -1
971
+ to_bci -1
972
+ predecessors
973
+ successors
974
+ xhandlers
975
+ flags
976
+ probability 4607182418800017408
977
+ begin_IR
978
+ LIR
979
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
980
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
981
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
982
+ nr 8 <|@ st <@st|@live-base-pointers: []
983
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
984
+ locals: Object[null]
985
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
986
+ nr 12 <|@ st <@st|@live-base-pointers: []
987
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
988
+ locals: -
989
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
990
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
991
+ end_IR
992
+ end_block
993
+ end_cfg
994
+ begin_bytecodes
995
+ 0: aload_0
996
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
997
+ 6: ireturn
998
+ <|@
999
+ end_bytecodes
1000
+ begin_cfg
1001
+ name "After LocationMarker"
1002
+ begin_block
1003
+ name "B0"
1004
+ from_bci -1
1005
+ to_bci -1
1006
+ predecessors
1007
+ successors
1008
+ xhandlers
1009
+ flags
1010
+ probability 4607182418800017408
1011
+ begin_IR
1012
+ LIR
1013
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1014
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1015
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1016
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1017
+ live-base-pointers: []
1018
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1019
+ locals: Object[null]
1020
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1021
+ nr 12 <|@ st <@st|@reference-map: []
1022
+ live-base-pointers: []
1023
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1024
+ locals: -
1025
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1026
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1027
+ end_IR
1028
+ end_block
1029
+ end_cfg
1030
+ begin_bytecodes
1031
+ 0: aload_0
1032
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1033
+ 6: ireturn
1034
+ <|@
1035
+ end_bytecodes
1036
+ begin_cfg
1037
+ name "After AllocationStage"
1038
+ begin_block
1039
+ name "B0"
1040
+ from_bci -1
1041
+ to_bci -1
1042
+ predecessors
1043
+ successors
1044
+ xhandlers
1045
+ flags
1046
+ probability 4607182418800017408
1047
+ begin_IR
1048
+ LIR
1049
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1050
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1051
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1052
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1053
+ live-base-pointers: []
1054
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1055
+ locals: Object[null]
1056
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1057
+ nr 12 <|@ st <@st|@reference-map: []
1058
+ live-base-pointers: []
1059
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1060
+ locals: -
1061
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1062
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1063
+ end_IR
1064
+ end_block
1065
+ end_cfg
1066
+ begin_bytecodes
1067
+ 0: aload_0
1068
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1069
+ 6: ireturn
1070
+ <|@
1071
+ end_bytecodes
1072
+ begin_cfg
1073
+ name "After EdgeMoveOptimizer"
1074
+ begin_block
1075
+ name "B0"
1076
+ from_bci -1
1077
+ to_bci -1
1078
+ predecessors
1079
+ successors
1080
+ xhandlers
1081
+ flags
1082
+ probability 4607182418800017408
1083
+ begin_IR
1084
+ LIR
1085
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1086
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1087
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1088
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1089
+ live-base-pointers: []
1090
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1091
+ locals: Object[null]
1092
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1093
+ nr 12 <|@ st <@st|@reference-map: []
1094
+ live-base-pointers: []
1095
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1096
+ locals: -
1097
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1098
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1099
+ end_IR
1100
+ end_block
1101
+ end_cfg
1102
+ begin_bytecodes
1103
+ 0: aload_0
1104
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1105
+ 6: ireturn
1106
+ <|@
1107
+ end_bytecodes
1108
+ begin_cfg
1109
+ name "After ControlFlowOptimizer"
1110
+ begin_block
1111
+ name "B0"
1112
+ from_bci -1
1113
+ to_bci -1
1114
+ predecessors
1115
+ successors
1116
+ xhandlers
1117
+ flags
1118
+ probability 4607182418800017408
1119
+ begin_IR
1120
+ LIR
1121
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1122
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1123
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1124
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1125
+ live-base-pointers: []
1126
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1127
+ locals: Object[null]
1128
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1129
+ nr 12 <|@ st <@st|@reference-map: []
1130
+ live-base-pointers: []
1131
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1132
+ locals: -
1133
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1134
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1135
+ end_IR
1136
+ end_block
1137
+ end_cfg
1138
+ begin_bytecodes
1139
+ 0: aload_0
1140
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1141
+ 6: ireturn
1142
+ <|@
1143
+ end_bytecodes
1144
+ begin_cfg
1145
+ name "After RedundantMoveElimination"
1146
+ begin_block
1147
+ name "B0"
1148
+ from_bci -1
1149
+ to_bci -1
1150
+ predecessors
1151
+ successors
1152
+ xhandlers
1153
+ flags
1154
+ probability 4607182418800017408
1155
+ begin_IR
1156
+ LIR
1157
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1158
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1159
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1160
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1161
+ live-base-pointers: []
1162
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1163
+ locals: Object[null]
1164
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1165
+ nr 12 <|@ st <@st|@reference-map: []
1166
+ live-base-pointers: []
1167
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1168
+ locals: -
1169
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1170
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1171
+ end_IR
1172
+ end_block
1173
+ end_cfg
1174
+ begin_bytecodes
1175
+ 0: aload_0
1176
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1177
+ 6: ireturn
1178
+ <|@
1179
+ end_bytecodes
1180
+ begin_cfg
1181
+ name "After NullCheckOptimizer"
1182
+ begin_block
1183
+ name "B0"
1184
+ from_bci -1
1185
+ to_bci -1
1186
+ predecessors
1187
+ successors
1188
+ xhandlers
1189
+ flags
1190
+ probability 4607182418800017408
1191
+ begin_IR
1192
+ LIR
1193
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1194
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1195
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1196
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1197
+ live-base-pointers: []
1198
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1199
+ locals: Object[null]
1200
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1201
+ nr 12 <|@ st <@st|@reference-map: []
1202
+ live-base-pointers: []
1203
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1204
+ locals: -
1205
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1206
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1207
+ end_IR
1208
+ end_block
1209
+ end_cfg
1210
+ begin_bytecodes
1211
+ 0: aload_0
1212
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1213
+ 6: ireturn
1214
+ <|@
1215
+ end_bytecodes
1216
+ begin_cfg
1217
+ name "After StackMoveOptimization"
1218
+ begin_block
1219
+ name "B0"
1220
+ from_bci -1
1221
+ to_bci -1
1222
+ predecessors
1223
+ successors
1224
+ xhandlers
1225
+ flags
1226
+ probability 4607182418800017408
1227
+ begin_IR
1228
+ LIR
1229
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1230
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1231
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1232
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1233
+ live-base-pointers: []
1234
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1235
+ locals: Object[null]
1236
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1237
+ nr 12 <|@ st <@st|@reference-map: []
1238
+ live-base-pointers: []
1239
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1240
+ locals: -
1241
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1242
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1243
+ end_IR
1244
+ end_block
1245
+ end_cfg
1246
+ begin_bytecodes
1247
+ 0: aload_0
1248
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1249
+ 6: ireturn
1250
+ <|@
1251
+ end_bytecodes
1252
+ begin_cfg
1253
+ name "After PostAllocationOptimizationStage"
1254
+ begin_block
1255
+ name "B0"
1256
+ from_bci -1
1257
+ to_bci -1
1258
+ predecessors
1259
+ successors
1260
+ xhandlers
1261
+ flags
1262
+ probability 4607182418800017408
1263
+ begin_IR
1264
+ LIR
1265
+ nr 0 <|@ instruction [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1266
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1267
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <|@ <|@
1268
+ nr 8 <|@ st <@st|@reference-map: [rsi:0]
1269
+ live-base-pointers: []
1270
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0]
1271
+ locals: Object[null]
1272
+ >@ <|@ instruction NULLCHECK [rsi|QWORD[.]] state [bci:0] <|@ <|@
1273
+ nr 12 <|@ st <@st|@reference-map: []
1274
+ live-base-pointers: []
1275
+ JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1]
1276
+ locals: -
1277
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <|@ <|@
1278
+ nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <|@ <|@
1279
+ end_IR
1280
+ end_block
1281
+ end_cfg
1282
+ begin_bytecodes
1283
+ 0: aload_0
1284
+ 1: invokeinterface#55, 1 // JavaExamples$InterfaceManyImpls.interfaceCall:()int
1285
+ 6: ireturn
1286
+ <|@
1287
+ end_bytecodes
1288
+ begin_cfg
1289
+ name "After code generation"
1290
+ end_cfg
1291
+ begin_nmethod
1292
+ <<<HexCodeFile
1293
+ Platform AMD64 64 <||@
1294
+ HexCode 0 89842400c0feff4883ec1848896c2410850648b8ffffffffffffffff666690e80000000090488b6c24104883c418850500000000c5f877c3e80000000090e80000000090 <||@
1295
+ Comment 0 [stack overflow check] <||@
1296
+ Comment 0 3 <||@
1297
+ Comment 0 1 <||@
1298
+ Comment 11 block B0 null <||@
1299
+ Comment 11 0 [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1300
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
1301
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <||@
1302
+ Comment 16 8 NULLCHECK [rsi|QWORD[.]] state [bci:0] <||@
1303
+ Comment 16 [rsi:0]at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0, duringCall: false, rethrow: false]
1304
+ |0
1305
+ locals: |Object[null] <||@
1306
+ Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
1307
+ Comment 18 12 rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <||@
1308
+ Comment 18 6 <||@
1309
+ Comment 31 {HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()>} <||@
1310
+ Comment 36 []at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1, duringCall: true, rethrow: false]
1311
+ |0
1312
+ locals: |- <||@
1313
+ Comment 37 18 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <||@
1314
+ Comment 46 12 <||@
1315
+ Comment 56 {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} <||@
1316
+ Comment 56 4 <||@
1317
+ Comment 62 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1044bc128, value=4562715200]:0x10ff58240} <||@
1318
+ Comment 62 5 <||@
1319
+ HexCodeFile>>> <|@
1320
+ end_nmethod
1321
+ begin_compilation
1322
+ name " HotSpotCompilation-361[JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)]"
1323
+ method "HotSpotCompilation-361[JavaExamples.exampleInterfaceCallManyImpls(JavaExamples$InterfaceManyImpls)]"
1324
+ date 1583840237799
1325
+ end_compilation
1326
+ begin_cfg
1327
+ name "After code installation"
1328
+ end_cfg
1329
+ begin_nmethod
1330
+ <<<HexCodeFile
1331
+ Platform AMD64 64 <||@
1332
+ HexCode 1100a6aa0 89842400c0feff4883ec1848896c2410850648b8280a06c007000000666690e83c1eebff90488b6c24104883c418850532d51ff2c5f877c3e8c337ffff90e85d17ebff90f4f4f4f4 <||@
1333
+ Comment 0 [stack overflow check] <||@
1334
+ Comment 0 3 <||@
1335
+ Comment 0 1 <||@
1336
+ Comment 11 block B0 null <||@
1337
+ Comment 11 0 [rsi|QWORD[.], rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1338
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
1339
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@12fc690a8 slotKind: QWORD <||@
1340
+ Comment 16 8 NULLCHECK [rsi|QWORD[.]] state [bci:0] <||@
1341
+ Comment 16 [rsi:0]at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 0, duringCall: false, rethrow: false]
1342
+ |0
1343
+ locals: |Object[null] <||@
1344
+ Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
1345
+ Comment 18 12 rax|DWORD = CALL_DIRECT [rsi|QWORD[.]] [] callTarget: HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()> invokeKind: Interface config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 state [bci:1] <||@
1346
+ Comment 18 6 <||@
1347
+ Comment 31 {HotSpotMethod<JavaExamples$InterfaceManyImpls.interfaceCall()>} <||@
1348
+ Comment 36 []at JavaExamples.exampleInterfaceCallManyImpls(JavaExamples.java:111) [bci: 1, duringCall: true, rethrow: false]
1349
+ |0
1350
+ locals: |- <||@
1351
+ Comment 37 18 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13b805f38 <||@
1352
+ Comment 46 12 <||@
1353
+ Comment 56 {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} <||@
1354
+ Comment 56 4 <||@
1355
+ Comment 62 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1044bc128, value=4562715200]:0x10ff58240} <||@
1356
+ Comment 62 5 <||@
1357
+ HexCodeFile>>> <|@
1358
+ end_nmethod