seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,962 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-362[JavaExamples.exampleUnsafeWrite(long, int)]"
3
+ method "HotSpotCompilation-362[JavaExamples.exampleUnsafeWrite(long, int)]"
4
+ date 1583364092122
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: v10
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v10 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid j1 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 0
36
+ stamp: i64
37
+ uncheckedStamp: [null]
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ v11
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid v11 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ displacement: 0
49
+ scale: Times1
50
+ stamp: void*
51
+ === Inputs ===
52
+ base: j1
53
+ index: -
54
+ === Succesors ===
55
+ === Usages ===
56
+ v10
57
+ === Predecessor ===
58
+ - >@ <|@
59
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j1 index: - <|@ <|@
60
+ f <@~|@floating>@ <|@
61
+ tid i2 <|@
62
+ d <@d|@=== Debug Properties ===
63
+ index: 1
64
+ stamp: i32
65
+ uncheckedStamp: [null]
66
+ === Inputs ===
67
+ === Succesors ===
68
+ === Usages ===
69
+ v10
70
+ === Predecessor ===
71
+ - >@ <|@
72
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
73
+ f <@#|@fixed with next>@ <|@
74
+ tid v10 <|@
75
+ d <@d|@=== Debug Properties ===
76
+ barrierType: NONE
77
+ location: OFF_HEAP_LOCATION
78
+ nodeSourcePosition: at sun.misc.Unsafe.putInt(long, int) [bci: -1]
79
+ at JavaExamples.exampleUnsafeWrite(JavaExamples.java:321) [bci: 5]
80
+ nullCheck: false
81
+ stamp: void
82
+ volatileAccess: false
83
+ === Inputs ===
84
+ stateBefore: -
85
+ guard: -
86
+ address: v11
87
+ value: i2
88
+ stateAfter: -
89
+ lastLocationAccess: -
90
+ === Succesors ===
91
+ next: v7
92
+ === Usages ===
93
+ === Predecessor ===
94
+ v0 >@ <|@
95
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v11 value: i2 stateAfter: - lastLocationAccess: - #next: v7 <|@ <|@
96
+ f <@*|@fixed>@ <|@
97
+ tid v7 <|@
98
+ d <@d|@=== Debug Properties ===
99
+ nodeSourcePosition: at JavaExamples.exampleUnsafeWrite(JavaExamples.java:322) [bci: 8]
100
+ stamp: void
101
+ === Inputs ===
102
+ result: -
103
+ memoryMap: -
104
+ === Succesors ===
105
+ === Usages ===
106
+ === Predecessor ===
107
+ v10 >@ <|@
108
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
109
+ end_IR
110
+ end_block
111
+ end_cfg
112
+ begin_cfg
113
+ name "After LIRGeneration"
114
+ begin_block
115
+ name "B0"
116
+ from_bci -1
117
+ to_bci -1
118
+ predecessors
119
+ successors
120
+ xhandlers
121
+ flags
122
+ probability 4607182418800017408
123
+ begin_IR
124
+ LIR
125
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
126
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
127
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
128
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
129
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
130
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
131
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
132
+ end_IR
133
+ end_block
134
+ end_cfg
135
+ begin_bytecodes
136
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
137
+ 3: lload_0
138
+ 4: iload_2
139
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
140
+ 8: return
141
+ <|@
142
+ end_bytecodes
143
+ begin_cfg
144
+ name "After LIR generation"
145
+ begin_block
146
+ name "B0"
147
+ from_bci -1
148
+ to_bci -1
149
+ predecessors
150
+ successors
151
+ xhandlers
152
+ flags
153
+ probability 4607182418800017408
154
+ begin_IR
155
+ HIR
156
+ f <@#|@fixed with next>@ <|@
157
+ tid v0 <|@
158
+ d <@d|@=== Debug Properties ===
159
+ stamp: void
160
+ withSpeculationFence: false
161
+ === Inputs ===
162
+ stateAfter: -
163
+ === Succesors ===
164
+ next: v10
165
+ === Usages ===
166
+ === Predecessor ===
167
+ - >@ <|@
168
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v10 <|@ <|@
169
+ f <@~|@floating>@ <|@
170
+ tid j1 <|@
171
+ result v0|QWORD <|@
172
+ d <@d|@=== Debug Properties ===
173
+ index: 0
174
+ stamp: i64
175
+ uncheckedStamp: [null]
176
+ === Inputs ===
177
+ === Succesors ===
178
+ === Usages ===
179
+ v11
180
+ === Predecessor ===
181
+ - >@ <|@
182
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
183
+ f <@~|@floating>@ <|@
184
+ tid v11 <|@
185
+ result [v0|QWORD] <|@
186
+ d <@d|@=== Debug Properties ===
187
+ displacement: 0
188
+ scale: Times1
189
+ stamp: void*
190
+ === Inputs ===
191
+ base: j1
192
+ index: -
193
+ === Succesors ===
194
+ === Usages ===
195
+ v10
196
+ === Predecessor ===
197
+ - >@ <|@
198
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j1 index: - <|@ <|@
199
+ f <@~|@floating>@ <|@
200
+ tid i2 <|@
201
+ result v1|DWORD <|@
202
+ d <@d|@=== Debug Properties ===
203
+ index: 1
204
+ stamp: i32
205
+ uncheckedStamp: [null]
206
+ === Inputs ===
207
+ === Succesors ===
208
+ === Usages ===
209
+ v10
210
+ === Predecessor ===
211
+ - >@ <|@
212
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
213
+ f <@#|@fixed with next>@ <|@
214
+ tid v10 <|@
215
+ d <@d|@=== Debug Properties ===
216
+ barrierType: NONE
217
+ location: OFF_HEAP_LOCATION
218
+ nodeSourcePosition: at sun.misc.Unsafe.putInt(long, int) [bci: -1]
219
+ at JavaExamples.exampleUnsafeWrite(JavaExamples.java:321) [bci: 5]
220
+ nullCheck: false
221
+ stamp: void
222
+ volatileAccess: false
223
+ === Inputs ===
224
+ stateBefore: -
225
+ guard: -
226
+ address: v11
227
+ value: i2
228
+ stateAfter: -
229
+ lastLocationAccess: -
230
+ === Succesors ===
231
+ next: v7
232
+ === Usages ===
233
+ === Predecessor ===
234
+ v0 >@ <|@
235
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v11 value: i2 stateAfter: - lastLocationAccess: - #next: v7 <|@ <|@
236
+ f <@*|@fixed>@ <|@
237
+ tid v7 <|@
238
+ d <@d|@=== Debug Properties ===
239
+ nodeSourcePosition: at JavaExamples.exampleUnsafeWrite(JavaExamples.java:322) [bci: 8]
240
+ stamp: void
241
+ === Inputs ===
242
+ result: -
243
+ memoryMap: -
244
+ === Succesors ===
245
+ === Usages ===
246
+ === Predecessor ===
247
+ v10 >@ <|@
248
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
249
+ end_IR
250
+ begin_IR
251
+ LIR
252
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
253
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
254
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
255
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
256
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
257
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
258
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
259
+ end_IR
260
+ end_block
261
+ end_cfg
262
+ begin_cfg
263
+ name "After ConstantLoadOptimization"
264
+ begin_block
265
+ name "B0"
266
+ from_bci -1
267
+ to_bci -1
268
+ predecessors
269
+ successors
270
+ xhandlers
271
+ flags
272
+ probability 4607182418800017408
273
+ begin_IR
274
+ LIR
275
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
276
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
277
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
278
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
279
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
280
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
281
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
282
+ end_IR
283
+ end_block
284
+ end_cfg
285
+ begin_bytecodes
286
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
287
+ 3: lload_0
288
+ 4: iload_2
289
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
290
+ 8: return
291
+ <|@
292
+ end_bytecodes
293
+ begin_cfg
294
+ name "After SaveCalleeSaveRegisters"
295
+ begin_block
296
+ name "B0"
297
+ from_bci -1
298
+ to_bci -1
299
+ predecessors
300
+ successors
301
+ xhandlers
302
+ flags
303
+ probability 4607182418800017408
304
+ begin_IR
305
+ LIR
306
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
307
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
308
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
309
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
310
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
311
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
312
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
313
+ end_IR
314
+ end_block
315
+ end_cfg
316
+ begin_bytecodes
317
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
318
+ 3: lload_0
319
+ 4: iload_2
320
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
321
+ 8: return
322
+ <|@
323
+ end_bytecodes
324
+ begin_cfg
325
+ name "After PreAllocationOptimizationStage"
326
+ begin_block
327
+ name "B0"
328
+ from_bci -1
329
+ to_bci -1
330
+ predecessors
331
+ successors
332
+ xhandlers
333
+ flags
334
+ probability 4607182418800017408
335
+ begin_IR
336
+ LIR
337
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
338
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
339
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
340
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
341
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
342
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
343
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
344
+ end_IR
345
+ end_block
346
+ end_cfg
347
+ begin_bytecodes
348
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
349
+ 3: lload_0
350
+ 4: iload_2
351
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
352
+ 8: return
353
+ <|@
354
+ end_bytecodes
355
+ begin_cfg
356
+ name "After MarkBasePointers"
357
+ begin_block
358
+ name "B0"
359
+ from_bci -1
360
+ to_bci -1
361
+ predecessors
362
+ successors
363
+ xhandlers
364
+ flags
365
+ probability 4607182418800017408
366
+ begin_IR
367
+ LIR
368
+ nr -1 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
369
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
370
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
371
+ nr -1 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
372
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
373
+ nr -1 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
374
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
375
+ end_IR
376
+ end_block
377
+ end_cfg
378
+ begin_bytecodes
379
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
380
+ 3: lload_0
381
+ 4: iload_2
382
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
383
+ 8: return
384
+ <|@
385
+ end_bytecodes
386
+ begin_cfg
387
+ name "Before register allocation"
388
+ begin_block
389
+ name "B0"
390
+ from_bci -1
391
+ to_bci -1
392
+ predecessors
393
+ successors
394
+ xhandlers
395
+ flags
396
+ probability 4607182418800017408
397
+ begin_IR
398
+ LIR
399
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
400
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
401
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
402
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
403
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
404
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
405
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
406
+ end_IR
407
+ end_block
408
+ end_cfg
409
+ begin_bytecodes
410
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
411
+ 3: lload_0
412
+ 4: iload_2
413
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
414
+ 8: return
415
+ <|@
416
+ end_bytecodes
417
+ begin_cfg
418
+ name "After SSALinearScanLifetimeAnalysis"
419
+ begin_block
420
+ name "B0"
421
+ from_bci -1
422
+ to_bci -1
423
+ predecessors
424
+ successors
425
+ xhandlers
426
+ flags
427
+ probability 4607182418800017408
428
+ begin_IR
429
+ LIR
430
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
431
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
432
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
433
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
434
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
435
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
436
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
437
+ end_IR
438
+ end_block
439
+ end_cfg
440
+ begin_bytecodes
441
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
442
+ 3: lload_0
443
+ 4: iload_2
444
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
445
+ 8: return
446
+ <|@
447
+ end_bytecodes
448
+ begin_intervals
449
+ name "Before register allocation"
450
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
451
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
452
+ rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
453
+ v0|q QWORD "[v0|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
454
+ v1|d DWORD "[v1|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
455
+ v2|q QWORD "[v2|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
456
+ end_intervals
457
+ begin_intervals
458
+ name "After register allocation"
459
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
460
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
461
+ rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
462
+ v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
463
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
464
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
465
+ end_intervals
466
+ begin_cfg
467
+ name "After LinearScanRegisterAllocation"
468
+ begin_block
469
+ name "B0"
470
+ from_bci -1
471
+ to_bci -1
472
+ predecessors
473
+ successors
474
+ xhandlers
475
+ flags
476
+ probability 4607182418800017408
477
+ begin_IR
478
+ LIR
479
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
480
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
481
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
482
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
483
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
484
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
485
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
486
+ end_IR
487
+ end_block
488
+ end_cfg
489
+ begin_bytecodes
490
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
491
+ 3: lload_0
492
+ 4: iload_2
493
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
494
+ 8: return
495
+ <|@
496
+ end_bytecodes
497
+ begin_intervals
498
+ name "After optimize spill position"
499
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
500
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
501
+ rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
502
+ v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
503
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
504
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
505
+ end_intervals
506
+ begin_cfg
507
+ name "After LinearScanOptimizeSpillPosition"
508
+ begin_block
509
+ name "B0"
510
+ from_bci -1
511
+ to_bci -1
512
+ predecessors
513
+ successors
514
+ xhandlers
515
+ flags
516
+ probability 4607182418800017408
517
+ begin_IR
518
+ LIR
519
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
520
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
521
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
522
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
523
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
524
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
525
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
526
+ end_IR
527
+ end_block
528
+ end_cfg
529
+ begin_bytecodes
530
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
531
+ 3: lload_0
532
+ 4: iload_2
533
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
534
+ 8: return
535
+ <|@
536
+ end_bytecodes
537
+ begin_intervals
538
+ name "After resolve data flow"
539
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
540
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
541
+ rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
542
+ v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
543
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
544
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
545
+ end_intervals
546
+ begin_cfg
547
+ name "After SSALinearScanResolveDataFlow"
548
+ begin_block
549
+ name "B0"
550
+ from_bci -1
551
+ to_bci -1
552
+ predecessors
553
+ successors
554
+ xhandlers
555
+ flags
556
+ probability 4607182418800017408
557
+ begin_IR
558
+ LIR
559
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
560
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
561
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
562
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
563
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
564
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
565
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
566
+ end_IR
567
+ end_block
568
+ end_cfg
569
+ begin_bytecodes
570
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
571
+ 3: lload_0
572
+ 4: iload_2
573
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
574
+ 8: return
575
+ <|@
576
+ end_bytecodes
577
+ begin_cfg
578
+ name "After SSALinearScanEliminateSpillMove"
579
+ begin_block
580
+ name "B0"
581
+ from_bci -1
582
+ to_bci -1
583
+ predecessors
584
+ successors
585
+ xhandlers
586
+ flags
587
+ probability 4607182418800017408
588
+ begin_IR
589
+ LIR
590
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
591
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
592
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
593
+ nr 6 <|@ instruction v0|QWORD = MOVE rsi|QWORD moveKind: QWORD <|@ <|@
594
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
595
+ nr 10 <|@ instruction MOV (x: [v0|QWORD], y: v1|DWORD) size: DWORD <|@ <|@
596
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
597
+ end_IR
598
+ end_block
599
+ end_cfg
600
+ begin_bytecodes
601
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
602
+ 3: lload_0
603
+ 4: iload_2
604
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
605
+ 8: return
606
+ <|@
607
+ end_bytecodes
608
+ begin_cfg
609
+ name "After LinearScanAssignLocations"
610
+ begin_block
611
+ name "B0"
612
+ from_bci -1
613
+ to_bci -1
614
+ predecessors
615
+ successors
616
+ xhandlers
617
+ flags
618
+ probability 4607182418800017408
619
+ begin_IR
620
+ LIR
621
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
622
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
623
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
624
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
625
+ end_IR
626
+ end_block
627
+ end_cfg
628
+ begin_bytecodes
629
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
630
+ 3: lload_0
631
+ 4: iload_2
632
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
633
+ 8: return
634
+ <|@
635
+ end_bytecodes
636
+ begin_cfg
637
+ name "After LinearScan"
638
+ begin_block
639
+ name "B0"
640
+ from_bci -1
641
+ to_bci -1
642
+ predecessors
643
+ successors
644
+ xhandlers
645
+ flags
646
+ probability 4607182418800017408
647
+ begin_IR
648
+ LIR
649
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
650
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
651
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
652
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
653
+ end_IR
654
+ end_block
655
+ end_cfg
656
+ begin_bytecodes
657
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
658
+ 3: lload_0
659
+ 4: iload_2
660
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
661
+ 8: return
662
+ <|@
663
+ end_bytecodes
664
+ begin_cfg
665
+ name "After LSStackSlotAllocator"
666
+ begin_block
667
+ name "B0"
668
+ from_bci -1
669
+ to_bci -1
670
+ predecessors
671
+ successors
672
+ xhandlers
673
+ flags
674
+ probability 4607182418800017408
675
+ begin_IR
676
+ LIR
677
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
678
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
679
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
680
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
681
+ end_IR
682
+ end_block
683
+ end_cfg
684
+ begin_bytecodes
685
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
686
+ 3: lload_0
687
+ 4: iload_2
688
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
689
+ 8: return
690
+ <|@
691
+ end_bytecodes
692
+ begin_cfg
693
+ name "After LocationMarker"
694
+ begin_block
695
+ name "B0"
696
+ from_bci -1
697
+ to_bci -1
698
+ predecessors
699
+ successors
700
+ xhandlers
701
+ flags
702
+ probability 4607182418800017408
703
+ begin_IR
704
+ LIR
705
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
706
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
707
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
708
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
709
+ end_IR
710
+ end_block
711
+ end_cfg
712
+ begin_bytecodes
713
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
714
+ 3: lload_0
715
+ 4: iload_2
716
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
717
+ 8: return
718
+ <|@
719
+ end_bytecodes
720
+ begin_cfg
721
+ name "After AllocationStage"
722
+ begin_block
723
+ name "B0"
724
+ from_bci -1
725
+ to_bci -1
726
+ predecessors
727
+ successors
728
+ xhandlers
729
+ flags
730
+ probability 4607182418800017408
731
+ begin_IR
732
+ LIR
733
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
734
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
735
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
736
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
737
+ end_IR
738
+ end_block
739
+ end_cfg
740
+ begin_bytecodes
741
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
742
+ 3: lload_0
743
+ 4: iload_2
744
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
745
+ 8: return
746
+ <|@
747
+ end_bytecodes
748
+ begin_cfg
749
+ name "After EdgeMoveOptimizer"
750
+ begin_block
751
+ name "B0"
752
+ from_bci -1
753
+ to_bci -1
754
+ predecessors
755
+ successors
756
+ xhandlers
757
+ flags
758
+ probability 4607182418800017408
759
+ begin_IR
760
+ LIR
761
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
762
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
763
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
764
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
765
+ end_IR
766
+ end_block
767
+ end_cfg
768
+ begin_bytecodes
769
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
770
+ 3: lload_0
771
+ 4: iload_2
772
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
773
+ 8: return
774
+ <|@
775
+ end_bytecodes
776
+ begin_cfg
777
+ name "After ControlFlowOptimizer"
778
+ begin_block
779
+ name "B0"
780
+ from_bci -1
781
+ to_bci -1
782
+ predecessors
783
+ successors
784
+ xhandlers
785
+ flags
786
+ probability 4607182418800017408
787
+ begin_IR
788
+ LIR
789
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
790
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
791
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
792
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
793
+ end_IR
794
+ end_block
795
+ end_cfg
796
+ begin_bytecodes
797
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
798
+ 3: lload_0
799
+ 4: iload_2
800
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
801
+ 8: return
802
+ <|@
803
+ end_bytecodes
804
+ begin_cfg
805
+ name "After RedundantMoveElimination"
806
+ begin_block
807
+ name "B0"
808
+ from_bci -1
809
+ to_bci -1
810
+ predecessors
811
+ successors
812
+ xhandlers
813
+ flags
814
+ probability 4607182418800017408
815
+ begin_IR
816
+ LIR
817
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
818
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
819
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
820
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
821
+ end_IR
822
+ end_block
823
+ end_cfg
824
+ begin_bytecodes
825
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
826
+ 3: lload_0
827
+ 4: iload_2
828
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
829
+ 8: return
830
+ <|@
831
+ end_bytecodes
832
+ begin_cfg
833
+ name "After NullCheckOptimizer"
834
+ begin_block
835
+ name "B0"
836
+ from_bci -1
837
+ to_bci -1
838
+ predecessors
839
+ successors
840
+ xhandlers
841
+ flags
842
+ probability 4607182418800017408
843
+ begin_IR
844
+ LIR
845
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
846
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
847
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
848
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
849
+ end_IR
850
+ end_block
851
+ end_cfg
852
+ begin_bytecodes
853
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
854
+ 3: lload_0
855
+ 4: iload_2
856
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
857
+ 8: return
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|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
874
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
875
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
876
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
877
+ end_IR
878
+ end_block
879
+ end_cfg
880
+ begin_bytecodes
881
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
882
+ 3: lload_0
883
+ 4: iload_2
884
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
885
+ 8: return
886
+ <|@
887
+ end_bytecodes
888
+ begin_cfg
889
+ name "After PostAllocationOptimizationStage"
890
+ begin_block
891
+ name "B0"
892
+ from_bci -1
893
+ to_bci -1
894
+ predecessors
895
+ successors
896
+ xhandlers
897
+ flags
898
+ probability 4607182418800017408
899
+ begin_IR
900
+ LIR
901
+ nr 0 <|@ instruction [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
902
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <|@ <|@
903
+ nr 10 <|@ instruction MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <|@ <|@
904
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
905
+ end_IR
906
+ end_block
907
+ end_cfg
908
+ begin_bytecodes
909
+ 0: getstatic #61 // UNSAFE:sun.misc.Unsafe
910
+ 3: lload_0
911
+ 4: iload_2
912
+ 5: invokevirtual #63 // sun.misc.Unsafe.putInt:(long, int)void
913
+ 8: return
914
+ <|@
915
+ end_bytecodes
916
+ begin_cfg
917
+ name "After code generation"
918
+ end_cfg
919
+ begin_nmethod
920
+ <<<HexCodeFile
921
+ Platform AMD64 64 <||@
922
+ HexCode 0 0f1f4400008916850500000000c5f877c3e80000000090e80000000090 <||@
923
+ Comment 0 3 <||@
924
+ Comment 0 1 <||@
925
+ Comment 5 block B0 null <||@
926
+ Comment 5 0 [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
927
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <||@
928
+ Comment 5 10 MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <||@
929
+ Comment 7 12 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
930
+ Comment 7 12 <||@
931
+ 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} <||@
932
+ Comment 17 4 <||@
933
+ Comment 23 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
934
+ Comment 23 5 <||@
935
+ HexCodeFile>>> <|@
936
+ end_nmethod
937
+ begin_compilation
938
+ name " HotSpotCompilation-362[JavaExamples.exampleUnsafeWrite(long, int)]"
939
+ method "HotSpotCompilation-362[JavaExamples.exampleUnsafeWrite(long, int)]"
940
+ date 1583364092137
941
+ end_compilation
942
+ begin_cfg
943
+ name "After code installation"
944
+ end_cfg
945
+ begin_nmethod
946
+ <<<HexCodeFile
947
+ Platform AMD64 64 <||@
948
+ HexCode 112e37420 0f1f44000089168505d93b93fbc5f877c3e8eacefeff90e804ceeaff90f4f4f4 <||@
949
+ Comment 0 3 <||@
950
+ Comment 0 1 <||@
951
+ Comment 5 block B0 null <||@
952
+ Comment 5 0 [rsi|QWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
953
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d6d35f0 slotKind: QWORD <||@
954
+ Comment 5 10 MOV (x: [rsi|QWORD], y: rdx|DWORD) size: DWORD <||@
955
+ Comment 7 12 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
956
+ Comment 7 12 <||@
957
+ 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} <||@
958
+ Comment 17 4 <||@
959
+ Comment 23 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
960
+ Comment 23 5 <||@
961
+ HexCodeFile>>> <|@
962
+ end_nmethod