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,962 +0,0 @@
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