seafoam 0.2

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