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,974 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-125[JavaExamples.exampleNoEscape(int)]"
3
+ method "HotSpotCompilation-125[JavaExamples.exampleNoEscape(int)]"
4
+ date 1583364091755
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: v9
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid i1 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 0
36
+ stamp: i32
37
+ uncheckedStamp: [null]
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ v9
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@*|@fixed>@ <|@
46
+ tid v9 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ nodeSourcePosition: at JavaExamples.exampleNoEscape(JavaExamples.java:127) [bci: 11]
49
+ stamp: void
50
+ === Inputs ===
51
+ result: i1
52
+ memoryMap: -
53
+ === Succesors ===
54
+ === Usages ===
55
+ === Predecessor ===
56
+ v0 >@ <|@
57
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
58
+ end_IR
59
+ end_block
60
+ end_cfg
61
+ begin_cfg
62
+ name "After LIRGeneration"
63
+ begin_block
64
+ name "B0"
65
+ from_bci -1
66
+ to_bci -1
67
+ predecessors
68
+ successors
69
+ xhandlers
70
+ flags
71
+ probability 4607182418800017408
72
+ begin_IR
73
+ LIR
74
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
75
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
76
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
77
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
78
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
79
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
80
+ end_IR
81
+ end_block
82
+ end_cfg
83
+ begin_bytecodes
84
+ 0: iconst_1
85
+ 1: newarray int
86
+ 3: dup
87
+ 4: iconst_0
88
+ 5: iload_0
89
+ 6: iastore
90
+ 7: astore_1
91
+ 8: aload_1
92
+ 9: iconst_0
93
+ 10: iaload
94
+ 11: ireturn
95
+ <|@
96
+ end_bytecodes
97
+ begin_cfg
98
+ name "After LIR generation"
99
+ begin_block
100
+ name "B0"
101
+ from_bci -1
102
+ to_bci -1
103
+ predecessors
104
+ successors
105
+ xhandlers
106
+ flags
107
+ probability 4607182418800017408
108
+ begin_IR
109
+ HIR
110
+ f <@#|@fixed with next>@ <|@
111
+ tid v0 <|@
112
+ d <@d|@=== Debug Properties ===
113
+ stamp: void
114
+ withSpeculationFence: false
115
+ === Inputs ===
116
+ stateAfter: -
117
+ === Succesors ===
118
+ next: v9
119
+ === Usages ===
120
+ === Predecessor ===
121
+ - >@ <|@
122
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
123
+ f <@~|@floating>@ <|@
124
+ tid i1 <|@
125
+ result v0|DWORD <|@
126
+ d <@d|@=== Debug Properties ===
127
+ index: 0
128
+ stamp: i32
129
+ uncheckedStamp: [null]
130
+ === Inputs ===
131
+ === Succesors ===
132
+ === Usages ===
133
+ v9
134
+ === Predecessor ===
135
+ - >@ <|@
136
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
137
+ f <@*|@fixed>@ <|@
138
+ tid v9 <|@
139
+ d <@d|@=== Debug Properties ===
140
+ nodeSourcePosition: at JavaExamples.exampleNoEscape(JavaExamples.java:127) [bci: 11]
141
+ stamp: void
142
+ === Inputs ===
143
+ result: i1
144
+ memoryMap: -
145
+ === Succesors ===
146
+ === Usages ===
147
+ === Predecessor ===
148
+ v0 >@ <|@
149
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
150
+ end_IR
151
+ begin_IR
152
+ LIR
153
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
154
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
155
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
156
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
157
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
158
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
159
+ end_IR
160
+ end_block
161
+ end_cfg
162
+ begin_cfg
163
+ name "After ConstantLoadOptimization"
164
+ begin_block
165
+ name "B0"
166
+ from_bci -1
167
+ to_bci -1
168
+ predecessors
169
+ successors
170
+ xhandlers
171
+ flags
172
+ probability 4607182418800017408
173
+ begin_IR
174
+ LIR
175
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
176
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
177
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
178
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
179
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
180
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
181
+ end_IR
182
+ end_block
183
+ end_cfg
184
+ begin_bytecodes
185
+ 0: iconst_1
186
+ 1: newarray int
187
+ 3: dup
188
+ 4: iconst_0
189
+ 5: iload_0
190
+ 6: iastore
191
+ 7: astore_1
192
+ 8: aload_1
193
+ 9: iconst_0
194
+ 10: iaload
195
+ 11: ireturn
196
+ <|@
197
+ end_bytecodes
198
+ begin_cfg
199
+ name "After SaveCalleeSaveRegisters"
200
+ begin_block
201
+ name "B0"
202
+ from_bci -1
203
+ to_bci -1
204
+ predecessors
205
+ successors
206
+ xhandlers
207
+ flags
208
+ probability 4607182418800017408
209
+ begin_IR
210
+ LIR
211
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
212
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
213
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
214
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
215
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
216
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
217
+ end_IR
218
+ end_block
219
+ end_cfg
220
+ begin_bytecodes
221
+ 0: iconst_1
222
+ 1: newarray int
223
+ 3: dup
224
+ 4: iconst_0
225
+ 5: iload_0
226
+ 6: iastore
227
+ 7: astore_1
228
+ 8: aload_1
229
+ 9: iconst_0
230
+ 10: iaload
231
+ 11: ireturn
232
+ <|@
233
+ end_bytecodes
234
+ begin_cfg
235
+ name "After PreAllocationOptimizationStage"
236
+ begin_block
237
+ name "B0"
238
+ from_bci -1
239
+ to_bci -1
240
+ predecessors
241
+ successors
242
+ xhandlers
243
+ flags
244
+ probability 4607182418800017408
245
+ begin_IR
246
+ LIR
247
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
248
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
249
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
250
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
251
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
252
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
253
+ end_IR
254
+ end_block
255
+ end_cfg
256
+ begin_bytecodes
257
+ 0: iconst_1
258
+ 1: newarray int
259
+ 3: dup
260
+ 4: iconst_0
261
+ 5: iload_0
262
+ 6: iastore
263
+ 7: astore_1
264
+ 8: aload_1
265
+ 9: iconst_0
266
+ 10: iaload
267
+ 11: ireturn
268
+ <|@
269
+ end_bytecodes
270
+ begin_cfg
271
+ name "After MarkBasePointers"
272
+ begin_block
273
+ name "B0"
274
+ from_bci -1
275
+ to_bci -1
276
+ predecessors
277
+ successors
278
+ xhandlers
279
+ flags
280
+ probability 4607182418800017408
281
+ begin_IR
282
+ LIR
283
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
284
+ nr -1 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
285
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
286
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
287
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
288
+ nr -1 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
289
+ end_IR
290
+ end_block
291
+ end_cfg
292
+ begin_bytecodes
293
+ 0: iconst_1
294
+ 1: newarray int
295
+ 3: dup
296
+ 4: iconst_0
297
+ 5: iload_0
298
+ 6: iastore
299
+ 7: astore_1
300
+ 8: aload_1
301
+ 9: iconst_0
302
+ 10: iaload
303
+ 11: ireturn
304
+ <|@
305
+ end_bytecodes
306
+ begin_cfg
307
+ name "Before register allocation"
308
+ begin_block
309
+ name "B0"
310
+ from_bci -1
311
+ to_bci -1
312
+ predecessors
313
+ successors
314
+ xhandlers
315
+ flags
316
+ probability 4607182418800017408
317
+ begin_IR
318
+ LIR
319
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
320
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
321
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
322
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
323
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
324
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
325
+ end_IR
326
+ end_block
327
+ end_cfg
328
+ begin_bytecodes
329
+ 0: iconst_1
330
+ 1: newarray int
331
+ 3: dup
332
+ 4: iconst_0
333
+ 5: iload_0
334
+ 6: iastore
335
+ 7: astore_1
336
+ 8: aload_1
337
+ 9: iconst_0
338
+ 10: iaload
339
+ 11: ireturn
340
+ <|@
341
+ end_bytecodes
342
+ begin_cfg
343
+ name "After SSALinearScanLifetimeAnalysis"
344
+ begin_block
345
+ name "B0"
346
+ from_bci -1
347
+ to_bci -1
348
+ predecessors
349
+ successors
350
+ xhandlers
351
+ flags
352
+ probability 4607182418800017408
353
+ begin_IR
354
+ LIR
355
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
356
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
357
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
358
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
359
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
360
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
361
+ end_IR
362
+ end_block
363
+ end_cfg
364
+ begin_bytecodes
365
+ 0: iconst_1
366
+ 1: newarray int
367
+ 3: dup
368
+ 4: iconst_0
369
+ 5: iload_0
370
+ 6: iastore
371
+ 7: astore_1
372
+ 8: aload_1
373
+ 9: iconst_0
374
+ 10: iaload
375
+ 11: ireturn
376
+ <|@
377
+ end_bytecodes
378
+ begin_intervals
379
+ name "Before register allocation"
380
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[8, 10[ "NoSpillStore"
381
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
382
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
383
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 ShouldHaveRegister "NoSpillStore"
384
+ v1|q QWORD "[v1|q]" v1|q rbp|q [2, 10[2 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
385
+ end_intervals
386
+ begin_intervals
387
+ name "After register allocation"
388
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[8, 10[ "NoSpillStore"
389
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
390
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
391
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 ShouldHaveRegister "NoSpillStore"
392
+ v1|q QWORD "[rbp|q]" v1|q rbp|q [2, 10[2 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
393
+ end_intervals
394
+ begin_cfg
395
+ name "After LinearScanRegisterAllocation"
396
+ begin_block
397
+ name "B0"
398
+ from_bci -1
399
+ to_bci -1
400
+ predecessors
401
+ successors
402
+ xhandlers
403
+ flags
404
+ probability 4607182418800017408
405
+ begin_IR
406
+ LIR
407
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
408
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
409
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
410
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
411
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
412
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
413
+ end_IR
414
+ end_block
415
+ end_cfg
416
+ begin_bytecodes
417
+ 0: iconst_1
418
+ 1: newarray int
419
+ 3: dup
420
+ 4: iconst_0
421
+ 5: iload_0
422
+ 6: iastore
423
+ 7: astore_1
424
+ 8: aload_1
425
+ 9: iconst_0
426
+ 10: iaload
427
+ 11: ireturn
428
+ <|@
429
+ end_bytecodes
430
+ begin_intervals
431
+ name "After optimize spill position"
432
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[8, 10[ "NoSpillStore"
433
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
434
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
435
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 ShouldHaveRegister "NoSpillStore"
436
+ v1|q QWORD "[rbp|q]" v1|q rbp|q [2, 10[2 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
437
+ end_intervals
438
+ begin_cfg
439
+ name "After LinearScanOptimizeSpillPosition"
440
+ begin_block
441
+ name "B0"
442
+ from_bci -1
443
+ to_bci -1
444
+ predecessors
445
+ successors
446
+ xhandlers
447
+ flags
448
+ probability 4607182418800017408
449
+ begin_IR
450
+ LIR
451
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
452
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
453
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
454
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
455
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
456
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
457
+ end_IR
458
+ end_block
459
+ end_cfg
460
+ begin_bytecodes
461
+ 0: iconst_1
462
+ 1: newarray int
463
+ 3: dup
464
+ 4: iconst_0
465
+ 5: iload_0
466
+ 6: iastore
467
+ 7: astore_1
468
+ 8: aload_1
469
+ 9: iconst_0
470
+ 10: iaload
471
+ 11: ireturn
472
+ <|@
473
+ end_bytecodes
474
+ begin_intervals
475
+ name "After resolve data flow"
476
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[8, 10[ "NoSpillStore"
477
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
478
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
479
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 ShouldHaveRegister "NoSpillStore"
480
+ v1|q QWORD "[rbp|q]" v1|q rbp|q [2, 10[2 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
481
+ end_intervals
482
+ begin_cfg
483
+ name "After SSALinearScanResolveDataFlow"
484
+ begin_block
485
+ name "B0"
486
+ from_bci -1
487
+ to_bci -1
488
+ predecessors
489
+ successors
490
+ xhandlers
491
+ flags
492
+ probability 4607182418800017408
493
+ begin_IR
494
+ LIR
495
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
496
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
497
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
498
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
499
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
500
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
501
+ end_IR
502
+ end_block
503
+ end_cfg
504
+ begin_bytecodes
505
+ 0: iconst_1
506
+ 1: newarray int
507
+ 3: dup
508
+ 4: iconst_0
509
+ 5: iload_0
510
+ 6: iastore
511
+ 7: astore_1
512
+ 8: aload_1
513
+ 9: iconst_0
514
+ 10: iaload
515
+ 11: ireturn
516
+ <|@
517
+ end_bytecodes
518
+ begin_cfg
519
+ name "After SSALinearScanEliminateSpillMove"
520
+ begin_block
521
+ name "B0"
522
+ from_bci -1
523
+ to_bci -1
524
+ predecessors
525
+ successors
526
+ xhandlers
527
+ flags
528
+ probability 4607182418800017408
529
+ begin_IR
530
+ LIR
531
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
532
+ nr 2 <|@ instruction v1|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
533
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
534
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
535
+ nr 8 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
536
+ nr 10 <|@ instruction RETURN (savedRbp: v1|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
537
+ end_IR
538
+ end_block
539
+ end_cfg
540
+ begin_bytecodes
541
+ 0: iconst_1
542
+ 1: newarray int
543
+ 3: dup
544
+ 4: iconst_0
545
+ 5: iload_0
546
+ 6: iastore
547
+ 7: astore_1
548
+ 8: aload_1
549
+ 9: iconst_0
550
+ 10: iaload
551
+ 11: ireturn
552
+ <|@
553
+ end_bytecodes
554
+ begin_cfg
555
+ name "After LinearScanAssignLocations"
556
+ begin_block
557
+ name "B0"
558
+ from_bci -1
559
+ to_bci -1
560
+ predecessors
561
+ successors
562
+ xhandlers
563
+ flags
564
+ probability 4607182418800017408
565
+ begin_IR
566
+ LIR
567
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
568
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
569
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
570
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
571
+ end_IR
572
+ end_block
573
+ end_cfg
574
+ begin_bytecodes
575
+ 0: iconst_1
576
+ 1: newarray int
577
+ 3: dup
578
+ 4: iconst_0
579
+ 5: iload_0
580
+ 6: iastore
581
+ 7: astore_1
582
+ 8: aload_1
583
+ 9: iconst_0
584
+ 10: iaload
585
+ 11: ireturn
586
+ <|@
587
+ end_bytecodes
588
+ begin_cfg
589
+ name "After LinearScan"
590
+ begin_block
591
+ name "B0"
592
+ from_bci -1
593
+ to_bci -1
594
+ predecessors
595
+ successors
596
+ xhandlers
597
+ flags
598
+ probability 4607182418800017408
599
+ begin_IR
600
+ LIR
601
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
602
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
603
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
604
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
605
+ end_IR
606
+ end_block
607
+ end_cfg
608
+ begin_bytecodes
609
+ 0: iconst_1
610
+ 1: newarray int
611
+ 3: dup
612
+ 4: iconst_0
613
+ 5: iload_0
614
+ 6: iastore
615
+ 7: astore_1
616
+ 8: aload_1
617
+ 9: iconst_0
618
+ 10: iaload
619
+ 11: ireturn
620
+ <|@
621
+ end_bytecodes
622
+ begin_cfg
623
+ name "After LSStackSlotAllocator"
624
+ begin_block
625
+ name "B0"
626
+ from_bci -1
627
+ to_bci -1
628
+ predecessors
629
+ successors
630
+ xhandlers
631
+ flags
632
+ probability 4607182418800017408
633
+ begin_IR
634
+ LIR
635
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
636
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
637
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
638
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
639
+ end_IR
640
+ end_block
641
+ end_cfg
642
+ begin_bytecodes
643
+ 0: iconst_1
644
+ 1: newarray int
645
+ 3: dup
646
+ 4: iconst_0
647
+ 5: iload_0
648
+ 6: iastore
649
+ 7: astore_1
650
+ 8: aload_1
651
+ 9: iconst_0
652
+ 10: iaload
653
+ 11: ireturn
654
+ <|@
655
+ end_bytecodes
656
+ begin_cfg
657
+ name "After LocationMarker"
658
+ begin_block
659
+ name "B0"
660
+ from_bci -1
661
+ to_bci -1
662
+ predecessors
663
+ successors
664
+ xhandlers
665
+ flags
666
+ probability 4607182418800017408
667
+ begin_IR
668
+ LIR
669
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
670
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
671
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
672
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
673
+ end_IR
674
+ end_block
675
+ end_cfg
676
+ begin_bytecodes
677
+ 0: iconst_1
678
+ 1: newarray int
679
+ 3: dup
680
+ 4: iconst_0
681
+ 5: iload_0
682
+ 6: iastore
683
+ 7: astore_1
684
+ 8: aload_1
685
+ 9: iconst_0
686
+ 10: iaload
687
+ 11: ireturn
688
+ <|@
689
+ end_bytecodes
690
+ begin_cfg
691
+ name "After AllocationStage"
692
+ begin_block
693
+ name "B0"
694
+ from_bci -1
695
+ to_bci -1
696
+ predecessors
697
+ successors
698
+ xhandlers
699
+ flags
700
+ probability 4607182418800017408
701
+ begin_IR
702
+ LIR
703
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
704
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
705
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
706
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
707
+ end_IR
708
+ end_block
709
+ end_cfg
710
+ begin_bytecodes
711
+ 0: iconst_1
712
+ 1: newarray int
713
+ 3: dup
714
+ 4: iconst_0
715
+ 5: iload_0
716
+ 6: iastore
717
+ 7: astore_1
718
+ 8: aload_1
719
+ 9: iconst_0
720
+ 10: iaload
721
+ 11: ireturn
722
+ <|@
723
+ end_bytecodes
724
+ begin_cfg
725
+ name "After EdgeMoveOptimizer"
726
+ begin_block
727
+ name "B0"
728
+ from_bci -1
729
+ to_bci -1
730
+ predecessors
731
+ successors
732
+ xhandlers
733
+ flags
734
+ probability 4607182418800017408
735
+ begin_IR
736
+ LIR
737
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
738
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
739
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
740
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
741
+ end_IR
742
+ end_block
743
+ end_cfg
744
+ begin_bytecodes
745
+ 0: iconst_1
746
+ 1: newarray int
747
+ 3: dup
748
+ 4: iconst_0
749
+ 5: iload_0
750
+ 6: iastore
751
+ 7: astore_1
752
+ 8: aload_1
753
+ 9: iconst_0
754
+ 10: iaload
755
+ 11: ireturn
756
+ <|@
757
+ end_bytecodes
758
+ begin_cfg
759
+ name "After ControlFlowOptimizer"
760
+ begin_block
761
+ name "B0"
762
+ from_bci -1
763
+ to_bci -1
764
+ predecessors
765
+ successors
766
+ xhandlers
767
+ flags
768
+ probability 4607182418800017408
769
+ begin_IR
770
+ LIR
771
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
772
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
773
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
774
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
775
+ end_IR
776
+ end_block
777
+ end_cfg
778
+ begin_bytecodes
779
+ 0: iconst_1
780
+ 1: newarray int
781
+ 3: dup
782
+ 4: iconst_0
783
+ 5: iload_0
784
+ 6: iastore
785
+ 7: astore_1
786
+ 8: aload_1
787
+ 9: iconst_0
788
+ 10: iaload
789
+ 11: ireturn
790
+ <|@
791
+ end_bytecodes
792
+ begin_cfg
793
+ name "After RedundantMoveElimination"
794
+ begin_block
795
+ name "B0"
796
+ from_bci -1
797
+ to_bci -1
798
+ predecessors
799
+ successors
800
+ xhandlers
801
+ flags
802
+ probability 4607182418800017408
803
+ begin_IR
804
+ LIR
805
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
806
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
807
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
808
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
809
+ end_IR
810
+ end_block
811
+ end_cfg
812
+ begin_bytecodes
813
+ 0: iconst_1
814
+ 1: newarray int
815
+ 3: dup
816
+ 4: iconst_0
817
+ 5: iload_0
818
+ 6: iastore
819
+ 7: astore_1
820
+ 8: aload_1
821
+ 9: iconst_0
822
+ 10: iaload
823
+ 11: ireturn
824
+ <|@
825
+ end_bytecodes
826
+ begin_cfg
827
+ name "After NullCheckOptimizer"
828
+ begin_block
829
+ name "B0"
830
+ from_bci -1
831
+ to_bci -1
832
+ predecessors
833
+ successors
834
+ xhandlers
835
+ flags
836
+ probability 4607182418800017408
837
+ begin_IR
838
+ LIR
839
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
840
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
841
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
842
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
843
+ end_IR
844
+ end_block
845
+ end_cfg
846
+ begin_bytecodes
847
+ 0: iconst_1
848
+ 1: newarray int
849
+ 3: dup
850
+ 4: iconst_0
851
+ 5: iload_0
852
+ 6: iastore
853
+ 7: astore_1
854
+ 8: aload_1
855
+ 9: iconst_0
856
+ 10: iaload
857
+ 11: ireturn
858
+ <|@
859
+ end_bytecodes
860
+ begin_cfg
861
+ name "After StackMoveOptimization"
862
+ begin_block
863
+ name "B0"
864
+ from_bci -1
865
+ to_bci -1
866
+ predecessors
867
+ successors
868
+ xhandlers
869
+ flags
870
+ probability 4607182418800017408
871
+ begin_IR
872
+ LIR
873
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
874
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
875
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
876
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
877
+ end_IR
878
+ end_block
879
+ end_cfg
880
+ begin_bytecodes
881
+ 0: iconst_1
882
+ 1: newarray int
883
+ 3: dup
884
+ 4: iconst_0
885
+ 5: iload_0
886
+ 6: iastore
887
+ 7: astore_1
888
+ 8: aload_1
889
+ 9: iconst_0
890
+ 10: iaload
891
+ 11: ireturn
892
+ <|@
893
+ end_bytecodes
894
+ begin_cfg
895
+ name "After PostAllocationOptimizationStage"
896
+ begin_block
897
+ name "B0"
898
+ from_bci -1
899
+ to_bci -1
900
+ predecessors
901
+ successors
902
+ xhandlers
903
+ flags
904
+ probability 4607182418800017408
905
+ begin_IR
906
+ LIR
907
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
908
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <|@ <|@
909
+ nr 8 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
910
+ nr 10 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
911
+ end_IR
912
+ end_block
913
+ end_cfg
914
+ begin_bytecodes
915
+ 0: iconst_1
916
+ 1: newarray int
917
+ 3: dup
918
+ 4: iconst_0
919
+ 5: iload_0
920
+ 6: iastore
921
+ 7: astore_1
922
+ 8: aload_1
923
+ 9: iconst_0
924
+ 10: iaload
925
+ 11: ireturn
926
+ <|@
927
+ end_bytecodes
928
+ begin_cfg
929
+ name "After code generation"
930
+ end_cfg
931
+ begin_nmethod
932
+ <<<HexCodeFile
933
+ Platform AMD64 64 <||@
934
+ HexCode 0 0f1f4400008bc6850500000000c5f877c3e80000000090e80000000090 <||@
935
+ Comment 0 3 <||@
936
+ Comment 0 1 <||@
937
+ Comment 5 block B0 null <||@
938
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
939
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <||@
940
+ Comment 5 8 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
941
+ Comment 7 10 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
942
+ Comment 7 12 <||@
943
+ Comment 17 {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} <||@
944
+ Comment 17 4 <||@
945
+ Comment 23 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
946
+ Comment 23 5 <||@
947
+ HexCodeFile>>> <|@
948
+ end_nmethod
949
+ begin_compilation
950
+ name " HotSpotCompilation-125[JavaExamples.exampleNoEscape(int)]"
951
+ method "HotSpotCompilation-125[JavaExamples.exampleNoEscape(int)]"
952
+ date 1583364091767
953
+ end_compilation
954
+ begin_cfg
955
+ name "After code installation"
956
+ end_cfg
957
+ begin_nmethod
958
+ <<<HexCodeFile
959
+ Platform AMD64 64 <||@
960
+ HexCode 112e32de0 0f1f4400008bc68505198293fbc5f877c3e82a15ffff90e84414ebff90f4f4f4 <||@
961
+ Comment 0 3 <||@
962
+ Comment 0 1 <||@
963
+ Comment 5 block B0 null <||@
964
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
965
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c1922f8 slotKind: QWORD <||@
966
+ Comment 5 8 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
967
+ Comment 7 10 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
968
+ Comment 7 12 <||@
969
+ Comment 17 {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} <||@
970
+ Comment 17 4 <||@
971
+ Comment 23 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
972
+ Comment 23 5 <||@
973
+ HexCodeFile>>> <|@
974
+ end_nmethod