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