seafoam 0.2 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +39 -0
  3. data/.rubocop.yml +4 -1
  4. data/README.md +107 -27
  5. data/bin/bgv2isabelle +16 -45
  6. data/bin/bgv2json +18 -36
  7. data/bin/cfg2asm +24 -0
  8. data/bin/seafoam +2 -2
  9. data/demos/box-unbox-stats +65 -0
  10. data/docs/bgv.md +16 -7
  11. data/docs/getting-graphs.md +12 -0
  12. data/docs/json.md +35 -0
  13. data/examples/fib-java.bgv.gz +0 -0
  14. data/examples/fib.js +1 -1
  15. data/examples/java/JavaExamples.java +1 -1
  16. data/examples/ruby/clamps.rb +20 -0
  17. data/examples/ruby/graal.patch +15 -0
  18. data/examples/ruby/ruby_examples.rb +278 -0
  19. data/lib/seafoam.rb +5 -1
  20. data/lib/seafoam/annotators/graal.rb +1 -1
  21. data/lib/seafoam/bgv/bgv_parser.rb +12 -2
  22. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  23. data/lib/seafoam/cfg/disassembler.rb +70 -0
  24. data/lib/seafoam/commands.rb +196 -36
  25. data/lib/seafoam/graal/source.rb +23 -0
  26. data/lib/seafoam/isabelle_writer.rb +46 -0
  27. data/lib/seafoam/json_writer.rb +58 -0
  28. data/lib/seafoam/version.rb +1 -1
  29. data/seafoam.gemspec +4 -2
  30. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  31. data/spec/seafoam/bgv/bgv_parser_spec.rb +27 -14
  32. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  33. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  34. data/spec/seafoam/command_spec.rb +94 -30
  35. data/spec/seafoam/graphviz_writer_spec.rb +2 -2
  36. data/spec/seafoam/json_writer_spec.rb +14 -0
  37. data/spec/seafoam/spec_helpers.rb +5 -1
  38. data/spec/seafoam/spotlight_spec.rb +1 -1
  39. data/tools/render-all +2 -2
  40. metadata +34 -98
  41. data/.github/workflows/rubocop.yml +0 -10
  42. data/.github/workflows/specs.yml +0 -19
  43. data/examples/fib-java.bgv +0 -0
  44. data/examples/fib-js.bgv +0 -0
  45. data/examples/fib-ruby.bgv +0 -0
  46. data/examples/identity.bgv +0 -0
  47. data/examples/java/exampleArithOperator.bgv +0 -0
  48. data/examples/java/exampleArithOperator.cfg +0 -925
  49. data/examples/java/exampleArrayAllocation.bgv +0 -0
  50. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  51. data/examples/java/exampleArrayRead.bgv +0 -0
  52. data/examples/java/exampleArrayRead.cfg +0 -2263
  53. data/examples/java/exampleArrayWrite.bgv +0 -0
  54. data/examples/java/exampleArrayWrite.cfg +0 -2315
  55. data/examples/java/exampleCatch.bgv +0 -0
  56. data/examples/java/exampleCatch.cfg +0 -4150
  57. data/examples/java/exampleCompareOperator.bgv +0 -0
  58. data/examples/java/exampleCompareOperator.cfg +0 -1109
  59. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  60. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  61. data/examples/java/exampleExactArith.bgv +0 -0
  62. data/examples/java/exampleExactArith.cfg +0 -1888
  63. data/examples/java/exampleFieldRead.bgv +0 -0
  64. data/examples/java/exampleFieldRead.cfg +0 -1228
  65. data/examples/java/exampleFieldWrite.bgv +0 -0
  66. data/examples/java/exampleFieldWrite.cfg +0 -1102
  67. data/examples/java/exampleFor.bgv +0 -0
  68. data/examples/java/exampleFor.cfg +0 -3936
  69. data/examples/java/exampleFullEscape.bgv +0 -0
  70. data/examples/java/exampleFullEscape.cfg +0 -5893
  71. data/examples/java/exampleIf.bgv +0 -0
  72. data/examples/java/exampleIf.cfg +0 -2462
  73. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  74. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  75. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  76. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  77. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  78. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  79. data/examples/java/exampleIntSwitch.bgv +0 -0
  80. data/examples/java/exampleIntSwitch.cfg +0 -3121
  81. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  82. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  83. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  84. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  85. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  86. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  87. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  88. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  89. data/examples/java/exampleLocalVariables.bgv +0 -0
  90. data/examples/java/exampleLocalVariables.cfg +0 -1195
  91. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  92. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  93. data/examples/java/exampleNestedWhile.bgv +0 -0
  94. data/examples/java/exampleNestedWhile.cfg +0 -15499
  95. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  96. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  97. data/examples/java/exampleNoEscape.bgv +0 -0
  98. data/examples/java/exampleNoEscape.cfg +0 -974
  99. data/examples/java/exampleObjectAllocation.bgv +0 -0
  100. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  101. data/examples/java/examplePartialEscape.bgv +0 -0
  102. data/examples/java/examplePartialEscape.cfg +0 -7042
  103. data/examples/java/examplePhi.bgv +0 -0
  104. data/examples/java/examplePhi.cfg +0 -3227
  105. data/examples/java/exampleReducible.bgv +0 -0
  106. data/examples/java/exampleReducible.cfg +0 -5578
  107. data/examples/java/exampleSimpleCall.bgv +0 -0
  108. data/examples/java/exampleSimpleCall.cfg +0 -1435
  109. data/examples/java/exampleStamp.bgv +0 -0
  110. data/examples/java/exampleStamp.cfg +0 -913
  111. data/examples/java/exampleStaticCall.bgv +0 -0
  112. data/examples/java/exampleStaticCall.cfg +0 -1154
  113. data/examples/java/exampleStringSwitch.bgv +0 -0
  114. data/examples/java/exampleStringSwitch.cfg +0 -15377
  115. data/examples/java/exampleSynchronized.bgv +0 -0
  116. data/examples/java/exampleSynchronized.cfg +0 -26027
  117. data/examples/java/exampleThrow.bgv +0 -0
  118. data/examples/java/exampleThrow.cfg +0 -780
  119. data/examples/java/exampleThrowCatch.bgv +0 -0
  120. data/examples/java/exampleThrowCatch.cfg +0 -744
  121. data/examples/java/exampleUnsafeRead.bgv +0 -0
  122. data/examples/java/exampleUnsafeRead.cfg +0 -912
  123. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  124. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  125. data/examples/java/exampleWhile.bgv +0 -0
  126. data/examples/java/exampleWhile.cfg +0 -3936
  127. data/examples/java/exampleWhileBreak.bgv +0 -0
  128. data/examples/java/exampleWhileBreak.cfg +0 -5963
  129. data/examples/matmult-java.bgv +0 -0
  130. data/examples/matmult-ruby.bgv +0 -0
  131. data/examples/overflow.bgv +0 -0
  132. data/lib/seafoam/binary/binary_reader.rb +0 -21
  133. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  134. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
Binary file
@@ -1,974 +0,0 @@
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