seafoam 0.4 → 0.5

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +39 -0
  3. data/.rubocop.yml +1 -1
  4. data/README.md +75 -2
  5. data/bin/bgv2isabelle +16 -45
  6. data/bin/bgv2json +18 -36
  7. data/bin/cfg2asm +24 -0
  8. data/bin/seafoam +1 -1
  9. data/demos/box-unbox-stats +65 -0
  10. data/docs/getting-graphs.md +4 -0
  11. data/examples/fib-java.bgv.gz +0 -0
  12. data/examples/fib.js +1 -1
  13. data/examples/java/JavaExamples.java +1 -1
  14. data/examples/ruby/clamps.rb +20 -0
  15. data/examples/ruby/graal.patch +15 -0
  16. data/examples/ruby/ruby_examples.rb +278 -0
  17. data/lib/seafoam.rb +5 -0
  18. data/lib/seafoam/annotators/graal.rb +1 -1
  19. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  20. data/lib/seafoam/cfg/disassembler.rb +70 -0
  21. data/lib/seafoam/commands.rb +185 -29
  22. data/lib/seafoam/graal/source.rb +23 -0
  23. data/lib/seafoam/isabelle_writer.rb +46 -0
  24. data/lib/seafoam/json_writer.rb +58 -0
  25. data/lib/seafoam/version.rb +1 -1
  26. data/seafoam.gemspec +2 -1
  27. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  28. data/spec/seafoam/bgv/bgv_parser_spec.rb +2 -2
  29. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  30. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  31. data/spec/seafoam/command_spec.rb +78 -30
  32. data/spec/seafoam/json_writer_spec.rb +14 -0
  33. data/spec/seafoam/spec_helpers.rb +4 -0
  34. data/tools/render-all +2 -2
  35. metadata +36 -102
  36. data/.github/workflows/rubocop.yml +0 -10
  37. data/.github/workflows/specs.yml +0 -19
  38. data/examples/fib-java.bgv +0 -0
  39. data/examples/fib-js.bgv +0 -0
  40. data/examples/fib-ruby.bgv +0 -0
  41. data/examples/identity.bgv +0 -0
  42. data/examples/java/exampleArithOperator.bgv +0 -0
  43. data/examples/java/exampleArithOperator.cfg +0 -925
  44. data/examples/java/exampleArrayAllocation.bgv +0 -0
  45. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  46. data/examples/java/exampleArrayRead.bgv +0 -0
  47. data/examples/java/exampleArrayRead.cfg +0 -2263
  48. data/examples/java/exampleArrayWrite.bgv +0 -0
  49. data/examples/java/exampleArrayWrite.cfg +0 -2315
  50. data/examples/java/exampleCatch.bgv +0 -0
  51. data/examples/java/exampleCatch.cfg +0 -4150
  52. data/examples/java/exampleCompareOperator.bgv +0 -0
  53. data/examples/java/exampleCompareOperator.cfg +0 -1109
  54. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  55. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  56. data/examples/java/exampleExactArith.bgv +0 -0
  57. data/examples/java/exampleExactArith.cfg +0 -1888
  58. data/examples/java/exampleFieldRead.bgv +0 -0
  59. data/examples/java/exampleFieldRead.cfg +0 -1228
  60. data/examples/java/exampleFieldWrite.bgv +0 -0
  61. data/examples/java/exampleFieldWrite.cfg +0 -1102
  62. data/examples/java/exampleFor.bgv +0 -0
  63. data/examples/java/exampleFor.cfg +0 -3936
  64. data/examples/java/exampleFullEscape.bgv +0 -0
  65. data/examples/java/exampleFullEscape.cfg +0 -5893
  66. data/examples/java/exampleIf.bgv +0 -0
  67. data/examples/java/exampleIf.cfg +0 -2462
  68. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  69. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  70. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  71. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  72. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  73. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  74. data/examples/java/exampleIntSwitch.bgv +0 -0
  75. data/examples/java/exampleIntSwitch.cfg +0 -3121
  76. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  77. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  78. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  79. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  80. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  81. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  82. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  83. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  84. data/examples/java/exampleLocalVariables.bgv +0 -0
  85. data/examples/java/exampleLocalVariables.cfg +0 -1195
  86. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  87. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  88. data/examples/java/exampleNestedWhile.bgv +0 -0
  89. data/examples/java/exampleNestedWhile.cfg +0 -15499
  90. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  91. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  92. data/examples/java/exampleNoEscape.bgv +0 -0
  93. data/examples/java/exampleNoEscape.cfg +0 -974
  94. data/examples/java/exampleObjectAllocation.bgv +0 -0
  95. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  96. data/examples/java/examplePartialEscape.bgv +0 -0
  97. data/examples/java/examplePartialEscape.cfg +0 -7042
  98. data/examples/java/examplePhi.bgv +0 -0
  99. data/examples/java/examplePhi.cfg +0 -3227
  100. data/examples/java/exampleReducible.bgv +0 -0
  101. data/examples/java/exampleReducible.cfg +0 -5578
  102. data/examples/java/exampleSimpleCall.bgv +0 -0
  103. data/examples/java/exampleSimpleCall.cfg +0 -1435
  104. data/examples/java/exampleStamp.bgv +0 -0
  105. data/examples/java/exampleStamp.cfg +0 -913
  106. data/examples/java/exampleStaticCall.bgv +0 -0
  107. data/examples/java/exampleStaticCall.cfg +0 -1154
  108. data/examples/java/exampleStringSwitch.bgv +0 -0
  109. data/examples/java/exampleStringSwitch.cfg +0 -15377
  110. data/examples/java/exampleSynchronized.bgv +0 -0
  111. data/examples/java/exampleSynchronized.cfg +0 -26027
  112. data/examples/java/exampleThrow.bgv +0 -0
  113. data/examples/java/exampleThrow.cfg +0 -780
  114. data/examples/java/exampleThrowCatch.bgv +0 -0
  115. data/examples/java/exampleThrowCatch.cfg +0 -744
  116. data/examples/java/exampleUnsafeRead.bgv +0 -0
  117. data/examples/java/exampleUnsafeRead.cfg +0 -912
  118. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  119. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  120. data/examples/java/exampleWhile.bgv +0 -0
  121. data/examples/java/exampleWhile.cfg +0 -3936
  122. data/examples/java/exampleWhileBreak.bgv +0 -0
  123. data/examples/java/exampleWhileBreak.cfg +0 -5963
  124. data/examples/matmult-java.bgv +0 -0
  125. data/examples/matmult-ruby.bgv +0 -0
  126. data/examples/overflow.bgv +0 -0
  127. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  128. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
Binary file
@@ -1,2462 +0,0 @@
1
- begin_compilation
2
- name " HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
3
- method "HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
4
- date 1583364091932
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 "B1" "B2"
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: v9
28
- === Usages ===
29
- === Predecessor ===
30
- - >@ <|@
31
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
32
- f <@~|@floating>@ <|@
33
- tid a23 <|@
34
- d <@d|@=== Debug Properties ===
35
- isDefaultStable: false
36
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
37
- rawvalue: Instance<java.lang.Class>
38
- stableDimension: 0
39
- stamp: a!# Ljava/lang/Class;
40
- stampKind: a -
41
- value: Object[Instance<java.lang.Class>]
42
- === Inputs ===
43
- === Succesors ===
44
- === Usages ===
45
- v28
46
- === Predecessor ===
47
- - >@ <|@
48
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
49
- f <@~|@floating>@ <|@
50
- tid v28 <|@
51
- d <@d|@=== Debug Properties ===
52
- displacement: 128
53
- scale: Times1
54
- stamp: void*
55
- === Inputs ===
56
- base: a23
57
- index: -
58
- === Succesors ===
59
- === Usages ===
60
- v26 v27
61
- === Predecessor ===
62
- - >@ <|@
63
- instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a23 index: - <|@ <|@
64
- f <@~|@floating>@ <|@
65
- tid i1 <|@
66
- d <@d|@=== Debug Properties ===
67
- index: 0
68
- stamp: i32
69
- uncheckedStamp: [null]
70
- === Inputs ===
71
- === Succesors ===
72
- === Usages ===
73
- v6
74
- === Predecessor ===
75
- - >@ <|@
76
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
77
- f <@~|@floating>@ <|@
78
- tid i5 <|@
79
- d <@d|@=== Debug Properties ===
80
- isDefaultStable: false
81
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
82
- rawvalue: 0
83
- stableDimension: 0
84
- stamp: i32 [0] ⇈0000000000000000
85
- stampKind: i32
86
- value: int[0|0x0]
87
- === Inputs ===
88
- === Succesors ===
89
- === Usages ===
90
- v6
91
- === Predecessor ===
92
- - >@ <|@
93
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
94
- f <@~|@floating>@ <|@
95
- tid v6 <|@
96
- d <@d|@=== Debug Properties ===
97
- condition: EQ
98
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
99
- stamp: void
100
- unorderedIsTrue: false
101
- === Inputs ===
102
- x: i1
103
- y: i5
104
- === Succesors ===
105
- === Usages ===
106
- v9
107
- === Predecessor ===
108
- - >@ <|@
109
- instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i5 <|@ <|@
110
- f <@*|@fixed>@ <|@
111
- tid v9 <|@
112
- d <@d|@=== Debug Properties ===
113
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
114
- stamp: void
115
- trueSuccessorProbability: 0.4998114985862394
116
- === Inputs ===
117
- condition: v6
118
- === Succesors ===
119
- trueSuccessor: v8
120
- falseSuccessor: v7
121
- === Usages ===
122
- === Predecessor ===
123
- v0 >@ <|@
124
- instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v6 #trueSuccessor: v8 #falseSuccessor: v7 <|@ <|@
125
- end_IR
126
- end_block
127
- begin_block
128
- name "B1"
129
- from_bci -1
130
- to_bci -1
131
- predecessors "B0"
132
- successors
133
- xhandlers
134
- flags
135
- probability 4602675423433059828
136
- begin_IR
137
- HIR
138
- f <@#|@fixed with next>@ <|@
139
- tid v8 <|@
140
- d <@d|@=== Debug Properties ===
141
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 13]
142
- stamp: void
143
- withSpeculationFence: false
144
- === Inputs ===
145
- === Succesors ===
146
- next: v29
147
- === Usages ===
148
- === Predecessor ===
149
- v9 >@ <|@
150
- instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v29 <|@ <|@
151
- f <@#|@fixed with next>@ <|@
152
- tid v29 <|@
153
- d <@d|@=== Debug Properties ===
154
- barriers: 10
155
- location: ANY_LOCATION
156
- stamp: void
157
- === Inputs ===
158
- === Succesors ===
159
- next: v26
160
- === Usages ===
161
- === Predecessor ===
162
- v8 >@ <|@
163
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
164
- f <@~|@floating>@ <|@
165
- tid i3 <|@
166
- d <@d|@=== Debug Properties ===
167
- index: 2
168
- stamp: i32
169
- uncheckedStamp: [null]
170
- === Inputs ===
171
- === Succesors ===
172
- === Usages ===
173
- v22 v26
174
- === Predecessor ===
175
- - >@ <|@
176
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
177
- f <@#|@fixed with next>@ <|@
178
- tid v26 <|@
179
- d <@d|@=== Debug Properties ===
180
- barrierType: NONE
181
- location: JavaExamples.intField
182
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
183
- nullCheck: false
184
- stamp: void
185
- volatileAccess: true
186
- === Inputs ===
187
- stateBefore: -
188
- guard: -
189
- address: v28
190
- value: i3
191
- stateAfter: -
192
- lastLocationAccess: -
193
- === Succesors ===
194
- next: v30
195
- === Usages ===
196
- === Predecessor ===
197
- v29 >@ <|@
198
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i3 stateAfter: - lastLocationAccess: - #next: v30 <|@ <|@
199
- f <@#|@fixed with next>@ <|@
200
- tid v30 <|@
201
- d <@d|@=== Debug Properties ===
202
- barriers: 12
203
- location: ANY_LOCATION
204
- stamp: void
205
- === Inputs ===
206
- === Succesors ===
207
- next: v22
208
- === Usages ===
209
- === Predecessor ===
210
- v26 >@ <|@
211
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v22 <|@ <|@
212
- f <@*|@fixed>@ <|@
213
- tid v22 <|@
214
- d <@d|@=== Debug Properties ===
215
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
216
- stamp: void
217
- === Inputs ===
218
- result: i3
219
- memoryMap: -
220
- === Succesors ===
221
- === Usages ===
222
- === Predecessor ===
223
- v30 >@ <|@
224
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
225
- end_IR
226
- end_block
227
- begin_block
228
- name "B2"
229
- from_bci -1
230
- to_bci -1
231
- predecessors "B0"
232
- successors
233
- xhandlers
234
- flags
235
- probability 4602680517042440454
236
- begin_IR
237
- HIR
238
- f <@#|@fixed with next>@ <|@
239
- tid v7 <|@
240
- d <@d|@=== Debug Properties ===
241
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 4]
242
- stamp: void
243
- withSpeculationFence: false
244
- === Inputs ===
245
- === Succesors ===
246
- next: v31
247
- === Usages ===
248
- === Predecessor ===
249
- v9 >@ <|@
250
- instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v31 <|@ <|@
251
- f <@#|@fixed with next>@ <|@
252
- tid v31 <|@
253
- d <@d|@=== Debug Properties ===
254
- barriers: 10
255
- location: ANY_LOCATION
256
- stamp: void
257
- === Inputs ===
258
- === Succesors ===
259
- next: v27
260
- === Usages ===
261
- === Predecessor ===
262
- v7 >@ <|@
263
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v27 <|@ <|@
264
- f <@~|@floating>@ <|@
265
- tid i2 <|@
266
- d <@d|@=== Debug Properties ===
267
- index: 1
268
- stamp: i32
269
- uncheckedStamp: [null]
270
- === Inputs ===
271
- === Succesors ===
272
- === Usages ===
273
- v21 v27
274
- === Predecessor ===
275
- - >@ <|@
276
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
277
- f <@#|@fixed with next>@ <|@
278
- tid v27 <|@
279
- d <@d|@=== Debug Properties ===
280
- barrierType: NONE
281
- location: JavaExamples.intField
282
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 5]
283
- nullCheck: false
284
- stamp: void
285
- volatileAccess: true
286
- === Inputs ===
287
- stateBefore: -
288
- guard: -
289
- address: v28
290
- value: i2
291
- stateAfter: -
292
- lastLocationAccess: -
293
- === Succesors ===
294
- next: v32
295
- === Usages ===
296
- === Predecessor ===
297
- v31 >@ <|@
298
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i2 stateAfter: - lastLocationAccess: - #next: v32 <|@ <|@
299
- f <@#|@fixed with next>@ <|@
300
- tid v32 <|@
301
- d <@d|@=== Debug Properties ===
302
- barriers: 12
303
- location: ANY_LOCATION
304
- stamp: void
305
- === Inputs ===
306
- === Succesors ===
307
- next: v21
308
- === Usages ===
309
- === Predecessor ===
310
- v27 >@ <|@
311
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v21 <|@ <|@
312
- f <@*|@fixed>@ <|@
313
- tid v21 <|@
314
- d <@d|@=== Debug Properties ===
315
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
316
- stamp: void
317
- === Inputs ===
318
- result: i2
319
- memoryMap: -
320
- === Succesors ===
321
- === Usages ===
322
- === Predecessor ===
323
- v32 >@ <|@
324
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
325
- end_IR
326
- end_block
327
- end_cfg
328
- begin_cfg
329
- name "After LIRGeneration"
330
- begin_block
331
- name "B0"
332
- from_bci -1
333
- to_bci -1
334
- predecessors
335
- successors "B1" "B2"
336
- xhandlers
337
- flags
338
- probability 4607182418800017408
339
- begin_IR
340
- LIR
341
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
342
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
343
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
344
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
345
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
346
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
347
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
348
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
349
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
350
- end_IR
351
- end_block
352
- begin_block
353
- name "B2"
354
- from_bci -1
355
- to_bci -1
356
- predecessors "B0"
357
- successors
358
- xhandlers
359
- flags
360
- probability 4602680517042440454
361
- begin_IR
362
- LIR
363
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
364
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
365
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
366
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
367
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
368
- end_IR
369
- end_block
370
- begin_block
371
- name "B1"
372
- from_bci -1
373
- to_bci -1
374
- predecessors "B0"
375
- successors
376
- xhandlers
377
- flags
378
- probability 4602675423433059828
379
- begin_IR
380
- LIR
381
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
382
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
383
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
384
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
385
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
386
- end_IR
387
- end_block
388
- end_cfg
389
- begin_bytecodes
390
- 0: iload_0
391
- 1: ifeq 13
392
- 4: iload_1
393
- 5: putstatic #54 // intField:int
394
- 8: iload_1
395
- 9: istore_3
396
- 10: goto 19
397
- 13: iload_2
398
- 14: putstatic #54 // intField:int
399
- 17: iload_2
400
- 18: istore_3
401
- 19: iload_3
402
- 20: ireturn
403
- <|@
404
- end_bytecodes
405
- begin_cfg
406
- name "After LIR generation"
407
- begin_block
408
- name "B0"
409
- from_bci -1
410
- to_bci -1
411
- predecessors
412
- successors "B1" "B2"
413
- xhandlers
414
- flags
415
- probability 4607182418800017408
416
- begin_IR
417
- HIR
418
- f <@#|@fixed with next>@ <|@
419
- tid v0 <|@
420
- d <@d|@=== Debug Properties ===
421
- stamp: void
422
- withSpeculationFence: false
423
- === Inputs ===
424
- stateAfter: -
425
- === Succesors ===
426
- next: v9
427
- === Usages ===
428
- === Predecessor ===
429
- - >@ <|@
430
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v9 <|@ <|@
431
- f <@~|@floating>@ <|@
432
- tid a23 <|@
433
- result v3|QWORD[.] <|@
434
- d <@d|@=== Debug Properties ===
435
- isDefaultStable: false
436
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
437
- rawvalue: Instance<java.lang.Class>
438
- stableDimension: 0
439
- stamp: a!# Ljava/lang/Class;
440
- stampKind: a -
441
- value: Object[Instance<java.lang.Class>]
442
- === Inputs ===
443
- === Succesors ===
444
- === Usages ===
445
- v28
446
- === Predecessor ===
447
- - >@ <|@
448
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
449
- f <@~|@floating>@ <|@
450
- tid v28 <|@
451
- result [v3|QWORD[.] + 128] <|@
452
- d <@d|@=== Debug Properties ===
453
- displacement: 128
454
- scale: Times1
455
- stamp: void*
456
- === Inputs ===
457
- base: a23
458
- index: -
459
- === Succesors ===
460
- === Usages ===
461
- v26 v27
462
- === Predecessor ===
463
- - >@ <|@
464
- instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a23 index: - <|@ <|@
465
- f <@~|@floating>@ <|@
466
- tid i1 <|@
467
- result v0|DWORD <|@
468
- d <@d|@=== Debug Properties ===
469
- index: 0
470
- stamp: i32
471
- uncheckedStamp: [null]
472
- === Inputs ===
473
- === Succesors ===
474
- === Usages ===
475
- v6
476
- === Predecessor ===
477
- - >@ <|@
478
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
479
- f <@~|@floating>@ <|@
480
- tid i5 <|@
481
- result int[0|0x0] <|@
482
- d <@d|@=== Debug Properties ===
483
- isDefaultStable: false
484
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
485
- rawvalue: 0
486
- stableDimension: 0
487
- stamp: i32 [0] ⇈0000000000000000
488
- stampKind: i32
489
- value: int[0|0x0]
490
- === Inputs ===
491
- === Succesors ===
492
- === Usages ===
493
- v6
494
- === Predecessor ===
495
- - >@ <|@
496
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
497
- f <@~|@floating>@ <|@
498
- tid v6 <|@
499
- d <@d|@=== Debug Properties ===
500
- condition: EQ
501
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
502
- stamp: void
503
- unorderedIsTrue: false
504
- === Inputs ===
505
- x: i1
506
- y: i5
507
- === Succesors ===
508
- === Usages ===
509
- v9
510
- === Predecessor ===
511
- - >@ <|@
512
- instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i5 <|@ <|@
513
- f <@*|@fixed>@ <|@
514
- tid v9 <|@
515
- d <@d|@=== Debug Properties ===
516
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:142) [bci: 1]
517
- stamp: void
518
- trueSuccessorProbability: 0.4998114985862394
519
- === Inputs ===
520
- condition: v6
521
- === Succesors ===
522
- trueSuccessor: v8
523
- falseSuccessor: v7
524
- === Usages ===
525
- === Predecessor ===
526
- v0 >@ <|@
527
- instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v6 #trueSuccessor: v8 #falseSuccessor: v7 <|@ <|@
528
- end_IR
529
- begin_IR
530
- LIR
531
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
532
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
533
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
534
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
535
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
536
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
537
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
538
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
539
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
540
- end_IR
541
- end_block
542
- begin_block
543
- name "B1"
544
- from_bci -1
545
- to_bci -1
546
- predecessors "B0"
547
- successors
548
- xhandlers
549
- flags
550
- probability 4602675423433059828
551
- begin_IR
552
- HIR
553
- f <@#|@fixed with next>@ <|@
554
- tid v8 <|@
555
- d <@d|@=== Debug Properties ===
556
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 13]
557
- stamp: void
558
- withSpeculationFence: false
559
- === Inputs ===
560
- === Succesors ===
561
- next: v29
562
- === Usages ===
563
- === Predecessor ===
564
- v9 >@ <|@
565
- instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v29 <|@ <|@
566
- f <@#|@fixed with next>@ <|@
567
- tid v29 <|@
568
- d <@d|@=== Debug Properties ===
569
- barriers: 10
570
- location: ANY_LOCATION
571
- stamp: void
572
- === Inputs ===
573
- === Succesors ===
574
- next: v26
575
- === Usages ===
576
- === Predecessor ===
577
- v8 >@ <|@
578
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v26 <|@ <|@
579
- f <@~|@floating>@ <|@
580
- tid i3 <|@
581
- result v2|DWORD <|@
582
- d <@d|@=== Debug Properties ===
583
- index: 2
584
- stamp: i32
585
- uncheckedStamp: [null]
586
- === Inputs ===
587
- === Succesors ===
588
- === Usages ===
589
- v22 v26
590
- === Predecessor ===
591
- - >@ <|@
592
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
593
- f <@#|@fixed with next>@ <|@
594
- tid v26 <|@
595
- d <@d|@=== Debug Properties ===
596
- barrierType: NONE
597
- location: JavaExamples.intField
598
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:146) [bci: 14]
599
- nullCheck: false
600
- stamp: void
601
- volatileAccess: true
602
- === Inputs ===
603
- stateBefore: -
604
- guard: -
605
- address: v28
606
- value: i3
607
- stateAfter: -
608
- lastLocationAccess: -
609
- === Succesors ===
610
- next: v30
611
- === Usages ===
612
- === Predecessor ===
613
- v29 >@ <|@
614
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i3 stateAfter: - lastLocationAccess: - #next: v30 <|@ <|@
615
- f <@#|@fixed with next>@ <|@
616
- tid v30 <|@
617
- d <@d|@=== Debug Properties ===
618
- barriers: 12
619
- location: ANY_LOCATION
620
- stamp: void
621
- === Inputs ===
622
- === Succesors ===
623
- next: v22
624
- === Usages ===
625
- === Predecessor ===
626
- v26 >@ <|@
627
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v22 <|@ <|@
628
- f <@*|@fixed>@ <|@
629
- tid v22 <|@
630
- d <@d|@=== Debug Properties ===
631
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
632
- stamp: void
633
- === Inputs ===
634
- result: i3
635
- memoryMap: -
636
- === Succesors ===
637
- === Usages ===
638
- === Predecessor ===
639
- v30 >@ <|@
640
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i3 memoryMap: - <|@ <|@
641
- end_IR
642
- begin_IR
643
- LIR
644
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
645
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
646
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
647
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
648
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
649
- end_IR
650
- end_block
651
- begin_block
652
- name "B2"
653
- from_bci -1
654
- to_bci -1
655
- predecessors "B0"
656
- successors
657
- xhandlers
658
- flags
659
- probability 4602680517042440454
660
- begin_IR
661
- HIR
662
- f <@#|@fixed with next>@ <|@
663
- tid v7 <|@
664
- d <@d|@=== Debug Properties ===
665
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 4]
666
- stamp: void
667
- withSpeculationFence: false
668
- === Inputs ===
669
- === Succesors ===
670
- next: v31
671
- === Usages ===
672
- === Predecessor ===
673
- v9 >@ <|@
674
- instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v31 <|@ <|@
675
- f <@#|@fixed with next>@ <|@
676
- tid v31 <|@
677
- d <@d|@=== Debug Properties ===
678
- barriers: 10
679
- location: ANY_LOCATION
680
- stamp: void
681
- === Inputs ===
682
- === Succesors ===
683
- next: v27
684
- === Usages ===
685
- === Predecessor ===
686
- v7 >@ <|@
687
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v27 <|@ <|@
688
- f <@~|@floating>@ <|@
689
- tid i2 <|@
690
- result v1|DWORD <|@
691
- d <@d|@=== Debug Properties ===
692
- index: 1
693
- stamp: i32
694
- uncheckedStamp: [null]
695
- === Inputs ===
696
- === Succesors ===
697
- === Usages ===
698
- v21 v27
699
- === Predecessor ===
700
- - >@ <|@
701
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
702
- f <@#|@fixed with next>@ <|@
703
- tid v27 <|@
704
- d <@d|@=== Debug Properties ===
705
- barrierType: NONE
706
- location: JavaExamples.intField
707
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:143) [bci: 5]
708
- nullCheck: false
709
- stamp: void
710
- volatileAccess: true
711
- === Inputs ===
712
- stateBefore: -
713
- guard: -
714
- address: v28
715
- value: i2
716
- stateAfter: -
717
- lastLocationAccess: -
718
- === Succesors ===
719
- next: v32
720
- === Usages ===
721
- === Predecessor ===
722
- v31 >@ <|@
723
- instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v28 value: i2 stateAfter: - lastLocationAccess: - #next: v32 <|@ <|@
724
- f <@#|@fixed with next>@ <|@
725
- tid v32 <|@
726
- d <@d|@=== Debug Properties ===
727
- barriers: 12
728
- location: ANY_LOCATION
729
- stamp: void
730
- === Inputs ===
731
- === Succesors ===
732
- next: v21
733
- === Usages ===
734
- === Predecessor ===
735
- v27 >@ <|@
736
- instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v21 <|@ <|@
737
- f <@*|@fixed>@ <|@
738
- tid v21 <|@
739
- d <@d|@=== Debug Properties ===
740
- nodeSourcePosition: at JavaExamples.exampleIf(JavaExamples.java:149) [bci: 20]
741
- stamp: void
742
- === Inputs ===
743
- result: i2
744
- memoryMap: -
745
- === Succesors ===
746
- === Usages ===
747
- === Predecessor ===
748
- v32 >@ <|@
749
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i2 memoryMap: - <|@ <|@
750
- end_IR
751
- begin_IR
752
- LIR
753
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
754
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
755
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
756
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
757
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
758
- end_IR
759
- end_block
760
- end_cfg
761
- begin_cfg
762
- name "After ConstantLoadOptimization"
763
- begin_block
764
- name "B0"
765
- from_bci -1
766
- to_bci -1
767
- predecessors
768
- successors "B1" "B2"
769
- xhandlers
770
- flags
771
- probability 4607182418800017408
772
- begin_IR
773
- LIR
774
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
775
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
776
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
777
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
778
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
779
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
780
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
781
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
782
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
783
- end_IR
784
- end_block
785
- begin_block
786
- name "B2"
787
- from_bci -1
788
- to_bci -1
789
- predecessors "B0"
790
- successors
791
- xhandlers
792
- flags
793
- probability 4602680517042440454
794
- begin_IR
795
- LIR
796
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
797
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
798
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
799
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
800
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
801
- end_IR
802
- end_block
803
- begin_block
804
- name "B1"
805
- from_bci -1
806
- to_bci -1
807
- predecessors "B0"
808
- successors
809
- xhandlers
810
- flags
811
- probability 4602675423433059828
812
- begin_IR
813
- LIR
814
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
815
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
816
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
817
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
818
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
819
- end_IR
820
- end_block
821
- end_cfg
822
- begin_bytecodes
823
- 0: iload_0
824
- 1: ifeq 13
825
- 4: iload_1
826
- 5: putstatic #54 // intField:int
827
- 8: iload_1
828
- 9: istore_3
829
- 10: goto 19
830
- 13: iload_2
831
- 14: putstatic #54 // intField:int
832
- 17: iload_2
833
- 18: istore_3
834
- 19: iload_3
835
- 20: ireturn
836
- <|@
837
- end_bytecodes
838
- begin_cfg
839
- name "After SaveCalleeSaveRegisters"
840
- begin_block
841
- name "B0"
842
- from_bci -1
843
- to_bci -1
844
- predecessors
845
- successors "B1" "B2"
846
- xhandlers
847
- flags
848
- probability 4607182418800017408
849
- begin_IR
850
- LIR
851
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
852
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
853
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
854
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
855
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
856
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
857
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
858
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
859
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
860
- end_IR
861
- end_block
862
- begin_block
863
- name "B2"
864
- from_bci -1
865
- to_bci -1
866
- predecessors "B0"
867
- successors
868
- xhandlers
869
- flags
870
- probability 4602680517042440454
871
- begin_IR
872
- LIR
873
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
874
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
875
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
876
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
877
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
878
- end_IR
879
- end_block
880
- begin_block
881
- name "B1"
882
- from_bci -1
883
- to_bci -1
884
- predecessors "B0"
885
- successors
886
- xhandlers
887
- flags
888
- probability 4602675423433059828
889
- begin_IR
890
- LIR
891
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
892
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
893
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
894
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
895
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
896
- end_IR
897
- end_block
898
- end_cfg
899
- begin_bytecodes
900
- 0: iload_0
901
- 1: ifeq 13
902
- 4: iload_1
903
- 5: putstatic #54 // intField:int
904
- 8: iload_1
905
- 9: istore_3
906
- 10: goto 19
907
- 13: iload_2
908
- 14: putstatic #54 // intField:int
909
- 17: iload_2
910
- 18: istore_3
911
- 19: iload_3
912
- 20: ireturn
913
- <|@
914
- end_bytecodes
915
- begin_cfg
916
- name "After PreAllocationOptimizationStage"
917
- begin_block
918
- name "B0"
919
- from_bci -1
920
- to_bci -1
921
- predecessors
922
- successors "B1" "B2"
923
- xhandlers
924
- flags
925
- probability 4607182418800017408
926
- begin_IR
927
- LIR
928
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
929
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
930
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
931
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
932
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
933
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
934
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
935
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
936
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
937
- end_IR
938
- end_block
939
- begin_block
940
- name "B2"
941
- from_bci -1
942
- to_bci -1
943
- predecessors "B0"
944
- successors
945
- xhandlers
946
- flags
947
- probability 4602680517042440454
948
- begin_IR
949
- LIR
950
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
951
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
952
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
953
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
954
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
955
- end_IR
956
- end_block
957
- begin_block
958
- name "B1"
959
- from_bci -1
960
- to_bci -1
961
- predecessors "B0"
962
- successors
963
- xhandlers
964
- flags
965
- probability 4602675423433059828
966
- begin_IR
967
- LIR
968
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
969
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
970
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
971
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
972
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
973
- end_IR
974
- end_block
975
- end_cfg
976
- begin_bytecodes
977
- 0: iload_0
978
- 1: ifeq 13
979
- 4: iload_1
980
- 5: putstatic #54 // intField:int
981
- 8: iload_1
982
- 9: istore_3
983
- 10: goto 19
984
- 13: iload_2
985
- 14: putstatic #54 // intField:int
986
- 17: iload_2
987
- 18: istore_3
988
- 19: iload_3
989
- 20: ireturn
990
- <|@
991
- end_bytecodes
992
- begin_cfg
993
- name "After MarkBasePointers"
994
- begin_block
995
- name "B0"
996
- from_bci -1
997
- to_bci -1
998
- predecessors
999
- successors "B1" "B2"
1000
- xhandlers
1001
- flags
1002
- probability 4607182418800017408
1003
- begin_IR
1004
- LIR
1005
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1006
- nr -1 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1007
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1008
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1009
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1010
- nr -1 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1011
- nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1012
- nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1013
- nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1014
- end_IR
1015
- end_block
1016
- begin_block
1017
- name "B2"
1018
- from_bci -1
1019
- to_bci -1
1020
- predecessors "B0"
1021
- successors
1022
- xhandlers
1023
- flags
1024
- probability 4602680517042440454
1025
- begin_IR
1026
- LIR
1027
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1028
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1029
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1030
- nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1031
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1032
- end_IR
1033
- end_block
1034
- begin_block
1035
- name "B1"
1036
- from_bci -1
1037
- to_bci -1
1038
- predecessors "B0"
1039
- successors
1040
- xhandlers
1041
- flags
1042
- probability 4602675423433059828
1043
- begin_IR
1044
- LIR
1045
- nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1046
- nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1047
- nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1048
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1049
- nr -1 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1050
- end_IR
1051
- end_block
1052
- end_cfg
1053
- begin_bytecodes
1054
- 0: iload_0
1055
- 1: ifeq 13
1056
- 4: iload_1
1057
- 5: putstatic #54 // intField:int
1058
- 8: iload_1
1059
- 9: istore_3
1060
- 10: goto 19
1061
- 13: iload_2
1062
- 14: putstatic #54 // intField:int
1063
- 17: iload_2
1064
- 18: istore_3
1065
- 19: iload_3
1066
- 20: ireturn
1067
- <|@
1068
- end_bytecodes
1069
- begin_cfg
1070
- name "Before register allocation"
1071
- begin_block
1072
- name "B0"
1073
- from_bci -1
1074
- to_bci -1
1075
- predecessors
1076
- successors "B1" "B2"
1077
- xhandlers
1078
- flags
1079
- probability 4607182418800017408
1080
- begin_IR
1081
- LIR
1082
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1083
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1084
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1085
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1086
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1087
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1088
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1089
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1090
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1091
- end_IR
1092
- end_block
1093
- begin_block
1094
- name "B2"
1095
- from_bci -1
1096
- to_bci -1
1097
- predecessors "B0"
1098
- successors
1099
- xhandlers
1100
- flags
1101
- probability 4602680517042440454
1102
- begin_IR
1103
- LIR
1104
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1105
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1106
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1107
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1108
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1109
- end_IR
1110
- end_block
1111
- begin_block
1112
- name "B1"
1113
- from_bci -1
1114
- to_bci -1
1115
- predecessors "B0"
1116
- successors
1117
- xhandlers
1118
- flags
1119
- probability 4602675423433059828
1120
- begin_IR
1121
- LIR
1122
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1123
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1124
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1125
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1126
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1127
- end_IR
1128
- end_block
1129
- end_cfg
1130
- begin_bytecodes
1131
- 0: iload_0
1132
- 1: ifeq 13
1133
- 4: iload_1
1134
- 5: putstatic #54 // intField:int
1135
- 8: iload_1
1136
- 9: istore_3
1137
- 10: goto 19
1138
- 13: iload_2
1139
- 14: putstatic #54 // intField:int
1140
- 17: iload_2
1141
- 18: istore_3
1142
- 19: iload_3
1143
- 20: ireturn
1144
- <|@
1145
- end_bytecodes
1146
- begin_cfg
1147
- name "After SSALinearScanLifetimeAnalysis"
1148
- begin_block
1149
- name "B0"
1150
- from_bci -1
1151
- to_bci -1
1152
- predecessors
1153
- successors "B1" "B2"
1154
- xhandlers
1155
- flags
1156
- probability 4607182418800017408
1157
- begin_IR
1158
- LIR
1159
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1160
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1161
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1162
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1163
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1164
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1165
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1166
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1167
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1168
- end_IR
1169
- end_block
1170
- begin_block
1171
- name "B2"
1172
- from_bci -1
1173
- to_bci -1
1174
- predecessors "B0"
1175
- successors
1176
- xhandlers
1177
- flags
1178
- probability 4602680517042440454
1179
- begin_IR
1180
- LIR
1181
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1182
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1183
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1184
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1185
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1186
- end_IR
1187
- end_block
1188
- begin_block
1189
- name "B1"
1190
- from_bci -1
1191
- to_bci -1
1192
- predecessors "B0"
1193
- successors
1194
- xhandlers
1195
- flags
1196
- probability 4602675423433059828
1197
- begin_IR
1198
- LIR
1199
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1200
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1201
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1202
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1203
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1204
- end_IR
1205
- end_block
1206
- end_cfg
1207
- begin_bytecodes
1208
- 0: iload_0
1209
- 1: ifeq 13
1210
- 4: iload_1
1211
- 5: putstatic #54 // intField:int
1212
- 8: iload_1
1213
- 9: istore_3
1214
- 10: goto 19
1215
- 13: iload_2
1216
- 14: putstatic #54 // intField:int
1217
- 17: iload_2
1218
- 18: istore_3
1219
- 19: iload_3
1220
- 20: ireturn
1221
- <|@
1222
- end_bytecodes
1223
- begin_intervals
1224
- name "Before register allocation"
1225
- rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1226
- rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1227
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1228
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1229
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1230
- v0|d DWORD "[v0|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1231
- v1|d DWORD "[v1|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1232
- v2|d DWORD "[v2|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1233
- v3|q QWORD "[v3|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1234
- v4|q QWORD "[v4|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1235
- end_intervals
1236
- begin_intervals
1237
- name "After register allocation"
1238
- rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1239
- rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1240
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1241
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1242
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1243
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1244
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1245
- v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1246
- v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1247
- v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1248
- end_intervals
1249
- begin_cfg
1250
- name "After LinearScanRegisterAllocation"
1251
- begin_block
1252
- name "B0"
1253
- from_bci -1
1254
- to_bci -1
1255
- predecessors
1256
- successors "B1" "B2"
1257
- xhandlers
1258
- flags
1259
- probability 4607182418800017408
1260
- begin_IR
1261
- LIR
1262
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1263
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1264
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1265
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1266
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1267
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1268
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1269
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1270
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1271
- end_IR
1272
- end_block
1273
- begin_block
1274
- name "B2"
1275
- from_bci -1
1276
- to_bci -1
1277
- predecessors "B0"
1278
- successors
1279
- xhandlers
1280
- flags
1281
- probability 4602680517042440454
1282
- begin_IR
1283
- LIR
1284
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1285
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1286
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1287
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1288
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1289
- end_IR
1290
- end_block
1291
- begin_block
1292
- name "B1"
1293
- from_bci -1
1294
- to_bci -1
1295
- predecessors "B0"
1296
- successors
1297
- xhandlers
1298
- flags
1299
- probability 4602675423433059828
1300
- begin_IR
1301
- LIR
1302
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1303
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1304
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1305
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1306
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1307
- end_IR
1308
- end_block
1309
- end_cfg
1310
- begin_bytecodes
1311
- 0: iload_0
1312
- 1: ifeq 13
1313
- 4: iload_1
1314
- 5: putstatic #54 // intField:int
1315
- 8: iload_1
1316
- 9: istore_3
1317
- 10: goto 19
1318
- 13: iload_2
1319
- 14: putstatic #54 // intField:int
1320
- 17: iload_2
1321
- 18: istore_3
1322
- 19: iload_3
1323
- 20: ireturn
1324
- <|@
1325
- end_bytecodes
1326
- begin_intervals
1327
- name "After optimize spill position"
1328
- rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1329
- rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1330
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1331
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1332
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1333
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1334
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1335
- v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1336
- v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1337
- v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1338
- end_intervals
1339
- begin_cfg
1340
- name "After LinearScanOptimizeSpillPosition"
1341
- begin_block
1342
- name "B0"
1343
- from_bci -1
1344
- to_bci -1
1345
- predecessors
1346
- successors "B1" "B2"
1347
- xhandlers
1348
- flags
1349
- probability 4607182418800017408
1350
- begin_IR
1351
- LIR
1352
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1353
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1354
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1355
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1356
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1357
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1358
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1359
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1360
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1361
- end_IR
1362
- end_block
1363
- begin_block
1364
- name "B2"
1365
- from_bci -1
1366
- to_bci -1
1367
- predecessors "B0"
1368
- successors
1369
- xhandlers
1370
- flags
1371
- probability 4602680517042440454
1372
- begin_IR
1373
- LIR
1374
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1375
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1376
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1377
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1378
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1379
- end_IR
1380
- end_block
1381
- begin_block
1382
- name "B1"
1383
- from_bci -1
1384
- to_bci -1
1385
- predecessors "B0"
1386
- successors
1387
- xhandlers
1388
- flags
1389
- probability 4602675423433059828
1390
- begin_IR
1391
- LIR
1392
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1393
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1394
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1395
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1396
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1397
- end_IR
1398
- end_block
1399
- end_cfg
1400
- begin_bytecodes
1401
- 0: iload_0
1402
- 1: ifeq 13
1403
- 4: iload_1
1404
- 5: putstatic #54 // intField:int
1405
- 8: iload_1
1406
- 9: istore_3
1407
- 10: goto 19
1408
- 13: iload_2
1409
- 14: putstatic #54 // intField:int
1410
- 17: iload_2
1411
- 18: istore_3
1412
- 19: iload_3
1413
- 20: ireturn
1414
- <|@
1415
- end_bytecodes
1416
- begin_intervals
1417
- name "After resolve data flow"
1418
- rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[24, 26[[34, 36[ "NoOptimization"
1419
- rcx|d fixed "[rcx|d]" rcx|d -1 [0, 10[ "NoSpillStore"
1420
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
1421
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1422
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1423
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[6 MustHaveRegister 14 MustHaveRegister "NoSpillStore"
1424
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 24[8 MustHaveRegister 20 MustHaveRegister 24 ShouldHaveRegister "NoSpillStore"
1425
- v2|d DWORD "[rcx|d]" v2|d rcx|d [10, 18[[28, 34[10 MustHaveRegister 30 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1426
- v3|q QWORD "[r10|q]" v3|q -1 [12, 20[[28, 30[12 MustHaveRegister 20 MustHaveRegister 30 MustHaveRegister "NoSpillStore"
1427
- v4|q QWORD "[rbp|q]" v4|q rbp|q [2, 26[[28, 36[2 MustHaveRegister 26 ShouldHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1428
- end_intervals
1429
- begin_cfg
1430
- name "After SSALinearScanResolveDataFlow"
1431
- begin_block
1432
- name "B0"
1433
- from_bci -1
1434
- to_bci -1
1435
- predecessors
1436
- successors "B1" "B2"
1437
- xhandlers
1438
- flags
1439
- probability 4607182418800017408
1440
- begin_IR
1441
- LIR
1442
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1443
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1444
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1445
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1446
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1447
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1448
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1449
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1450
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1451
- end_IR
1452
- end_block
1453
- begin_block
1454
- name "B2"
1455
- from_bci -1
1456
- to_bci -1
1457
- predecessors "B0"
1458
- successors
1459
- xhandlers
1460
- flags
1461
- probability 4602680517042440454
1462
- begin_IR
1463
- LIR
1464
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1465
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1466
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1467
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1468
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1469
- end_IR
1470
- end_block
1471
- begin_block
1472
- name "B1"
1473
- from_bci -1
1474
- to_bci -1
1475
- predecessors "B0"
1476
- successors
1477
- xhandlers
1478
- flags
1479
- probability 4602675423433059828
1480
- begin_IR
1481
- LIR
1482
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1483
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1484
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1485
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1486
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1487
- end_IR
1488
- end_block
1489
- end_cfg
1490
- begin_bytecodes
1491
- 0: iload_0
1492
- 1: ifeq 13
1493
- 4: iload_1
1494
- 5: putstatic #54 // intField:int
1495
- 8: iload_1
1496
- 9: istore_3
1497
- 10: goto 19
1498
- 13: iload_2
1499
- 14: putstatic #54 // intField:int
1500
- 17: iload_2
1501
- 18: istore_3
1502
- 19: iload_3
1503
- 20: ireturn
1504
- <|@
1505
- end_bytecodes
1506
- begin_cfg
1507
- name "After SSALinearScanEliminateSpillMove"
1508
- begin_block
1509
- name "B0"
1510
- from_bci -1
1511
- to_bci -1
1512
- predecessors
1513
- successors "B1" "B2"
1514
- xhandlers
1515
- flags
1516
- probability 4607182418800017408
1517
- begin_IR
1518
- LIR
1519
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1520
- nr 2 <|@ instruction v4|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1521
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1522
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1523
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1524
- nr 10 <|@ instruction v2|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1525
- nr 12 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1526
- nr 14 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1527
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1528
- end_IR
1529
- end_block
1530
- begin_block
1531
- name "B2"
1532
- from_bci -1
1533
- to_bci -1
1534
- predecessors "B0"
1535
- successors
1536
- xhandlers
1537
- flags
1538
- probability 4602680517042440454
1539
- begin_IR
1540
- LIR
1541
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1542
- nr 20 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v1|DWORD) size: DWORD <|@ <|@
1543
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1544
- nr 24 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
1545
- nr 26 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1546
- end_IR
1547
- end_block
1548
- begin_block
1549
- name "B1"
1550
- from_bci -1
1551
- to_bci -1
1552
- predecessors "B0"
1553
- successors
1554
- xhandlers
1555
- flags
1556
- probability 4602675423433059828
1557
- begin_IR
1558
- LIR
1559
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1560
- nr 30 <|@ instruction MOV (x: [v3|QWORD[.] + 128], y: v2|DWORD) size: DWORD <|@ <|@
1561
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1562
- nr 34 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
1563
- nr 36 <|@ instruction RETURN (savedRbp: v4|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1564
- end_IR
1565
- end_block
1566
- end_cfg
1567
- begin_bytecodes
1568
- 0: iload_0
1569
- 1: ifeq 13
1570
- 4: iload_1
1571
- 5: putstatic #54 // intField:int
1572
- 8: iload_1
1573
- 9: istore_3
1574
- 10: goto 19
1575
- 13: iload_2
1576
- 14: putstatic #54 // intField:int
1577
- 17: iload_2
1578
- 18: istore_3
1579
- 19: iload_3
1580
- 20: ireturn
1581
- <|@
1582
- end_bytecodes
1583
- begin_cfg
1584
- name "After LinearScanAssignLocations"
1585
- begin_block
1586
- name "B0"
1587
- from_bci -1
1588
- to_bci -1
1589
- predecessors
1590
- successors "B1" "B2"
1591
- xhandlers
1592
- flags
1593
- probability 4607182418800017408
1594
- begin_IR
1595
- LIR
1596
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1597
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1598
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1599
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1600
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1601
- end_IR
1602
- end_block
1603
- begin_block
1604
- name "B2"
1605
- from_bci -1
1606
- to_bci -1
1607
- predecessors "B0"
1608
- successors
1609
- xhandlers
1610
- flags
1611
- probability 4602680517042440454
1612
- begin_IR
1613
- LIR
1614
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1615
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1616
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1617
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1618
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1619
- end_IR
1620
- end_block
1621
- begin_block
1622
- name "B1"
1623
- from_bci -1
1624
- to_bci -1
1625
- predecessors "B0"
1626
- successors
1627
- xhandlers
1628
- flags
1629
- probability 4602675423433059828
1630
- begin_IR
1631
- LIR
1632
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1633
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1634
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1635
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1636
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1637
- end_IR
1638
- end_block
1639
- end_cfg
1640
- begin_bytecodes
1641
- 0: iload_0
1642
- 1: ifeq 13
1643
- 4: iload_1
1644
- 5: putstatic #54 // intField:int
1645
- 8: iload_1
1646
- 9: istore_3
1647
- 10: goto 19
1648
- 13: iload_2
1649
- 14: putstatic #54 // intField:int
1650
- 17: iload_2
1651
- 18: istore_3
1652
- 19: iload_3
1653
- 20: ireturn
1654
- <|@
1655
- end_bytecodes
1656
- begin_cfg
1657
- name "After LinearScan"
1658
- begin_block
1659
- name "B0"
1660
- from_bci -1
1661
- to_bci -1
1662
- predecessors
1663
- successors "B1" "B2"
1664
- xhandlers
1665
- flags
1666
- probability 4607182418800017408
1667
- begin_IR
1668
- LIR
1669
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1670
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1671
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1672
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1673
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1674
- end_IR
1675
- end_block
1676
- begin_block
1677
- name "B2"
1678
- from_bci -1
1679
- to_bci -1
1680
- predecessors "B0"
1681
- successors
1682
- xhandlers
1683
- flags
1684
- probability 4602680517042440454
1685
- begin_IR
1686
- LIR
1687
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1688
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1689
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1690
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1691
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1692
- end_IR
1693
- end_block
1694
- begin_block
1695
- name "B1"
1696
- from_bci -1
1697
- to_bci -1
1698
- predecessors "B0"
1699
- successors
1700
- xhandlers
1701
- flags
1702
- probability 4602675423433059828
1703
- begin_IR
1704
- LIR
1705
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1706
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1707
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1708
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1709
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1710
- end_IR
1711
- end_block
1712
- end_cfg
1713
- begin_bytecodes
1714
- 0: iload_0
1715
- 1: ifeq 13
1716
- 4: iload_1
1717
- 5: putstatic #54 // intField:int
1718
- 8: iload_1
1719
- 9: istore_3
1720
- 10: goto 19
1721
- 13: iload_2
1722
- 14: putstatic #54 // intField:int
1723
- 17: iload_2
1724
- 18: istore_3
1725
- 19: iload_3
1726
- 20: ireturn
1727
- <|@
1728
- end_bytecodes
1729
- begin_cfg
1730
- name "After LSStackSlotAllocator"
1731
- begin_block
1732
- name "B0"
1733
- from_bci -1
1734
- to_bci -1
1735
- predecessors
1736
- successors "B1" "B2"
1737
- xhandlers
1738
- flags
1739
- probability 4607182418800017408
1740
- begin_IR
1741
- LIR
1742
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1743
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1744
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1745
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1746
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1747
- end_IR
1748
- end_block
1749
- begin_block
1750
- name "B2"
1751
- from_bci -1
1752
- to_bci -1
1753
- predecessors "B0"
1754
- successors
1755
- xhandlers
1756
- flags
1757
- probability 4602680517042440454
1758
- begin_IR
1759
- LIR
1760
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1761
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1762
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1763
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1764
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1765
- end_IR
1766
- end_block
1767
- begin_block
1768
- name "B1"
1769
- from_bci -1
1770
- to_bci -1
1771
- predecessors "B0"
1772
- successors
1773
- xhandlers
1774
- flags
1775
- probability 4602675423433059828
1776
- begin_IR
1777
- LIR
1778
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1779
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1780
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1781
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1782
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1783
- end_IR
1784
- end_block
1785
- end_cfg
1786
- begin_bytecodes
1787
- 0: iload_0
1788
- 1: ifeq 13
1789
- 4: iload_1
1790
- 5: putstatic #54 // intField:int
1791
- 8: iload_1
1792
- 9: istore_3
1793
- 10: goto 19
1794
- 13: iload_2
1795
- 14: putstatic #54 // intField:int
1796
- 17: iload_2
1797
- 18: istore_3
1798
- 19: iload_3
1799
- 20: ireturn
1800
- <|@
1801
- end_bytecodes
1802
- begin_cfg
1803
- name "After LocationMarker"
1804
- begin_block
1805
- name "B0"
1806
- from_bci -1
1807
- to_bci -1
1808
- predecessors
1809
- successors "B1" "B2"
1810
- xhandlers
1811
- flags
1812
- probability 4607182418800017408
1813
- begin_IR
1814
- LIR
1815
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1816
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1817
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1818
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1819
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1820
- end_IR
1821
- end_block
1822
- begin_block
1823
- name "B2"
1824
- from_bci -1
1825
- to_bci -1
1826
- predecessors "B0"
1827
- successors
1828
- xhandlers
1829
- flags
1830
- probability 4602680517042440454
1831
- begin_IR
1832
- LIR
1833
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1834
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1835
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1836
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1837
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1838
- end_IR
1839
- end_block
1840
- begin_block
1841
- name "B1"
1842
- from_bci -1
1843
- to_bci -1
1844
- predecessors "B0"
1845
- successors
1846
- xhandlers
1847
- flags
1848
- probability 4602675423433059828
1849
- begin_IR
1850
- LIR
1851
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1852
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1853
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1854
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1855
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1856
- end_IR
1857
- end_block
1858
- end_cfg
1859
- begin_bytecodes
1860
- 0: iload_0
1861
- 1: ifeq 13
1862
- 4: iload_1
1863
- 5: putstatic #54 // intField:int
1864
- 8: iload_1
1865
- 9: istore_3
1866
- 10: goto 19
1867
- 13: iload_2
1868
- 14: putstatic #54 // intField:int
1869
- 17: iload_2
1870
- 18: istore_3
1871
- 19: iload_3
1872
- 20: ireturn
1873
- <|@
1874
- end_bytecodes
1875
- begin_cfg
1876
- name "After AllocationStage"
1877
- begin_block
1878
- name "B0"
1879
- from_bci -1
1880
- to_bci -1
1881
- predecessors
1882
- successors "B1" "B2"
1883
- xhandlers
1884
- flags
1885
- probability 4607182418800017408
1886
- begin_IR
1887
- LIR
1888
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1889
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1890
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1891
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1892
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1893
- end_IR
1894
- end_block
1895
- begin_block
1896
- name "B2"
1897
- from_bci -1
1898
- to_bci -1
1899
- predecessors "B0"
1900
- successors
1901
- xhandlers
1902
- flags
1903
- probability 4602680517042440454
1904
- begin_IR
1905
- LIR
1906
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1907
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1908
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1909
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1910
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1911
- end_IR
1912
- end_block
1913
- begin_block
1914
- name "B1"
1915
- from_bci -1
1916
- to_bci -1
1917
- predecessors "B0"
1918
- successors
1919
- xhandlers
1920
- flags
1921
- probability 4602675423433059828
1922
- begin_IR
1923
- LIR
1924
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1925
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1926
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1927
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
1928
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1929
- end_IR
1930
- end_block
1931
- end_cfg
1932
- begin_bytecodes
1933
- 0: iload_0
1934
- 1: ifeq 13
1935
- 4: iload_1
1936
- 5: putstatic #54 // intField:int
1937
- 8: iload_1
1938
- 9: istore_3
1939
- 10: goto 19
1940
- 13: iload_2
1941
- 14: putstatic #54 // intField:int
1942
- 17: iload_2
1943
- 18: istore_3
1944
- 19: iload_3
1945
- 20: ireturn
1946
- <|@
1947
- end_bytecodes
1948
- begin_cfg
1949
- name "After EdgeMoveOptimizer"
1950
- begin_block
1951
- name "B0"
1952
- from_bci -1
1953
- to_bci -1
1954
- predecessors
1955
- successors "B1" "B2"
1956
- xhandlers
1957
- flags
1958
- probability 4607182418800017408
1959
- begin_IR
1960
- LIR
1961
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1962
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
1963
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1964
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1965
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1966
- end_IR
1967
- end_block
1968
- begin_block
1969
- name "B2"
1970
- from_bci -1
1971
- to_bci -1
1972
- predecessors "B0"
1973
- successors
1974
- xhandlers
1975
- flags
1976
- probability 4602680517042440454
1977
- begin_IR
1978
- LIR
1979
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1980
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
1981
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1982
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1983
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
1984
- end_IR
1985
- end_block
1986
- begin_block
1987
- name "B1"
1988
- from_bci -1
1989
- to_bci -1
1990
- predecessors "B0"
1991
- successors
1992
- xhandlers
1993
- flags
1994
- probability 4602675423433059828
1995
- begin_IR
1996
- LIR
1997
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1998
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
1999
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2000
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2001
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2002
- end_IR
2003
- end_block
2004
- end_cfg
2005
- begin_bytecodes
2006
- 0: iload_0
2007
- 1: ifeq 13
2008
- 4: iload_1
2009
- 5: putstatic #54 // intField:int
2010
- 8: iload_1
2011
- 9: istore_3
2012
- 10: goto 19
2013
- 13: iload_2
2014
- 14: putstatic #54 // intField:int
2015
- 17: iload_2
2016
- 18: istore_3
2017
- 19: iload_3
2018
- 20: ireturn
2019
- <|@
2020
- end_bytecodes
2021
- begin_cfg
2022
- name "After ControlFlowOptimizer"
2023
- begin_block
2024
- name "B0"
2025
- from_bci -1
2026
- to_bci -1
2027
- predecessors
2028
- successors "B1" "B2"
2029
- xhandlers
2030
- flags
2031
- probability 4607182418800017408
2032
- begin_IR
2033
- LIR
2034
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2035
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2036
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2037
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2038
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2039
- end_IR
2040
- end_block
2041
- begin_block
2042
- name "B2"
2043
- from_bci -1
2044
- to_bci -1
2045
- predecessors "B0"
2046
- successors
2047
- xhandlers
2048
- flags
2049
- probability 4602680517042440454
2050
- begin_IR
2051
- LIR
2052
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2053
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2054
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2055
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2056
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2057
- end_IR
2058
- end_block
2059
- begin_block
2060
- name "B1"
2061
- from_bci -1
2062
- to_bci -1
2063
- predecessors "B0"
2064
- successors
2065
- xhandlers
2066
- flags
2067
- probability 4602675423433059828
2068
- begin_IR
2069
- LIR
2070
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2071
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2072
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2073
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2074
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2075
- end_IR
2076
- end_block
2077
- end_cfg
2078
- begin_bytecodes
2079
- 0: iload_0
2080
- 1: ifeq 13
2081
- 4: iload_1
2082
- 5: putstatic #54 // intField:int
2083
- 8: iload_1
2084
- 9: istore_3
2085
- 10: goto 19
2086
- 13: iload_2
2087
- 14: putstatic #54 // intField:int
2088
- 17: iload_2
2089
- 18: istore_3
2090
- 19: iload_3
2091
- 20: ireturn
2092
- <|@
2093
- end_bytecodes
2094
- begin_cfg
2095
- name "After RedundantMoveElimination"
2096
- begin_block
2097
- name "B0"
2098
- from_bci -1
2099
- to_bci -1
2100
- predecessors
2101
- successors "B1" "B2"
2102
- xhandlers
2103
- flags
2104
- probability 4607182418800017408
2105
- begin_IR
2106
- LIR
2107
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2108
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2109
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2110
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2111
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2112
- end_IR
2113
- end_block
2114
- begin_block
2115
- name "B2"
2116
- from_bci -1
2117
- to_bci -1
2118
- predecessors "B0"
2119
- successors
2120
- xhandlers
2121
- flags
2122
- probability 4602680517042440454
2123
- begin_IR
2124
- LIR
2125
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2126
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2127
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2128
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2129
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2130
- end_IR
2131
- end_block
2132
- begin_block
2133
- name "B1"
2134
- from_bci -1
2135
- to_bci -1
2136
- predecessors "B0"
2137
- successors
2138
- xhandlers
2139
- flags
2140
- probability 4602675423433059828
2141
- begin_IR
2142
- LIR
2143
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2144
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2145
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2146
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2147
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2148
- end_IR
2149
- end_block
2150
- end_cfg
2151
- begin_bytecodes
2152
- 0: iload_0
2153
- 1: ifeq 13
2154
- 4: iload_1
2155
- 5: putstatic #54 // intField:int
2156
- 8: iload_1
2157
- 9: istore_3
2158
- 10: goto 19
2159
- 13: iload_2
2160
- 14: putstatic #54 // intField:int
2161
- 17: iload_2
2162
- 18: istore_3
2163
- 19: iload_3
2164
- 20: ireturn
2165
- <|@
2166
- end_bytecodes
2167
- begin_cfg
2168
- name "After NullCheckOptimizer"
2169
- begin_block
2170
- name "B0"
2171
- from_bci -1
2172
- to_bci -1
2173
- predecessors
2174
- successors "B1" "B2"
2175
- xhandlers
2176
- flags
2177
- probability 4607182418800017408
2178
- begin_IR
2179
- LIR
2180
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2181
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2182
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2183
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2184
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2185
- end_IR
2186
- end_block
2187
- begin_block
2188
- name "B2"
2189
- from_bci -1
2190
- to_bci -1
2191
- predecessors "B0"
2192
- successors
2193
- xhandlers
2194
- flags
2195
- probability 4602680517042440454
2196
- begin_IR
2197
- LIR
2198
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2199
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2200
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2201
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2202
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2203
- end_IR
2204
- end_block
2205
- begin_block
2206
- name "B1"
2207
- from_bci -1
2208
- to_bci -1
2209
- predecessors "B0"
2210
- successors
2211
- xhandlers
2212
- flags
2213
- probability 4602675423433059828
2214
- begin_IR
2215
- LIR
2216
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2217
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2218
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2219
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2220
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2221
- end_IR
2222
- end_block
2223
- end_cfg
2224
- begin_bytecodes
2225
- 0: iload_0
2226
- 1: ifeq 13
2227
- 4: iload_1
2228
- 5: putstatic #54 // intField:int
2229
- 8: iload_1
2230
- 9: istore_3
2231
- 10: goto 19
2232
- 13: iload_2
2233
- 14: putstatic #54 // intField:int
2234
- 17: iload_2
2235
- 18: istore_3
2236
- 19: iload_3
2237
- 20: ireturn
2238
- <|@
2239
- end_bytecodes
2240
- begin_cfg
2241
- name "After StackMoveOptimization"
2242
- begin_block
2243
- name "B0"
2244
- from_bci -1
2245
- to_bci -1
2246
- predecessors
2247
- successors "B1" "B2"
2248
- xhandlers
2249
- flags
2250
- probability 4607182418800017408
2251
- begin_IR
2252
- LIR
2253
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2254
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2255
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2256
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2257
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2258
- end_IR
2259
- end_block
2260
- begin_block
2261
- name "B2"
2262
- from_bci -1
2263
- to_bci -1
2264
- predecessors "B0"
2265
- successors
2266
- xhandlers
2267
- flags
2268
- probability 4602680517042440454
2269
- begin_IR
2270
- LIR
2271
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2272
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2273
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2274
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2275
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2276
- end_IR
2277
- end_block
2278
- begin_block
2279
- name "B1"
2280
- from_bci -1
2281
- to_bci -1
2282
- predecessors "B0"
2283
- successors
2284
- xhandlers
2285
- flags
2286
- probability 4602675423433059828
2287
- begin_IR
2288
- LIR
2289
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2290
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2291
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2292
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2293
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2294
- end_IR
2295
- end_block
2296
- end_cfg
2297
- begin_bytecodes
2298
- 0: iload_0
2299
- 1: ifeq 13
2300
- 4: iload_1
2301
- 5: putstatic #54 // intField:int
2302
- 8: iload_1
2303
- 9: istore_3
2304
- 10: goto 19
2305
- 13: iload_2
2306
- 14: putstatic #54 // intField:int
2307
- 17: iload_2
2308
- 18: istore_3
2309
- 19: iload_3
2310
- 20: ireturn
2311
- <|@
2312
- end_bytecodes
2313
- begin_cfg
2314
- name "After PostAllocationOptimizationStage"
2315
- begin_block
2316
- name "B0"
2317
- from_bci -1
2318
- to_bci -1
2319
- predecessors
2320
- successors "B1" "B2"
2321
- xhandlers
2322
- flags
2323
- probability 4607182418800017408
2324
- begin_IR
2325
- LIR
2326
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2327
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <|@ <|@
2328
- nr 12 <|@ instruction r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2329
- nr 14 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2330
- nr 16 <|@ instruction BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2331
- end_IR
2332
- end_block
2333
- begin_block
2334
- name "B2"
2335
- from_bci -1
2336
- to_bci -1
2337
- predecessors "B0"
2338
- successors
2339
- xhandlers
2340
- flags
2341
- probability 4602680517042440454
2342
- begin_IR
2343
- LIR
2344
- nr 18 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2345
- nr 20 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <|@ <|@
2346
- nr 22 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2347
- nr 24 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2348
- nr 26 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2349
- end_IR
2350
- end_block
2351
- begin_block
2352
- name "B1"
2353
- from_bci -1
2354
- to_bci -1
2355
- predecessors "B0"
2356
- successors
2357
- xhandlers
2358
- flags
2359
- probability 4602675423433059828
2360
- begin_IR
2361
- LIR
2362
- nr 28 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2363
- nr 30 <|@ instruction MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <|@ <|@
2364
- nr 32 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2365
- nr 34 <|@ instruction rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <|@ <|@
2366
- nr 36 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
2367
- end_IR
2368
- end_block
2369
- end_cfg
2370
- begin_bytecodes
2371
- 0: iload_0
2372
- 1: ifeq 13
2373
- 4: iload_1
2374
- 5: putstatic #54 // intField:int
2375
- 8: iload_1
2376
- 9: istore_3
2377
- 10: goto 19
2378
- 13: iload_2
2379
- 14: putstatic #54 // intField:int
2380
- 17: iload_2
2381
- 18: istore_3
2382
- 19: iload_3
2383
- 20: ireturn
2384
- <|@
2385
- end_bytecodes
2386
- begin_cfg
2387
- name "After code generation"
2388
- end_cfg
2389
- begin_nmethod
2390
- <<<HexCodeFile
2391
- Platform AMD64 64 <||@
2392
- HexCode 0 0f1f44000049baaddeaddeaddeadde85f60f841800000041899280000000f0830424008bc2850500000000c5f877c341898a80000000f0830424008bc1850500000000c5f877c3e80000000090e80000000090 <||@
2393
- Comment 0 3 <||@
2394
- Comment 0 1 <||@
2395
- Comment 5 block B0 null <||@
2396
- Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
2397
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <||@
2398
- Comment 5 12 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
2399
- Comment 5 {Object[Instance<java.lang.Class>]} <||@
2400
- Comment 15 14 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
2401
- Comment 17 16 BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
2402
- Comment 23 block B2 null <||@
2403
- Comment 23 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
2404
- Comment 23 20 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
2405
- Comment 30 22 MEMBAR barriers: 4 <||@
2406
- Comment 35 24 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
2407
- Comment 37 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2408
- Comment 37 12 <||@
2409
- Comment 47 block B1 null <||@
2410
- Comment 47 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
2411
- Comment 47 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
2412
- Comment 54 32 MEMBAR barriers: 4 <||@
2413
- Comment 59 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
2414
- Comment 61 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2415
- Comment 61 12 <||@
2416
- Comment 71 {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} <||@
2417
- Comment 71 4 <||@
2418
- Comment 77 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
2419
- Comment 77 5 <||@
2420
- HexCodeFile>>> <|@
2421
- end_nmethod
2422
- begin_compilation
2423
- name " HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
2424
- method "HotSpotCompilation-354[JavaExamples.exampleIf(boolean, int, int)]"
2425
- date 1583364091967
2426
- end_compilation
2427
- begin_cfg
2428
- name "After code installation"
2429
- end_cfg
2430
- begin_nmethod
2431
- <<<HexCodeFile
2432
- Platform AMD64 64 <||@
2433
- HexCode 112e35c20 0f1f44000049bab0275f150700000085f60f841800000041899280000000f0830424008bc28505bb5393fbc5f877c341898a80000000f0830424008bc18505a35393fbc5f877c3e8b4e6feff90e8cee5eaff90f4f4f4f4f4 <||@
2434
- Comment 0 3 <||@
2435
- Comment 0 1 <||@
2436
- Comment 5 block B0 null <||@
2437
- Comment 5 0 [rsi|DWORD, rdx|DWORD, rcx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
2438
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@139ed7ab8 slotKind: QWORD <||@
2439
- Comment 5 12 r10|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
2440
- Comment 5 {Object[Instance<java.lang.Class>]} <||@
2441
- Comment 15 14 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
2442
- Comment 17 16 BRANCH trueDestinationProbability: 0.4998114985862394 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
2443
- Comment 23 block B2 null <||@
2444
- Comment 23 18 [] = LABEL numbPhis: 0 align: false label: ? <||@
2445
- Comment 23 20 MOV (x: [r10|QWORD[.] + 128], y: rdx|DWORD) size: DWORD <||@
2446
- Comment 30 22 MEMBAR barriers: 4 <||@
2447
- Comment 35 24 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
2448
- Comment 37 26 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2449
- Comment 37 12 <||@
2450
- Comment 47 block B1 null <||@
2451
- Comment 47 28 [] = LABEL numbPhis: 0 align: false label: ? <||@
2452
- Comment 47 30 MOV (x: [r10|QWORD[.] + 128], y: rcx|DWORD) size: DWORD <||@
2453
- Comment 54 32 MEMBAR barriers: 4 <||@
2454
- Comment 59 34 rax|DWORD = MOVE rcx|DWORD moveKind: DWORD <||@
2455
- Comment 61 36 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
2456
- Comment 61 12 <||@
2457
- Comment 71 {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} <||@
2458
- Comment 71 4 <||@
2459
- Comment 77 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
2460
- Comment 77 5 <||@
2461
- HexCodeFile>>> <|@
2462
- end_nmethod