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