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,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