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