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