seafoam 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,3936 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-337[JavaExamples.exampleWhile(int)]"
3
+ method "HotSpotCompilation-337[JavaExamples.exampleWhile(int)]"
4
+ date 1583364091101
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: v26
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v26 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid i1 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 0
36
+ stamp: i32
37
+ uncheckedStamp: [null]
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ i29 v37 v23 v38 v42
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid i9 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ isDefaultStable: false
49
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
50
+ rawvalue: 1
51
+ stableDimension: 0
52
+ stamp: i32 [1] ⇊0000000000000001 ⇈0000000000000001
53
+ stampKind: i32
54
+ value: int[1|0x1]
55
+ === Inputs ===
56
+ === Succesors ===
57
+ === Usages ===
58
+ v10 v23
59
+ === Predecessor ===
60
+ - >@ <|@
61
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
62
+ f <@~|@floating>@ <|@
63
+ tid v23 <|@
64
+ d <@d|@=== Debug Properties ===
65
+ condition: LT
66
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
67
+ op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
68
+ stamp: void
69
+ unorderedIsTrue: false
70
+ === Inputs ===
71
+ x: i1
72
+ y: i9
73
+ === Succesors ===
74
+ === Usages ===
75
+ v26
76
+ === Predecessor ===
77
+ - >@ <|@
78
+ instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i1 y: i9 <|@ <|@
79
+ f <@*|@fixed>@ <|@
80
+ tid v26 <|@
81
+ d <@d|@=== Debug Properties ===
82
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
83
+ stamp: void
84
+ trueSuccessorProbability: 0.1814664768787182
85
+ === Inputs ===
86
+ condition: v23
87
+ === Succesors ===
88
+ trueSuccessor: v25
89
+ falseSuccessor: v24
90
+ === Usages ===
91
+ === Predecessor ===
92
+ v0 >@ <|@
93
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v23 #trueSuccessor: v25 #falseSuccessor: v24 <|@ <|@
94
+ end_IR
95
+ end_block
96
+ begin_block
97
+ name "B1"
98
+ from_bci -1
99
+ to_bci -1
100
+ predecessors "B0"
101
+ successors
102
+ xhandlers
103
+ flags
104
+ probability 4595706039151745280
105
+ begin_IR
106
+ HIR
107
+ f <@#|@fixed with next>@ <|@
108
+ tid v25 <|@
109
+ d <@d|@=== Debug Properties ===
110
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 16]
111
+ stamp: void
112
+ withSpeculationFence: false
113
+ === Inputs ===
114
+ === Succesors ===
115
+ next: v38
116
+ === Usages ===
117
+ === Predecessor ===
118
+ v26 >@ <|@
119
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v38 <|@ <|@
120
+ f <@*|@fixed>@ <|@
121
+ tid v38 <|@
122
+ d <@d|@=== Debug Properties ===
123
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 17]
124
+ stamp: void
125
+ === Inputs ===
126
+ result: i1
127
+ memoryMap: -
128
+ === Succesors ===
129
+ === Usages ===
130
+ === Predecessor ===
131
+ v25 >@ <|@
132
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
133
+ end_IR
134
+ end_block
135
+ begin_block
136
+ name "B2"
137
+ from_bci -1
138
+ to_bci -1
139
+ predecessors "B0"
140
+ successors "B3"
141
+ xhandlers
142
+ flags
143
+ probability 4605547914084714944
144
+ begin_IR
145
+ HIR
146
+ f <@#|@fixed with next>@ <|@
147
+ tid v24 <|@
148
+ d <@d|@=== Debug Properties ===
149
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 6]
150
+ stamp: void
151
+ withSpeculationFence: false
152
+ === Inputs ===
153
+ === Succesors ===
154
+ next: v46
155
+ === Usages ===
156
+ === Predecessor ===
157
+ v26 >@ <|@
158
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v46 <|@ <|@
159
+ f <@#|@fixed with next>@ <|@
160
+ tid v46 <|@
161
+ d <@d|@=== Debug Properties ===
162
+ barriers: 10
163
+ location: ANY_LOCATION
164
+ stamp: void
165
+ === Inputs ===
166
+ === Succesors ===
167
+ next: v42
168
+ === Usages ===
169
+ === Predecessor ===
170
+ v24 >@ <|@
171
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v42 <|@ <|@
172
+ f <@~|@floating>@ <|@
173
+ tid a39 <|@
174
+ d <@d|@=== Debug Properties ===
175
+ isDefaultStable: false
176
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
177
+ rawvalue: Instance<java.lang.Class>
178
+ stableDimension: 0
179
+ stamp: a!# Ljava/lang/Class;
180
+ stampKind: a -
181
+ value: Object[Instance<java.lang.Class>]
182
+ === Inputs ===
183
+ === Succesors ===
184
+ === Usages ===
185
+ v45
186
+ === Predecessor ===
187
+ - >@ <|@
188
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
189
+ f <@~|@floating>@ <|@
190
+ tid v45 <|@
191
+ d <@d|@=== Debug Properties ===
192
+ displacement: 128
193
+ scale: Times1
194
+ stamp: void*
195
+ === Inputs ===
196
+ base: a39
197
+ index: -
198
+ === Succesors ===
199
+ === Usages ===
200
+ v42 v43
201
+ === Predecessor ===
202
+ - >@ <|@
203
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a39 index: - <|@ <|@
204
+ f <@#|@fixed with next>@ <|@
205
+ tid v42 <|@
206
+ d <@d|@=== Debug Properties ===
207
+ barrierType: NONE
208
+ location: JavaExamples.intField
209
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
210
+ nullCheck: false
211
+ stamp: void
212
+ volatileAccess: true
213
+ === Inputs ===
214
+ stateBefore: -
215
+ guard: -
216
+ address: v45
217
+ value: i1
218
+ stateAfter: -
219
+ lastLocationAccess: -
220
+ === Succesors ===
221
+ next: v47
222
+ === Usages ===
223
+ === Predecessor ===
224
+ v46 >@ <|@
225
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v45 value: i1 stateAfter: - lastLocationAccess: - #next: v47 <|@ <|@
226
+ f <@#|@fixed with next>@ <|@
227
+ tid v47 <|@
228
+ d <@d|@=== Debug Properties ===
229
+ barriers: 12
230
+ location: ANY_LOCATION
231
+ stamp: void
232
+ === Inputs ===
233
+ === Succesors ===
234
+ next: v4
235
+ === Usages ===
236
+ === Predecessor ===
237
+ v42 >@ <|@
238
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v4 <|@ <|@
239
+ f <@~|@floating>@ <|@
240
+ tid i18 <|@
241
+ d <@d|@=== Debug Properties ===
242
+ isDefaultStable: false
243
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
244
+ rawvalue: -1
245
+ stableDimension: 0
246
+ stamp: i32 [-1] ⇊00000000ffffffff
247
+ stampKind: i32
248
+ value: int[-1|0xffffffffffffffff]
249
+ === Inputs ===
250
+ === Succesors ===
251
+ === Usages ===
252
+ i19 i29
253
+ === Predecessor ===
254
+ - >@ <|@
255
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
256
+ f <@~|@floating>@ <|@
257
+ tid i29 <|@
258
+ d <@d|@=== Debug Properties ===
259
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
260
+ stamp: i32
261
+ === Inputs ===
262
+ x: i1
263
+ y: i18
264
+ === Succesors ===
265
+ === Usages ===
266
+ i36
267
+ === Predecessor ===
268
+ - >@ <|@
269
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i1 y: i18 <|@ <|@
270
+ f <@*|@fixed>@ <|@
271
+ tid v4 <|@
272
+ d <@d|@=== Debug Properties ===
273
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
274
+ stamp: void
275
+ === Inputs ===
276
+ === Succesors ===
277
+ === Usages ===
278
+ v5
279
+ === Predecessor ===
280
+ v47 >@ <|@
281
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
282
+ end_IR
283
+ end_block
284
+ begin_block
285
+ name "B3"
286
+ from_bci -1
287
+ to_bci -1
288
+ predecessors "B2" "B5"
289
+ successors "B4" "B5"
290
+ xhandlers
291
+ flags "llh"
292
+ loop_index 0
293
+ loop_depth 1
294
+ probability 4615496347824353082
295
+ begin_IR
296
+ HIR
297
+ f <@~|@floating>@ <|@
298
+ tid i36 <|@
299
+ d <@d|@=== Debug Properties ===
300
+ stamp: i32
301
+ valueDescription: i32
302
+ === Inputs ===
303
+ merge: v5
304
+ values: i29 i19
305
+ === Succesors ===
306
+ === Usages ===
307
+ i19 v10 v43
308
+ === Predecessor ===
309
+ - >@ <|@
310
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v5 values: i29 i19 <|@ <|@
311
+ f <@#|@fixed with next>@ <|@
312
+ tid v5 <|@
313
+ d <@d|@=== Debug Properties ===
314
+ canEndsSafepoint: false
315
+ inversionCount: 0
316
+ loopFrequency: 4.510659694288013
317
+ loopOrigFrequency: 1.0
318
+ loopType: SIMPLE_LOOP
319
+ nextEndIndex: 1
320
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
321
+ osrLoop: false
322
+ splits: 0
323
+ stamp: void
324
+ unrollFactor: 1
325
+ unswitches: 0
326
+ withSpeculationFence: false
327
+ === Inputs ===
328
+ stateAfter: -
329
+ overflowGuard: -
330
+ ends: v4
331
+ === Succesors ===
332
+ next: v15
333
+ === Usages ===
334
+ i36 v13 v20
335
+ === Predecessor ===
336
+ - >@ <|@
337
+ instruction <@LoopBegin|@org.graalvm.compiler.nodes.LoopBeginNode>@ stateAfter: - overflowGuard: - ends: v4 #next: v15 <|@ <|@
338
+ f <@~|@floating>@ <|@
339
+ tid v10 <|@
340
+ d <@d|@=== Debug Properties ===
341
+ condition: LT
342
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
343
+ op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
344
+ stamp: void
345
+ unorderedIsTrue: false
346
+ === Inputs ===
347
+ x: i36
348
+ y: i9
349
+ === Succesors ===
350
+ === Usages ===
351
+ v15
352
+ === Predecessor ===
353
+ - >@ <|@
354
+ instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i36 y: i9 <|@ <|@
355
+ f <@*|@fixed>@ <|@
356
+ tid v15 <|@
357
+ d <@d|@=== Debug Properties ===
358
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
359
+ stamp: void
360
+ trueSuccessorProbability: 0.1814664768787182
361
+ === Inputs ===
362
+ condition: v10
363
+ === Succesors ===
364
+ trueSuccessor: v13
365
+ falseSuccessor: v11
366
+ === Usages ===
367
+ === Predecessor ===
368
+ v5 >@ <|@
369
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v10 #trueSuccessor: v13 #falseSuccessor: v11 <|@ <|@
370
+ end_IR
371
+ end_block
372
+ begin_block
373
+ name "B4"
374
+ from_bci -1
375
+ to_bci -1
376
+ predecessors "B3"
377
+ successors
378
+ xhandlers
379
+ flags
380
+ probability 4604210017181540071
381
+ begin_IR
382
+ HIR
383
+ f <@#|@fixed with next>@ <|@
384
+ tid v13 <|@
385
+ d <@d|@=== Debug Properties ===
386
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 16]
387
+ stamp: void
388
+ withSpeculationFence: false
389
+ === Inputs ===
390
+ stateAfter: -
391
+ loopBegin: v5
392
+ === Succesors ===
393
+ next: v37
394
+ === Usages ===
395
+ === Predecessor ===
396
+ v15 >@ <|@
397
+ instruction <@LoopExit|@org.graalvm.compiler.nodes.LoopExitNode>@ stateAfter: - loopBegin: v5 #next: v37 <|@ <|@
398
+ f <@*|@fixed>@ <|@
399
+ tid v37 <|@
400
+ d <@d|@=== Debug Properties ===
401
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 17]
402
+ stamp: void
403
+ === Inputs ===
404
+ result: i1
405
+ memoryMap: -
406
+ === Succesors ===
407
+ === Usages ===
408
+ === Predecessor ===
409
+ v13 >@ <|@
410
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
411
+ end_IR
412
+ end_block
413
+ begin_block
414
+ name "B5"
415
+ from_bci -1
416
+ to_bci -1
417
+ predecessors "B3"
418
+ successors "B3"
419
+ xhandlers
420
+ flags "lle"
421
+ loop_index 0
422
+ loop_depth 1
423
+ probability 4613987648415287168
424
+ begin_IR
425
+ HIR
426
+ f <@#|@fixed with next>@ <|@
427
+ tid v11 <|@
428
+ d <@d|@=== Debug Properties ===
429
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 6]
430
+ stamp: void
431
+ withSpeculationFence: false
432
+ === Inputs ===
433
+ === Succesors ===
434
+ next: v48
435
+ === Usages ===
436
+ === Predecessor ===
437
+ v15 >@ <|@
438
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v48 <|@ <|@
439
+ f <@#|@fixed with next>@ <|@
440
+ tid v48 <|@
441
+ d <@d|@=== Debug Properties ===
442
+ barriers: 10
443
+ location: ANY_LOCATION
444
+ stamp: void
445
+ === Inputs ===
446
+ === Succesors ===
447
+ next: v43
448
+ === Usages ===
449
+ === Predecessor ===
450
+ v11 >@ <|@
451
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v43 <|@ <|@
452
+ f <@#|@fixed with next>@ <|@
453
+ tid v43 <|@
454
+ d <@d|@=== Debug Properties ===
455
+ barrierType: NONE
456
+ location: JavaExamples.intField
457
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
458
+ nullCheck: false
459
+ stamp: void
460
+ volatileAccess: true
461
+ === Inputs ===
462
+ stateBefore: -
463
+ guard: -
464
+ address: v45
465
+ value: i36
466
+ stateAfter: -
467
+ lastLocationAccess: -
468
+ === Succesors ===
469
+ next: v49
470
+ === Usages ===
471
+ === Predecessor ===
472
+ v48 >@ <|@
473
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v45 value: i36 stateAfter: - lastLocationAccess: - #next: v49 <|@ <|@
474
+ f <@#|@fixed with next>@ <|@
475
+ tid v49 <|@
476
+ d <@d|@=== Debug Properties ===
477
+ barriers: 12
478
+ location: ANY_LOCATION
479
+ stamp: void
480
+ === Inputs ===
481
+ === Succesors ===
482
+ next: v20
483
+ === Usages ===
484
+ === Predecessor ===
485
+ v43 >@ <|@
486
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v20 <|@ <|@
487
+ f <@~|@floating>@ <|@
488
+ tid i19 <|@
489
+ d <@d|@=== Debug Properties ===
490
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
491
+ stamp: i32
492
+ === Inputs ===
493
+ x: i36
494
+ y: i18
495
+ === Succesors ===
496
+ === Usages ===
497
+ i36
498
+ === Predecessor ===
499
+ - >@ <|@
500
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i36 y: i18 <|@ <|@
501
+ f <@*|@fixed>@ <|@
502
+ tid v20 <|@
503
+ d <@d|@=== Debug Properties ===
504
+ canSafepoint: false
505
+ endIndex: 0
506
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
507
+ stamp: void
508
+ === Inputs ===
509
+ loopBegin: v5
510
+ === Succesors ===
511
+ === Usages ===
512
+ === Predecessor ===
513
+ v49 >@ <|@
514
+ instruction <@LoopEnd|@org.graalvm.compiler.nodes.LoopEndNode>@ loopBegin: v5 <|@ <|@
515
+ end_IR
516
+ end_block
517
+ end_cfg
518
+ begin_cfg
519
+ name "After LIRGeneration"
520
+ begin_block
521
+ name "B0"
522
+ from_bci -1
523
+ to_bci -1
524
+ predecessors
525
+ successors "B1" "B2"
526
+ xhandlers
527
+ flags
528
+ probability 4607182418800017408
529
+ begin_IR
530
+ LIR
531
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
532
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
533
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
534
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
535
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
536
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
537
+ end_IR
538
+ end_block
539
+ begin_block
540
+ name "B2"
541
+ from_bci -1
542
+ to_bci -1
543
+ predecessors "B0"
544
+ successors "B3"
545
+ xhandlers
546
+ flags
547
+ probability 4605547914084714944
548
+ begin_IR
549
+ LIR
550
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
551
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
552
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
553
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
554
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
555
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
556
+ end_IR
557
+ end_block
558
+ begin_block
559
+ name "B5"
560
+ from_bci -1
561
+ to_bci -1
562
+ predecessors "B3"
563
+ successors "B3"
564
+ xhandlers
565
+ flags "lle"
566
+ loop_index 0
567
+ loop_depth 1
568
+ probability 4613987648415287168
569
+ begin_IR
570
+ LIR
571
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
572
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
573
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
574
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
575
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
576
+ end_IR
577
+ end_block
578
+ begin_block
579
+ name "B3"
580
+ from_bci -1
581
+ to_bci -1
582
+ predecessors "B2" "B5"
583
+ successors "B4" "B5"
584
+ xhandlers
585
+ flags "llh"
586
+ loop_index 0
587
+ loop_depth 1
588
+ probability 4615496347824353082
589
+ begin_IR
590
+ LIR
591
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
592
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
593
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
594
+ end_IR
595
+ end_block
596
+ begin_block
597
+ name "B4"
598
+ from_bci -1
599
+ to_bci -1
600
+ predecessors "B3"
601
+ successors
602
+ xhandlers
603
+ flags
604
+ probability 4604210017181540071
605
+ begin_IR
606
+ LIR
607
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
608
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
609
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
610
+ end_IR
611
+ end_block
612
+ begin_block
613
+ name "B1"
614
+ from_bci -1
615
+ to_bci -1
616
+ predecessors "B0"
617
+ successors
618
+ xhandlers
619
+ flags
620
+ probability 4595706039151745280
621
+ begin_IR
622
+ LIR
623
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
624
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
625
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
626
+ end_IR
627
+ end_block
628
+ end_cfg
629
+ begin_bytecodes
630
+ 0: iload_0
631
+ 1: istore_1
632
+ 2: iload_1
633
+ 3: ifle 16
634
+ 6: iload_1
635
+ 7: putstatic #54 // intField:int
636
+ 10: iinc
637
+ 13: goto 2
638
+ 16: iload_0
639
+ 17: ireturn
640
+ <|@
641
+ end_bytecodes
642
+ begin_cfg
643
+ name "After LIR generation"
644
+ begin_block
645
+ name "B0"
646
+ from_bci -1
647
+ to_bci -1
648
+ predecessors
649
+ successors "B1" "B2"
650
+ xhandlers
651
+ flags
652
+ probability 4607182418800017408
653
+ begin_IR
654
+ HIR
655
+ f <@#|@fixed with next>@ <|@
656
+ tid v0 <|@
657
+ d <@d|@=== Debug Properties ===
658
+ stamp: void
659
+ withSpeculationFence: false
660
+ === Inputs ===
661
+ stateAfter: -
662
+ === Succesors ===
663
+ next: v26
664
+ === Usages ===
665
+ === Predecessor ===
666
+ - >@ <|@
667
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v26 <|@ <|@
668
+ f <@~|@floating>@ <|@
669
+ tid i1 <|@
670
+ result v0|DWORD <|@
671
+ d <@d|@=== Debug Properties ===
672
+ index: 0
673
+ stamp: i32
674
+ uncheckedStamp: [null]
675
+ === Inputs ===
676
+ === Succesors ===
677
+ === Usages ===
678
+ i29 v37 v23 v38 v42
679
+ === Predecessor ===
680
+ - >@ <|@
681
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
682
+ f <@~|@floating>@ <|@
683
+ tid i9 <|@
684
+ result int[1|0x1] <|@
685
+ d <@d|@=== Debug Properties ===
686
+ isDefaultStable: false
687
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
688
+ rawvalue: 1
689
+ stableDimension: 0
690
+ stamp: i32 [1] ⇊0000000000000001 ⇈0000000000000001
691
+ stampKind: i32
692
+ value: int[1|0x1]
693
+ === Inputs ===
694
+ === Succesors ===
695
+ === Usages ===
696
+ v10 v23
697
+ === Predecessor ===
698
+ - >@ <|@
699
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
700
+ f <@~|@floating>@ <|@
701
+ tid v23 <|@
702
+ d <@d|@=== Debug Properties ===
703
+ condition: LT
704
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
705
+ op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
706
+ stamp: void
707
+ unorderedIsTrue: false
708
+ === Inputs ===
709
+ x: i1
710
+ y: i9
711
+ === Succesors ===
712
+ === Usages ===
713
+ v26
714
+ === Predecessor ===
715
+ - >@ <|@
716
+ instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i1 y: i9 <|@ <|@
717
+ f <@*|@fixed>@ <|@
718
+ tid v26 <|@
719
+ d <@d|@=== Debug Properties ===
720
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
721
+ stamp: void
722
+ trueSuccessorProbability: 0.1814664768787182
723
+ === Inputs ===
724
+ condition: v23
725
+ === Succesors ===
726
+ trueSuccessor: v25
727
+ falseSuccessor: v24
728
+ === Usages ===
729
+ === Predecessor ===
730
+ v0 >@ <|@
731
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v23 #trueSuccessor: v25 #falseSuccessor: v24 <|@ <|@
732
+ end_IR
733
+ begin_IR
734
+ LIR
735
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
736
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
737
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
738
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
739
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
740
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
741
+ end_IR
742
+ end_block
743
+ begin_block
744
+ name "B1"
745
+ from_bci -1
746
+ to_bci -1
747
+ predecessors "B0"
748
+ successors
749
+ xhandlers
750
+ flags
751
+ probability 4595706039151745280
752
+ begin_IR
753
+ HIR
754
+ f <@#|@fixed with next>@ <|@
755
+ tid v25 <|@
756
+ d <@d|@=== Debug Properties ===
757
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 16]
758
+ stamp: void
759
+ withSpeculationFence: false
760
+ === Inputs ===
761
+ === Succesors ===
762
+ next: v38
763
+ === Usages ===
764
+ === Predecessor ===
765
+ v26 >@ <|@
766
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v38 <|@ <|@
767
+ f <@*|@fixed>@ <|@
768
+ tid v38 <|@
769
+ d <@d|@=== Debug Properties ===
770
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 17]
771
+ stamp: void
772
+ === Inputs ===
773
+ result: i1
774
+ memoryMap: -
775
+ === Succesors ===
776
+ === Usages ===
777
+ === Predecessor ===
778
+ v25 >@ <|@
779
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
780
+ end_IR
781
+ begin_IR
782
+ LIR
783
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
784
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
785
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
786
+ end_IR
787
+ end_block
788
+ begin_block
789
+ name "B2"
790
+ from_bci -1
791
+ to_bci -1
792
+ predecessors "B0"
793
+ successors "B3"
794
+ xhandlers
795
+ flags
796
+ probability 4605547914084714944
797
+ begin_IR
798
+ HIR
799
+ f <@#|@fixed with next>@ <|@
800
+ tid v24 <|@
801
+ d <@d|@=== Debug Properties ===
802
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 6]
803
+ stamp: void
804
+ withSpeculationFence: false
805
+ === Inputs ===
806
+ === Succesors ===
807
+ next: v46
808
+ === Usages ===
809
+ === Predecessor ===
810
+ v26 >@ <|@
811
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v46 <|@ <|@
812
+ f <@#|@fixed with next>@ <|@
813
+ tid v46 <|@
814
+ d <@d|@=== Debug Properties ===
815
+ barriers: 10
816
+ location: ANY_LOCATION
817
+ stamp: void
818
+ === Inputs ===
819
+ === Succesors ===
820
+ next: v42
821
+ === Usages ===
822
+ === Predecessor ===
823
+ v24 >@ <|@
824
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v42 <|@ <|@
825
+ f <@~|@floating>@ <|@
826
+ tid a39 <|@
827
+ result v1|QWORD[.] <|@
828
+ d <@d|@=== Debug Properties ===
829
+ isDefaultStable: false
830
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
831
+ rawvalue: Instance<java.lang.Class>
832
+ stableDimension: 0
833
+ stamp: a!# Ljava/lang/Class;
834
+ stampKind: a -
835
+ value: Object[Instance<java.lang.Class>]
836
+ === Inputs ===
837
+ === Succesors ===
838
+ === Usages ===
839
+ v45
840
+ === Predecessor ===
841
+ - >@ <|@
842
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
843
+ f <@~|@floating>@ <|@
844
+ tid v45 <|@
845
+ result [v1|QWORD[.] + 128] <|@
846
+ d <@d|@=== Debug Properties ===
847
+ displacement: 128
848
+ scale: Times1
849
+ stamp: void*
850
+ === Inputs ===
851
+ base: a39
852
+ index: -
853
+ === Succesors ===
854
+ === Usages ===
855
+ v42 v43
856
+ === Predecessor ===
857
+ - >@ <|@
858
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a39 index: - <|@ <|@
859
+ f <@#|@fixed with next>@ <|@
860
+ tid v42 <|@
861
+ d <@d|@=== Debug Properties ===
862
+ barrierType: NONE
863
+ location: JavaExamples.intField
864
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
865
+ nullCheck: false
866
+ stamp: void
867
+ volatileAccess: true
868
+ === Inputs ===
869
+ stateBefore: -
870
+ guard: -
871
+ address: v45
872
+ value: i1
873
+ stateAfter: -
874
+ lastLocationAccess: -
875
+ === Succesors ===
876
+ next: v47
877
+ === Usages ===
878
+ === Predecessor ===
879
+ v46 >@ <|@
880
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v45 value: i1 stateAfter: - lastLocationAccess: - #next: v47 <|@ <|@
881
+ f <@#|@fixed with next>@ <|@
882
+ tid v47 <|@
883
+ d <@d|@=== Debug Properties ===
884
+ barriers: 12
885
+ location: ANY_LOCATION
886
+ stamp: void
887
+ === Inputs ===
888
+ === Succesors ===
889
+ next: v4
890
+ === Usages ===
891
+ === Predecessor ===
892
+ v42 >@ <|@
893
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v4 <|@ <|@
894
+ f <@~|@floating>@ <|@
895
+ tid i18 <|@
896
+ result int[-1|0xffffffffffffffff] <|@
897
+ d <@d|@=== Debug Properties ===
898
+ isDefaultStable: false
899
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
900
+ rawvalue: -1
901
+ stableDimension: 0
902
+ stamp: i32 [-1] ⇊00000000ffffffff
903
+ stampKind: i32
904
+ value: int[-1|0xffffffffffffffff]
905
+ === Inputs ===
906
+ === Succesors ===
907
+ === Usages ===
908
+ i19 i29
909
+ === Predecessor ===
910
+ - >@ <|@
911
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
912
+ f <@~|@floating>@ <|@
913
+ tid i29 <|@
914
+ result v2|DWORD <|@
915
+ d <@d|@=== Debug Properties ===
916
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
917
+ stamp: i32
918
+ === Inputs ===
919
+ x: i1
920
+ y: i18
921
+ === Succesors ===
922
+ === Usages ===
923
+ i36
924
+ === Predecessor ===
925
+ - >@ <|@
926
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i1 y: i18 <|@ <|@
927
+ f <@*|@fixed>@ <|@
928
+ tid v4 <|@
929
+ d <@d|@=== Debug Properties ===
930
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
931
+ stamp: void
932
+ === Inputs ===
933
+ === Succesors ===
934
+ === Usages ===
935
+ v5
936
+ === Predecessor ===
937
+ v47 >@ <|@
938
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
939
+ end_IR
940
+ begin_IR
941
+ LIR
942
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
943
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
944
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
945
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
946
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
947
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
948
+ end_IR
949
+ end_block
950
+ begin_block
951
+ name "B3"
952
+ from_bci -1
953
+ to_bci -1
954
+ predecessors "B2" "B5"
955
+ successors "B4" "B5"
956
+ xhandlers
957
+ flags "llh"
958
+ loop_index 0
959
+ loop_depth 1
960
+ probability 4615496347824353082
961
+ begin_IR
962
+ HIR
963
+ f <@~|@floating>@ <|@
964
+ tid i36 <|@
965
+ result v3|DWORD <|@
966
+ d <@d|@=== Debug Properties ===
967
+ stamp: i32
968
+ valueDescription: i32
969
+ === Inputs ===
970
+ merge: v5
971
+ values: i29 i19
972
+ === Succesors ===
973
+ === Usages ===
974
+ i19 v10 v43
975
+ === Predecessor ===
976
+ - >@ <|@
977
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v5 values: i29 i19 <|@ <|@
978
+ f <@#|@fixed with next>@ <|@
979
+ tid v5 <|@
980
+ d <@d|@=== Debug Properties ===
981
+ canEndsSafepoint: false
982
+ inversionCount: 0
983
+ loopFrequency: 4.510659694288013
984
+ loopOrigFrequency: 1.0
985
+ loopType: SIMPLE_LOOP
986
+ nextEndIndex: 1
987
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
988
+ osrLoop: false
989
+ splits: 0
990
+ stamp: void
991
+ unrollFactor: 1
992
+ unswitches: 0
993
+ withSpeculationFence: false
994
+ === Inputs ===
995
+ stateAfter: -
996
+ overflowGuard: -
997
+ ends: v4
998
+ === Succesors ===
999
+ next: v15
1000
+ === Usages ===
1001
+ i36 v13 v20
1002
+ === Predecessor ===
1003
+ - >@ <|@
1004
+ instruction <@LoopBegin|@org.graalvm.compiler.nodes.LoopBeginNode>@ stateAfter: - overflowGuard: - ends: v4 #next: v15 <|@ <|@
1005
+ f <@~|@floating>@ <|@
1006
+ tid v10 <|@
1007
+ d <@d|@=== Debug Properties ===
1008
+ condition: LT
1009
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
1010
+ op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
1011
+ stamp: void
1012
+ unorderedIsTrue: false
1013
+ === Inputs ===
1014
+ x: i36
1015
+ y: i9
1016
+ === Succesors ===
1017
+ === Usages ===
1018
+ v15
1019
+ === Predecessor ===
1020
+ - >@ <|@
1021
+ instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i36 y: i9 <|@ <|@
1022
+ f <@*|@fixed>@ <|@
1023
+ tid v15 <|@
1024
+ d <@d|@=== Debug Properties ===
1025
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 3]
1026
+ stamp: void
1027
+ trueSuccessorProbability: 0.1814664768787182
1028
+ === Inputs ===
1029
+ condition: v10
1030
+ === Succesors ===
1031
+ trueSuccessor: v13
1032
+ falseSuccessor: v11
1033
+ === Usages ===
1034
+ === Predecessor ===
1035
+ v5 >@ <|@
1036
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v10 #trueSuccessor: v13 #falseSuccessor: v11 <|@ <|@
1037
+ end_IR
1038
+ begin_IR
1039
+ LIR
1040
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1041
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1042
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1043
+ end_IR
1044
+ end_block
1045
+ begin_block
1046
+ name "B4"
1047
+ from_bci -1
1048
+ to_bci -1
1049
+ predecessors "B3"
1050
+ successors
1051
+ xhandlers
1052
+ flags
1053
+ probability 4604210017181540071
1054
+ begin_IR
1055
+ HIR
1056
+ f <@#|@fixed with next>@ <|@
1057
+ tid v13 <|@
1058
+ d <@d|@=== Debug Properties ===
1059
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 16]
1060
+ stamp: void
1061
+ withSpeculationFence: false
1062
+ === Inputs ===
1063
+ stateAfter: -
1064
+ loopBegin: v5
1065
+ === Succesors ===
1066
+ next: v37
1067
+ === Usages ===
1068
+ === Predecessor ===
1069
+ v15 >@ <|@
1070
+ instruction <@LoopExit|@org.graalvm.compiler.nodes.LoopExitNode>@ stateAfter: - loopBegin: v5 #next: v37 <|@ <|@
1071
+ f <@*|@fixed>@ <|@
1072
+ tid v37 <|@
1073
+ d <@d|@=== Debug Properties ===
1074
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:208) [bci: 17]
1075
+ stamp: void
1076
+ === Inputs ===
1077
+ result: i1
1078
+ memoryMap: -
1079
+ === Succesors ===
1080
+ === Usages ===
1081
+ === Predecessor ===
1082
+ v13 >@ <|@
1083
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i1 memoryMap: - <|@ <|@
1084
+ end_IR
1085
+ begin_IR
1086
+ LIR
1087
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1088
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1089
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1090
+ end_IR
1091
+ end_block
1092
+ begin_block
1093
+ name "B5"
1094
+ from_bci -1
1095
+ to_bci -1
1096
+ predecessors "B3"
1097
+ successors "B3"
1098
+ xhandlers
1099
+ flags "lle"
1100
+ loop_index 0
1101
+ loop_depth 1
1102
+ probability 4613987648415287168
1103
+ begin_IR
1104
+ HIR
1105
+ f <@#|@fixed with next>@ <|@
1106
+ tid v11 <|@
1107
+ d <@d|@=== Debug Properties ===
1108
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 6]
1109
+ stamp: void
1110
+ withSpeculationFence: false
1111
+ === Inputs ===
1112
+ === Succesors ===
1113
+ next: v48
1114
+ === Usages ===
1115
+ === Predecessor ===
1116
+ v15 >@ <|@
1117
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v48 <|@ <|@
1118
+ f <@#|@fixed with next>@ <|@
1119
+ tid v48 <|@
1120
+ d <@d|@=== Debug Properties ===
1121
+ barriers: 10
1122
+ location: ANY_LOCATION
1123
+ stamp: void
1124
+ === Inputs ===
1125
+ === Succesors ===
1126
+ next: v43
1127
+ === Usages ===
1128
+ === Predecessor ===
1129
+ v11 >@ <|@
1130
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v43 <|@ <|@
1131
+ f <@#|@fixed with next>@ <|@
1132
+ tid v43 <|@
1133
+ d <@d|@=== Debug Properties ===
1134
+ barrierType: NONE
1135
+ location: JavaExamples.intField
1136
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:205) [bci: 7]
1137
+ nullCheck: false
1138
+ stamp: void
1139
+ volatileAccess: true
1140
+ === Inputs ===
1141
+ stateBefore: -
1142
+ guard: -
1143
+ address: v45
1144
+ value: i36
1145
+ stateAfter: -
1146
+ lastLocationAccess: -
1147
+ === Succesors ===
1148
+ next: v49
1149
+ === Usages ===
1150
+ === Predecessor ===
1151
+ v48 >@ <|@
1152
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v45 value: i36 stateAfter: - lastLocationAccess: - #next: v49 <|@ <|@
1153
+ f <@#|@fixed with next>@ <|@
1154
+ tid v49 <|@
1155
+ d <@d|@=== Debug Properties ===
1156
+ barriers: 12
1157
+ location: ANY_LOCATION
1158
+ stamp: void
1159
+ === Inputs ===
1160
+ === Succesors ===
1161
+ next: v20
1162
+ === Usages ===
1163
+ === Predecessor ===
1164
+ v43 >@ <|@
1165
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v20 <|@ <|@
1166
+ f <@~|@floating>@ <|@
1167
+ tid i19 <|@
1168
+ result v4|DWORD <|@
1169
+ d <@d|@=== Debug Properties ===
1170
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:206) [bci: 10]
1171
+ stamp: i32
1172
+ === Inputs ===
1173
+ x: i36
1174
+ y: i18
1175
+ === Succesors ===
1176
+ === Usages ===
1177
+ i36
1178
+ === Predecessor ===
1179
+ - >@ <|@
1180
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i36 y: i18 <|@ <|@
1181
+ f <@*|@fixed>@ <|@
1182
+ tid v20 <|@
1183
+ d <@d|@=== Debug Properties ===
1184
+ canSafepoint: false
1185
+ endIndex: 0
1186
+ nodeSourcePosition: at JavaExamples.exampleWhile(JavaExamples.java:204) [bci: 2]
1187
+ stamp: void
1188
+ === Inputs ===
1189
+ loopBegin: v5
1190
+ === Succesors ===
1191
+ === Usages ===
1192
+ === Predecessor ===
1193
+ v49 >@ <|@
1194
+ instruction <@LoopEnd|@org.graalvm.compiler.nodes.LoopEndNode>@ loopBegin: v5 <|@ <|@
1195
+ end_IR
1196
+ begin_IR
1197
+ LIR
1198
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1199
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1200
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1201
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1202
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1203
+ end_IR
1204
+ end_block
1205
+ end_cfg
1206
+ begin_cfg
1207
+ name "After ConstantLoadOptimization"
1208
+ begin_block
1209
+ name "B0"
1210
+ from_bci -1
1211
+ to_bci -1
1212
+ predecessors
1213
+ successors "B1" "B2"
1214
+ xhandlers
1215
+ flags
1216
+ probability 4607182418800017408
1217
+ begin_IR
1218
+ LIR
1219
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1220
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1221
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1222
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1223
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1224
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1225
+ end_IR
1226
+ end_block
1227
+ begin_block
1228
+ name "B2"
1229
+ from_bci -1
1230
+ to_bci -1
1231
+ predecessors "B0"
1232
+ successors "B3"
1233
+ xhandlers
1234
+ flags
1235
+ probability 4605547914084714944
1236
+ begin_IR
1237
+ LIR
1238
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1239
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1240
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1241
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1242
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1243
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1244
+ end_IR
1245
+ end_block
1246
+ begin_block
1247
+ name "B5"
1248
+ from_bci -1
1249
+ to_bci -1
1250
+ predecessors "B3"
1251
+ successors "B3"
1252
+ xhandlers
1253
+ flags "lle"
1254
+ loop_index 0
1255
+ loop_depth 1
1256
+ probability 4613987648415287168
1257
+ begin_IR
1258
+ LIR
1259
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1260
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1261
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1262
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1263
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1264
+ end_IR
1265
+ end_block
1266
+ begin_block
1267
+ name "B3"
1268
+ from_bci -1
1269
+ to_bci -1
1270
+ predecessors "B2" "B5"
1271
+ successors "B4" "B5"
1272
+ xhandlers
1273
+ flags "llh"
1274
+ loop_index 0
1275
+ loop_depth 1
1276
+ probability 4615496347824353082
1277
+ begin_IR
1278
+ LIR
1279
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1280
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1281
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1282
+ end_IR
1283
+ end_block
1284
+ begin_block
1285
+ name "B4"
1286
+ from_bci -1
1287
+ to_bci -1
1288
+ predecessors "B3"
1289
+ successors
1290
+ xhandlers
1291
+ flags
1292
+ probability 4604210017181540071
1293
+ begin_IR
1294
+ LIR
1295
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1296
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1297
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1298
+ end_IR
1299
+ end_block
1300
+ begin_block
1301
+ name "B1"
1302
+ from_bci -1
1303
+ to_bci -1
1304
+ predecessors "B0"
1305
+ successors
1306
+ xhandlers
1307
+ flags
1308
+ probability 4595706039151745280
1309
+ begin_IR
1310
+ LIR
1311
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1312
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1313
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1314
+ end_IR
1315
+ end_block
1316
+ end_cfg
1317
+ begin_bytecodes
1318
+ 0: iload_0
1319
+ 1: istore_1
1320
+ 2: iload_1
1321
+ 3: ifle 16
1322
+ 6: iload_1
1323
+ 7: putstatic #54 // intField:int
1324
+ 10: iinc
1325
+ 13: goto 2
1326
+ 16: iload_0
1327
+ 17: ireturn
1328
+ <|@
1329
+ end_bytecodes
1330
+ begin_cfg
1331
+ name "After SaveCalleeSaveRegisters"
1332
+ begin_block
1333
+ name "B0"
1334
+ from_bci -1
1335
+ to_bci -1
1336
+ predecessors
1337
+ successors "B1" "B2"
1338
+ xhandlers
1339
+ flags
1340
+ probability 4607182418800017408
1341
+ begin_IR
1342
+ LIR
1343
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1344
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1345
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1346
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1347
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1348
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1349
+ end_IR
1350
+ end_block
1351
+ begin_block
1352
+ name "B2"
1353
+ from_bci -1
1354
+ to_bci -1
1355
+ predecessors "B0"
1356
+ successors "B3"
1357
+ xhandlers
1358
+ flags
1359
+ probability 4605547914084714944
1360
+ begin_IR
1361
+ LIR
1362
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1363
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1364
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1365
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1366
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1367
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1368
+ end_IR
1369
+ end_block
1370
+ begin_block
1371
+ name "B5"
1372
+ from_bci -1
1373
+ to_bci -1
1374
+ predecessors "B3"
1375
+ successors "B3"
1376
+ xhandlers
1377
+ flags "lle"
1378
+ loop_index 0
1379
+ loop_depth 1
1380
+ probability 4613987648415287168
1381
+ begin_IR
1382
+ LIR
1383
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1384
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1385
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1386
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1387
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1388
+ end_IR
1389
+ end_block
1390
+ begin_block
1391
+ name "B3"
1392
+ from_bci -1
1393
+ to_bci -1
1394
+ predecessors "B2" "B5"
1395
+ successors "B4" "B5"
1396
+ xhandlers
1397
+ flags "llh"
1398
+ loop_index 0
1399
+ loop_depth 1
1400
+ probability 4615496347824353082
1401
+ begin_IR
1402
+ LIR
1403
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1404
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1405
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1406
+ end_IR
1407
+ end_block
1408
+ begin_block
1409
+ name "B4"
1410
+ from_bci -1
1411
+ to_bci -1
1412
+ predecessors "B3"
1413
+ successors
1414
+ xhandlers
1415
+ flags
1416
+ probability 4604210017181540071
1417
+ begin_IR
1418
+ LIR
1419
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1420
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1421
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1422
+ end_IR
1423
+ end_block
1424
+ begin_block
1425
+ name "B1"
1426
+ from_bci -1
1427
+ to_bci -1
1428
+ predecessors "B0"
1429
+ successors
1430
+ xhandlers
1431
+ flags
1432
+ probability 4595706039151745280
1433
+ begin_IR
1434
+ LIR
1435
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1436
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1437
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1438
+ end_IR
1439
+ end_block
1440
+ end_cfg
1441
+ begin_bytecodes
1442
+ 0: iload_0
1443
+ 1: istore_1
1444
+ 2: iload_1
1445
+ 3: ifle 16
1446
+ 6: iload_1
1447
+ 7: putstatic #54 // intField:int
1448
+ 10: iinc
1449
+ 13: goto 2
1450
+ 16: iload_0
1451
+ 17: ireturn
1452
+ <|@
1453
+ end_bytecodes
1454
+ begin_cfg
1455
+ name "After PreAllocationOptimizationStage"
1456
+ begin_block
1457
+ name "B0"
1458
+ from_bci -1
1459
+ to_bci -1
1460
+ predecessors
1461
+ successors "B1" "B2"
1462
+ xhandlers
1463
+ flags
1464
+ probability 4607182418800017408
1465
+ begin_IR
1466
+ LIR
1467
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1468
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1469
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1470
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1471
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1472
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1473
+ end_IR
1474
+ end_block
1475
+ begin_block
1476
+ name "B2"
1477
+ from_bci -1
1478
+ to_bci -1
1479
+ predecessors "B0"
1480
+ successors "B3"
1481
+ xhandlers
1482
+ flags
1483
+ probability 4605547914084714944
1484
+ begin_IR
1485
+ LIR
1486
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1487
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1488
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1489
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1490
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1491
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1492
+ end_IR
1493
+ end_block
1494
+ begin_block
1495
+ name "B5"
1496
+ from_bci -1
1497
+ to_bci -1
1498
+ predecessors "B3"
1499
+ successors "B3"
1500
+ xhandlers
1501
+ flags "lle"
1502
+ loop_index 0
1503
+ loop_depth 1
1504
+ probability 4613987648415287168
1505
+ begin_IR
1506
+ LIR
1507
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1508
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1509
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1510
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1511
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1512
+ end_IR
1513
+ end_block
1514
+ begin_block
1515
+ name "B3"
1516
+ from_bci -1
1517
+ to_bci -1
1518
+ predecessors "B2" "B5"
1519
+ successors "B4" "B5"
1520
+ xhandlers
1521
+ flags "llh"
1522
+ loop_index 0
1523
+ loop_depth 1
1524
+ probability 4615496347824353082
1525
+ begin_IR
1526
+ LIR
1527
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1528
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1529
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1530
+ end_IR
1531
+ end_block
1532
+ begin_block
1533
+ name "B4"
1534
+ from_bci -1
1535
+ to_bci -1
1536
+ predecessors "B3"
1537
+ successors
1538
+ xhandlers
1539
+ flags
1540
+ probability 4604210017181540071
1541
+ begin_IR
1542
+ LIR
1543
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1544
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1545
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
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 4595706039151745280
1557
+ begin_IR
1558
+ LIR
1559
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1560
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1561
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1562
+ end_IR
1563
+ end_block
1564
+ end_cfg
1565
+ begin_bytecodes
1566
+ 0: iload_0
1567
+ 1: istore_1
1568
+ 2: iload_1
1569
+ 3: ifle 16
1570
+ 6: iload_1
1571
+ 7: putstatic #54 // intField:int
1572
+ 10: iinc
1573
+ 13: goto 2
1574
+ 16: iload_0
1575
+ 17: ireturn
1576
+ <|@
1577
+ end_bytecodes
1578
+ begin_cfg
1579
+ name "After MarkBasePointers"
1580
+ begin_block
1581
+ name "B0"
1582
+ from_bci -1
1583
+ to_bci -1
1584
+ predecessors
1585
+ successors "B1" "B2"
1586
+ xhandlers
1587
+ flags
1588
+ probability 4607182418800017408
1589
+ begin_IR
1590
+ LIR
1591
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1592
+ nr -1 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1593
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1594
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1595
+ nr -1 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1596
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1597
+ end_IR
1598
+ end_block
1599
+ begin_block
1600
+ name "B2"
1601
+ from_bci -1
1602
+ to_bci -1
1603
+ predecessors "B0"
1604
+ successors "B3"
1605
+ xhandlers
1606
+ flags
1607
+ probability 4605547914084714944
1608
+ begin_IR
1609
+ LIR
1610
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1611
+ nr -1 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1612
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1613
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1614
+ nr -1 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1615
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1616
+ end_IR
1617
+ end_block
1618
+ begin_block
1619
+ name "B5"
1620
+ from_bci -1
1621
+ to_bci -1
1622
+ predecessors "B3"
1623
+ successors "B3"
1624
+ xhandlers
1625
+ flags "lle"
1626
+ loop_index 0
1627
+ loop_depth 1
1628
+ probability 4613987648415287168
1629
+ begin_IR
1630
+ LIR
1631
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1632
+ nr -1 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1633
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1634
+ nr -1 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1635
+ nr -1 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1636
+ end_IR
1637
+ end_block
1638
+ begin_block
1639
+ name "B3"
1640
+ from_bci -1
1641
+ to_bci -1
1642
+ predecessors "B2" "B5"
1643
+ successors "B4" "B5"
1644
+ xhandlers
1645
+ flags "llh"
1646
+ loop_index 0
1647
+ loop_depth 1
1648
+ probability 4615496347824353082
1649
+ begin_IR
1650
+ LIR
1651
+ nr -1 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1652
+ nr -1 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1653
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1654
+ end_IR
1655
+ end_block
1656
+ begin_block
1657
+ name "B4"
1658
+ from_bci -1
1659
+ to_bci -1
1660
+ predecessors "B3"
1661
+ successors
1662
+ xhandlers
1663
+ flags
1664
+ probability 4604210017181540071
1665
+ begin_IR
1666
+ LIR
1667
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1668
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1669
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1670
+ end_IR
1671
+ end_block
1672
+ begin_block
1673
+ name "B1"
1674
+ from_bci -1
1675
+ to_bci -1
1676
+ predecessors "B0"
1677
+ successors
1678
+ xhandlers
1679
+ flags
1680
+ probability 4595706039151745280
1681
+ begin_IR
1682
+ LIR
1683
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1684
+ nr -1 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1685
+ nr -1 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1686
+ end_IR
1687
+ end_block
1688
+ end_cfg
1689
+ begin_bytecodes
1690
+ 0: iload_0
1691
+ 1: istore_1
1692
+ 2: iload_1
1693
+ 3: ifle 16
1694
+ 6: iload_1
1695
+ 7: putstatic #54 // intField:int
1696
+ 10: iinc
1697
+ 13: goto 2
1698
+ 16: iload_0
1699
+ 17: ireturn
1700
+ <|@
1701
+ end_bytecodes
1702
+ begin_cfg
1703
+ name "Before register allocation"
1704
+ begin_block
1705
+ name "B0"
1706
+ from_bci -1
1707
+ to_bci -1
1708
+ predecessors
1709
+ successors "B1" "B2"
1710
+ xhandlers
1711
+ flags
1712
+ probability 4607182418800017408
1713
+ begin_IR
1714
+ LIR
1715
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1716
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1717
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1718
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1719
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1720
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1721
+ end_IR
1722
+ end_block
1723
+ begin_block
1724
+ name "B2"
1725
+ from_bci -1
1726
+ to_bci -1
1727
+ predecessors "B0"
1728
+ successors "B3"
1729
+ xhandlers
1730
+ flags
1731
+ probability 4605547914084714944
1732
+ begin_IR
1733
+ LIR
1734
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1735
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1736
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1737
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1738
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1739
+ nr 22 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1740
+ end_IR
1741
+ end_block
1742
+ begin_block
1743
+ name "B5"
1744
+ from_bci -1
1745
+ to_bci -1
1746
+ predecessors "B3"
1747
+ successors "B3"
1748
+ xhandlers
1749
+ flags "lle"
1750
+ loop_index 0
1751
+ loop_depth 1
1752
+ probability 4613987648415287168
1753
+ begin_IR
1754
+ LIR
1755
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1756
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1757
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1758
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1759
+ nr 38 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1760
+ end_IR
1761
+ end_block
1762
+ begin_block
1763
+ name "B3"
1764
+ from_bci -1
1765
+ to_bci -1
1766
+ predecessors "B2" "B5"
1767
+ successors "B4" "B5"
1768
+ xhandlers
1769
+ flags "llh"
1770
+ loop_index 0
1771
+ loop_depth 1
1772
+ probability 4615496347824353082
1773
+ begin_IR
1774
+ LIR
1775
+ nr 24 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1776
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1777
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1778
+ end_IR
1779
+ end_block
1780
+ begin_block
1781
+ name "B4"
1782
+ from_bci -1
1783
+ to_bci -1
1784
+ predecessors "B3"
1785
+ successors
1786
+ xhandlers
1787
+ flags
1788
+ probability 4604210017181540071
1789
+ begin_IR
1790
+ LIR
1791
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1792
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1793
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1794
+ end_IR
1795
+ end_block
1796
+ begin_block
1797
+ name "B1"
1798
+ from_bci -1
1799
+ to_bci -1
1800
+ predecessors "B0"
1801
+ successors
1802
+ xhandlers
1803
+ flags
1804
+ probability 4595706039151745280
1805
+ begin_IR
1806
+ LIR
1807
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1808
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1809
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1810
+ end_IR
1811
+ end_block
1812
+ end_cfg
1813
+ begin_bytecodes
1814
+ 0: iload_0
1815
+ 1: istore_1
1816
+ 2: iload_1
1817
+ 3: ifle 16
1818
+ 6: iload_1
1819
+ 7: putstatic #54 // intField:int
1820
+ 10: iinc
1821
+ 13: goto 2
1822
+ 16: iload_0
1823
+ 17: ireturn
1824
+ <|@
1825
+ end_bytecodes
1826
+ begin_cfg
1827
+ name "After SSALinearScanLifetimeAnalysis"
1828
+ begin_block
1829
+ name "B0"
1830
+ from_bci -1
1831
+ to_bci -1
1832
+ predecessors
1833
+ successors "B1" "B2"
1834
+ xhandlers
1835
+ flags
1836
+ probability 4607182418800017408
1837
+ begin_IR
1838
+ LIR
1839
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1840
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1841
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1842
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1843
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1844
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1845
+ end_IR
1846
+ end_block
1847
+ begin_block
1848
+ name "B2"
1849
+ from_bci -1
1850
+ to_bci -1
1851
+ predecessors "B0"
1852
+ successors "B3"
1853
+ xhandlers
1854
+ flags
1855
+ probability 4605547914084714944
1856
+ begin_IR
1857
+ LIR
1858
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1859
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1860
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
1861
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1862
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
1863
+ nr 22 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
1864
+ end_IR
1865
+ end_block
1866
+ begin_block
1867
+ name "B5"
1868
+ from_bci -1
1869
+ to_bci -1
1870
+ predecessors "B3"
1871
+ successors "B3"
1872
+ xhandlers
1873
+ flags "lle"
1874
+ loop_index 0
1875
+ loop_depth 1
1876
+ probability 4613987648415287168
1877
+ begin_IR
1878
+ LIR
1879
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
1880
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
1881
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1882
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
1883
+ nr 38 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
1884
+ end_IR
1885
+ end_block
1886
+ begin_block
1887
+ name "B3"
1888
+ from_bci -1
1889
+ to_bci -1
1890
+ predecessors "B2" "B5"
1891
+ successors "B4" "B5"
1892
+ xhandlers
1893
+ flags "llh"
1894
+ loop_index 0
1895
+ loop_depth 1
1896
+ probability 4615496347824353082
1897
+ begin_IR
1898
+ LIR
1899
+ nr 24 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1900
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
1901
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
1902
+ end_IR
1903
+ end_block
1904
+ begin_block
1905
+ name "B4"
1906
+ from_bci -1
1907
+ to_bci -1
1908
+ predecessors "B3"
1909
+ successors
1910
+ xhandlers
1911
+ flags
1912
+ probability 4604210017181540071
1913
+ begin_IR
1914
+ LIR
1915
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1916
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1917
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1918
+ end_IR
1919
+ end_block
1920
+ begin_block
1921
+ name "B1"
1922
+ from_bci -1
1923
+ to_bci -1
1924
+ predecessors "B0"
1925
+ successors
1926
+ xhandlers
1927
+ flags
1928
+ probability 4595706039151745280
1929
+ begin_IR
1930
+ LIR
1931
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1932
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
1933
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1934
+ end_IR
1935
+ end_block
1936
+ end_cfg
1937
+ begin_bytecodes
1938
+ 0: iload_0
1939
+ 1: istore_1
1940
+ 2: iload_1
1941
+ 3: ifle 16
1942
+ 6: iload_1
1943
+ 7: putstatic #54 // intField:int
1944
+ 10: iinc
1945
+ 13: goto 2
1946
+ 16: iload_0
1947
+ 17: ireturn
1948
+ <|@
1949
+ end_bytecodes
1950
+ begin_intervals
1951
+ name "Before register allocation"
1952
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[42, 44[[48, 50[ "NoOptimization"
1953
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1954
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1955
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 42[[46, 48[6 MustHaveRegister 8 ShouldHaveRegister 16 MustHaveRegister 20 ShouldHaveRegister 42 ShouldHaveRegister 48 ShouldHaveRegister "NoSpillStore"
1956
+ v1|q QWORD "[v1|q]" v1|q -1 [14, 40[14 MustHaveRegister 16 MustHaveRegister 32 MustHaveRegister 39 LiveAtLoopEnd "NoSpillStore"
1957
+ v2|d DWORD "[v2|d]" v2|d v0|d [20, 23[20 MustHaveRegister 22 ShouldHaveRegister "NoSpillStore"
1958
+ v3|d DWORD "[v3|d]" v3|d v4|d [24, 36[26 ShouldHaveRegister 32 MustHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1959
+ v4|d DWORD "[v4|d]" v4|d v3|d [36, 39[36 MustHaveRegister 38 ShouldHaveRegister "NoSpillStore"
1960
+ v5|q QWORD "[v5|q]" v5|q rbp|q [2, 44[[46, 50[2 MustHaveRegister 44 ShouldHaveRegister 50 ShouldHaveRegister "NoSpillStore"
1961
+ end_intervals
1962
+ begin_intervals
1963
+ name "After register allocation"
1964
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[42, 44[[48, 50[ "NoOptimization"
1965
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
1966
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
1967
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 42[[46, 48[6 MustHaveRegister 8 ShouldHaveRegister 16 MustHaveRegister 20 ShouldHaveRegister 42 ShouldHaveRegister 48 ShouldHaveRegister "NoSpillStore"
1968
+ v1|q QWORD "[rax|q]" v1|q -1 [14, 40[14 MustHaveRegister 16 MustHaveRegister 32 MustHaveRegister 39 LiveAtLoopEnd "NoSpillStore"
1969
+ v2|d DWORD "[r10|d]" v2|d v0|d [20, 23[20 MustHaveRegister 22 ShouldHaveRegister "NoSpillStore"
1970
+ v3|d DWORD "[r10|d]" v3|d v4|d [24, 36[26 ShouldHaveRegister 32 MustHaveRegister 36 ShouldHaveRegister "NoSpillStore"
1971
+ v4|d DWORD "[r10|d]" v4|d v3|d [36, 39[36 MustHaveRegister 38 ShouldHaveRegister "NoSpillStore"
1972
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 44[[46, 50[2 MustHaveRegister 44 ShouldHaveRegister 50 ShouldHaveRegister "NoSpillStore"
1973
+ end_intervals
1974
+ begin_cfg
1975
+ name "After LinearScanRegisterAllocation"
1976
+ begin_block
1977
+ name "B0"
1978
+ from_bci -1
1979
+ to_bci -1
1980
+ predecessors
1981
+ successors "B1" "B2"
1982
+ xhandlers
1983
+ flags
1984
+ probability 4607182418800017408
1985
+ begin_IR
1986
+ LIR
1987
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1988
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1989
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
1990
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1991
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
1992
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1993
+ end_IR
1994
+ end_block
1995
+ begin_block
1996
+ name "B2"
1997
+ from_bci -1
1998
+ to_bci -1
1999
+ predecessors "B0"
2000
+ successors "B3"
2001
+ xhandlers
2002
+ flags
2003
+ probability 4605547914084714944
2004
+ begin_IR
2005
+ LIR
2006
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2007
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2008
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
2009
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2010
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
2011
+ nr 22 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
2012
+ end_IR
2013
+ end_block
2014
+ begin_block
2015
+ name "B5"
2016
+ from_bci -1
2017
+ to_bci -1
2018
+ predecessors "B3"
2019
+ successors "B3"
2020
+ xhandlers
2021
+ flags "lle"
2022
+ loop_index 0
2023
+ loop_depth 1
2024
+ probability 4613987648415287168
2025
+ begin_IR
2026
+ LIR
2027
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2028
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
2029
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2030
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
2031
+ nr 38 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
2032
+ end_IR
2033
+ end_block
2034
+ begin_block
2035
+ name "B3"
2036
+ from_bci -1
2037
+ to_bci -1
2038
+ predecessors "B2" "B5"
2039
+ successors "B4" "B5"
2040
+ xhandlers
2041
+ flags "llh"
2042
+ loop_index 0
2043
+ loop_depth 1
2044
+ probability 4615496347824353082
2045
+ begin_IR
2046
+ LIR
2047
+ nr 24 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2048
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
2049
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2050
+ end_IR
2051
+ end_block
2052
+ begin_block
2053
+ name "B4"
2054
+ from_bci -1
2055
+ to_bci -1
2056
+ predecessors "B3"
2057
+ successors
2058
+ xhandlers
2059
+ flags
2060
+ probability 4604210017181540071
2061
+ begin_IR
2062
+ LIR
2063
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2064
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2065
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2066
+ end_IR
2067
+ end_block
2068
+ begin_block
2069
+ name "B1"
2070
+ from_bci -1
2071
+ to_bci -1
2072
+ predecessors "B0"
2073
+ successors
2074
+ xhandlers
2075
+ flags
2076
+ probability 4595706039151745280
2077
+ begin_IR
2078
+ LIR
2079
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2080
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2081
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2082
+ end_IR
2083
+ end_block
2084
+ end_cfg
2085
+ begin_bytecodes
2086
+ 0: iload_0
2087
+ 1: istore_1
2088
+ 2: iload_1
2089
+ 3: ifle 16
2090
+ 6: iload_1
2091
+ 7: putstatic #54 // intField:int
2092
+ 10: iinc
2093
+ 13: goto 2
2094
+ 16: iload_0
2095
+ 17: ireturn
2096
+ <|@
2097
+ end_bytecodes
2098
+ begin_intervals
2099
+ name "After optimize spill position"
2100
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[42, 44[[48, 50[ "NoOptimization"
2101
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
2102
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
2103
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 42[[46, 48[6 MustHaveRegister 8 ShouldHaveRegister 16 MustHaveRegister 20 ShouldHaveRegister 42 ShouldHaveRegister 48 ShouldHaveRegister "NoSpillStore"
2104
+ v1|q QWORD "[rax|q]" v1|q -1 [14, 40[14 MustHaveRegister 16 MustHaveRegister 32 MustHaveRegister 39 LiveAtLoopEnd "NoSpillStore"
2105
+ v2|d DWORD "[r10|d]" v2|d v0|d [20, 23[20 MustHaveRegister 22 ShouldHaveRegister "NoSpillStore"
2106
+ v3|d DWORD "[r10|d]" v3|d v4|d [24, 36[26 ShouldHaveRegister 32 MustHaveRegister 36 ShouldHaveRegister "NoSpillStore"
2107
+ v4|d DWORD "[r10|d]" v4|d v3|d [36, 39[36 MustHaveRegister 38 ShouldHaveRegister "NoSpillStore"
2108
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 44[[46, 50[2 MustHaveRegister 44 ShouldHaveRegister 50 ShouldHaveRegister "NoSpillStore"
2109
+ end_intervals
2110
+ begin_cfg
2111
+ name "After LinearScanOptimizeSpillPosition"
2112
+ begin_block
2113
+ name "B0"
2114
+ from_bci -1
2115
+ to_bci -1
2116
+ predecessors
2117
+ successors "B1" "B2"
2118
+ xhandlers
2119
+ flags
2120
+ probability 4607182418800017408
2121
+ begin_IR
2122
+ LIR
2123
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2124
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2125
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2126
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2127
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
2128
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2129
+ end_IR
2130
+ end_block
2131
+ begin_block
2132
+ name "B2"
2133
+ from_bci -1
2134
+ to_bci -1
2135
+ predecessors "B0"
2136
+ successors "B3"
2137
+ xhandlers
2138
+ flags
2139
+ probability 4605547914084714944
2140
+ begin_IR
2141
+ LIR
2142
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2143
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2144
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
2145
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2146
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
2147
+ nr 22 <|@ instruction JUMP ~[v2|DWORD] destination: B2 -> B3 <|@ <|@
2148
+ end_IR
2149
+ end_block
2150
+ begin_block
2151
+ name "B5"
2152
+ from_bci -1
2153
+ to_bci -1
2154
+ predecessors "B3"
2155
+ successors "B3"
2156
+ xhandlers
2157
+ flags "lle"
2158
+ loop_index 0
2159
+ loop_depth 1
2160
+ probability 4613987648415287168
2161
+ begin_IR
2162
+ LIR
2163
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2164
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
2165
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2166
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
2167
+ nr 38 <|@ instruction JUMP ~[v4|DWORD] destination: B5 -> B3 <|@ <|@
2168
+ end_IR
2169
+ end_block
2170
+ begin_block
2171
+ name "B3"
2172
+ from_bci -1
2173
+ to_bci -1
2174
+ predecessors "B2" "B5"
2175
+ successors "B4" "B5"
2176
+ xhandlers
2177
+ flags "llh"
2178
+ loop_index 0
2179
+ loop_depth 1
2180
+ probability 4615496347824353082
2181
+ begin_IR
2182
+ LIR
2183
+ nr 24 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2184
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
2185
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2186
+ end_IR
2187
+ end_block
2188
+ begin_block
2189
+ name "B4"
2190
+ from_bci -1
2191
+ to_bci -1
2192
+ predecessors "B3"
2193
+ successors
2194
+ xhandlers
2195
+ flags
2196
+ probability 4604210017181540071
2197
+ begin_IR
2198
+ LIR
2199
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2200
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2201
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2202
+ end_IR
2203
+ end_block
2204
+ begin_block
2205
+ name "B1"
2206
+ from_bci -1
2207
+ to_bci -1
2208
+ predecessors "B0"
2209
+ successors
2210
+ xhandlers
2211
+ flags
2212
+ probability 4595706039151745280
2213
+ begin_IR
2214
+ LIR
2215
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2216
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2217
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2218
+ end_IR
2219
+ end_block
2220
+ end_cfg
2221
+ begin_bytecodes
2222
+ 0: iload_0
2223
+ 1: istore_1
2224
+ 2: iload_1
2225
+ 3: ifle 16
2226
+ 6: iload_1
2227
+ 7: putstatic #54 // intField:int
2228
+ 10: iinc
2229
+ 13: goto 2
2230
+ 16: iload_0
2231
+ 17: ireturn
2232
+ <|@
2233
+ end_bytecodes
2234
+ begin_intervals
2235
+ name "After resolve data flow"
2236
+ rax|d fixed "[rax|d]" rax|d v0|d [0, 1[[42, 44[[48, 50[ "NoOptimization"
2237
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
2238
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
2239
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 42[[46, 48[6 MustHaveRegister 8 ShouldHaveRegister 16 MustHaveRegister 20 ShouldHaveRegister 42 ShouldHaveRegister 48 ShouldHaveRegister "NoSpillStore"
2240
+ v1|q QWORD "[rax|q]" v1|q -1 [14, 40[14 MustHaveRegister 16 MustHaveRegister 32 MustHaveRegister 39 LiveAtLoopEnd "NoSpillStore"
2241
+ v2|d DWORD "[r10|d]" v2|d v0|d [20, 23[20 MustHaveRegister 22 ShouldHaveRegister "NoSpillStore"
2242
+ v3|d DWORD "[r10|d]" v3|d v4|d [24, 36[26 ShouldHaveRegister 32 MustHaveRegister 36 ShouldHaveRegister "NoSpillStore"
2243
+ v4|d DWORD "[r10|d]" v4|d v3|d [36, 39[36 MustHaveRegister 38 ShouldHaveRegister "NoSpillStore"
2244
+ v5|q QWORD "[rbp|q]" v5|q rbp|q [2, 44[[46, 50[2 MustHaveRegister 44 ShouldHaveRegister 50 ShouldHaveRegister "NoSpillStore"
2245
+ end_intervals
2246
+ begin_cfg
2247
+ name "After SSALinearScanResolveDataFlow"
2248
+ begin_block
2249
+ name "B0"
2250
+ from_bci -1
2251
+ to_bci -1
2252
+ predecessors
2253
+ successors "B1" "B2"
2254
+ xhandlers
2255
+ flags
2256
+ probability 4607182418800017408
2257
+ begin_IR
2258
+ LIR
2259
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2260
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2261
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2262
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2263
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
2264
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2265
+ end_IR
2266
+ end_block
2267
+ begin_block
2268
+ name "B2"
2269
+ from_bci -1
2270
+ to_bci -1
2271
+ predecessors "B0"
2272
+ successors "B3"
2273
+ xhandlers
2274
+ flags
2275
+ probability 4605547914084714944
2276
+ begin_IR
2277
+ LIR
2278
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2279
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2280
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
2281
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2282
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
2283
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2284
+ end_IR
2285
+ end_block
2286
+ begin_block
2287
+ name "B5"
2288
+ from_bci -1
2289
+ to_bci -1
2290
+ predecessors "B3"
2291
+ successors "B3"
2292
+ xhandlers
2293
+ flags "lle"
2294
+ loop_index 0
2295
+ loop_depth 1
2296
+ probability 4613987648415287168
2297
+ begin_IR
2298
+ LIR
2299
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2300
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
2301
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2302
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
2303
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2304
+ end_IR
2305
+ end_block
2306
+ begin_block
2307
+ name "B3"
2308
+ from_bci -1
2309
+ to_bci -1
2310
+ predecessors "B2" "B5"
2311
+ successors "B4" "B5"
2312
+ xhandlers
2313
+ flags "llh"
2314
+ loop_index 0
2315
+ loop_depth 1
2316
+ probability 4615496347824353082
2317
+ begin_IR
2318
+ LIR
2319
+ nr 24 <|@ instruction [v3|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2320
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
2321
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2322
+ end_IR
2323
+ end_block
2324
+ begin_block
2325
+ name "B4"
2326
+ from_bci -1
2327
+ to_bci -1
2328
+ predecessors "B3"
2329
+ successors
2330
+ xhandlers
2331
+ flags
2332
+ probability 4604210017181540071
2333
+ begin_IR
2334
+ LIR
2335
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2336
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2337
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2338
+ end_IR
2339
+ end_block
2340
+ begin_block
2341
+ name "B1"
2342
+ from_bci -1
2343
+ to_bci -1
2344
+ predecessors "B0"
2345
+ successors
2346
+ xhandlers
2347
+ flags
2348
+ probability 4595706039151745280
2349
+ begin_IR
2350
+ LIR
2351
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2352
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2353
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2354
+ end_IR
2355
+ end_block
2356
+ end_cfg
2357
+ begin_bytecodes
2358
+ 0: iload_0
2359
+ 1: istore_1
2360
+ 2: iload_1
2361
+ 3: ifle 16
2362
+ 6: iload_1
2363
+ 7: putstatic #54 // intField:int
2364
+ 10: iinc
2365
+ 13: goto 2
2366
+ 16: iload_0
2367
+ 17: ireturn
2368
+ <|@
2369
+ end_bytecodes
2370
+ begin_cfg
2371
+ name "After SSALinearScanEliminateSpillMove"
2372
+ begin_block
2373
+ name "B0"
2374
+ from_bci -1
2375
+ to_bci -1
2376
+ predecessors
2377
+ successors "B1" "B2"
2378
+ xhandlers
2379
+ flags
2380
+ probability 4607182418800017408
2381
+ begin_IR
2382
+ LIR
2383
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2384
+ nr 2 <|@ instruction v5|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2385
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2386
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2387
+ nr 8 <|@ instruction CMP v0|DWORD y: 1 size: DWORD <|@ <|@
2388
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2389
+ end_IR
2390
+ end_block
2391
+ begin_block
2392
+ name "B2"
2393
+ from_bci -1
2394
+ to_bci -1
2395
+ predecessors "B0"
2396
+ successors "B3"
2397
+ xhandlers
2398
+ flags
2399
+ probability 4605547914084714944
2400
+ begin_IR
2401
+ LIR
2402
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2403
+ nr 14 <|@ instruction v1|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2404
+ nr 16 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v0|DWORD) size: DWORD <|@ <|@
2405
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2406
+ nr 20 <|@ instruction v2|DWORD = DEC v0|DWORD size: DWORD <|@ <|@
2407
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2408
+ end_IR
2409
+ end_block
2410
+ begin_block
2411
+ name "B5"
2412
+ from_bci -1
2413
+ to_bci -1
2414
+ predecessors "B3"
2415
+ successors "B3"
2416
+ xhandlers
2417
+ flags "lle"
2418
+ loop_index 0
2419
+ loop_depth 1
2420
+ probability 4613987648415287168
2421
+ begin_IR
2422
+ LIR
2423
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2424
+ nr 32 <|@ instruction MOV (x: [v1|QWORD[.] + 128], y: v3|DWORD) size: DWORD <|@ <|@
2425
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2426
+ nr 36 <|@ instruction v4|DWORD = DEC v3|DWORD size: DWORD <|@ <|@
2427
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2428
+ end_IR
2429
+ end_block
2430
+ begin_block
2431
+ name "B3"
2432
+ from_bci -1
2433
+ to_bci -1
2434
+ predecessors "B2" "B5"
2435
+ successors "B4" "B5"
2436
+ xhandlers
2437
+ flags "llh"
2438
+ loop_index 0
2439
+ loop_depth 1
2440
+ probability 4615496347824353082
2441
+ begin_IR
2442
+ LIR
2443
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2444
+ nr 26 <|@ instruction CMP v3|DWORD y: 1 size: DWORD <|@ <|@
2445
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2446
+ end_IR
2447
+ end_block
2448
+ begin_block
2449
+ name "B4"
2450
+ from_bci -1
2451
+ to_bci -1
2452
+ predecessors "B3"
2453
+ successors
2454
+ xhandlers
2455
+ flags
2456
+ probability 4604210017181540071
2457
+ begin_IR
2458
+ LIR
2459
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2460
+ nr 42 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2461
+ nr 44 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2462
+ end_IR
2463
+ end_block
2464
+ begin_block
2465
+ name "B1"
2466
+ from_bci -1
2467
+ to_bci -1
2468
+ predecessors "B0"
2469
+ successors
2470
+ xhandlers
2471
+ flags
2472
+ probability 4595706039151745280
2473
+ begin_IR
2474
+ LIR
2475
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2476
+ nr 48 <|@ instruction rax|DWORD = MOVE v0|DWORD moveKind: DWORD <|@ <|@
2477
+ nr 50 <|@ instruction RETURN (savedRbp: v5|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2478
+ end_IR
2479
+ end_block
2480
+ end_cfg
2481
+ begin_bytecodes
2482
+ 0: iload_0
2483
+ 1: istore_1
2484
+ 2: iload_1
2485
+ 3: ifle 16
2486
+ 6: iload_1
2487
+ 7: putstatic #54 // intField:int
2488
+ 10: iinc
2489
+ 13: goto 2
2490
+ 16: iload_0
2491
+ 17: ireturn
2492
+ <|@
2493
+ end_bytecodes
2494
+ begin_cfg
2495
+ name "After LinearScanAssignLocations"
2496
+ begin_block
2497
+ name "B0"
2498
+ from_bci -1
2499
+ to_bci -1
2500
+ predecessors
2501
+ successors "B1" "B2"
2502
+ xhandlers
2503
+ flags
2504
+ probability 4607182418800017408
2505
+ begin_IR
2506
+ LIR
2507
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2508
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2509
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
2510
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2511
+ end_IR
2512
+ end_block
2513
+ begin_block
2514
+ name "B2"
2515
+ from_bci -1
2516
+ to_bci -1
2517
+ predecessors "B0"
2518
+ successors "B3"
2519
+ xhandlers
2520
+ flags
2521
+ probability 4605547914084714944
2522
+ begin_IR
2523
+ LIR
2524
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2525
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2526
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
2527
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2528
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
2529
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2530
+ end_IR
2531
+ end_block
2532
+ begin_block
2533
+ name "B5"
2534
+ from_bci -1
2535
+ to_bci -1
2536
+ predecessors "B3"
2537
+ successors "B3"
2538
+ xhandlers
2539
+ flags "lle"
2540
+ loop_index 0
2541
+ loop_depth 1
2542
+ probability 4613987648415287168
2543
+ begin_IR
2544
+ LIR
2545
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2546
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
2547
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2548
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
2549
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2550
+ end_IR
2551
+ end_block
2552
+ begin_block
2553
+ name "B3"
2554
+ from_bci -1
2555
+ to_bci -1
2556
+ predecessors "B2" "B5"
2557
+ successors "B4" "B5"
2558
+ xhandlers
2559
+ flags "llh"
2560
+ loop_index 0
2561
+ loop_depth 1
2562
+ probability 4615496347824353082
2563
+ begin_IR
2564
+ LIR
2565
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2566
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
2567
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2568
+ end_IR
2569
+ end_block
2570
+ begin_block
2571
+ name "B4"
2572
+ from_bci -1
2573
+ to_bci -1
2574
+ predecessors "B3"
2575
+ successors
2576
+ xhandlers
2577
+ flags
2578
+ probability 4604210017181540071
2579
+ begin_IR
2580
+ LIR
2581
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2582
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2583
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2584
+ end_IR
2585
+ end_block
2586
+ begin_block
2587
+ name "B1"
2588
+ from_bci -1
2589
+ to_bci -1
2590
+ predecessors "B0"
2591
+ successors
2592
+ xhandlers
2593
+ flags
2594
+ probability 4595706039151745280
2595
+ begin_IR
2596
+ LIR
2597
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2598
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2599
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2600
+ end_IR
2601
+ end_block
2602
+ end_cfg
2603
+ begin_bytecodes
2604
+ 0: iload_0
2605
+ 1: istore_1
2606
+ 2: iload_1
2607
+ 3: ifle 16
2608
+ 6: iload_1
2609
+ 7: putstatic #54 // intField:int
2610
+ 10: iinc
2611
+ 13: goto 2
2612
+ 16: iload_0
2613
+ 17: ireturn
2614
+ <|@
2615
+ end_bytecodes
2616
+ begin_cfg
2617
+ name "After LinearScan"
2618
+ begin_block
2619
+ name "B0"
2620
+ from_bci -1
2621
+ to_bci -1
2622
+ predecessors
2623
+ successors "B1" "B2"
2624
+ xhandlers
2625
+ flags
2626
+ probability 4607182418800017408
2627
+ begin_IR
2628
+ LIR
2629
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2630
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2631
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
2632
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2633
+ end_IR
2634
+ end_block
2635
+ begin_block
2636
+ name "B2"
2637
+ from_bci -1
2638
+ to_bci -1
2639
+ predecessors "B0"
2640
+ successors "B3"
2641
+ xhandlers
2642
+ flags
2643
+ probability 4605547914084714944
2644
+ begin_IR
2645
+ LIR
2646
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2647
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2648
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
2649
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2650
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
2651
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2652
+ end_IR
2653
+ end_block
2654
+ begin_block
2655
+ name "B5"
2656
+ from_bci -1
2657
+ to_bci -1
2658
+ predecessors "B3"
2659
+ successors "B3"
2660
+ xhandlers
2661
+ flags "lle"
2662
+ loop_index 0
2663
+ loop_depth 1
2664
+ probability 4613987648415287168
2665
+ begin_IR
2666
+ LIR
2667
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2668
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
2669
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2670
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
2671
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2672
+ end_IR
2673
+ end_block
2674
+ begin_block
2675
+ name "B3"
2676
+ from_bci -1
2677
+ to_bci -1
2678
+ predecessors "B2" "B5"
2679
+ successors "B4" "B5"
2680
+ xhandlers
2681
+ flags "llh"
2682
+ loop_index 0
2683
+ loop_depth 1
2684
+ probability 4615496347824353082
2685
+ begin_IR
2686
+ LIR
2687
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2688
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
2689
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2690
+ end_IR
2691
+ end_block
2692
+ begin_block
2693
+ name "B4"
2694
+ from_bci -1
2695
+ to_bci -1
2696
+ predecessors "B3"
2697
+ successors
2698
+ xhandlers
2699
+ flags
2700
+ probability 4604210017181540071
2701
+ begin_IR
2702
+ LIR
2703
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2704
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2705
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2706
+ end_IR
2707
+ end_block
2708
+ begin_block
2709
+ name "B1"
2710
+ from_bci -1
2711
+ to_bci -1
2712
+ predecessors "B0"
2713
+ successors
2714
+ xhandlers
2715
+ flags
2716
+ probability 4595706039151745280
2717
+ begin_IR
2718
+ LIR
2719
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2720
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2721
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2722
+ end_IR
2723
+ end_block
2724
+ end_cfg
2725
+ begin_bytecodes
2726
+ 0: iload_0
2727
+ 1: istore_1
2728
+ 2: iload_1
2729
+ 3: ifle 16
2730
+ 6: iload_1
2731
+ 7: putstatic #54 // intField:int
2732
+ 10: iinc
2733
+ 13: goto 2
2734
+ 16: iload_0
2735
+ 17: ireturn
2736
+ <|@
2737
+ end_bytecodes
2738
+ begin_cfg
2739
+ name "After LSStackSlotAllocator"
2740
+ begin_block
2741
+ name "B0"
2742
+ from_bci -1
2743
+ to_bci -1
2744
+ predecessors
2745
+ successors "B1" "B2"
2746
+ xhandlers
2747
+ flags
2748
+ probability 4607182418800017408
2749
+ begin_IR
2750
+ LIR
2751
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2752
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2753
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
2754
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2755
+ end_IR
2756
+ end_block
2757
+ begin_block
2758
+ name "B2"
2759
+ from_bci -1
2760
+ to_bci -1
2761
+ predecessors "B0"
2762
+ successors "B3"
2763
+ xhandlers
2764
+ flags
2765
+ probability 4605547914084714944
2766
+ begin_IR
2767
+ LIR
2768
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2769
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2770
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
2771
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2772
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
2773
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2774
+ end_IR
2775
+ end_block
2776
+ begin_block
2777
+ name "B5"
2778
+ from_bci -1
2779
+ to_bci -1
2780
+ predecessors "B3"
2781
+ successors "B3"
2782
+ xhandlers
2783
+ flags "lle"
2784
+ loop_index 0
2785
+ loop_depth 1
2786
+ probability 4613987648415287168
2787
+ begin_IR
2788
+ LIR
2789
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2790
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
2791
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2792
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
2793
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2794
+ end_IR
2795
+ end_block
2796
+ begin_block
2797
+ name "B3"
2798
+ from_bci -1
2799
+ to_bci -1
2800
+ predecessors "B2" "B5"
2801
+ successors "B4" "B5"
2802
+ xhandlers
2803
+ flags "llh"
2804
+ loop_index 0
2805
+ loop_depth 1
2806
+ probability 4615496347824353082
2807
+ begin_IR
2808
+ LIR
2809
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2810
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
2811
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2812
+ end_IR
2813
+ end_block
2814
+ begin_block
2815
+ name "B4"
2816
+ from_bci -1
2817
+ to_bci -1
2818
+ predecessors "B3"
2819
+ successors
2820
+ xhandlers
2821
+ flags
2822
+ probability 4604210017181540071
2823
+ begin_IR
2824
+ LIR
2825
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2826
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2827
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2828
+ end_IR
2829
+ end_block
2830
+ begin_block
2831
+ name "B1"
2832
+ from_bci -1
2833
+ to_bci -1
2834
+ predecessors "B0"
2835
+ successors
2836
+ xhandlers
2837
+ flags
2838
+ probability 4595706039151745280
2839
+ begin_IR
2840
+ LIR
2841
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2842
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2843
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2844
+ end_IR
2845
+ end_block
2846
+ end_cfg
2847
+ begin_bytecodes
2848
+ 0: iload_0
2849
+ 1: istore_1
2850
+ 2: iload_1
2851
+ 3: ifle 16
2852
+ 6: iload_1
2853
+ 7: putstatic #54 // intField:int
2854
+ 10: iinc
2855
+ 13: goto 2
2856
+ 16: iload_0
2857
+ 17: ireturn
2858
+ <|@
2859
+ end_bytecodes
2860
+ begin_cfg
2861
+ name "After LocationMarker"
2862
+ begin_block
2863
+ name "B0"
2864
+ from_bci -1
2865
+ to_bci -1
2866
+ predecessors
2867
+ successors "B1" "B2"
2868
+ xhandlers
2869
+ flags
2870
+ probability 4607182418800017408
2871
+ begin_IR
2872
+ LIR
2873
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2874
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2875
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
2876
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2877
+ end_IR
2878
+ end_block
2879
+ begin_block
2880
+ name "B2"
2881
+ from_bci -1
2882
+ to_bci -1
2883
+ predecessors "B0"
2884
+ successors "B3"
2885
+ xhandlers
2886
+ flags
2887
+ probability 4605547914084714944
2888
+ begin_IR
2889
+ LIR
2890
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2891
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2892
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
2893
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2894
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
2895
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2896
+ end_IR
2897
+ end_block
2898
+ begin_block
2899
+ name "B5"
2900
+ from_bci -1
2901
+ to_bci -1
2902
+ predecessors "B3"
2903
+ successors "B3"
2904
+ xhandlers
2905
+ flags "lle"
2906
+ loop_index 0
2907
+ loop_depth 1
2908
+ probability 4613987648415287168
2909
+ begin_IR
2910
+ LIR
2911
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
2912
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
2913
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2914
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
2915
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
2916
+ end_IR
2917
+ end_block
2918
+ begin_block
2919
+ name "B3"
2920
+ from_bci -1
2921
+ to_bci -1
2922
+ predecessors "B2" "B5"
2923
+ successors "B4" "B5"
2924
+ xhandlers
2925
+ flags "llh"
2926
+ loop_index 0
2927
+ loop_depth 1
2928
+ probability 4615496347824353082
2929
+ begin_IR
2930
+ LIR
2931
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2932
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
2933
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
2934
+ end_IR
2935
+ end_block
2936
+ begin_block
2937
+ name "B4"
2938
+ from_bci -1
2939
+ to_bci -1
2940
+ predecessors "B3"
2941
+ successors
2942
+ xhandlers
2943
+ flags
2944
+ probability 4604210017181540071
2945
+ begin_IR
2946
+ LIR
2947
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2948
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2949
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2950
+ end_IR
2951
+ end_block
2952
+ begin_block
2953
+ name "B1"
2954
+ from_bci -1
2955
+ to_bci -1
2956
+ predecessors "B0"
2957
+ successors
2958
+ xhandlers
2959
+ flags
2960
+ probability 4595706039151745280
2961
+ begin_IR
2962
+ LIR
2963
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2964
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
2965
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2966
+ end_IR
2967
+ end_block
2968
+ end_cfg
2969
+ begin_bytecodes
2970
+ 0: iload_0
2971
+ 1: istore_1
2972
+ 2: iload_1
2973
+ 3: ifle 16
2974
+ 6: iload_1
2975
+ 7: putstatic #54 // intField:int
2976
+ 10: iinc
2977
+ 13: goto 2
2978
+ 16: iload_0
2979
+ 17: ireturn
2980
+ <|@
2981
+ end_bytecodes
2982
+ begin_cfg
2983
+ name "After AllocationStage"
2984
+ begin_block
2985
+ name "B0"
2986
+ from_bci -1
2987
+ to_bci -1
2988
+ predecessors
2989
+ successors "B1" "B2"
2990
+ xhandlers
2991
+ flags
2992
+ probability 4607182418800017408
2993
+ begin_IR
2994
+ LIR
2995
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2996
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
2997
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
2998
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2999
+ end_IR
3000
+ end_block
3001
+ begin_block
3002
+ name "B2"
3003
+ from_bci -1
3004
+ to_bci -1
3005
+ predecessors "B0"
3006
+ successors "B3"
3007
+ xhandlers
3008
+ flags
3009
+ probability 4605547914084714944
3010
+ begin_IR
3011
+ LIR
3012
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3013
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3014
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3015
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3016
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3017
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3018
+ end_IR
3019
+ end_block
3020
+ begin_block
3021
+ name "B5"
3022
+ from_bci -1
3023
+ to_bci -1
3024
+ predecessors "B3"
3025
+ successors "B3"
3026
+ xhandlers
3027
+ flags "lle"
3028
+ loop_index 0
3029
+ loop_depth 1
3030
+ probability 4613987648415287168
3031
+ begin_IR
3032
+ LIR
3033
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3034
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3035
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3036
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3037
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3038
+ end_IR
3039
+ end_block
3040
+ begin_block
3041
+ name "B3"
3042
+ from_bci -1
3043
+ to_bci -1
3044
+ predecessors "B2" "B5"
3045
+ successors "B4" "B5"
3046
+ xhandlers
3047
+ flags "llh"
3048
+ loop_index 0
3049
+ loop_depth 1
3050
+ probability 4615496347824353082
3051
+ begin_IR
3052
+ LIR
3053
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3054
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3055
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3056
+ end_IR
3057
+ end_block
3058
+ begin_block
3059
+ name "B4"
3060
+ from_bci -1
3061
+ to_bci -1
3062
+ predecessors "B3"
3063
+ successors
3064
+ xhandlers
3065
+ flags
3066
+ probability 4604210017181540071
3067
+ begin_IR
3068
+ LIR
3069
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3070
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3071
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3072
+ end_IR
3073
+ end_block
3074
+ begin_block
3075
+ name "B1"
3076
+ from_bci -1
3077
+ to_bci -1
3078
+ predecessors "B0"
3079
+ successors
3080
+ xhandlers
3081
+ flags
3082
+ probability 4595706039151745280
3083
+ begin_IR
3084
+ LIR
3085
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3086
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3087
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3088
+ end_IR
3089
+ end_block
3090
+ end_cfg
3091
+ begin_bytecodes
3092
+ 0: iload_0
3093
+ 1: istore_1
3094
+ 2: iload_1
3095
+ 3: ifle 16
3096
+ 6: iload_1
3097
+ 7: putstatic #54 // intField:int
3098
+ 10: iinc
3099
+ 13: goto 2
3100
+ 16: iload_0
3101
+ 17: ireturn
3102
+ <|@
3103
+ end_bytecodes
3104
+ begin_cfg
3105
+ name "After EdgeMoveOptimizer"
3106
+ begin_block
3107
+ name "B0"
3108
+ from_bci -1
3109
+ to_bci -1
3110
+ predecessors
3111
+ successors "B1" "B2"
3112
+ xhandlers
3113
+ flags
3114
+ probability 4607182418800017408
3115
+ begin_IR
3116
+ LIR
3117
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3118
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3119
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3120
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3121
+ end_IR
3122
+ end_block
3123
+ begin_block
3124
+ name "B2"
3125
+ from_bci -1
3126
+ to_bci -1
3127
+ predecessors "B0"
3128
+ successors "B3"
3129
+ xhandlers
3130
+ flags
3131
+ probability 4605547914084714944
3132
+ begin_IR
3133
+ LIR
3134
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3135
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3136
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3137
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3138
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3139
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3140
+ end_IR
3141
+ end_block
3142
+ begin_block
3143
+ name "B5"
3144
+ from_bci -1
3145
+ to_bci -1
3146
+ predecessors "B3"
3147
+ successors "B3"
3148
+ xhandlers
3149
+ flags "lle"
3150
+ loop_index 0
3151
+ loop_depth 1
3152
+ probability 4613987648415287168
3153
+ begin_IR
3154
+ LIR
3155
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3156
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3157
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3158
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3159
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3160
+ end_IR
3161
+ end_block
3162
+ begin_block
3163
+ name "B3"
3164
+ from_bci -1
3165
+ to_bci -1
3166
+ predecessors "B2" "B5"
3167
+ successors "B4" "B5"
3168
+ xhandlers
3169
+ flags "llh"
3170
+ loop_index 0
3171
+ loop_depth 1
3172
+ probability 4615496347824353082
3173
+ begin_IR
3174
+ LIR
3175
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3176
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3177
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3178
+ end_IR
3179
+ end_block
3180
+ begin_block
3181
+ name "B4"
3182
+ from_bci -1
3183
+ to_bci -1
3184
+ predecessors "B3"
3185
+ successors
3186
+ xhandlers
3187
+ flags
3188
+ probability 4604210017181540071
3189
+ begin_IR
3190
+ LIR
3191
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3192
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3193
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3194
+ end_IR
3195
+ end_block
3196
+ begin_block
3197
+ name "B1"
3198
+ from_bci -1
3199
+ to_bci -1
3200
+ predecessors "B0"
3201
+ successors
3202
+ xhandlers
3203
+ flags
3204
+ probability 4595706039151745280
3205
+ begin_IR
3206
+ LIR
3207
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3208
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3209
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3210
+ end_IR
3211
+ end_block
3212
+ end_cfg
3213
+ begin_bytecodes
3214
+ 0: iload_0
3215
+ 1: istore_1
3216
+ 2: iload_1
3217
+ 3: ifle 16
3218
+ 6: iload_1
3219
+ 7: putstatic #54 // intField:int
3220
+ 10: iinc
3221
+ 13: goto 2
3222
+ 16: iload_0
3223
+ 17: ireturn
3224
+ <|@
3225
+ end_bytecodes
3226
+ begin_cfg
3227
+ name "After ControlFlowOptimizer"
3228
+ begin_block
3229
+ name "B0"
3230
+ from_bci -1
3231
+ to_bci -1
3232
+ predecessors
3233
+ successors "B1" "B2"
3234
+ xhandlers
3235
+ flags
3236
+ probability 4607182418800017408
3237
+ begin_IR
3238
+ LIR
3239
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3240
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3241
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3242
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3243
+ end_IR
3244
+ end_block
3245
+ begin_block
3246
+ name "B2"
3247
+ from_bci -1
3248
+ to_bci -1
3249
+ predecessors "B0"
3250
+ successors "B3"
3251
+ xhandlers
3252
+ flags
3253
+ probability 4605547914084714944
3254
+ begin_IR
3255
+ LIR
3256
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3257
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3258
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3259
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3260
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3261
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3262
+ end_IR
3263
+ end_block
3264
+ begin_block
3265
+ name "B5"
3266
+ from_bci -1
3267
+ to_bci -1
3268
+ predecessors "B3"
3269
+ successors "B3"
3270
+ xhandlers
3271
+ flags "lle"
3272
+ loop_index 0
3273
+ loop_depth 1
3274
+ probability 4613987648415287168
3275
+ begin_IR
3276
+ LIR
3277
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3278
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3279
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3280
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3281
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3282
+ end_IR
3283
+ end_block
3284
+ begin_block
3285
+ name "B3"
3286
+ from_bci -1
3287
+ to_bci -1
3288
+ predecessors "B2" "B5"
3289
+ successors "B4" "B5"
3290
+ xhandlers
3291
+ flags "llh"
3292
+ loop_index 0
3293
+ loop_depth 1
3294
+ probability 4615496347824353082
3295
+ begin_IR
3296
+ LIR
3297
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3298
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3299
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3300
+ end_IR
3301
+ end_block
3302
+ begin_block
3303
+ name "B4"
3304
+ from_bci -1
3305
+ to_bci -1
3306
+ predecessors "B3"
3307
+ successors
3308
+ xhandlers
3309
+ flags
3310
+ probability 4604210017181540071
3311
+ begin_IR
3312
+ LIR
3313
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3314
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3315
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3316
+ end_IR
3317
+ end_block
3318
+ begin_block
3319
+ name "B1"
3320
+ from_bci -1
3321
+ to_bci -1
3322
+ predecessors "B0"
3323
+ successors
3324
+ xhandlers
3325
+ flags
3326
+ probability 4595706039151745280
3327
+ begin_IR
3328
+ LIR
3329
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3330
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3331
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3332
+ end_IR
3333
+ end_block
3334
+ end_cfg
3335
+ begin_bytecodes
3336
+ 0: iload_0
3337
+ 1: istore_1
3338
+ 2: iload_1
3339
+ 3: ifle 16
3340
+ 6: iload_1
3341
+ 7: putstatic #54 // intField:int
3342
+ 10: iinc
3343
+ 13: goto 2
3344
+ 16: iload_0
3345
+ 17: ireturn
3346
+ <|@
3347
+ end_bytecodes
3348
+ begin_cfg
3349
+ name "After RedundantMoveElimination"
3350
+ begin_block
3351
+ name "B0"
3352
+ from_bci -1
3353
+ to_bci -1
3354
+ predecessors
3355
+ successors "B1" "B2"
3356
+ xhandlers
3357
+ flags
3358
+ probability 4607182418800017408
3359
+ begin_IR
3360
+ LIR
3361
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3362
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3363
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3364
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3365
+ end_IR
3366
+ end_block
3367
+ begin_block
3368
+ name "B2"
3369
+ from_bci -1
3370
+ to_bci -1
3371
+ predecessors "B0"
3372
+ successors "B3"
3373
+ xhandlers
3374
+ flags
3375
+ probability 4605547914084714944
3376
+ begin_IR
3377
+ LIR
3378
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3379
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3380
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3381
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3382
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3383
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3384
+ end_IR
3385
+ end_block
3386
+ begin_block
3387
+ name "B5"
3388
+ from_bci -1
3389
+ to_bci -1
3390
+ predecessors "B3"
3391
+ successors "B3"
3392
+ xhandlers
3393
+ flags "lle"
3394
+ loop_index 0
3395
+ loop_depth 1
3396
+ probability 4613987648415287168
3397
+ begin_IR
3398
+ LIR
3399
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3400
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3401
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3402
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3403
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3404
+ end_IR
3405
+ end_block
3406
+ begin_block
3407
+ name "B3"
3408
+ from_bci -1
3409
+ to_bci -1
3410
+ predecessors "B2" "B5"
3411
+ successors "B4" "B5"
3412
+ xhandlers
3413
+ flags "llh"
3414
+ loop_index 0
3415
+ loop_depth 1
3416
+ probability 4615496347824353082
3417
+ begin_IR
3418
+ LIR
3419
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3420
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3421
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3422
+ end_IR
3423
+ end_block
3424
+ begin_block
3425
+ name "B4"
3426
+ from_bci -1
3427
+ to_bci -1
3428
+ predecessors "B3"
3429
+ successors
3430
+ xhandlers
3431
+ flags
3432
+ probability 4604210017181540071
3433
+ begin_IR
3434
+ LIR
3435
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3436
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3437
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3438
+ end_IR
3439
+ end_block
3440
+ begin_block
3441
+ name "B1"
3442
+ from_bci -1
3443
+ to_bci -1
3444
+ predecessors "B0"
3445
+ successors
3446
+ xhandlers
3447
+ flags
3448
+ probability 4595706039151745280
3449
+ begin_IR
3450
+ LIR
3451
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3452
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3453
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3454
+ end_IR
3455
+ end_block
3456
+ end_cfg
3457
+ begin_bytecodes
3458
+ 0: iload_0
3459
+ 1: istore_1
3460
+ 2: iload_1
3461
+ 3: ifle 16
3462
+ 6: iload_1
3463
+ 7: putstatic #54 // intField:int
3464
+ 10: iinc
3465
+ 13: goto 2
3466
+ 16: iload_0
3467
+ 17: ireturn
3468
+ <|@
3469
+ end_bytecodes
3470
+ begin_cfg
3471
+ name "After NullCheckOptimizer"
3472
+ begin_block
3473
+ name "B0"
3474
+ from_bci -1
3475
+ to_bci -1
3476
+ predecessors
3477
+ successors "B1" "B2"
3478
+ xhandlers
3479
+ flags
3480
+ probability 4607182418800017408
3481
+ begin_IR
3482
+ LIR
3483
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3484
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3485
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3486
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3487
+ end_IR
3488
+ end_block
3489
+ begin_block
3490
+ name "B2"
3491
+ from_bci -1
3492
+ to_bci -1
3493
+ predecessors "B0"
3494
+ successors "B3"
3495
+ xhandlers
3496
+ flags
3497
+ probability 4605547914084714944
3498
+ begin_IR
3499
+ LIR
3500
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3501
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3502
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3503
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3504
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3505
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3506
+ end_IR
3507
+ end_block
3508
+ begin_block
3509
+ name "B5"
3510
+ from_bci -1
3511
+ to_bci -1
3512
+ predecessors "B3"
3513
+ successors "B3"
3514
+ xhandlers
3515
+ flags "lle"
3516
+ loop_index 0
3517
+ loop_depth 1
3518
+ probability 4613987648415287168
3519
+ begin_IR
3520
+ LIR
3521
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3522
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3523
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3524
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3525
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3526
+ end_IR
3527
+ end_block
3528
+ begin_block
3529
+ name "B3"
3530
+ from_bci -1
3531
+ to_bci -1
3532
+ predecessors "B2" "B5"
3533
+ successors "B4" "B5"
3534
+ xhandlers
3535
+ flags "llh"
3536
+ loop_index 0
3537
+ loop_depth 1
3538
+ probability 4615496347824353082
3539
+ begin_IR
3540
+ LIR
3541
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3542
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3543
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3544
+ end_IR
3545
+ end_block
3546
+ begin_block
3547
+ name "B4"
3548
+ from_bci -1
3549
+ to_bci -1
3550
+ predecessors "B3"
3551
+ successors
3552
+ xhandlers
3553
+ flags
3554
+ probability 4604210017181540071
3555
+ begin_IR
3556
+ LIR
3557
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3558
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3559
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3560
+ end_IR
3561
+ end_block
3562
+ begin_block
3563
+ name "B1"
3564
+ from_bci -1
3565
+ to_bci -1
3566
+ predecessors "B0"
3567
+ successors
3568
+ xhandlers
3569
+ flags
3570
+ probability 4595706039151745280
3571
+ begin_IR
3572
+ LIR
3573
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3574
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3575
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3576
+ end_IR
3577
+ end_block
3578
+ end_cfg
3579
+ begin_bytecodes
3580
+ 0: iload_0
3581
+ 1: istore_1
3582
+ 2: iload_1
3583
+ 3: ifle 16
3584
+ 6: iload_1
3585
+ 7: putstatic #54 // intField:int
3586
+ 10: iinc
3587
+ 13: goto 2
3588
+ 16: iload_0
3589
+ 17: ireturn
3590
+ <|@
3591
+ end_bytecodes
3592
+ begin_cfg
3593
+ name "After StackMoveOptimization"
3594
+ begin_block
3595
+ name "B0"
3596
+ from_bci -1
3597
+ to_bci -1
3598
+ predecessors
3599
+ successors "B1" "B2"
3600
+ xhandlers
3601
+ flags
3602
+ probability 4607182418800017408
3603
+ begin_IR
3604
+ LIR
3605
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3606
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3607
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3608
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3609
+ end_IR
3610
+ end_block
3611
+ begin_block
3612
+ name "B2"
3613
+ from_bci -1
3614
+ to_bci -1
3615
+ predecessors "B0"
3616
+ successors "B3"
3617
+ xhandlers
3618
+ flags
3619
+ probability 4605547914084714944
3620
+ begin_IR
3621
+ LIR
3622
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3623
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3624
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3625
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3626
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3627
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3628
+ end_IR
3629
+ end_block
3630
+ begin_block
3631
+ name "B5"
3632
+ from_bci -1
3633
+ to_bci -1
3634
+ predecessors "B3"
3635
+ successors "B3"
3636
+ xhandlers
3637
+ flags "lle"
3638
+ loop_index 0
3639
+ loop_depth 1
3640
+ probability 4613987648415287168
3641
+ begin_IR
3642
+ LIR
3643
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3644
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3645
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3646
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3647
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3648
+ end_IR
3649
+ end_block
3650
+ begin_block
3651
+ name "B3"
3652
+ from_bci -1
3653
+ to_bci -1
3654
+ predecessors "B2" "B5"
3655
+ successors "B4" "B5"
3656
+ xhandlers
3657
+ flags "llh"
3658
+ loop_index 0
3659
+ loop_depth 1
3660
+ probability 4615496347824353082
3661
+ begin_IR
3662
+ LIR
3663
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3664
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3665
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3666
+ end_IR
3667
+ end_block
3668
+ begin_block
3669
+ name "B4"
3670
+ from_bci -1
3671
+ to_bci -1
3672
+ predecessors "B3"
3673
+ successors
3674
+ xhandlers
3675
+ flags
3676
+ probability 4604210017181540071
3677
+ begin_IR
3678
+ LIR
3679
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3680
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3681
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3682
+ end_IR
3683
+ end_block
3684
+ begin_block
3685
+ name "B1"
3686
+ from_bci -1
3687
+ to_bci -1
3688
+ predecessors "B0"
3689
+ successors
3690
+ xhandlers
3691
+ flags
3692
+ probability 4595706039151745280
3693
+ begin_IR
3694
+ LIR
3695
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3696
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3697
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3698
+ end_IR
3699
+ end_block
3700
+ end_cfg
3701
+ begin_bytecodes
3702
+ 0: iload_0
3703
+ 1: istore_1
3704
+ 2: iload_1
3705
+ 3: ifle 16
3706
+ 6: iload_1
3707
+ 7: putstatic #54 // intField:int
3708
+ 10: iinc
3709
+ 13: goto 2
3710
+ 16: iload_0
3711
+ 17: ireturn
3712
+ <|@
3713
+ end_bytecodes
3714
+ begin_cfg
3715
+ name "After PostAllocationOptimizationStage"
3716
+ begin_block
3717
+ name "B0"
3718
+ from_bci -1
3719
+ to_bci -1
3720
+ predecessors
3721
+ successors "B1" "B2"
3722
+ xhandlers
3723
+ flags
3724
+ probability 4607182418800017408
3725
+ begin_IR
3726
+ LIR
3727
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3728
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <|@ <|@
3729
+ nr 8 <|@ instruction CMP rsi|DWORD y: 1 size: DWORD <|@ <|@
3730
+ nr 10 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3731
+ end_IR
3732
+ end_block
3733
+ begin_block
3734
+ name "B2"
3735
+ from_bci -1
3736
+ to_bci -1
3737
+ predecessors "B0"
3738
+ successors "B3"
3739
+ xhandlers
3740
+ flags
3741
+ probability 4605547914084714944
3742
+ begin_IR
3743
+ LIR
3744
+ nr 12 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3745
+ nr 14 <|@ instruction rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3746
+ nr 16 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <|@ <|@
3747
+ nr 18 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3748
+ nr 20 <|@ instruction r10|DWORD = DEC rsi|DWORD size: DWORD <|@ <|@
3749
+ nr 22 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3750
+ end_IR
3751
+ end_block
3752
+ begin_block
3753
+ name "B5"
3754
+ from_bci -1
3755
+ to_bci -1
3756
+ predecessors "B3"
3757
+ successors "B3"
3758
+ xhandlers
3759
+ flags "lle"
3760
+ loop_index 0
3761
+ loop_depth 1
3762
+ probability 4613987648415287168
3763
+ begin_IR
3764
+ LIR
3765
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: true label: ? <|@ <|@
3766
+ nr 32 <|@ instruction MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <|@ <|@
3767
+ nr 34 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3768
+ nr 36 <|@ instruction r10|DWORD = DEC r10|DWORD size: DWORD <|@ <|@
3769
+ nr 38 <|@ instruction JUMP ~[] destination: B5 -> B3 <|@ <|@
3770
+ end_IR
3771
+ end_block
3772
+ begin_block
3773
+ name "B3"
3774
+ from_bci -1
3775
+ to_bci -1
3776
+ predecessors "B2" "B5"
3777
+ successors "B4" "B5"
3778
+ xhandlers
3779
+ flags "llh"
3780
+ loop_index 0
3781
+ loop_depth 1
3782
+ probability 4615496347824353082
3783
+ begin_IR
3784
+ LIR
3785
+ nr 24 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3786
+ nr 26 <|@ instruction CMP r10|DWORD y: 1 size: DWORD <|@ <|@
3787
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <|@ <|@
3788
+ end_IR
3789
+ end_block
3790
+ begin_block
3791
+ name "B4"
3792
+ from_bci -1
3793
+ to_bci -1
3794
+ predecessors "B3"
3795
+ successors
3796
+ xhandlers
3797
+ flags
3798
+ probability 4604210017181540071
3799
+ begin_IR
3800
+ LIR
3801
+ nr 40 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3802
+ nr 42 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3803
+ nr 44 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3804
+ end_IR
3805
+ end_block
3806
+ begin_block
3807
+ name "B1"
3808
+ from_bci -1
3809
+ to_bci -1
3810
+ predecessors "B0"
3811
+ successors
3812
+ xhandlers
3813
+ flags
3814
+ probability 4595706039151745280
3815
+ begin_IR
3816
+ LIR
3817
+ nr 46 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3818
+ nr 48 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
3819
+ nr 50 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3820
+ end_IR
3821
+ end_block
3822
+ end_cfg
3823
+ begin_bytecodes
3824
+ 0: iload_0
3825
+ 1: istore_1
3826
+ 2: iload_1
3827
+ 3: ifle 16
3828
+ 6: iload_1
3829
+ 7: putstatic #54 // intField:int
3830
+ 10: iinc
3831
+ 13: goto 2
3832
+ 16: iload_0
3833
+ 17: ireturn
3834
+ <|@
3835
+ end_bytecodes
3836
+ begin_cfg
3837
+ name "After code generation"
3838
+ end_cfg
3839
+ begin_nmethod
3840
+ <<<HexCodeFile
3841
+ Platform AMD64 64 <||@
3842
+ HexCode 0 0f1f44000083fe010f8c4300000048b8addeaddeaddeadde89b080000000f083042400448bd641ffcae911000000669044899080000000f08304240041ffca4183fa017deb8bc6850500000000c5f877c38bc6850500000000c5f877c3e80000000090e80000000090 <||@
3843
+ Comment 0 3 <||@
3844
+ Comment 0 1 <||@
3845
+ Comment 5 block B0 null <||@
3846
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3847
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <||@
3848
+ Comment 5 8 CMP rsi|DWORD y: 1 size: DWORD <||@
3849
+ Comment 8 10 BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3850
+ Comment 14 block B2 null <||@
3851
+ Comment 14 12 [] = LABEL numbPhis: 0 align: false label: ? <||@
3852
+ Comment 14 14 rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
3853
+ Comment 14 {Object[Instance<java.lang.Class>]} <||@
3854
+ Comment 24 16 MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <||@
3855
+ Comment 30 18 MEMBAR barriers: 4 <||@
3856
+ Comment 35 20 r10|DWORD = DEC rsi|DWORD size: DWORD <||@
3857
+ Comment 41 22 JUMP ~[] destination: B2 -> B3 <||@
3858
+ Comment 46 block B5 loop 0 depth 1 header:5|LoopBegin <||@
3859
+ Comment 46 30 [] = LABEL numbPhis: 0 align: true label: ? <||@
3860
+ Comment 48 32 MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <||@
3861
+ Comment 55 34 MEMBAR barriers: 4 <||@
3862
+ Comment 60 36 r10|DWORD = DEC r10|DWORD size: DWORD <||@
3863
+ Comment 63 38 JUMP ~[] destination: B5 -> B3 <||@
3864
+ Comment 63 block B3 loop 0 depth 1 header:5|LoopBegin <||@
3865
+ Comment 63 24 [] = LABEL numbPhis: 1 align: false label: ? <||@
3866
+ Comment 63 26 CMP r10|DWORD y: 1 size: DWORD <||@
3867
+ Comment 67 28 BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <||@
3868
+ Comment 69 block B4 null <||@
3869
+ Comment 69 40 [] = LABEL numbPhis: 0 align: false label: ? <||@
3870
+ Comment 69 42 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
3871
+ Comment 71 44 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3872
+ Comment 71 12 <||@
3873
+ Comment 81 block B1 null <||@
3874
+ Comment 81 46 [] = LABEL numbPhis: 0 align: false label: ? <||@
3875
+ Comment 81 48 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
3876
+ Comment 83 50 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3877
+ Comment 83 12 <||@
3878
+ Comment 93 {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} <||@
3879
+ Comment 93 4 <||@
3880
+ Comment 99 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
3881
+ Comment 99 5 <||@
3882
+ HexCodeFile>>> <|@
3883
+ end_nmethod
3884
+ begin_compilation
3885
+ name " HotSpotCompilation-337[JavaExamples.exampleWhile(int)]"
3886
+ method "HotSpotCompilation-337[JavaExamples.exampleWhile(int)]"
3887
+ date 1583364091132
3888
+ end_compilation
3889
+ begin_cfg
3890
+ name "After code installation"
3891
+ end_cfg
3892
+ begin_nmethod
3893
+ <<<HexCodeFile
3894
+ Platform AMD64 64 <||@
3895
+ HexCode 112e28ee0 0f1f44000083fe010f8c4300000048b8b0275f150700000089b080000000f083042400448bd641ffcae911000000669044899080000000f08304240041ffca4183fa017deb8bc68505d92094fbc5f877c38bc68505cd2094fbc5f877c3e8deb3ffff90e8f8b2ebff90f4f4f4f4f4f4f4 <||@
3896
+ Comment 0 3 <||@
3897
+ Comment 0 1 <||@
3898
+ Comment 5 block B0 null <||@
3899
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3900
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13aff0d10 slotKind: QWORD <||@
3901
+ Comment 5 8 CMP rsi|DWORD y: 1 size: DWORD <||@
3902
+ Comment 8 10 BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3903
+ Comment 14 block B2 null <||@
3904
+ Comment 14 12 [] = LABEL numbPhis: 0 align: false label: ? <||@
3905
+ Comment 14 14 rax|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
3906
+ Comment 14 {Object[Instance<java.lang.Class>]} <||@
3907
+ Comment 24 16 MOV (x: [rax|QWORD[.] + 128], y: rsi|DWORD) size: DWORD <||@
3908
+ Comment 30 18 MEMBAR barriers: 4 <||@
3909
+ Comment 35 20 r10|DWORD = DEC rsi|DWORD size: DWORD <||@
3910
+ Comment 41 22 JUMP ~[] destination: B2 -> B3 <||@
3911
+ Comment 46 block B5 loop 0 depth 1 header:5|LoopBegin <||@
3912
+ Comment 46 30 [] = LABEL numbPhis: 0 align: true label: ? <||@
3913
+ Comment 48 32 MOV (x: [rax|QWORD[.] + 128], y: r10|DWORD) size: DWORD <||@
3914
+ Comment 55 34 MEMBAR barriers: 4 <||@
3915
+ Comment 60 36 r10|DWORD = DEC r10|DWORD size: DWORD <||@
3916
+ Comment 63 38 JUMP ~[] destination: B5 -> B3 <||@
3917
+ Comment 63 block B3 loop 0 depth 1 header:5|LoopBegin <||@
3918
+ Comment 63 24 [] = LABEL numbPhis: 1 align: false label: ? <||@
3919
+ Comment 63 26 CMP r10|DWORD y: 1 size: DWORD <||@
3920
+ Comment 67 28 BRANCH trueDestinationProbability: 0.1814664768787182 condition: < trueDestination: B3 -> B4 falseDestination: B3 -> B5 <||@
3921
+ Comment 69 block B4 null <||@
3922
+ Comment 69 40 [] = LABEL numbPhis: 0 align: false label: ? <||@
3923
+ Comment 69 42 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
3924
+ Comment 71 44 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3925
+ Comment 71 12 <||@
3926
+ Comment 81 block B1 null <||@
3927
+ Comment 81 46 [] = LABEL numbPhis: 0 align: false label: ? <||@
3928
+ Comment 81 48 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
3929
+ Comment 83 50 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3930
+ Comment 83 12 <||@
3931
+ Comment 93 {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} <||@
3932
+ Comment 93 4 <||@
3933
+ Comment 99 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
3934
+ Comment 99 5 <||@
3935
+ HexCodeFile>>> <|@
3936
+ end_nmethod