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