seafoam 0.3 → 0.8

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