seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,1364 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-370[JavaExamples.exampleLocalSynchronized(int)]"
3
+ method "HotSpotCompilation-370[JavaExamples.exampleLocalSynchronized(int)]"
4
+ date 1583364092233
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: v19
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v19 <|@ <|@
32
+ f <@#|@fixed with next>@ <|@
33
+ tid v19 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ barriers: 10
36
+ location: ANY_LOCATION
37
+ stamp: void
38
+ === Inputs ===
39
+ === Succesors ===
40
+ next: v17
41
+ === Usages ===
42
+ === Predecessor ===
43
+ v0 >@ <|@
44
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v17 <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid a14 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ isDefaultStable: false
49
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:350) [bci: 13]
50
+ rawvalue: Instance<java.lang.Class>
51
+ stableDimension: 0
52
+ stamp: a!# Ljava/lang/Class;
53
+ stampKind: a -
54
+ value: Object[Instance<java.lang.Class>]
55
+ === Inputs ===
56
+ === Succesors ===
57
+ === Usages ===
58
+ v18
59
+ === Predecessor ===
60
+ - >@ <|@
61
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
62
+ f <@~|@floating>@ <|@
63
+ tid v18 <|@
64
+ d <@d|@=== Debug Properties ===
65
+ displacement: 128
66
+ scale: Times1
67
+ stamp: void*
68
+ === Inputs ===
69
+ base: a14
70
+ index: -
71
+ === Succesors ===
72
+ === Usages ===
73
+ v17
74
+ === Predecessor ===
75
+ - >@ <|@
76
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a14 index: - <|@ <|@
77
+ f <@~|@floating>@ <|@
78
+ tid i1 <|@
79
+ d <@d|@=== Debug Properties ===
80
+ index: 0
81
+ stamp: i32
82
+ uncheckedStamp: [null]
83
+ === Inputs ===
84
+ === Succesors ===
85
+ === Usages ===
86
+ v17
87
+ === Predecessor ===
88
+ - >@ <|@
89
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
90
+ f <@#|@fixed with next>@ <|@
91
+ tid v17 <|@
92
+ d <@d|@=== Debug Properties ===
93
+ barrierType: NONE
94
+ location: JavaExamples.intField
95
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:350) [bci: 13]
96
+ nullCheck: false
97
+ stamp: void
98
+ volatileAccess: true
99
+ === Inputs ===
100
+ stateBefore: -
101
+ guard: -
102
+ address: v18
103
+ value: i1
104
+ stateAfter: -
105
+ lastLocationAccess: -
106
+ === Succesors ===
107
+ next: v20
108
+ === Usages ===
109
+ === Predecessor ===
110
+ v19 >@ <|@
111
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v18 value: i1 stateAfter: - lastLocationAccess: - #next: v20 <|@ <|@
112
+ f <@#|@fixed with next>@ <|@
113
+ tid v20 <|@
114
+ d <@d|@=== Debug Properties ===
115
+ barriers: 12
116
+ location: ANY_LOCATION
117
+ stamp: void
118
+ === Inputs ===
119
+ === Succesors ===
120
+ next: v11
121
+ === Usages ===
122
+ === Predecessor ===
123
+ v17 >@ <|@
124
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v11 <|@ <|@
125
+ f <@*|@fixed>@ <|@
126
+ tid v11 <|@
127
+ d <@d|@=== Debug Properties ===
128
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:352) [bci: 26]
129
+ stamp: void
130
+ === Inputs ===
131
+ result: -
132
+ memoryMap: -
133
+ === Succesors ===
134
+ === Usages ===
135
+ === Predecessor ===
136
+ v20 >@ <|@
137
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
138
+ end_IR
139
+ end_block
140
+ end_cfg
141
+ begin_cfg
142
+ name "After LIRGeneration"
143
+ begin_block
144
+ name "B0"
145
+ from_bci -1
146
+ to_bci -1
147
+ predecessors
148
+ successors
149
+ xhandlers
150
+ flags
151
+ probability 4607182418800017408
152
+ begin_IR
153
+ LIR
154
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
155
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
156
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
157
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
158
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
159
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
160
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
161
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
162
+ end_IR
163
+ end_block
164
+ end_cfg
165
+ begin_bytecodes
166
+ 0: new #54 // java.lang.Object
167
+ 3: dup
168
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
169
+ 7: astore_1
170
+ 8: aload_1
171
+ 9: dup
172
+ 10: astore_2
173
+ 11: monitorenter
174
+ 12: iload_0
175
+ 13: putstatic #54 // intField:int
176
+ 16: aload_2
177
+ 17: monitorexit
178
+ 18: goto 26
179
+ 21: astore_3
180
+ 22: aload_2
181
+ 23: monitorexit
182
+ 24: aload_3
183
+ 25: athrow
184
+ 26: return
185
+ <|@
186
+ end_bytecodes
187
+ begin_cfg
188
+ name "After LIR generation"
189
+ begin_block
190
+ name "B0"
191
+ from_bci -1
192
+ to_bci -1
193
+ predecessors
194
+ successors
195
+ xhandlers
196
+ flags
197
+ probability 4607182418800017408
198
+ begin_IR
199
+ HIR
200
+ f <@#|@fixed with next>@ <|@
201
+ tid v0 <|@
202
+ d <@d|@=== Debug Properties ===
203
+ stamp: void
204
+ withSpeculationFence: false
205
+ === Inputs ===
206
+ stateAfter: -
207
+ === Succesors ===
208
+ next: v19
209
+ === Usages ===
210
+ === Predecessor ===
211
+ - >@ <|@
212
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v19 <|@ <|@
213
+ f <@#|@fixed with next>@ <|@
214
+ tid v19 <|@
215
+ d <@d|@=== Debug Properties ===
216
+ barriers: 10
217
+ location: ANY_LOCATION
218
+ stamp: void
219
+ === Inputs ===
220
+ === Succesors ===
221
+ next: v17
222
+ === Usages ===
223
+ === Predecessor ===
224
+ v0 >@ <|@
225
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v17 <|@ <|@
226
+ f <@~|@floating>@ <|@
227
+ tid a14 <|@
228
+ result v1|QWORD[.] <|@
229
+ d <@d|@=== Debug Properties ===
230
+ isDefaultStable: false
231
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:350) [bci: 13]
232
+ rawvalue: Instance<java.lang.Class>
233
+ stableDimension: 0
234
+ stamp: a!# Ljava/lang/Class;
235
+ stampKind: a -
236
+ value: Object[Instance<java.lang.Class>]
237
+ === Inputs ===
238
+ === Succesors ===
239
+ === Usages ===
240
+ v18
241
+ === Predecessor ===
242
+ - >@ <|@
243
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
244
+ f <@~|@floating>@ <|@
245
+ tid v18 <|@
246
+ result [v1|QWORD[.] + 128] <|@
247
+ d <@d|@=== Debug Properties ===
248
+ displacement: 128
249
+ scale: Times1
250
+ stamp: void*
251
+ === Inputs ===
252
+ base: a14
253
+ index: -
254
+ === Succesors ===
255
+ === Usages ===
256
+ v17
257
+ === Predecessor ===
258
+ - >@ <|@
259
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a14 index: - <|@ <|@
260
+ f <@~|@floating>@ <|@
261
+ tid i1 <|@
262
+ result v0|DWORD <|@
263
+ d <@d|@=== Debug Properties ===
264
+ index: 0
265
+ stamp: i32
266
+ uncheckedStamp: [null]
267
+ === Inputs ===
268
+ === Succesors ===
269
+ === Usages ===
270
+ v17
271
+ === Predecessor ===
272
+ - >@ <|@
273
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
274
+ f <@#|@fixed with next>@ <|@
275
+ tid v17 <|@
276
+ d <@d|@=== Debug Properties ===
277
+ barrierType: NONE
278
+ location: JavaExamples.intField
279
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:350) [bci: 13]
280
+ nullCheck: false
281
+ stamp: void
282
+ volatileAccess: true
283
+ === Inputs ===
284
+ stateBefore: -
285
+ guard: -
286
+ address: v18
287
+ value: i1
288
+ stateAfter: -
289
+ lastLocationAccess: -
290
+ === Succesors ===
291
+ next: v20
292
+ === Usages ===
293
+ === Predecessor ===
294
+ v19 >@ <|@
295
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v18 value: i1 stateAfter: - lastLocationAccess: - #next: v20 <|@ <|@
296
+ f <@#|@fixed with next>@ <|@
297
+ tid v20 <|@
298
+ d <@d|@=== Debug Properties ===
299
+ barriers: 12
300
+ location: ANY_LOCATION
301
+ stamp: void
302
+ === Inputs ===
303
+ === Succesors ===
304
+ next: v11
305
+ === Usages ===
306
+ === Predecessor ===
307
+ v17 >@ <|@
308
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v11 <|@ <|@
309
+ f <@*|@fixed>@ <|@
310
+ tid v11 <|@
311
+ d <@d|@=== Debug Properties ===
312
+ nodeSourcePosition: at JavaExamples.exampleLocalSynchronized(JavaExamples.java:352) [bci: 26]
313
+ stamp: void
314
+ === Inputs ===
315
+ result: -
316
+ memoryMap: -
317
+ === Succesors ===
318
+ === Usages ===
319
+ === Predecessor ===
320
+ v20 >@ <|@
321
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
322
+ end_IR
323
+ begin_IR
324
+ LIR
325
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
326
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
327
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
328
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
329
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
330
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
331
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
332
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
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|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
350
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
351
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
352
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
353
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
354
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
355
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
356
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
357
+ end_IR
358
+ end_block
359
+ end_cfg
360
+ begin_bytecodes
361
+ 0: new #54 // java.lang.Object
362
+ 3: dup
363
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
364
+ 7: astore_1
365
+ 8: aload_1
366
+ 9: dup
367
+ 10: astore_2
368
+ 11: monitorenter
369
+ 12: iload_0
370
+ 13: putstatic #54 // intField:int
371
+ 16: aload_2
372
+ 17: monitorexit
373
+ 18: goto 26
374
+ 21: astore_3
375
+ 22: aload_2
376
+ 23: monitorexit
377
+ 24: aload_3
378
+ 25: athrow
379
+ 26: return
380
+ <|@
381
+ end_bytecodes
382
+ begin_cfg
383
+ name "After SaveCalleeSaveRegisters"
384
+ begin_block
385
+ name "B0"
386
+ from_bci -1
387
+ to_bci -1
388
+ predecessors
389
+ successors
390
+ xhandlers
391
+ flags
392
+ probability 4607182418800017408
393
+ begin_IR
394
+ LIR
395
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
396
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
397
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
398
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
399
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
400
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
401
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
402
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
403
+ end_IR
404
+ end_block
405
+ end_cfg
406
+ begin_bytecodes
407
+ 0: new #54 // java.lang.Object
408
+ 3: dup
409
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
410
+ 7: astore_1
411
+ 8: aload_1
412
+ 9: dup
413
+ 10: astore_2
414
+ 11: monitorenter
415
+ 12: iload_0
416
+ 13: putstatic #54 // intField:int
417
+ 16: aload_2
418
+ 17: monitorexit
419
+ 18: goto 26
420
+ 21: astore_3
421
+ 22: aload_2
422
+ 23: monitorexit
423
+ 24: aload_3
424
+ 25: athrow
425
+ 26: return
426
+ <|@
427
+ end_bytecodes
428
+ begin_cfg
429
+ name "After PreAllocationOptimizationStage"
430
+ begin_block
431
+ name "B0"
432
+ from_bci -1
433
+ to_bci -1
434
+ predecessors
435
+ successors
436
+ xhandlers
437
+ flags
438
+ probability 4607182418800017408
439
+ begin_IR
440
+ LIR
441
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
442
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
443
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
444
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
445
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
446
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
447
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
448
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
449
+ end_IR
450
+ end_block
451
+ end_cfg
452
+ begin_bytecodes
453
+ 0: new #54 // java.lang.Object
454
+ 3: dup
455
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
456
+ 7: astore_1
457
+ 8: aload_1
458
+ 9: dup
459
+ 10: astore_2
460
+ 11: monitorenter
461
+ 12: iload_0
462
+ 13: putstatic #54 // intField:int
463
+ 16: aload_2
464
+ 17: monitorexit
465
+ 18: goto 26
466
+ 21: astore_3
467
+ 22: aload_2
468
+ 23: monitorexit
469
+ 24: aload_3
470
+ 25: athrow
471
+ 26: return
472
+ <|@
473
+ end_bytecodes
474
+ begin_cfg
475
+ name "After MarkBasePointers"
476
+ begin_block
477
+ name "B0"
478
+ from_bci -1
479
+ to_bci -1
480
+ predecessors
481
+ successors
482
+ xhandlers
483
+ flags
484
+ probability 4607182418800017408
485
+ begin_IR
486
+ LIR
487
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
488
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
489
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
490
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
491
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
492
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
493
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
494
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
495
+ end_IR
496
+ end_block
497
+ end_cfg
498
+ begin_bytecodes
499
+ 0: new #54 // java.lang.Object
500
+ 3: dup
501
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
502
+ 7: astore_1
503
+ 8: aload_1
504
+ 9: dup
505
+ 10: astore_2
506
+ 11: monitorenter
507
+ 12: iload_0
508
+ 13: putstatic #54 // intField:int
509
+ 16: aload_2
510
+ 17: monitorexit
511
+ 18: goto 26
512
+ 21: astore_3
513
+ 22: aload_2
514
+ 23: monitorexit
515
+ 24: aload_3
516
+ 25: athrow
517
+ 26: return
518
+ <|@
519
+ end_bytecodes
520
+ begin_cfg
521
+ name "Before register allocation"
522
+ begin_block
523
+ name "B0"
524
+ from_bci -1
525
+ to_bci -1
526
+ predecessors
527
+ successors
528
+ xhandlers
529
+ flags
530
+ probability 4607182418800017408
531
+ begin_IR
532
+ LIR
533
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
534
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
535
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
536
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
537
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
538
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
539
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
540
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
541
+ end_IR
542
+ end_block
543
+ end_cfg
544
+ begin_bytecodes
545
+ 0: new #54 // java.lang.Object
546
+ 3: dup
547
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
548
+ 7: astore_1
549
+ 8: aload_1
550
+ 9: dup
551
+ 10: astore_2
552
+ 11: monitorenter
553
+ 12: iload_0
554
+ 13: putstatic #54 // intField:int
555
+ 16: aload_2
556
+ 17: monitorexit
557
+ 18: goto 26
558
+ 21: astore_3
559
+ 22: aload_2
560
+ 23: monitorexit
561
+ 24: aload_3
562
+ 25: athrow
563
+ 26: return
564
+ <|@
565
+ end_bytecodes
566
+ begin_cfg
567
+ name "After SSALinearScanLifetimeAnalysis"
568
+ begin_block
569
+ name "B0"
570
+ from_bci -1
571
+ to_bci -1
572
+ predecessors
573
+ successors
574
+ xhandlers
575
+ flags
576
+ probability 4607182418800017408
577
+ begin_IR
578
+ LIR
579
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
580
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
581
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
582
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
583
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
584
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
585
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
586
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
587
+ end_IR
588
+ end_block
589
+ end_cfg
590
+ begin_bytecodes
591
+ 0: new #54 // java.lang.Object
592
+ 3: dup
593
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
594
+ 7: astore_1
595
+ 8: aload_1
596
+ 9: dup
597
+ 10: astore_2
598
+ 11: monitorenter
599
+ 12: iload_0
600
+ 13: putstatic #54 // intField:int
601
+ 16: aload_2
602
+ 17: monitorexit
603
+ 18: goto 26
604
+ 21: astore_3
605
+ 22: aload_2
606
+ 23: monitorexit
607
+ 24: aload_3
608
+ 25: athrow
609
+ 26: return
610
+ <|@
611
+ end_bytecodes
612
+ begin_intervals
613
+ name "Before register allocation"
614
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
615
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
616
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
617
+ v1|q QWORD "[v1|q]" v1|q -1 [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
618
+ v2|q QWORD "[v2|q]" v2|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
619
+ end_intervals
620
+ begin_intervals
621
+ name "After register allocation"
622
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
623
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
624
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
625
+ v1|q QWORD "[r10|q]" v1|q -1 [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
626
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
627
+ end_intervals
628
+ begin_cfg
629
+ name "After LinearScanRegisterAllocation"
630
+ begin_block
631
+ name "B0"
632
+ from_bci -1
633
+ to_bci -1
634
+ predecessors
635
+ successors
636
+ xhandlers
637
+ flags
638
+ probability 4607182418800017408
639
+ begin_IR
640
+ LIR
641
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
642
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
643
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
644
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
645
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
646
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
647
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
648
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
649
+ end_IR
650
+ end_block
651
+ end_cfg
652
+ begin_bytecodes
653
+ 0: new #54 // java.lang.Object
654
+ 3: dup
655
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
656
+ 7: astore_1
657
+ 8: aload_1
658
+ 9: dup
659
+ 10: astore_2
660
+ 11: monitorenter
661
+ 12: iload_0
662
+ 13: putstatic #54 // intField:int
663
+ 16: aload_2
664
+ 17: monitorexit
665
+ 18: goto 26
666
+ 21: astore_3
667
+ 22: aload_2
668
+ 23: monitorexit
669
+ 24: aload_3
670
+ 25: athrow
671
+ 26: return
672
+ <|@
673
+ end_bytecodes
674
+ begin_intervals
675
+ name "After optimize spill position"
676
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
677
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
678
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
679
+ v1|q QWORD "[r10|q]" v1|q -1 [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
680
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
681
+ end_intervals
682
+ begin_cfg
683
+ name "After LinearScanOptimizeSpillPosition"
684
+ begin_block
685
+ name "B0"
686
+ from_bci -1
687
+ to_bci -1
688
+ predecessors
689
+ successors
690
+ xhandlers
691
+ flags
692
+ probability 4607182418800017408
693
+ begin_IR
694
+ LIR
695
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
696
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
697
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
698
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
699
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
700
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
701
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
702
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
703
+ end_IR
704
+ end_block
705
+ end_cfg
706
+ begin_bytecodes
707
+ 0: new #54 // java.lang.Object
708
+ 3: dup
709
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
710
+ 7: astore_1
711
+ 8: aload_1
712
+ 9: dup
713
+ 10: astore_2
714
+ 11: monitorenter
715
+ 12: iload_0
716
+ 13: putstatic #54 // intField:int
717
+ 16: aload_2
718
+ 17: monitorexit
719
+ 18: goto 26
720
+ 21: astore_3
721
+ 22: aload_2
722
+ 23: monitorexit
723
+ 24: aload_3
724
+ 25: athrow
725
+ 26: return
726
+ <|@
727
+ end_bytecodes
728
+ begin_intervals
729
+ name "After resolve data flow"
730
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
731
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
732
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
733
+ v1|q QWORD "[r10|q]" v1|q -1 [8, 10[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
734
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
735
+ end_intervals
736
+ begin_cfg
737
+ name "After SSALinearScanResolveDataFlow"
738
+ begin_block
739
+ name "B0"
740
+ from_bci -1
741
+ to_bci -1
742
+ predecessors
743
+ successors
744
+ xhandlers
745
+ flags
746
+ probability 4607182418800017408
747
+ begin_IR
748
+ LIR
749
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
750
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
751
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
752
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
753
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
754
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
755
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
756
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
757
+ end_IR
758
+ end_block
759
+ end_cfg
760
+ begin_bytecodes
761
+ 0: new #54 // java.lang.Object
762
+ 3: dup
763
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
764
+ 7: astore_1
765
+ 8: aload_1
766
+ 9: dup
767
+ 10: astore_2
768
+ 11: monitorenter
769
+ 12: iload_0
770
+ 13: putstatic #54 // intField:int
771
+ 16: aload_2
772
+ 17: monitorexit
773
+ 18: goto 26
774
+ 21: astore_3
775
+ 22: aload_2
776
+ 23: monitorexit
777
+ 24: aload_3
778
+ 25: athrow
779
+ 26: return
780
+ <|@
781
+ end_bytecodes
782
+ begin_cfg
783
+ name "After SSALinearScanEliminateSpillMove"
784
+ begin_block
785
+ name "B0"
786
+ from_bci -1
787
+ to_bci -1
788
+ predecessors
789
+ successors
790
+ xhandlers
791
+ flags
792
+ probability 4607182418800017408
793
+ begin_IR
794
+ LIR
795
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
796
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
797
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
798
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
799
+ nr 8 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
800
+ nr 10 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
801
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
802
+ nr 14 <|@ instruction RETURN (savedRbp: v2|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
803
+ end_IR
804
+ end_block
805
+ end_cfg
806
+ begin_bytecodes
807
+ 0: new #54 // java.lang.Object
808
+ 3: dup
809
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
810
+ 7: astore_1
811
+ 8: aload_1
812
+ 9: dup
813
+ 10: astore_2
814
+ 11: monitorenter
815
+ 12: iload_0
816
+ 13: putstatic #54 // intField:int
817
+ 16: aload_2
818
+ 17: monitorexit
819
+ 18: goto 26
820
+ 21: astore_3
821
+ 22: aload_2
822
+ 23: monitorexit
823
+ 24: aload_3
824
+ 25: athrow
825
+ 26: return
826
+ <|@
827
+ end_bytecodes
828
+ begin_cfg
829
+ name "After LinearScanAssignLocations"
830
+ begin_block
831
+ name "B0"
832
+ from_bci -1
833
+ to_bci -1
834
+ predecessors
835
+ successors
836
+ xhandlers
837
+ flags
838
+ probability 4607182418800017408
839
+ begin_IR
840
+ LIR
841
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
842
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
843
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
844
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
845
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
846
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
847
+ end_IR
848
+ end_block
849
+ end_cfg
850
+ begin_bytecodes
851
+ 0: new #54 // java.lang.Object
852
+ 3: dup
853
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
854
+ 7: astore_1
855
+ 8: aload_1
856
+ 9: dup
857
+ 10: astore_2
858
+ 11: monitorenter
859
+ 12: iload_0
860
+ 13: putstatic #54 // intField:int
861
+ 16: aload_2
862
+ 17: monitorexit
863
+ 18: goto 26
864
+ 21: astore_3
865
+ 22: aload_2
866
+ 23: monitorexit
867
+ 24: aload_3
868
+ 25: athrow
869
+ 26: return
870
+ <|@
871
+ end_bytecodes
872
+ begin_cfg
873
+ name "After LinearScan"
874
+ begin_block
875
+ name "B0"
876
+ from_bci -1
877
+ to_bci -1
878
+ predecessors
879
+ successors
880
+ xhandlers
881
+ flags
882
+ probability 4607182418800017408
883
+ begin_IR
884
+ LIR
885
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
886
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
887
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
888
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
889
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
890
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
891
+ end_IR
892
+ end_block
893
+ end_cfg
894
+ begin_bytecodes
895
+ 0: new #54 // java.lang.Object
896
+ 3: dup
897
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
898
+ 7: astore_1
899
+ 8: aload_1
900
+ 9: dup
901
+ 10: astore_2
902
+ 11: monitorenter
903
+ 12: iload_0
904
+ 13: putstatic #54 // intField:int
905
+ 16: aload_2
906
+ 17: monitorexit
907
+ 18: goto 26
908
+ 21: astore_3
909
+ 22: aload_2
910
+ 23: monitorexit
911
+ 24: aload_3
912
+ 25: athrow
913
+ 26: return
914
+ <|@
915
+ end_bytecodes
916
+ begin_cfg
917
+ name "After LSStackSlotAllocator"
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|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
930
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
931
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
932
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
933
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
934
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
935
+ end_IR
936
+ end_block
937
+ end_cfg
938
+ begin_bytecodes
939
+ 0: new #54 // java.lang.Object
940
+ 3: dup
941
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
942
+ 7: astore_1
943
+ 8: aload_1
944
+ 9: dup
945
+ 10: astore_2
946
+ 11: monitorenter
947
+ 12: iload_0
948
+ 13: putstatic #54 // intField:int
949
+ 16: aload_2
950
+ 17: monitorexit
951
+ 18: goto 26
952
+ 21: astore_3
953
+ 22: aload_2
954
+ 23: monitorexit
955
+ 24: aload_3
956
+ 25: athrow
957
+ 26: return
958
+ <|@
959
+ end_bytecodes
960
+ begin_cfg
961
+ name "After LocationMarker"
962
+ begin_block
963
+ name "B0"
964
+ from_bci -1
965
+ to_bci -1
966
+ predecessors
967
+ successors
968
+ xhandlers
969
+ flags
970
+ probability 4607182418800017408
971
+ begin_IR
972
+ LIR
973
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
974
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
975
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
976
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
977
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
978
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
979
+ end_IR
980
+ end_block
981
+ end_cfg
982
+ begin_bytecodes
983
+ 0: new #54 // java.lang.Object
984
+ 3: dup
985
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
986
+ 7: astore_1
987
+ 8: aload_1
988
+ 9: dup
989
+ 10: astore_2
990
+ 11: monitorenter
991
+ 12: iload_0
992
+ 13: putstatic #54 // intField:int
993
+ 16: aload_2
994
+ 17: monitorexit
995
+ 18: goto 26
996
+ 21: astore_3
997
+ 22: aload_2
998
+ 23: monitorexit
999
+ 24: aload_3
1000
+ 25: athrow
1001
+ 26: return
1002
+ <|@
1003
+ end_bytecodes
1004
+ begin_cfg
1005
+ name "After AllocationStage"
1006
+ begin_block
1007
+ name "B0"
1008
+ from_bci -1
1009
+ to_bci -1
1010
+ predecessors
1011
+ successors
1012
+ xhandlers
1013
+ flags
1014
+ probability 4607182418800017408
1015
+ begin_IR
1016
+ LIR
1017
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1018
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1019
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1020
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1021
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1022
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1023
+ end_IR
1024
+ end_block
1025
+ end_cfg
1026
+ begin_bytecodes
1027
+ 0: new #54 // java.lang.Object
1028
+ 3: dup
1029
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1030
+ 7: astore_1
1031
+ 8: aload_1
1032
+ 9: dup
1033
+ 10: astore_2
1034
+ 11: monitorenter
1035
+ 12: iload_0
1036
+ 13: putstatic #54 // intField:int
1037
+ 16: aload_2
1038
+ 17: monitorexit
1039
+ 18: goto 26
1040
+ 21: astore_3
1041
+ 22: aload_2
1042
+ 23: monitorexit
1043
+ 24: aload_3
1044
+ 25: athrow
1045
+ 26: return
1046
+ <|@
1047
+ end_bytecodes
1048
+ begin_cfg
1049
+ name "After EdgeMoveOptimizer"
1050
+ begin_block
1051
+ name "B0"
1052
+ from_bci -1
1053
+ to_bci -1
1054
+ predecessors
1055
+ successors
1056
+ xhandlers
1057
+ flags
1058
+ probability 4607182418800017408
1059
+ begin_IR
1060
+ LIR
1061
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1062
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1063
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1064
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1065
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1066
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1067
+ end_IR
1068
+ end_block
1069
+ end_cfg
1070
+ begin_bytecodes
1071
+ 0: new #54 // java.lang.Object
1072
+ 3: dup
1073
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1074
+ 7: astore_1
1075
+ 8: aload_1
1076
+ 9: dup
1077
+ 10: astore_2
1078
+ 11: monitorenter
1079
+ 12: iload_0
1080
+ 13: putstatic #54 // intField:int
1081
+ 16: aload_2
1082
+ 17: monitorexit
1083
+ 18: goto 26
1084
+ 21: astore_3
1085
+ 22: aload_2
1086
+ 23: monitorexit
1087
+ 24: aload_3
1088
+ 25: athrow
1089
+ 26: return
1090
+ <|@
1091
+ end_bytecodes
1092
+ begin_cfg
1093
+ name "After ControlFlowOptimizer"
1094
+ begin_block
1095
+ name "B0"
1096
+ from_bci -1
1097
+ to_bci -1
1098
+ predecessors
1099
+ successors
1100
+ xhandlers
1101
+ flags
1102
+ probability 4607182418800017408
1103
+ begin_IR
1104
+ LIR
1105
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1106
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1107
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1108
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1109
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1110
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1111
+ end_IR
1112
+ end_block
1113
+ end_cfg
1114
+ begin_bytecodes
1115
+ 0: new #54 // java.lang.Object
1116
+ 3: dup
1117
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1118
+ 7: astore_1
1119
+ 8: aload_1
1120
+ 9: dup
1121
+ 10: astore_2
1122
+ 11: monitorenter
1123
+ 12: iload_0
1124
+ 13: putstatic #54 // intField:int
1125
+ 16: aload_2
1126
+ 17: monitorexit
1127
+ 18: goto 26
1128
+ 21: astore_3
1129
+ 22: aload_2
1130
+ 23: monitorexit
1131
+ 24: aload_3
1132
+ 25: athrow
1133
+ 26: return
1134
+ <|@
1135
+ end_bytecodes
1136
+ begin_cfg
1137
+ name "After RedundantMoveElimination"
1138
+ begin_block
1139
+ name "B0"
1140
+ from_bci -1
1141
+ to_bci -1
1142
+ predecessors
1143
+ successors
1144
+ xhandlers
1145
+ flags
1146
+ probability 4607182418800017408
1147
+ begin_IR
1148
+ LIR
1149
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1150
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1151
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1152
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1153
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1154
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1155
+ end_IR
1156
+ end_block
1157
+ end_cfg
1158
+ begin_bytecodes
1159
+ 0: new #54 // java.lang.Object
1160
+ 3: dup
1161
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1162
+ 7: astore_1
1163
+ 8: aload_1
1164
+ 9: dup
1165
+ 10: astore_2
1166
+ 11: monitorenter
1167
+ 12: iload_0
1168
+ 13: putstatic #54 // intField:int
1169
+ 16: aload_2
1170
+ 17: monitorexit
1171
+ 18: goto 26
1172
+ 21: astore_3
1173
+ 22: aload_2
1174
+ 23: monitorexit
1175
+ 24: aload_3
1176
+ 25: athrow
1177
+ 26: return
1178
+ <|@
1179
+ end_bytecodes
1180
+ begin_cfg
1181
+ name "After NullCheckOptimizer"
1182
+ begin_block
1183
+ name "B0"
1184
+ from_bci -1
1185
+ to_bci -1
1186
+ predecessors
1187
+ successors
1188
+ xhandlers
1189
+ flags
1190
+ probability 4607182418800017408
1191
+ begin_IR
1192
+ LIR
1193
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1194
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1195
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1196
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1197
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1198
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1199
+ end_IR
1200
+ end_block
1201
+ end_cfg
1202
+ begin_bytecodes
1203
+ 0: new #54 // java.lang.Object
1204
+ 3: dup
1205
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1206
+ 7: astore_1
1207
+ 8: aload_1
1208
+ 9: dup
1209
+ 10: astore_2
1210
+ 11: monitorenter
1211
+ 12: iload_0
1212
+ 13: putstatic #54 // intField:int
1213
+ 16: aload_2
1214
+ 17: monitorexit
1215
+ 18: goto 26
1216
+ 21: astore_3
1217
+ 22: aload_2
1218
+ 23: monitorexit
1219
+ 24: aload_3
1220
+ 25: athrow
1221
+ 26: return
1222
+ <|@
1223
+ end_bytecodes
1224
+ begin_cfg
1225
+ name "After StackMoveOptimization"
1226
+ begin_block
1227
+ name "B0"
1228
+ from_bci -1
1229
+ to_bci -1
1230
+ predecessors
1231
+ successors
1232
+ xhandlers
1233
+ flags
1234
+ probability 4607182418800017408
1235
+ begin_IR
1236
+ LIR
1237
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1238
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1239
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1240
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1241
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1242
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1243
+ end_IR
1244
+ end_block
1245
+ end_cfg
1246
+ begin_bytecodes
1247
+ 0: new #54 // java.lang.Object
1248
+ 3: dup
1249
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1250
+ 7: astore_1
1251
+ 8: aload_1
1252
+ 9: dup
1253
+ 10: astore_2
1254
+ 11: monitorenter
1255
+ 12: iload_0
1256
+ 13: putstatic #54 // intField:int
1257
+ 16: aload_2
1258
+ 17: monitorexit
1259
+ 18: goto 26
1260
+ 21: astore_3
1261
+ 22: aload_2
1262
+ 23: monitorexit
1263
+ 24: aload_3
1264
+ 25: athrow
1265
+ 26: return
1266
+ <|@
1267
+ end_bytecodes
1268
+ begin_cfg
1269
+ name "After PostAllocationOptimizationStage"
1270
+ begin_block
1271
+ name "B0"
1272
+ from_bci -1
1273
+ to_bci -1
1274
+ predecessors
1275
+ successors
1276
+ xhandlers
1277
+ flags
1278
+ probability 4607182418800017408
1279
+ begin_IR
1280
+ LIR
1281
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1282
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <|@ <|@
1283
+ nr 8 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1284
+ nr 10 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
1285
+ nr 12 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1286
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1287
+ end_IR
1288
+ end_block
1289
+ end_cfg
1290
+ begin_bytecodes
1291
+ 0: new #54 // java.lang.Object
1292
+ 3: dup
1293
+ 4: invokespecial #0 // java.lang.Object.<init>:()void
1294
+ 7: astore_1
1295
+ 8: aload_1
1296
+ 9: dup
1297
+ 10: astore_2
1298
+ 11: monitorenter
1299
+ 12: iload_0
1300
+ 13: putstatic #54 // intField:int
1301
+ 16: aload_2
1302
+ 17: monitorexit
1303
+ 18: goto 26
1304
+ 21: astore_3
1305
+ 22: aload_2
1306
+ 23: monitorexit
1307
+ 24: aload_3
1308
+ 25: athrow
1309
+ 26: return
1310
+ <|@
1311
+ end_bytecodes
1312
+ begin_cfg
1313
+ name "After code generation"
1314
+ end_cfg
1315
+ begin_nmethod
1316
+ <<<HexCodeFile
1317
+ Platform AMD64 64 <||@
1318
+ HexCode 0 0f1f44000049baaddeaddeaddeadde4189b280000000f083042400850500000000c5f877c3e80000000090e80000000090 <||@
1319
+ Comment 0 3 <||@
1320
+ Comment 0 1 <||@
1321
+ Comment 5 block B0 null <||@
1322
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1323
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <||@
1324
+ Comment 5 8 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
1325
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
1326
+ Comment 15 10 MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <||@
1327
+ Comment 22 12 MEMBAR barriers: 4 <||@
1328
+ Comment 27 14 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
1329
+ Comment 27 12 <||@
1330
+ Comment 37 {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} <||@
1331
+ Comment 37 4 <||@
1332
+ Comment 43 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1333
+ Comment 43 5 <||@
1334
+ HexCodeFile>>> <|@
1335
+ end_nmethod
1336
+ begin_compilation
1337
+ name " HotSpotCompilation-370[JavaExamples.exampleLocalSynchronized(int)]"
1338
+ method "HotSpotCompilation-370[JavaExamples.exampleLocalSynchronized(int)]"
1339
+ date 1583364092263
1340
+ end_compilation
1341
+ begin_cfg
1342
+ name "After code installation"
1343
+ end_cfg
1344
+ begin_nmethod
1345
+ <<<HexCodeFile
1346
+ Platform AMD64 64 <||@
1347
+ HexCode 112e37be0 0f1f44000049bab0275f15070000004189b280000000f0830424008505053493fbc5f877c3e816c7feff90e830c6eaff90f4f4f4f4f4f4f4 <||@
1348
+ Comment 0 3 <||@
1349
+ Comment 0 1 <||@
1350
+ Comment 5 block B0 null <||@
1351
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1352
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13cb46c48 slotKind: QWORD <||@
1353
+ Comment 5 8 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
1354
+ Comment 5 {Object[Instance<java.lang.Class>]} <||@
1355
+ Comment 15 10 MOV (x: [r10|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <||@
1356
+ Comment 22 12 MEMBAR barriers: 4 <||@
1357
+ Comment 27 14 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
1358
+ Comment 27 12 <||@
1359
+ Comment 37 {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} <||@
1360
+ Comment 37 4 <||@
1361
+ Comment 43 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1362
+ Comment 43 5 <||@
1363
+ HexCodeFile>>> <|@
1364
+ end_nmethod