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,1102 +0,0 @@
1
- begin_compilation
2
- name " HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
3
- method "HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
4
- date 1583364091871
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: v12
28
- === Usages ===
29
- === Predecessor ===
30
- - >@ <|@
31
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v12 <|@ <|@
32
- f <@~|@floating>@ <|@
33
- tid a17 <|@
34
- d <@d|@=== Debug Properties ===
35
- isDefaultStable: false
36
- rawvalue: null
37
- stableDimension: 0
38
- stamp: a - NULL
39
- stampKind: a -
40
- value: Object[null]
41
- === Inputs ===
42
- === Succesors ===
43
- === Usages ===
44
- ?3
45
- === Predecessor ===
46
- - >@ <|@
47
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
48
- f <@~|@floating>@ <|@
49
- tid i2 <|@
50
- d <@d|@=== Debug Properties ===
51
- index: 1
52
- stamp: i32
53
- uncheckedStamp: [null]
54
- === Inputs ===
55
- === Succesors ===
56
- === Usages ===
57
- ?3 v12
58
- === Predecessor ===
59
- - >@ <|@
60
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
61
- tid ?3 <|@
62
- d <@d|@=== Debug Properties ===
63
- bci: 0
64
- code: ResolvedJavaMethodBytecode<JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)>
65
- duringCall: false
66
- localsSize: 2
67
- locksSize: 0
68
- rethrowException: false
69
- sourceFile: JavaExamples.java
70
- sourceLine: 300
71
- stackSize: 0
72
- === Inputs ===
73
- outerFrameState: -
74
- values: a17 i2
75
- === Succesors ===
76
- === Usages ===
77
- v12
78
- === Predecessor ===
79
- - >@ <|@
80
- instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a17 i2 <|@ <|@
81
- f <@~|@floating>@ <|@
82
- tid a1 <|@
83
- d <@d|@=== Debug Properties ===
84
- index: 0
85
- stamp: a# LJavaExamples$ExampleObject;
86
- uncheckedStamp: [null]
87
- === Inputs ===
88
- === Succesors ===
89
- === Usages ===
90
- v18
91
- === Predecessor ===
92
- - >@ <|@
93
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
94
- f <@~|@floating>@ <|@
95
- tid v18 <|@
96
- d <@d|@=== Debug Properties ===
97
- displacement: 12
98
- scale: Times1
99
- stamp: void*
100
- === Inputs ===
101
- base: a1
102
- index: -
103
- === Succesors ===
104
- === Usages ===
105
- v12
106
- === Predecessor ===
107
- - >@ <|@
108
- instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
109
- f <@#|@fixed with next>@ <|@
110
- tid v12 <|@
111
- d <@d|@=== Debug Properties ===
112
- barrierType: NONE
113
- location: JavaExamples$ExampleObject.x
114
- nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 2]
115
- nullCheck: true
116
- stamp: void
117
- volatileAccess: false
118
- === Inputs ===
119
- stateBefore: ?3
120
- guard: -
121
- address: v18
122
- value: i2
123
- stateAfter: -
124
- lastLocationAccess: -
125
- === Succesors ===
126
- next: v6
127
- === Usages ===
128
- === Predecessor ===
129
- v0 >@ <|@
130
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: ?3 guard: - address: v18 value: i2 stateAfter: - lastLocationAccess: - #next: v6 <|@ <|@
131
- f <@*|@fixed>@ <|@
132
- tid v6 <|@
133
- d <@d|@=== Debug Properties ===
134
- nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:301) [bci: 5]
135
- stamp: void
136
- === Inputs ===
137
- result: -
138
- memoryMap: -
139
- === Succesors ===
140
- === Usages ===
141
- === Predecessor ===
142
- v12 >@ <|@
143
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
144
- end_IR
145
- end_block
146
- end_cfg
147
- begin_cfg
148
- name "After LIRGeneration"
149
- begin_block
150
- name "B0"
151
- from_bci -1
152
- to_bci -1
153
- predecessors
154
- successors
155
- xhandlers
156
- flags
157
- probability 4607182418800017408
158
- begin_IR
159
- LIR
160
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
161
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
162
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
163
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
164
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
165
- nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
166
- locals: Object[null] v1|DWORD
167
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
168
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
169
- end_IR
170
- end_block
171
- end_cfg
172
- begin_bytecodes
173
- 0: aload_0
174
- 1: iload_1
175
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
176
- 5: return
177
- <|@
178
- end_bytecodes
179
- begin_cfg
180
- name "After LIR generation"
181
- begin_block
182
- name "B0"
183
- from_bci -1
184
- to_bci -1
185
- predecessors
186
- successors
187
- xhandlers
188
- flags
189
- probability 4607182418800017408
190
- begin_IR
191
- HIR
192
- f <@#|@fixed with next>@ <|@
193
- tid v0 <|@
194
- d <@d|@=== Debug Properties ===
195
- stamp: void
196
- withSpeculationFence: false
197
- === Inputs ===
198
- stateAfter: -
199
- === Succesors ===
200
- next: v12
201
- === Usages ===
202
- === Predecessor ===
203
- - >@ <|@
204
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v12 <|@ <|@
205
- f <@~|@floating>@ <|@
206
- tid a17 <|@
207
- result Object[null] <|@
208
- d <@d|@=== Debug Properties ===
209
- isDefaultStable: false
210
- rawvalue: null
211
- stableDimension: 0
212
- stamp: a - NULL
213
- stampKind: a -
214
- value: Object[null]
215
- === Inputs ===
216
- === Succesors ===
217
- === Usages ===
218
- ?3
219
- === Predecessor ===
220
- - >@ <|@
221
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
222
- f <@~|@floating>@ <|@
223
- tid i2 <|@
224
- result v1|DWORD <|@
225
- d <@d|@=== Debug Properties ===
226
- index: 1
227
- stamp: i32
228
- uncheckedStamp: [null]
229
- === Inputs ===
230
- === Succesors ===
231
- === Usages ===
232
- ?3 v12
233
- === Predecessor ===
234
- - >@ <|@
235
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
236
- tid ?3 <|@
237
- d <@d|@=== Debug Properties ===
238
- bci: 0
239
- code: ResolvedJavaMethodBytecode<JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)>
240
- duringCall: false
241
- localsSize: 2
242
- locksSize: 0
243
- rethrowException: false
244
- sourceFile: JavaExamples.java
245
- sourceLine: 300
246
- stackSize: 0
247
- === Inputs ===
248
- outerFrameState: -
249
- values: a17 i2
250
- === Succesors ===
251
- === Usages ===
252
- v12
253
- === Predecessor ===
254
- - >@ <|@
255
- instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a17 i2 <|@ <|@
256
- f <@~|@floating>@ <|@
257
- tid a1 <|@
258
- result v0|QWORD[.] <|@
259
- d <@d|@=== Debug Properties ===
260
- index: 0
261
- stamp: a# LJavaExamples$ExampleObject;
262
- uncheckedStamp: [null]
263
- === Inputs ===
264
- === Succesors ===
265
- === Usages ===
266
- v18
267
- === Predecessor ===
268
- - >@ <|@
269
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
270
- f <@~|@floating>@ <|@
271
- tid v18 <|@
272
- result [v0|QWORD[.] + 12] <|@
273
- d <@d|@=== Debug Properties ===
274
- displacement: 12
275
- scale: Times1
276
- stamp: void*
277
- === Inputs ===
278
- base: a1
279
- index: -
280
- === Succesors ===
281
- === Usages ===
282
- v12
283
- === Predecessor ===
284
- - >@ <|@
285
- instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
286
- f <@#|@fixed with next>@ <|@
287
- tid v12 <|@
288
- d <@d|@=== Debug Properties ===
289
- barrierType: NONE
290
- location: JavaExamples$ExampleObject.x
291
- nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 2]
292
- nullCheck: true
293
- stamp: void
294
- volatileAccess: false
295
- === Inputs ===
296
- stateBefore: ?3
297
- guard: -
298
- address: v18
299
- value: i2
300
- stateAfter: -
301
- lastLocationAccess: -
302
- === Succesors ===
303
- next: v6
304
- === Usages ===
305
- === Predecessor ===
306
- v0 >@ <|@
307
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: ?3 guard: - address: v18 value: i2 stateAfter: - lastLocationAccess: - #next: v6 <|@ <|@
308
- f <@*|@fixed>@ <|@
309
- tid v6 <|@
310
- d <@d|@=== Debug Properties ===
311
- nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:301) [bci: 5]
312
- stamp: void
313
- === Inputs ===
314
- result: -
315
- memoryMap: -
316
- === Succesors ===
317
- === Usages ===
318
- === Predecessor ===
319
- v12 >@ <|@
320
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
321
- end_IR
322
- begin_IR
323
- LIR
324
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
325
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
326
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
327
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
328
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
329
- nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
330
- locals: Object[null] v1|DWORD
331
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
332
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
333
- end_IR
334
- end_block
335
- end_cfg
336
- begin_cfg
337
- name "After ConstantLoadOptimization"
338
- begin_block
339
- name "B0"
340
- from_bci -1
341
- to_bci -1
342
- predecessors
343
- successors
344
- xhandlers
345
- flags
346
- probability 4607182418800017408
347
- begin_IR
348
- LIR
349
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
350
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
351
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
352
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
353
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
354
- nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
355
- locals: Object[null] v1|DWORD
356
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
357
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
358
- end_IR
359
- end_block
360
- end_cfg
361
- begin_bytecodes
362
- 0: aload_0
363
- 1: iload_1
364
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
365
- 5: return
366
- <|@
367
- end_bytecodes
368
- begin_cfg
369
- name "After SaveCalleeSaveRegisters"
370
- begin_block
371
- name "B0"
372
- from_bci -1
373
- to_bci -1
374
- predecessors
375
- successors
376
- xhandlers
377
- flags
378
- probability 4607182418800017408
379
- begin_IR
380
- LIR
381
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
382
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
383
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
384
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
385
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
386
- nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
387
- locals: Object[null] v1|DWORD
388
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
389
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
390
- end_IR
391
- end_block
392
- end_cfg
393
- begin_bytecodes
394
- 0: aload_0
395
- 1: iload_1
396
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
397
- 5: return
398
- <|@
399
- end_bytecodes
400
- begin_cfg
401
- name "After PreAllocationOptimizationStage"
402
- begin_block
403
- name "B0"
404
- from_bci -1
405
- to_bci -1
406
- predecessors
407
- successors
408
- xhandlers
409
- flags
410
- probability 4607182418800017408
411
- begin_IR
412
- LIR
413
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
414
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
415
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
416
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
417
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
418
- nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
419
- locals: Object[null] v1|DWORD
420
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
421
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
422
- end_IR
423
- end_block
424
- end_cfg
425
- begin_bytecodes
426
- 0: aload_0
427
- 1: iload_1
428
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
429
- 5: return
430
- <|@
431
- end_bytecodes
432
- begin_cfg
433
- name "After MarkBasePointers"
434
- begin_block
435
- name "B0"
436
- from_bci -1
437
- to_bci -1
438
- predecessors
439
- successors
440
- xhandlers
441
- flags
442
- probability 4607182418800017408
443
- begin_IR
444
- LIR
445
- nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
446
- nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
447
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
448
- nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
449
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
450
- nr -1 <|@ st <@st|@live-base-pointers: []
451
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
452
- locals: Object[null] v1|DWORD
453
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
454
- nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
455
- end_IR
456
- end_block
457
- end_cfg
458
- begin_bytecodes
459
- 0: aload_0
460
- 1: iload_1
461
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
462
- 5: return
463
- <|@
464
- end_bytecodes
465
- begin_cfg
466
- name "Before register allocation"
467
- begin_block
468
- name "B0"
469
- from_bci -1
470
- to_bci -1
471
- predecessors
472
- successors
473
- xhandlers
474
- flags
475
- probability 4607182418800017408
476
- begin_IR
477
- LIR
478
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
479
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
480
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
481
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
482
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
483
- nr 10 <|@ st <@st|@live-base-pointers: []
484
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
485
- locals: Object[null] v1|DWORD
486
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
487
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
488
- end_IR
489
- end_block
490
- end_cfg
491
- begin_bytecodes
492
- 0: aload_0
493
- 1: iload_1
494
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
495
- 5: return
496
- <|@
497
- end_bytecodes
498
- begin_cfg
499
- name "After SSALinearScanLifetimeAnalysis"
500
- begin_block
501
- name "B0"
502
- from_bci -1
503
- to_bci -1
504
- predecessors
505
- successors
506
- xhandlers
507
- flags
508
- probability 4607182418800017408
509
- begin_IR
510
- LIR
511
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
512
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
513
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
514
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
515
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
516
- nr 10 <|@ st <@st|@live-base-pointers: []
517
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
518
- locals: Object[null] v1|DWORD
519
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
520
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
521
- end_IR
522
- end_block
523
- end_cfg
524
- begin_bytecodes
525
- 0: aload_0
526
- 1: iload_1
527
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
528
- 5: return
529
- <|@
530
- end_bytecodes
531
- begin_intervals
532
- name "Before register allocation"
533
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
534
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
535
- rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
536
- v0|q QWORD "[v0|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
537
- v1|d DWORD "[v1|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
538
- end_intervals
539
- begin_intervals
540
- name "After register allocation"
541
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
542
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
543
- rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
544
- v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
545
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
546
- end_intervals
547
- begin_cfg
548
- name "After LinearScanRegisterAllocation"
549
- begin_block
550
- name "B0"
551
- from_bci -1
552
- to_bci -1
553
- predecessors
554
- successors
555
- xhandlers
556
- flags
557
- probability 4607182418800017408
558
- begin_IR
559
- LIR
560
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
561
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
562
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
563
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
564
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
565
- nr 10 <|@ st <@st|@live-base-pointers: []
566
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
567
- locals: Object[null] v1|DWORD
568
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
569
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
570
- end_IR
571
- end_block
572
- end_cfg
573
- begin_bytecodes
574
- 0: aload_0
575
- 1: iload_1
576
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
577
- 5: return
578
- <|@
579
- end_bytecodes
580
- begin_intervals
581
- name "After optimize spill position"
582
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
583
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
584
- rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
585
- v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
586
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
587
- end_intervals
588
- begin_cfg
589
- name "After LinearScanOptimizeSpillPosition"
590
- begin_block
591
- name "B0"
592
- from_bci -1
593
- to_bci -1
594
- predecessors
595
- successors
596
- xhandlers
597
- flags
598
- probability 4607182418800017408
599
- begin_IR
600
- LIR
601
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
602
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
603
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
604
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
605
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
606
- nr 10 <|@ st <@st|@live-base-pointers: []
607
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
608
- locals: Object[null] v1|DWORD
609
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
610
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
611
- end_IR
612
- end_block
613
- end_cfg
614
- begin_bytecodes
615
- 0: aload_0
616
- 1: iload_1
617
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
618
- 5: return
619
- <|@
620
- end_bytecodes
621
- begin_intervals
622
- name "After resolve data flow"
623
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
624
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
625
- rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
626
- v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
627
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
628
- end_intervals
629
- begin_cfg
630
- name "After SSALinearScanResolveDataFlow"
631
- begin_block
632
- name "B0"
633
- from_bci -1
634
- to_bci -1
635
- predecessors
636
- successors
637
- xhandlers
638
- flags
639
- probability 4607182418800017408
640
- begin_IR
641
- LIR
642
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
643
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
644
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
645
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
646
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
647
- nr 10 <|@ st <@st|@live-base-pointers: []
648
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
649
- locals: Object[null] v1|DWORD
650
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
651
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
652
- end_IR
653
- end_block
654
- end_cfg
655
- begin_bytecodes
656
- 0: aload_0
657
- 1: iload_1
658
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
659
- 5: return
660
- <|@
661
- end_bytecodes
662
- begin_cfg
663
- name "After SSALinearScanEliminateSpillMove"
664
- begin_block
665
- name "B0"
666
- from_bci -1
667
- to_bci -1
668
- predecessors
669
- successors
670
- xhandlers
671
- flags
672
- probability 4607182418800017408
673
- begin_IR
674
- LIR
675
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
676
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
677
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
678
- nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
679
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
680
- nr 10 <|@ st <@st|@live-base-pointers: []
681
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
682
- locals: Object[null] v1|DWORD
683
- >@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
684
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
685
- end_IR
686
- end_block
687
- end_cfg
688
- begin_bytecodes
689
- 0: aload_0
690
- 1: iload_1
691
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
692
- 5: return
693
- <|@
694
- end_bytecodes
695
- begin_cfg
696
- name "After LinearScanAssignLocations"
697
- begin_block
698
- name "B0"
699
- from_bci -1
700
- to_bci -1
701
- predecessors
702
- successors
703
- xhandlers
704
- flags
705
- probability 4607182418800017408
706
- begin_IR
707
- LIR
708
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
709
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
710
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
711
- nr 10 <|@ st <@st|@live-base-pointers: []
712
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
713
- locals: Object[null] rdx|DWORD
714
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
715
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
716
- end_IR
717
- end_block
718
- end_cfg
719
- begin_bytecodes
720
- 0: aload_0
721
- 1: iload_1
722
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
723
- 5: return
724
- <|@
725
- end_bytecodes
726
- begin_cfg
727
- name "After LinearScan"
728
- begin_block
729
- name "B0"
730
- from_bci -1
731
- to_bci -1
732
- predecessors
733
- successors
734
- xhandlers
735
- flags
736
- probability 4607182418800017408
737
- begin_IR
738
- LIR
739
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
740
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
741
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
742
- nr 10 <|@ st <@st|@live-base-pointers: []
743
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
744
- locals: Object[null] rdx|DWORD
745
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
746
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
747
- end_IR
748
- end_block
749
- end_cfg
750
- begin_bytecodes
751
- 0: aload_0
752
- 1: iload_1
753
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
754
- 5: return
755
- <|@
756
- end_bytecodes
757
- begin_cfg
758
- name "After LSStackSlotAllocator"
759
- begin_block
760
- name "B0"
761
- from_bci -1
762
- to_bci -1
763
- predecessors
764
- successors
765
- xhandlers
766
- flags
767
- probability 4607182418800017408
768
- begin_IR
769
- LIR
770
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
771
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
772
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
773
- nr 10 <|@ st <@st|@live-base-pointers: []
774
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
775
- locals: Object[null] rdx|DWORD
776
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
777
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
778
- end_IR
779
- end_block
780
- end_cfg
781
- begin_bytecodes
782
- 0: aload_0
783
- 1: iload_1
784
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
785
- 5: return
786
- <|@
787
- end_bytecodes
788
- begin_cfg
789
- name "After LocationMarker"
790
- begin_block
791
- name "B0"
792
- from_bci -1
793
- to_bci -1
794
- predecessors
795
- successors
796
- xhandlers
797
- flags
798
- probability 4607182418800017408
799
- begin_IR
800
- LIR
801
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
802
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
803
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
804
- nr 10 <|@ st <@st|@reference-map: []
805
- live-base-pointers: []
806
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
807
- locals: Object[null] rdx|DWORD
808
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
809
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
810
- end_IR
811
- end_block
812
- end_cfg
813
- begin_bytecodes
814
- 0: aload_0
815
- 1: iload_1
816
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
817
- 5: return
818
- <|@
819
- end_bytecodes
820
- begin_cfg
821
- name "After AllocationStage"
822
- begin_block
823
- name "B0"
824
- from_bci -1
825
- to_bci -1
826
- predecessors
827
- successors
828
- xhandlers
829
- flags
830
- probability 4607182418800017408
831
- begin_IR
832
- LIR
833
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
834
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
835
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
836
- nr 10 <|@ st <@st|@reference-map: []
837
- live-base-pointers: []
838
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
839
- locals: Object[null] rdx|DWORD
840
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
841
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
842
- end_IR
843
- end_block
844
- end_cfg
845
- begin_bytecodes
846
- 0: aload_0
847
- 1: iload_1
848
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
849
- 5: return
850
- <|@
851
- end_bytecodes
852
- begin_cfg
853
- name "After EdgeMoveOptimizer"
854
- begin_block
855
- name "B0"
856
- from_bci -1
857
- to_bci -1
858
- predecessors
859
- successors
860
- xhandlers
861
- flags
862
- probability 4607182418800017408
863
- begin_IR
864
- LIR
865
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
866
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
867
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
868
- nr 10 <|@ st <@st|@reference-map: []
869
- live-base-pointers: []
870
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
871
- locals: Object[null] rdx|DWORD
872
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
873
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
874
- end_IR
875
- end_block
876
- end_cfg
877
- begin_bytecodes
878
- 0: aload_0
879
- 1: iload_1
880
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
881
- 5: return
882
- <|@
883
- end_bytecodes
884
- begin_cfg
885
- name "After ControlFlowOptimizer"
886
- begin_block
887
- name "B0"
888
- from_bci -1
889
- to_bci -1
890
- predecessors
891
- successors
892
- xhandlers
893
- flags
894
- probability 4607182418800017408
895
- begin_IR
896
- LIR
897
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
898
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
899
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
900
- nr 10 <|@ st <@st|@reference-map: []
901
- live-base-pointers: []
902
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
903
- locals: Object[null] rdx|DWORD
904
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
905
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
906
- end_IR
907
- end_block
908
- end_cfg
909
- begin_bytecodes
910
- 0: aload_0
911
- 1: iload_1
912
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
913
- 5: return
914
- <|@
915
- end_bytecodes
916
- begin_cfg
917
- name "After RedundantMoveElimination"
918
- begin_block
919
- name "B0"
920
- from_bci -1
921
- to_bci -1
922
- predecessors
923
- successors
924
- xhandlers
925
- flags
926
- probability 4607182418800017408
927
- begin_IR
928
- LIR
929
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
930
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
931
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
932
- nr 10 <|@ st <@st|@reference-map: []
933
- live-base-pointers: []
934
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
935
- locals: Object[null] rdx|DWORD
936
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
937
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
938
- end_IR
939
- end_block
940
- end_cfg
941
- begin_bytecodes
942
- 0: aload_0
943
- 1: iload_1
944
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
945
- 5: return
946
- <|@
947
- end_bytecodes
948
- begin_cfg
949
- name "After NullCheckOptimizer"
950
- begin_block
951
- name "B0"
952
- from_bci -1
953
- to_bci -1
954
- predecessors
955
- successors
956
- xhandlers
957
- flags
958
- probability 4607182418800017408
959
- begin_IR
960
- LIR
961
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
962
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
963
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
964
- nr 10 <|@ st <@st|@reference-map: []
965
- live-base-pointers: []
966
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
967
- locals: Object[null] rdx|DWORD
968
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
969
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
970
- end_IR
971
- end_block
972
- end_cfg
973
- begin_bytecodes
974
- 0: aload_0
975
- 1: iload_1
976
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
977
- 5: return
978
- <|@
979
- end_bytecodes
980
- begin_cfg
981
- name "After StackMoveOptimization"
982
- begin_block
983
- name "B0"
984
- from_bci -1
985
- to_bci -1
986
- predecessors
987
- successors
988
- xhandlers
989
- flags
990
- probability 4607182418800017408
991
- begin_IR
992
- LIR
993
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
994
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
995
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
996
- nr 10 <|@ st <@st|@reference-map: []
997
- live-base-pointers: []
998
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
999
- locals: Object[null] rdx|DWORD
1000
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
1001
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1002
- end_IR
1003
- end_block
1004
- end_cfg
1005
- begin_bytecodes
1006
- 0: aload_0
1007
- 1: iload_1
1008
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
1009
- 5: return
1010
- <|@
1011
- end_bytecodes
1012
- begin_cfg
1013
- name "After PostAllocationOptimizationStage"
1014
- begin_block
1015
- name "B0"
1016
- from_bci -1
1017
- to_bci -1
1018
- predecessors
1019
- successors
1020
- xhandlers
1021
- flags
1022
- probability 4607182418800017408
1023
- begin_IR
1024
- LIR
1025
- nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1026
- nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1027
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
1028
- nr 10 <|@ st <@st|@reference-map: []
1029
- live-base-pointers: []
1030
- JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
1031
- locals: Object[null] rdx|DWORD
1032
- >@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
1033
- nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1034
- end_IR
1035
- end_block
1036
- end_cfg
1037
- begin_bytecodes
1038
- 0: aload_0
1039
- 1: iload_1
1040
- 2: putfield #58 // JavaExamples$ExampleObject.x:int
1041
- 5: return
1042
- <|@
1043
- end_bytecodes
1044
- begin_cfg
1045
- name "After code generation"
1046
- end_cfg
1047
- begin_nmethod
1048
- <<<HexCodeFile
1049
- Platform AMD64 64 <||@
1050
- HexCode 0 89842400c0feff4883ec1848896c241089560c488b6c24104883c418850500000000c5f877c3e80000000090e80000000090 <||@
1051
- Comment 0 [stack overflow check] <||@
1052
- Comment 0 3 <||@
1053
- Comment 0 1 <||@
1054
- Comment 11 block B0 null <||@
1055
- Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1056
- Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
1057
- Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <||@
1058
- Comment 16 10 MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <||@
1059
- Comment 16 []at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0, duringCall: false, rethrow: false]
1060
- |0 |1
1061
- locals: |Object[null] |rdx|DWORD <||@
1062
- Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
1063
- Comment 19 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
1064
- Comment 28 12 <||@
1065
- Comment 38 {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} <||@
1066
- Comment 38 4 <||@
1067
- Comment 44 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1068
- Comment 44 5 <||@
1069
- HexCodeFile>>> <|@
1070
- end_nmethod
1071
- begin_compilation
1072
- name " HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
1073
- method "HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
1074
- date 1583364091880
1075
- end_compilation
1076
- begin_cfg
1077
- name "After code installation"
1078
- end_cfg
1079
- begin_nmethod
1080
- <<<HexCodeFile
1081
- Platform AMD64 64 <||@
1082
- HexCode 112e352a0 89842400c0feff4883ec1848896c241089560c488b6c24104883c4188505445d93fbc5f877c3e855f0feff90e86fefeaff90f4f4f4f4f4f4 <||@
1083
- Comment 0 [stack overflow check] <||@
1084
- Comment 0 3 <||@
1085
- Comment 0 1 <||@
1086
- Comment 11 block B0 null <||@
1087
- Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1088
- Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
1089
- Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <||@
1090
- Comment 16 10 MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <||@
1091
- Comment 16 []at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0, duringCall: false, rethrow: false]
1092
- |0 |1
1093
- locals: |Object[null] |rdx|DWORD <||@
1094
- Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
1095
- Comment 19 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
1096
- Comment 28 12 <||@
1097
- Comment 38 {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} <||@
1098
- Comment 38 4 <||@
1099
- Comment 44 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1100
- Comment 44 5 <||@
1101
- HexCodeFile>>> <|@
1102
- end_nmethod