seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,3227 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-348[JavaExamples.examplePhi(boolean, int)]"
3
+ method "HotSpotCompilation-348[JavaExamples.examplePhi(boolean, int)]"
4
+ date 1583364091432
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: v8
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v8 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid i2 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 1
36
+ stamp: i32
37
+ uncheckedStamp: [null]
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ ?27 ?26 i21
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid i1 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ index: 0
49
+ stamp: i32
50
+ uncheckedStamp: [null]
51
+ === Inputs ===
52
+ === Succesors ===
53
+ === Usages ===
54
+ v5
55
+ === Predecessor ===
56
+ - >@ <|@
57
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
58
+ f <@~|@floating>@ <|@
59
+ tid i4 <|@
60
+ d <@d|@=== Debug Properties ===
61
+ isDefaultStable: false
62
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
63
+ rawvalue: 0
64
+ stableDimension: 0
65
+ stamp: i32 [0] ⇈0000000000000000
66
+ stampKind: i32
67
+ value: int[0|0x0]
68
+ === Inputs ===
69
+ === Succesors ===
70
+ === Usages ===
71
+ v5
72
+ === Predecessor ===
73
+ - >@ <|@
74
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
75
+ f <@~|@floating>@ <|@
76
+ tid v5 <|@
77
+ d <@d|@=== Debug Properties ===
78
+ condition: EQ
79
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
80
+ stamp: void
81
+ unorderedIsTrue: false
82
+ === Inputs ===
83
+ x: i1
84
+ y: i4
85
+ === Succesors ===
86
+ === Usages ===
87
+ v8
88
+ === Predecessor ===
89
+ - >@ <|@
90
+ instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i4 <|@ <|@
91
+ f <@*|@fixed>@ <|@
92
+ tid v8 <|@
93
+ d <@d|@=== Debug Properties ===
94
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
95
+ stamp: void
96
+ trueSuccessorProbability: 0.4999445934265641
97
+ === Inputs ===
98
+ condition: v5
99
+ === Succesors ===
100
+ trueSuccessor: v7
101
+ falseSuccessor: v6
102
+ === Usages ===
103
+ === Predecessor ===
104
+ v0 >@ <|@
105
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v5 #trueSuccessor: v7 #falseSuccessor: v6 <|@ <|@
106
+ end_IR
107
+ end_block
108
+ begin_block
109
+ name "B1"
110
+ from_bci -1
111
+ to_bci -1
112
+ predecessors "B0"
113
+ successors "B3"
114
+ xhandlers
115
+ flags
116
+ probability 4602677821056552993
117
+ begin_IR
118
+ HIR
119
+ f <@#|@fixed with next>@ <|@
120
+ tid v7 <|@
121
+ d <@d|@=== Debug Properties ===
122
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
123
+ stamp: void
124
+ withSpeculationFence: false
125
+ === Inputs ===
126
+ === Succesors ===
127
+ next: i14
128
+ === Usages ===
129
+ === Predecessor ===
130
+ v8 >@ <|@
131
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i14 <|@ <|@
132
+ tid v23 <|@
133
+ d <@d|@=== Debug Properties ===
134
+ callType: JavaCall
135
+ invokeKind: Static
136
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
137
+ returnStamp: i32
138
+ signature: [Ljdk.vm.ci.meta.JavaType;@144c238f0
139
+ stamp: void
140
+ targetMethod: HotSpotMethod<JavaExamples.opaqueCall()>
141
+ === Inputs ===
142
+ === Succesors ===
143
+ === Usages ===
144
+ i14
145
+ === Predecessor ===
146
+ - >@ <|@
147
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
148
+ tid ?26 <|@
149
+ d <@d|@=== Debug Properties ===
150
+ bci: 11
151
+ code: ResolvedJavaMethodBytecode<JavaExamples.examplePhi(boolean, int)>
152
+ duringCall: true
153
+ localsSize: 3
154
+ locksSize: 0
155
+ rethrowException: false
156
+ sourceFile: JavaExamples.java
157
+ sourceLine: 98
158
+ stackSize: 0
159
+ === Inputs ===
160
+ outerFrameState: -
161
+ values: - i2 -
162
+ === Succesors ===
163
+ === Usages ===
164
+ i14
165
+ === Predecessor ===
166
+ - >@ <|@
167
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - i2 - <|@ <|@
168
+ f <@#|@fixed with next>@ <|@
169
+ tid i14 <|@
170
+ d <@d|@=== Debug Properties ===
171
+ bci: 11
172
+ identity: ANY_LOCATION
173
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
174
+ polymorphic: false
175
+ stamp: i32
176
+ targetMethod: Direct#JavaExamples.opaqueCall
177
+ useForInlining: true
178
+ === Inputs ===
179
+ stateAfter: -
180
+ classInit: -
181
+ callTarget: v23
182
+ stateDuring: ?26
183
+ === Succesors ===
184
+ next: v18
185
+ === Usages ===
186
+ i19
187
+ === Predecessor ===
188
+ v7 >@ <|@
189
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v23 stateDuring: ?26 #next: v18 <|@ <|@
190
+ f <@*|@fixed>@ <|@
191
+ tid v18 <|@
192
+ d <@d|@=== Debug Properties ===
193
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
194
+ stamp: void
195
+ === Inputs ===
196
+ === Succesors ===
197
+ === Usages ===
198
+ v17
199
+ === Predecessor ===
200
+ i14 >@ <|@
201
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
202
+ end_IR
203
+ end_block
204
+ begin_block
205
+ name "B2"
206
+ from_bci -1
207
+ to_bci -1
208
+ predecessors "B0"
209
+ successors "B3"
210
+ xhandlers
211
+ flags
212
+ probability 4602679318230693872
213
+ begin_IR
214
+ HIR
215
+ f <@#|@fixed with next>@ <|@
216
+ tid v6 <|@
217
+ d <@d|@=== Debug Properties ===
218
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
219
+ stamp: void
220
+ withSpeculationFence: false
221
+ === Inputs ===
222
+ === Succesors ===
223
+ next: i10
224
+ === Usages ===
225
+ === Predecessor ===
226
+ v8 >@ <|@
227
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i10 <|@ <|@
228
+ tid v24 <|@
229
+ d <@d|@=== Debug Properties ===
230
+ callType: JavaCall
231
+ invokeKind: Static
232
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
233
+ returnStamp: i32
234
+ signature: [Ljdk.vm.ci.meta.JavaType;@144c23b98
235
+ stamp: void
236
+ targetMethod: HotSpotMethod<JavaExamples.opaqueCall()>
237
+ === Inputs ===
238
+ === Succesors ===
239
+ === Usages ===
240
+ i10
241
+ === Predecessor ===
242
+ - >@ <|@
243
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
244
+ tid ?27 <|@
245
+ d <@d|@=== Debug Properties ===
246
+ bci: 4
247
+ code: ResolvedJavaMethodBytecode<JavaExamples.examplePhi(boolean, int)>
248
+ duringCall: true
249
+ localsSize: 3
250
+ locksSize: 0
251
+ rethrowException: false
252
+ sourceFile: JavaExamples.java
253
+ sourceLine: 96
254
+ stackSize: 0
255
+ === Inputs ===
256
+ outerFrameState: -
257
+ values: - i2 -
258
+ === Succesors ===
259
+ === Usages ===
260
+ i10
261
+ === Predecessor ===
262
+ - >@ <|@
263
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - i2 - <|@ <|@
264
+ f <@#|@fixed with next>@ <|@
265
+ tid i10 <|@
266
+ d <@d|@=== Debug Properties ===
267
+ bci: 4
268
+ identity: ANY_LOCATION
269
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
270
+ polymorphic: false
271
+ stamp: i32
272
+ targetMethod: Direct#JavaExamples.opaqueCall
273
+ useForInlining: true
274
+ === Inputs ===
275
+ stateAfter: -
276
+ classInit: -
277
+ callTarget: v24
278
+ stateDuring: ?27
279
+ === Succesors ===
280
+ next: v16
281
+ === Usages ===
282
+ i19
283
+ === Predecessor ===
284
+ v6 >@ <|@
285
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v24 stateDuring: ?27 #next: v16 <|@ <|@
286
+ f <@*|@fixed>@ <|@
287
+ tid v16 <|@
288
+ d <@d|@=== Debug Properties ===
289
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
290
+ stamp: void
291
+ === Inputs ===
292
+ === Succesors ===
293
+ === Usages ===
294
+ v17
295
+ === Predecessor ===
296
+ i10 >@ <|@
297
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
298
+ end_IR
299
+ end_block
300
+ begin_block
301
+ name "B3"
302
+ from_bci -1
303
+ to_bci -1
304
+ predecessors "B2" "B1"
305
+ successors
306
+ xhandlers
307
+ flags
308
+ probability 4607182418800017408
309
+ begin_IR
310
+ HIR
311
+ f <@~|@floating>@ <|@
312
+ tid i19 <|@
313
+ d <@d|@=== Debug Properties ===
314
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
315
+ stamp: i32
316
+ valueDescription: i32
317
+ === Inputs ===
318
+ merge: v17
319
+ values: i10 i14
320
+ === Succesors ===
321
+ === Usages ===
322
+ i21
323
+ === Predecessor ===
324
+ - >@ <|@
325
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v17 values: i10 i14 <|@ <|@
326
+ f <@#|@fixed with next>@ <|@
327
+ tid v17 <|@
328
+ d <@d|@=== Debug Properties ===
329
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
330
+ stamp: void
331
+ withSpeculationFence: false
332
+ === Inputs ===
333
+ stateAfter: -
334
+ ends: v16 v18
335
+ === Succesors ===
336
+ next: v22
337
+ === Usages ===
338
+ i19
339
+ === Predecessor ===
340
+ - >@ <|@
341
+ instruction <@Merge|@org.graalvm.compiler.nodes.MergeNode>@ stateAfter: - ends: v16 v18 #next: v22 <|@ <|@
342
+ f <@~|@floating>@ <|@
343
+ tid i21 <|@
344
+ d <@d|@=== Debug Properties ===
345
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 17]
346
+ stamp: i32
347
+ === Inputs ===
348
+ x: i2
349
+ y: i19
350
+ === Succesors ===
351
+ === Usages ===
352
+ v22
353
+ === Predecessor ===
354
+ - >@ <|@
355
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i2 y: i19 <|@ <|@
356
+ f <@*|@fixed>@ <|@
357
+ tid v22 <|@
358
+ d <@d|@=== Debug Properties ===
359
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 18]
360
+ stamp: void
361
+ === Inputs ===
362
+ result: i21
363
+ memoryMap: -
364
+ === Succesors ===
365
+ === Usages ===
366
+ === Predecessor ===
367
+ v17 >@ <|@
368
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i21 memoryMap: - <|@ <|@
369
+ end_IR
370
+ end_block
371
+ end_cfg
372
+ begin_cfg
373
+ name "After LIRGeneration"
374
+ begin_block
375
+ name "B0"
376
+ from_bci -1
377
+ to_bci -1
378
+ predecessors
379
+ successors "B1" "B2"
380
+ xhandlers
381
+ flags
382
+ probability 4607182418800017408
383
+ begin_IR
384
+ LIR
385
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
386
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
387
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
388
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
389
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
390
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
391
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
392
+ end_IR
393
+ end_block
394
+ begin_block
395
+ name "B2"
396
+ from_bci -1
397
+ to_bci -1
398
+ predecessors "B0"
399
+ successors "B3"
400
+ xhandlers
401
+ flags
402
+ probability 4602679318230693872
403
+ begin_IR
404
+ LIR
405
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
406
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
407
+ locals: - v1|DWORD -
408
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
409
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
410
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
411
+ end_IR
412
+ end_block
413
+ begin_block
414
+ name "B3"
415
+ from_bci -1
416
+ to_bci -1
417
+ predecessors "B2" "B1"
418
+ successors
419
+ xhandlers
420
+ flags
421
+ probability 4607182418800017408
422
+ begin_IR
423
+ LIR
424
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
425
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
426
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
427
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
428
+ end_IR
429
+ end_block
430
+ begin_block
431
+ name "B1"
432
+ from_bci -1
433
+ to_bci -1
434
+ predecessors "B0"
435
+ successors "B3"
436
+ xhandlers
437
+ flags
438
+ probability 4602677821056552993
439
+ begin_IR
440
+ LIR
441
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
442
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
443
+ locals: - v1|DWORD -
444
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
445
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
446
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
447
+ end_IR
448
+ end_block
449
+ end_cfg
450
+ begin_bytecodes
451
+ 0: iload_0
452
+ 1: ifeq 11
453
+ 4: invokestatic #48 // opaqueCall:()int
454
+ 7: istore_2
455
+ 8: goto 15
456
+ 11: invokestatic #48 // opaqueCall:()int
457
+ 14: istore_2
458
+ 15: iload_2
459
+ 16: iload_1
460
+ 17: iadd
461
+ 18: ireturn
462
+ <|@
463
+ end_bytecodes
464
+ begin_cfg
465
+ name "After LIR generation"
466
+ begin_block
467
+ name "B0"
468
+ from_bci -1
469
+ to_bci -1
470
+ predecessors
471
+ successors "B1" "B2"
472
+ xhandlers
473
+ flags
474
+ probability 4607182418800017408
475
+ begin_IR
476
+ HIR
477
+ f <@#|@fixed with next>@ <|@
478
+ tid v0 <|@
479
+ d <@d|@=== Debug Properties ===
480
+ stamp: void
481
+ withSpeculationFence: false
482
+ === Inputs ===
483
+ stateAfter: -
484
+ === Succesors ===
485
+ next: v8
486
+ === Usages ===
487
+ === Predecessor ===
488
+ - >@ <|@
489
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v8 <|@ <|@
490
+ f <@~|@floating>@ <|@
491
+ tid i2 <|@
492
+ result v1|DWORD <|@
493
+ d <@d|@=== Debug Properties ===
494
+ index: 1
495
+ stamp: i32
496
+ uncheckedStamp: [null]
497
+ === Inputs ===
498
+ === Succesors ===
499
+ === Usages ===
500
+ ?27 ?26 i21
501
+ === Predecessor ===
502
+ - >@ <|@
503
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
504
+ f <@~|@floating>@ <|@
505
+ tid i1 <|@
506
+ result v0|DWORD <|@
507
+ d <@d|@=== Debug Properties ===
508
+ index: 0
509
+ stamp: i32
510
+ uncheckedStamp: [null]
511
+ === Inputs ===
512
+ === Succesors ===
513
+ === Usages ===
514
+ v5
515
+ === Predecessor ===
516
+ - >@ <|@
517
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
518
+ f <@~|@floating>@ <|@
519
+ tid i4 <|@
520
+ result int[0|0x0] <|@
521
+ d <@d|@=== Debug Properties ===
522
+ isDefaultStable: false
523
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
524
+ rawvalue: 0
525
+ stableDimension: 0
526
+ stamp: i32 [0] ⇈0000000000000000
527
+ stampKind: i32
528
+ value: int[0|0x0]
529
+ === Inputs ===
530
+ === Succesors ===
531
+ === Usages ===
532
+ v5
533
+ === Predecessor ===
534
+ - >@ <|@
535
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
536
+ f <@~|@floating>@ <|@
537
+ tid v5 <|@
538
+ d <@d|@=== Debug Properties ===
539
+ condition: EQ
540
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
541
+ stamp: void
542
+ unorderedIsTrue: false
543
+ === Inputs ===
544
+ x: i1
545
+ y: i4
546
+ === Succesors ===
547
+ === Usages ===
548
+ v8
549
+ === Predecessor ===
550
+ - >@ <|@
551
+ instruction <@==|@org.graalvm.compiler.nodes.calc.IntegerEqualsNode>@ x: i1 y: i4 <|@ <|@
552
+ f <@*|@fixed>@ <|@
553
+ tid v8 <|@
554
+ d <@d|@=== Debug Properties ===
555
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:95) [bci: 1]
556
+ stamp: void
557
+ trueSuccessorProbability: 0.4999445934265641
558
+ === Inputs ===
559
+ condition: v5
560
+ === Succesors ===
561
+ trueSuccessor: v7
562
+ falseSuccessor: v6
563
+ === Usages ===
564
+ === Predecessor ===
565
+ v0 >@ <|@
566
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v5 #trueSuccessor: v7 #falseSuccessor: v6 <|@ <|@
567
+ end_IR
568
+ begin_IR
569
+ LIR
570
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
571
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
572
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
573
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
574
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
575
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
576
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
577
+ end_IR
578
+ end_block
579
+ begin_block
580
+ name "B1"
581
+ from_bci -1
582
+ to_bci -1
583
+ predecessors "B0"
584
+ successors "B3"
585
+ xhandlers
586
+ flags
587
+ probability 4602677821056552993
588
+ begin_IR
589
+ HIR
590
+ f <@#|@fixed with next>@ <|@
591
+ tid v7 <|@
592
+ d <@d|@=== Debug Properties ===
593
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
594
+ stamp: void
595
+ withSpeculationFence: false
596
+ === Inputs ===
597
+ === Succesors ===
598
+ next: i14
599
+ === Usages ===
600
+ === Predecessor ===
601
+ v8 >@ <|@
602
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i14 <|@ <|@
603
+ tid v23 <|@
604
+ d <@d|@=== Debug Properties ===
605
+ callType: JavaCall
606
+ invokeKind: Static
607
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
608
+ returnStamp: i32
609
+ signature: [Ljdk.vm.ci.meta.JavaType;@144c238f0
610
+ stamp: void
611
+ targetMethod: HotSpotMethod<JavaExamples.opaqueCall()>
612
+ === Inputs ===
613
+ === Succesors ===
614
+ === Usages ===
615
+ i14
616
+ === Predecessor ===
617
+ - >@ <|@
618
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
619
+ tid ?26 <|@
620
+ d <@d|@=== Debug Properties ===
621
+ bci: 11
622
+ code: ResolvedJavaMethodBytecode<JavaExamples.examplePhi(boolean, int)>
623
+ duringCall: true
624
+ localsSize: 3
625
+ locksSize: 0
626
+ rethrowException: false
627
+ sourceFile: JavaExamples.java
628
+ sourceLine: 98
629
+ stackSize: 0
630
+ === Inputs ===
631
+ outerFrameState: -
632
+ values: - i2 -
633
+ === Succesors ===
634
+ === Usages ===
635
+ i14
636
+ === Predecessor ===
637
+ - >@ <|@
638
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - i2 - <|@ <|@
639
+ f <@#|@fixed with next>@ <|@
640
+ tid i14 <|@
641
+ result v2|DWORD <|@
642
+ d <@d|@=== Debug Properties ===
643
+ bci: 11
644
+ identity: ANY_LOCATION
645
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
646
+ polymorphic: false
647
+ stamp: i32
648
+ targetMethod: Direct#JavaExamples.opaqueCall
649
+ useForInlining: true
650
+ === Inputs ===
651
+ stateAfter: -
652
+ classInit: -
653
+ callTarget: v23
654
+ stateDuring: ?26
655
+ === Succesors ===
656
+ next: v18
657
+ === Usages ===
658
+ i19
659
+ === Predecessor ===
660
+ v7 >@ <|@
661
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v23 stateDuring: ?26 #next: v18 <|@ <|@
662
+ f <@*|@fixed>@ <|@
663
+ tid v18 <|@
664
+ d <@d|@=== Debug Properties ===
665
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
666
+ stamp: void
667
+ === Inputs ===
668
+ === Succesors ===
669
+ === Usages ===
670
+ v17
671
+ === Predecessor ===
672
+ i14 >@ <|@
673
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
674
+ end_IR
675
+ begin_IR
676
+ LIR
677
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
678
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
679
+ locals: - v1|DWORD -
680
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
681
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
682
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
683
+ end_IR
684
+ end_block
685
+ begin_block
686
+ name "B2"
687
+ from_bci -1
688
+ to_bci -1
689
+ predecessors "B0"
690
+ successors "B3"
691
+ xhandlers
692
+ flags
693
+ probability 4602679318230693872
694
+ begin_IR
695
+ HIR
696
+ f <@#|@fixed with next>@ <|@
697
+ tid v6 <|@
698
+ d <@d|@=== Debug Properties ===
699
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
700
+ stamp: void
701
+ withSpeculationFence: false
702
+ === Inputs ===
703
+ === Succesors ===
704
+ next: i10
705
+ === Usages ===
706
+ === Predecessor ===
707
+ v8 >@ <|@
708
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i10 <|@ <|@
709
+ tid v24 <|@
710
+ d <@d|@=== Debug Properties ===
711
+ callType: JavaCall
712
+ invokeKind: Static
713
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
714
+ returnStamp: i32
715
+ signature: [Ljdk.vm.ci.meta.JavaType;@144c23b98
716
+ stamp: void
717
+ targetMethod: HotSpotMethod<JavaExamples.opaqueCall()>
718
+ === Inputs ===
719
+ === Succesors ===
720
+ === Usages ===
721
+ i10
722
+ === Predecessor ===
723
+ - >@ <|@
724
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
725
+ tid ?27 <|@
726
+ d <@d|@=== Debug Properties ===
727
+ bci: 4
728
+ code: ResolvedJavaMethodBytecode<JavaExamples.examplePhi(boolean, int)>
729
+ duringCall: true
730
+ localsSize: 3
731
+ locksSize: 0
732
+ rethrowException: false
733
+ sourceFile: JavaExamples.java
734
+ sourceLine: 96
735
+ stackSize: 0
736
+ === Inputs ===
737
+ outerFrameState: -
738
+ values: - i2 -
739
+ === Succesors ===
740
+ === Usages ===
741
+ i10
742
+ === Predecessor ===
743
+ - >@ <|@
744
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - i2 - <|@ <|@
745
+ f <@#|@fixed with next>@ <|@
746
+ tid i10 <|@
747
+ result v3|DWORD <|@
748
+ d <@d|@=== Debug Properties ===
749
+ bci: 4
750
+ identity: ANY_LOCATION
751
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
752
+ polymorphic: false
753
+ stamp: i32
754
+ targetMethod: Direct#JavaExamples.opaqueCall
755
+ useForInlining: true
756
+ === Inputs ===
757
+ stateAfter: -
758
+ classInit: -
759
+ callTarget: v24
760
+ stateDuring: ?27
761
+ === Succesors ===
762
+ next: v16
763
+ === Usages ===
764
+ i19
765
+ === Predecessor ===
766
+ v6 >@ <|@
767
+ instruction <@Invoke|@org.graalvm.compiler.nodes.InvokeNode>@ stateAfter: - classInit: - callTarget: v24 stateDuring: ?27 #next: v16 <|@ <|@
768
+ f <@*|@fixed>@ <|@
769
+ tid v16 <|@
770
+ d <@d|@=== Debug Properties ===
771
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
772
+ stamp: void
773
+ === Inputs ===
774
+ === Succesors ===
775
+ === Usages ===
776
+ v17
777
+ === Predecessor ===
778
+ i10 >@ <|@
779
+ instruction <@EndNode|@org.graalvm.compiler.nodes.EndNode>@ <|@ <|@
780
+ end_IR
781
+ begin_IR
782
+ LIR
783
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
784
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
785
+ locals: - v1|DWORD -
786
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
787
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
788
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
789
+ end_IR
790
+ end_block
791
+ begin_block
792
+ name "B3"
793
+ from_bci -1
794
+ to_bci -1
795
+ predecessors "B2" "B1"
796
+ successors
797
+ xhandlers
798
+ flags
799
+ probability 4607182418800017408
800
+ begin_IR
801
+ HIR
802
+ f <@~|@floating>@ <|@
803
+ tid i19 <|@
804
+ result v4|DWORD <|@
805
+ d <@d|@=== Debug Properties ===
806
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
807
+ stamp: i32
808
+ valueDescription: i32
809
+ === Inputs ===
810
+ merge: v17
811
+ values: i10 i14
812
+ === Succesors ===
813
+ === Usages ===
814
+ i21
815
+ === Predecessor ===
816
+ - >@ <|@
817
+ instruction <@ValuePhi|@org.graalvm.compiler.nodes.ValuePhiNode>@ merge: v17 values: i10 i14 <|@ <|@
818
+ f <@#|@fixed with next>@ <|@
819
+ tid v17 <|@
820
+ d <@d|@=== Debug Properties ===
821
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 15]
822
+ stamp: void
823
+ withSpeculationFence: false
824
+ === Inputs ===
825
+ stateAfter: -
826
+ ends: v16 v18
827
+ === Succesors ===
828
+ next: v22
829
+ === Usages ===
830
+ i19
831
+ === Predecessor ===
832
+ - >@ <|@
833
+ instruction <@Merge|@org.graalvm.compiler.nodes.MergeNode>@ stateAfter: - ends: v16 v18 #next: v22 <|@ <|@
834
+ f <@~|@floating>@ <|@
835
+ tid i21 <|@
836
+ result v5|DWORD <|@
837
+ d <@d|@=== Debug Properties ===
838
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 17]
839
+ stamp: i32
840
+ === Inputs ===
841
+ x: i2
842
+ y: i19
843
+ === Succesors ===
844
+ === Usages ===
845
+ v22
846
+ === Predecessor ===
847
+ - >@ <|@
848
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i2 y: i19 <|@ <|@
849
+ f <@*|@fixed>@ <|@
850
+ tid v22 <|@
851
+ d <@d|@=== Debug Properties ===
852
+ nodeSourcePosition: at JavaExamples.examplePhi(JavaExamples.java:100) [bci: 18]
853
+ stamp: void
854
+ === Inputs ===
855
+ result: i21
856
+ memoryMap: -
857
+ === Succesors ===
858
+ === Usages ===
859
+ === Predecessor ===
860
+ v17 >@ <|@
861
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i21 memoryMap: - <|@ <|@
862
+ end_IR
863
+ begin_IR
864
+ LIR
865
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
866
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
867
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
868
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
869
+ end_IR
870
+ end_block
871
+ end_cfg
872
+ begin_cfg
873
+ name "After ConstantLoadOptimization"
874
+ begin_block
875
+ name "B0"
876
+ from_bci -1
877
+ to_bci -1
878
+ predecessors
879
+ successors "B1" "B2"
880
+ xhandlers
881
+ flags
882
+ probability 4607182418800017408
883
+ begin_IR
884
+ LIR
885
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
886
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
887
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
888
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
889
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
890
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
891
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
892
+ end_IR
893
+ end_block
894
+ begin_block
895
+ name "B2"
896
+ from_bci -1
897
+ to_bci -1
898
+ predecessors "B0"
899
+ successors "B3"
900
+ xhandlers
901
+ flags
902
+ probability 4602679318230693872
903
+ begin_IR
904
+ LIR
905
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
906
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
907
+ locals: - v1|DWORD -
908
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
909
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
910
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
911
+ end_IR
912
+ end_block
913
+ begin_block
914
+ name "B3"
915
+ from_bci -1
916
+ to_bci -1
917
+ predecessors "B2" "B1"
918
+ successors
919
+ xhandlers
920
+ flags
921
+ probability 4607182418800017408
922
+ begin_IR
923
+ LIR
924
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
925
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
926
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
927
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
928
+ end_IR
929
+ end_block
930
+ begin_block
931
+ name "B1"
932
+ from_bci -1
933
+ to_bci -1
934
+ predecessors "B0"
935
+ successors "B3"
936
+ xhandlers
937
+ flags
938
+ probability 4602677821056552993
939
+ begin_IR
940
+ LIR
941
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
942
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
943
+ locals: - v1|DWORD -
944
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
945
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
946
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
947
+ end_IR
948
+ end_block
949
+ end_cfg
950
+ begin_bytecodes
951
+ 0: iload_0
952
+ 1: ifeq 11
953
+ 4: invokestatic #48 // opaqueCall:()int
954
+ 7: istore_2
955
+ 8: goto 15
956
+ 11: invokestatic #48 // opaqueCall:()int
957
+ 14: istore_2
958
+ 15: iload_2
959
+ 16: iload_1
960
+ 17: iadd
961
+ 18: ireturn
962
+ <|@
963
+ end_bytecodes
964
+ begin_cfg
965
+ name "After SaveCalleeSaveRegisters"
966
+ begin_block
967
+ name "B0"
968
+ from_bci -1
969
+ to_bci -1
970
+ predecessors
971
+ successors "B1" "B2"
972
+ xhandlers
973
+ flags
974
+ probability 4607182418800017408
975
+ begin_IR
976
+ LIR
977
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
978
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
979
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
980
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
981
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
982
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
983
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
984
+ end_IR
985
+ end_block
986
+ begin_block
987
+ name "B2"
988
+ from_bci -1
989
+ to_bci -1
990
+ predecessors "B0"
991
+ successors "B3"
992
+ xhandlers
993
+ flags
994
+ probability 4602679318230693872
995
+ begin_IR
996
+ LIR
997
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
998
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
999
+ locals: - v1|DWORD -
1000
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1001
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1002
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1003
+ end_IR
1004
+ end_block
1005
+ begin_block
1006
+ name "B3"
1007
+ from_bci -1
1008
+ to_bci -1
1009
+ predecessors "B2" "B1"
1010
+ successors
1011
+ xhandlers
1012
+ flags
1013
+ probability 4607182418800017408
1014
+ begin_IR
1015
+ LIR
1016
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1017
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1018
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1019
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1020
+ end_IR
1021
+ end_block
1022
+ begin_block
1023
+ name "B1"
1024
+ from_bci -1
1025
+ to_bci -1
1026
+ predecessors "B0"
1027
+ successors "B3"
1028
+ xhandlers
1029
+ flags
1030
+ probability 4602677821056552993
1031
+ begin_IR
1032
+ LIR
1033
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1034
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1035
+ locals: - v1|DWORD -
1036
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1037
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1038
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1039
+ end_IR
1040
+ end_block
1041
+ end_cfg
1042
+ begin_bytecodes
1043
+ 0: iload_0
1044
+ 1: ifeq 11
1045
+ 4: invokestatic #48 // opaqueCall:()int
1046
+ 7: istore_2
1047
+ 8: goto 15
1048
+ 11: invokestatic #48 // opaqueCall:()int
1049
+ 14: istore_2
1050
+ 15: iload_2
1051
+ 16: iload_1
1052
+ 17: iadd
1053
+ 18: ireturn
1054
+ <|@
1055
+ end_bytecodes
1056
+ begin_cfg
1057
+ name "After PreAllocationOptimizationStage"
1058
+ begin_block
1059
+ name "B0"
1060
+ from_bci -1
1061
+ to_bci -1
1062
+ predecessors
1063
+ successors "B1" "B2"
1064
+ xhandlers
1065
+ flags
1066
+ probability 4607182418800017408
1067
+ begin_IR
1068
+ LIR
1069
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1070
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1071
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1072
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1073
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1074
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1075
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1076
+ end_IR
1077
+ end_block
1078
+ begin_block
1079
+ name "B2"
1080
+ from_bci -1
1081
+ to_bci -1
1082
+ predecessors "B0"
1083
+ successors "B3"
1084
+ xhandlers
1085
+ flags
1086
+ probability 4602679318230693872
1087
+ begin_IR
1088
+ LIR
1089
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1090
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1091
+ locals: - v1|DWORD -
1092
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1093
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1094
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1095
+ end_IR
1096
+ end_block
1097
+ begin_block
1098
+ name "B3"
1099
+ from_bci -1
1100
+ to_bci -1
1101
+ predecessors "B2" "B1"
1102
+ successors
1103
+ xhandlers
1104
+ flags
1105
+ probability 4607182418800017408
1106
+ begin_IR
1107
+ LIR
1108
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1109
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1110
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1111
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1112
+ end_IR
1113
+ end_block
1114
+ begin_block
1115
+ name "B1"
1116
+ from_bci -1
1117
+ to_bci -1
1118
+ predecessors "B0"
1119
+ successors "B3"
1120
+ xhandlers
1121
+ flags
1122
+ probability 4602677821056552993
1123
+ begin_IR
1124
+ LIR
1125
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1126
+ nr -1 <|@ st <@st|@JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1127
+ locals: - v1|DWORD -
1128
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1129
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1130
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1131
+ end_IR
1132
+ end_block
1133
+ end_cfg
1134
+ begin_bytecodes
1135
+ 0: iload_0
1136
+ 1: ifeq 11
1137
+ 4: invokestatic #48 // opaqueCall:()int
1138
+ 7: istore_2
1139
+ 8: goto 15
1140
+ 11: invokestatic #48 // opaqueCall:()int
1141
+ 14: istore_2
1142
+ 15: iload_2
1143
+ 16: iload_1
1144
+ 17: iadd
1145
+ 18: ireturn
1146
+ <|@
1147
+ end_bytecodes
1148
+ begin_cfg
1149
+ name "After MarkBasePointers"
1150
+ begin_block
1151
+ name "B0"
1152
+ from_bci -1
1153
+ to_bci -1
1154
+ predecessors
1155
+ successors "B1" "B2"
1156
+ xhandlers
1157
+ flags
1158
+ probability 4607182418800017408
1159
+ begin_IR
1160
+ LIR
1161
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1162
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1163
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1164
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1165
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1166
+ nr -1 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1167
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1168
+ end_IR
1169
+ end_block
1170
+ begin_block
1171
+ name "B2"
1172
+ from_bci -1
1173
+ to_bci -1
1174
+ predecessors "B0"
1175
+ successors "B3"
1176
+ xhandlers
1177
+ flags
1178
+ probability 4602679318230693872
1179
+ begin_IR
1180
+ LIR
1181
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1182
+ nr -1 <|@ st <@st|@live-base-pointers: []
1183
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1184
+ locals: - v1|DWORD -
1185
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1186
+ nr -1 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1187
+ nr -1 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1188
+ end_IR
1189
+ end_block
1190
+ begin_block
1191
+ name "B3"
1192
+ from_bci -1
1193
+ to_bci -1
1194
+ predecessors "B2" "B1"
1195
+ successors
1196
+ xhandlers
1197
+ flags
1198
+ probability 4607182418800017408
1199
+ begin_IR
1200
+ LIR
1201
+ nr -1 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1202
+ nr -1 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1203
+ nr -1 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1204
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1205
+ end_IR
1206
+ end_block
1207
+ begin_block
1208
+ name "B1"
1209
+ from_bci -1
1210
+ to_bci -1
1211
+ predecessors "B0"
1212
+ successors "B3"
1213
+ xhandlers
1214
+ flags
1215
+ probability 4602677821056552993
1216
+ begin_IR
1217
+ LIR
1218
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1219
+ nr -1 <|@ st <@st|@live-base-pointers: []
1220
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1221
+ locals: - v1|DWORD -
1222
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1223
+ nr -1 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1224
+ nr -1 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1225
+ end_IR
1226
+ end_block
1227
+ end_cfg
1228
+ begin_bytecodes
1229
+ 0: iload_0
1230
+ 1: ifeq 11
1231
+ 4: invokestatic #48 // opaqueCall:()int
1232
+ 7: istore_2
1233
+ 8: goto 15
1234
+ 11: invokestatic #48 // opaqueCall:()int
1235
+ 14: istore_2
1236
+ 15: iload_2
1237
+ 16: iload_1
1238
+ 17: iadd
1239
+ 18: ireturn
1240
+ <|@
1241
+ end_bytecodes
1242
+ begin_cfg
1243
+ name "Before register allocation"
1244
+ begin_block
1245
+ name "B0"
1246
+ from_bci -1
1247
+ to_bci -1
1248
+ predecessors
1249
+ successors "B1" "B2"
1250
+ xhandlers
1251
+ flags
1252
+ probability 4607182418800017408
1253
+ begin_IR
1254
+ LIR
1255
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1256
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1257
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1258
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1259
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1260
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1261
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1262
+ end_IR
1263
+ end_block
1264
+ begin_block
1265
+ name "B2"
1266
+ from_bci -1
1267
+ to_bci -1
1268
+ predecessors "B0"
1269
+ successors "B3"
1270
+ xhandlers
1271
+ flags
1272
+ probability 4602679318230693872
1273
+ begin_IR
1274
+ LIR
1275
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1276
+ nr 16 <|@ st <@st|@live-base-pointers: []
1277
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1278
+ locals: - v1|DWORD -
1279
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1280
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1281
+ nr 20 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1282
+ end_IR
1283
+ end_block
1284
+ begin_block
1285
+ name "B3"
1286
+ from_bci -1
1287
+ to_bci -1
1288
+ predecessors "B2" "B1"
1289
+ successors
1290
+ xhandlers
1291
+ flags
1292
+ probability 4607182418800017408
1293
+ begin_IR
1294
+ LIR
1295
+ nr 30 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1296
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1297
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1298
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1299
+ end_IR
1300
+ end_block
1301
+ begin_block
1302
+ name "B1"
1303
+ from_bci -1
1304
+ to_bci -1
1305
+ predecessors "B0"
1306
+ successors "B3"
1307
+ xhandlers
1308
+ flags
1309
+ probability 4602677821056552993
1310
+ begin_IR
1311
+ LIR
1312
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1313
+ nr 24 <|@ st <@st|@live-base-pointers: []
1314
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1315
+ locals: - v1|DWORD -
1316
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1317
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1318
+ nr 28 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1319
+ end_IR
1320
+ end_block
1321
+ end_cfg
1322
+ begin_bytecodes
1323
+ 0: iload_0
1324
+ 1: ifeq 11
1325
+ 4: invokestatic #48 // opaqueCall:()int
1326
+ 7: istore_2
1327
+ 8: goto 15
1328
+ 11: invokestatic #48 // opaqueCall:()int
1329
+ 14: istore_2
1330
+ 15: iload_2
1331
+ 16: iload_1
1332
+ 17: iadd
1333
+ 18: ireturn
1334
+ <|@
1335
+ end_bytecodes
1336
+ begin_cfg
1337
+ name "After SSALinearScanLifetimeAnalysis"
1338
+ begin_block
1339
+ name "B0"
1340
+ from_bci -1
1341
+ to_bci -1
1342
+ predecessors
1343
+ successors "B1" "B2"
1344
+ xhandlers
1345
+ flags
1346
+ probability 4607182418800017408
1347
+ begin_IR
1348
+ LIR
1349
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1350
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1351
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1352
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1353
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1354
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1355
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1356
+ end_IR
1357
+ end_block
1358
+ begin_block
1359
+ name "B2"
1360
+ from_bci -1
1361
+ to_bci -1
1362
+ predecessors "B0"
1363
+ successors "B3"
1364
+ xhandlers
1365
+ flags
1366
+ probability 4602679318230693872
1367
+ begin_IR
1368
+ LIR
1369
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1370
+ nr 16 <|@ st <@st|@live-base-pointers: []
1371
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1372
+ locals: - v1|DWORD -
1373
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1374
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1375
+ nr 20 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1376
+ end_IR
1377
+ end_block
1378
+ begin_block
1379
+ name "B3"
1380
+ from_bci -1
1381
+ to_bci -1
1382
+ predecessors "B2" "B1"
1383
+ successors
1384
+ xhandlers
1385
+ flags
1386
+ probability 4607182418800017408
1387
+ begin_IR
1388
+ LIR
1389
+ nr 30 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1390
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1391
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1392
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1393
+ end_IR
1394
+ end_block
1395
+ begin_block
1396
+ name "B1"
1397
+ from_bci -1
1398
+ to_bci -1
1399
+ predecessors "B0"
1400
+ successors "B3"
1401
+ xhandlers
1402
+ flags
1403
+ probability 4602677821056552993
1404
+ begin_IR
1405
+ LIR
1406
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1407
+ nr 24 <|@ st <@st|@live-base-pointers: []
1408
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1409
+ locals: - v1|DWORD -
1410
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1411
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1412
+ nr 28 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1413
+ end_IR
1414
+ end_block
1415
+ end_cfg
1416
+ begin_bytecodes
1417
+ 0: iload_0
1418
+ 1: ifeq 11
1419
+ 4: invokestatic #48 // opaqueCall:()int
1420
+ 7: istore_2
1421
+ 8: goto 15
1422
+ 11: invokestatic #48 // opaqueCall:()int
1423
+ 14: istore_2
1424
+ 15: iload_2
1425
+ 16: iload_1
1426
+ 17: iadd
1427
+ 18: ireturn
1428
+ <|@
1429
+ end_bytecodes
1430
+ begin_intervals
1431
+ name "Before register allocation"
1432
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[16, 18[[24, 26[[34, 36[ "NoOptimization"
1433
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1434
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 8[[16, 17[[24, 25[ "NoSpillStore"
1435
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1436
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[16, 17[[24, 25[ "NoSpillStore"
1437
+ rsi|- fixed "[rsi|-]" rsi|- -1 [0, 6[[16, 17[[24, 25[ "NoSpillStore"
1438
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1439
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1440
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1441
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1442
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1443
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1444
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1445
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1446
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1447
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1448
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1449
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1450
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1451
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1452
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1453
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1454
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1455
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1456
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1457
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1458
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1459
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1460
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1461
+ v0|d DWORD "[v0|d]" v0|d rsi|- [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
1462
+ v1|d DWORD "[v1|d]" v1|d rdx|- [8, 32[8 MustHaveRegister 32 ShouldHaveRegister "NoSpillStore"
1463
+ v2|d DWORD "[v2|d]" v2|d rax|d [26, 29[26 MustHaveRegister 28 ShouldHaveRegister "NoSpillStore"
1464
+ v3|d DWORD "[v3|d]" v3|d rax|d [18, 21[18 MustHaveRegister 20 ShouldHaveRegister "NoSpillStore"
1465
+ v4|d DWORD "[v4|d]" v4|d v3|d [30, 32[32 ShouldHaveRegister "NoSpillStore"
1466
+ v5|d DWORD "[v5|d]" v5|d v1|d [32, 34[32 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1467
+ end_intervals
1468
+ begin_intervals
1469
+ name "After register allocation"
1470
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[16, 18[[24, 26[[34, 36[ "NoOptimization"
1471
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1472
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 8[[16, 17[[24, 25[ "NoSpillStore"
1473
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1474
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[16, 17[[24, 25[ "NoSpillStore"
1475
+ rsi|- fixed "[rsi|-]" rsi|- -1 [0, 6[[16, 17[[24, 25[ "NoSpillStore"
1476
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1477
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1478
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1479
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1480
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1481
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1482
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1483
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1484
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1485
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1486
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1487
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1488
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1489
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1490
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1491
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1492
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1493
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1494
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1495
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1496
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1497
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1498
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1499
+ v0|d DWORD "[rsi|d]" v0|d rsi|- [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
1500
+ v1|d DWORD "[rdx|d]" v1|d rdx|- [8, 14[8 MustHaveRegister "OneSpillStore"
1501
+ v2|d DWORD "[rax|d]" v2|d rax|d [26, 29[26 MustHaveRegister 28 ShouldHaveRegister "NoSpillStore"
1502
+ v3|d DWORD "[rax|d]" v3|d rax|d [18, 21[18 MustHaveRegister 20 ShouldHaveRegister "NoSpillStore"
1503
+ v4|d DWORD "[rax|d]" v4|d v3|d [30, 32[32 ShouldHaveRegister "NoSpillStore"
1504
+ v5|d DWORD "[rdx|d]" v5|d v1|d [32, 34[32 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1505
+ v6|d DWORD "[vstack:0|d]" v1|d v1|d [14, 15[ "OneSpillStore"
1506
+ v7|d DWORD "[vstack:0|d]" v1|d v1|d [15, 30[ "OneSpillStore"
1507
+ v8|d DWORD "[rdx|d]" v1|d v1|d [30, 32[32 ShouldHaveRegister "OneSpillStore"
1508
+ end_intervals
1509
+ begin_cfg
1510
+ name "After LinearScanRegisterAllocation"
1511
+ begin_block
1512
+ name "B0"
1513
+ from_bci -1
1514
+ to_bci -1
1515
+ predecessors
1516
+ successors "B1" "B2"
1517
+ xhandlers
1518
+ flags
1519
+ probability 4607182418800017408
1520
+ begin_IR
1521
+ LIR
1522
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1523
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1524
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1525
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1526
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1527
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1528
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1529
+ end_IR
1530
+ end_block
1531
+ begin_block
1532
+ name "B2"
1533
+ from_bci -1
1534
+ to_bci -1
1535
+ predecessors "B0"
1536
+ successors "B3"
1537
+ xhandlers
1538
+ flags
1539
+ probability 4602679318230693872
1540
+ begin_IR
1541
+ LIR
1542
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1543
+ nr -1 <|@ instruction v7|DWORD = STACKMOVE (input: v6|DWORD, ~backupSlot: vstack:1|QWORD) scratch: rax // MoveResolver resolve mapping <|@ <|@
1544
+ nr 16 <|@ st <@st|@live-base-pointers: []
1545
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1546
+ locals: - v1|DWORD -
1547
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1548
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1549
+ nr 20 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1550
+ end_IR
1551
+ end_block
1552
+ begin_block
1553
+ name "B3"
1554
+ from_bci -1
1555
+ to_bci -1
1556
+ predecessors "B2" "B1"
1557
+ successors
1558
+ xhandlers
1559
+ flags
1560
+ probability 4607182418800017408
1561
+ begin_IR
1562
+ LIR
1563
+ nr 30 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1564
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1565
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1566
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1567
+ end_IR
1568
+ end_block
1569
+ begin_block
1570
+ name "B1"
1571
+ from_bci -1
1572
+ to_bci -1
1573
+ predecessors "B0"
1574
+ successors "B3"
1575
+ xhandlers
1576
+ flags
1577
+ probability 4602677821056552993
1578
+ begin_IR
1579
+ LIR
1580
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1581
+ nr 24 <|@ st <@st|@live-base-pointers: []
1582
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1583
+ locals: - v1|DWORD -
1584
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1585
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1586
+ nr 28 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1587
+ end_IR
1588
+ end_block
1589
+ end_cfg
1590
+ begin_bytecodes
1591
+ 0: iload_0
1592
+ 1: ifeq 11
1593
+ 4: invokestatic #48 // opaqueCall:()int
1594
+ 7: istore_2
1595
+ 8: goto 15
1596
+ 11: invokestatic #48 // opaqueCall:()int
1597
+ 14: istore_2
1598
+ 15: iload_2
1599
+ 16: iload_1
1600
+ 17: iadd
1601
+ 18: ireturn
1602
+ <|@
1603
+ end_bytecodes
1604
+ begin_intervals
1605
+ name "After optimize spill position"
1606
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[16, 18[[24, 26[[34, 36[ "NoOptimization"
1607
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1608
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 8[[16, 17[[24, 25[ "NoSpillStore"
1609
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1610
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[16, 17[[24, 25[ "NoSpillStore"
1611
+ rsi|- fixed "[rsi|-]" rsi|- -1 [0, 6[[16, 17[[24, 25[ "NoSpillStore"
1612
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1613
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1614
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1615
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1616
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1617
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1618
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1619
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1620
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1621
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1622
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1623
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1624
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1625
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1626
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1627
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1628
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1629
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1630
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1631
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1632
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1633
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1634
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1635
+ v0|d DWORD "[rsi|d]" v0|d rsi|- [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
1636
+ v1|d DWORD "[rdx|d]" v1|d rdx|- [8, 14[8 MustHaveRegister "OneSpillStore"
1637
+ v2|d DWORD "[rax|d]" v2|d rax|d [26, 29[26 MustHaveRegister 28 ShouldHaveRegister "NoSpillStore"
1638
+ v3|d DWORD "[rax|d]" v3|d rax|d [18, 21[18 MustHaveRegister 20 ShouldHaveRegister "NoSpillStore"
1639
+ v4|d DWORD "[rax|d]" v4|d v3|d [30, 32[32 ShouldHaveRegister "NoSpillStore"
1640
+ v5|d DWORD "[rdx|d]" v5|d v1|d [32, 34[32 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1641
+ v6|d DWORD "[vstack:0|d]" v1|d v1|d [14, 15[ "OneSpillStore"
1642
+ v7|d DWORD "[vstack:0|d]" v1|d v1|d [15, 30[ "OneSpillStore"
1643
+ v8|d DWORD "[rdx|d]" v1|d v1|d [30, 32[32 ShouldHaveRegister "OneSpillStore"
1644
+ end_intervals
1645
+ begin_cfg
1646
+ name "After LinearScanOptimizeSpillPosition"
1647
+ begin_block
1648
+ name "B0"
1649
+ from_bci -1
1650
+ to_bci -1
1651
+ predecessors
1652
+ successors "B1" "B2"
1653
+ xhandlers
1654
+ flags
1655
+ probability 4607182418800017408
1656
+ begin_IR
1657
+ LIR
1658
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1659
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1660
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1661
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1662
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1663
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1664
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1665
+ end_IR
1666
+ end_block
1667
+ begin_block
1668
+ name "B2"
1669
+ from_bci -1
1670
+ to_bci -1
1671
+ predecessors "B0"
1672
+ successors "B3"
1673
+ xhandlers
1674
+ flags
1675
+ probability 4602679318230693872
1676
+ begin_IR
1677
+ LIR
1678
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1679
+ nr -1 <|@ instruction v7|DWORD = STACKMOVE (input: v6|DWORD, ~backupSlot: vstack:1|QWORD) scratch: rax // MoveResolver resolve mapping <|@ <|@
1680
+ nr 16 <|@ st <@st|@live-base-pointers: []
1681
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1682
+ locals: - v1|DWORD -
1683
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1684
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1685
+ nr 20 <|@ instruction JUMP ~[v3|DWORD] destination: B2 -> B3 <|@ <|@
1686
+ end_IR
1687
+ end_block
1688
+ begin_block
1689
+ name "B3"
1690
+ from_bci -1
1691
+ to_bci -1
1692
+ predecessors "B2" "B1"
1693
+ successors
1694
+ xhandlers
1695
+ flags
1696
+ probability 4607182418800017408
1697
+ begin_IR
1698
+ LIR
1699
+ nr 30 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1700
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1701
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1702
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1703
+ end_IR
1704
+ end_block
1705
+ begin_block
1706
+ name "B1"
1707
+ from_bci -1
1708
+ to_bci -1
1709
+ predecessors "B0"
1710
+ successors "B3"
1711
+ xhandlers
1712
+ flags
1713
+ probability 4602677821056552993
1714
+ begin_IR
1715
+ LIR
1716
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1717
+ nr 24 <|@ st <@st|@live-base-pointers: []
1718
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1719
+ locals: - v1|DWORD -
1720
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1721
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1722
+ nr 28 <|@ instruction JUMP ~[v2|DWORD] destination: B1 -> B3 <|@ <|@
1723
+ end_IR
1724
+ end_block
1725
+ end_cfg
1726
+ begin_bytecodes
1727
+ 0: iload_0
1728
+ 1: ifeq 11
1729
+ 4: invokestatic #48 // opaqueCall:()int
1730
+ 7: istore_2
1731
+ 8: goto 15
1732
+ 11: invokestatic #48 // opaqueCall:()int
1733
+ 14: istore_2
1734
+ 15: iload_2
1735
+ 16: iload_1
1736
+ 17: iadd
1737
+ 18: ireturn
1738
+ <|@
1739
+ end_bytecodes
1740
+ begin_intervals
1741
+ name "After resolve data flow"
1742
+ rax|d fixed "[rax|d]" rax|d v5|d [0, 1[[16, 18[[24, 26[[34, 36[ "NoOptimization"
1743
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1744
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 8[[16, 17[[24, 25[ "NoSpillStore"
1745
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1746
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[16, 17[[24, 25[ "NoSpillStore"
1747
+ rsi|- fixed "[rsi|-]" rsi|- -1 [0, 6[[16, 17[[24, 25[ "NoSpillStore"
1748
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1749
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1750
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1751
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1752
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1753
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1754
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1755
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1756
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1757
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1758
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1759
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1760
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1761
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1762
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1763
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1764
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1765
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1766
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1767
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1768
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1769
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1770
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[16, 17[[24, 25[ "NoDefinitionFound"
1771
+ v0|d DWORD "[rsi|d]" v0|d rsi|- [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
1772
+ v1|d DWORD "[rdx|d]" v1|d rdx|- [8, 14[8 MustHaveRegister "OneSpillStore"
1773
+ v2|d DWORD "[rax|d]" v2|d rax|d [26, 29[26 MustHaveRegister 28 ShouldHaveRegister "NoSpillStore"
1774
+ v3|d DWORD "[rax|d]" v3|d rax|d [18, 21[18 MustHaveRegister 20 ShouldHaveRegister "NoSpillStore"
1775
+ v4|d DWORD "[rax|d]" v4|d v3|d [30, 32[32 ShouldHaveRegister "NoSpillStore"
1776
+ v5|d DWORD "[rdx|d]" v5|d v1|d [32, 34[32 MustHaveRegister 34 ShouldHaveRegister "NoSpillStore"
1777
+ v6|d DWORD "[vstack:0|d]" v1|d v1|d [14, 15[ "OneSpillStore"
1778
+ v7|d DWORD "[vstack:0|d]" v1|d v1|d [15, 30[ "OneSpillStore"
1779
+ v8|d DWORD "[rdx|d]" v1|d v1|d [30, 32[32 ShouldHaveRegister "OneSpillStore"
1780
+ end_intervals
1781
+ begin_cfg
1782
+ name "After SSALinearScanResolveDataFlow"
1783
+ begin_block
1784
+ name "B0"
1785
+ from_bci -1
1786
+ to_bci -1
1787
+ predecessors
1788
+ successors "B1" "B2"
1789
+ xhandlers
1790
+ flags
1791
+ probability 4607182418800017408
1792
+ begin_IR
1793
+ LIR
1794
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1795
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1796
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1797
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1798
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1799
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1800
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1801
+ end_IR
1802
+ end_block
1803
+ begin_block
1804
+ name "B2"
1805
+ from_bci -1
1806
+ to_bci -1
1807
+ predecessors "B0"
1808
+ successors "B3"
1809
+ xhandlers
1810
+ flags
1811
+ probability 4602679318230693872
1812
+ begin_IR
1813
+ LIR
1814
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1815
+ nr -1 <|@ instruction v6|DWORD = MOVE v1|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1816
+ nr -1 <|@ instruction v7|DWORD = STACKMOVE (input: v6|DWORD, ~backupSlot: vstack:1|QWORD) scratch: rax // MoveResolver resolve mapping <|@ <|@
1817
+ nr 16 <|@ st <@st|@live-base-pointers: []
1818
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1819
+ locals: - v1|DWORD -
1820
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1821
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1822
+ nr -1 <|@ instruction v8|DWORD = MOVE v7|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1823
+ nr 20 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
1824
+ end_IR
1825
+ end_block
1826
+ begin_block
1827
+ name "B3"
1828
+ from_bci -1
1829
+ to_bci -1
1830
+ predecessors "B2" "B1"
1831
+ successors
1832
+ xhandlers
1833
+ flags
1834
+ probability 4607182418800017408
1835
+ begin_IR
1836
+ LIR
1837
+ nr 30 <|@ instruction [v4|DWORD] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1838
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1839
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1840
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1841
+ end_IR
1842
+ end_block
1843
+ begin_block
1844
+ name "B1"
1845
+ from_bci -1
1846
+ to_bci -1
1847
+ predecessors "B0"
1848
+ successors "B3"
1849
+ xhandlers
1850
+ flags
1851
+ probability 4602677821056552993
1852
+ begin_IR
1853
+ LIR
1854
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1855
+ nr -1 <|@ instruction v7|DWORD = MOVE v1|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1856
+ nr 24 <|@ st <@st|@live-base-pointers: []
1857
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1858
+ locals: - v1|DWORD -
1859
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1860
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1861
+ nr -1 <|@ instruction v8|DWORD = MOVE v7|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1862
+ nr 28 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
1863
+ end_IR
1864
+ end_block
1865
+ end_cfg
1866
+ begin_bytecodes
1867
+ 0: iload_0
1868
+ 1: ifeq 11
1869
+ 4: invokestatic #48 // opaqueCall:()int
1870
+ 7: istore_2
1871
+ 8: goto 15
1872
+ 11: invokestatic #48 // opaqueCall:()int
1873
+ 14: istore_2
1874
+ 15: iload_2
1875
+ 16: iload_1
1876
+ 17: iadd
1877
+ 18: ireturn
1878
+ <|@
1879
+ end_bytecodes
1880
+ begin_cfg
1881
+ name "After SSALinearScanEliminateSpillMove"
1882
+ begin_block
1883
+ name "B0"
1884
+ from_bci -1
1885
+ to_bci -1
1886
+ predecessors
1887
+ successors "B1" "B2"
1888
+ xhandlers
1889
+ flags
1890
+ probability 4607182418800017408
1891
+ begin_IR
1892
+ LIR
1893
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1894
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1895
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1896
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
1897
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
1898
+ nr 10 <|@ instruction TEST (x: v0|DWORD, y: v0|DWORD) size: DWORD <|@ <|@
1899
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1900
+ end_IR
1901
+ end_block
1902
+ begin_block
1903
+ name "B2"
1904
+ from_bci -1
1905
+ to_bci -1
1906
+ predecessors "B0"
1907
+ successors "B3"
1908
+ xhandlers
1909
+ flags
1910
+ probability 4602679318230693872
1911
+ begin_IR
1912
+ LIR
1913
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1914
+ nr -1 <|@ instruction v6|DWORD = MOVE v1|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1915
+ nr -1 <|@ instruction v7|DWORD = STACKMOVE (input: v6|DWORD, ~backupSlot: vstack:1|QWORD) scratch: rax // MoveResolver resolve mapping <|@ <|@
1916
+ nr 16 <|@ st <@st|@live-base-pointers: []
1917
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
1918
+ locals: - v1|DWORD -
1919
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
1920
+ nr 18 <|@ instruction v3|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1921
+ nr -1 <|@ instruction v8|DWORD = MOVE v7|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1922
+ nr 20 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
1923
+ end_IR
1924
+ end_block
1925
+ begin_block
1926
+ name "B3"
1927
+ from_bci -1
1928
+ to_bci -1
1929
+ predecessors "B2" "B1"
1930
+ successors
1931
+ xhandlers
1932
+ flags
1933
+ probability 4607182418800017408
1934
+ begin_IR
1935
+ LIR
1936
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
1937
+ nr 32 <|@ instruction v5|DWORD = ADD (x: v1|DWORD, y: v4|DWORD) size: DWORD <|@ <|@
1938
+ nr 34 <|@ instruction rax|DWORD = MOVE v5|DWORD moveKind: DWORD <|@ <|@
1939
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1940
+ end_IR
1941
+ end_block
1942
+ begin_block
1943
+ name "B1"
1944
+ from_bci -1
1945
+ to_bci -1
1946
+ predecessors "B0"
1947
+ successors "B3"
1948
+ xhandlers
1949
+ flags
1950
+ probability 4602677821056552993
1951
+ begin_IR
1952
+ LIR
1953
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1954
+ nr -1 <|@ instruction v7|DWORD = MOVE v1|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1955
+ nr 24 <|@ st <@st|@live-base-pointers: []
1956
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
1957
+ locals: - v1|DWORD -
1958
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
1959
+ nr 26 <|@ instruction v2|DWORD = MOVE rax|DWORD moveKind: DWORD <|@ <|@
1960
+ nr -1 <|@ instruction v8|DWORD = MOVE v7|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
1961
+ nr 28 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
1962
+ end_IR
1963
+ end_block
1964
+ end_cfg
1965
+ begin_bytecodes
1966
+ 0: iload_0
1967
+ 1: ifeq 11
1968
+ 4: invokestatic #48 // opaqueCall:()int
1969
+ 7: istore_2
1970
+ 8: goto 15
1971
+ 11: invokestatic #48 // opaqueCall:()int
1972
+ 14: istore_2
1973
+ 15: iload_2
1974
+ 16: iload_1
1975
+ 17: iadd
1976
+ 18: ireturn
1977
+ <|@
1978
+ end_bytecodes
1979
+ begin_cfg
1980
+ name "After LinearScanAssignLocations"
1981
+ begin_block
1982
+ name "B0"
1983
+ from_bci -1
1984
+ to_bci -1
1985
+ predecessors
1986
+ successors "B1" "B2"
1987
+ xhandlers
1988
+ flags
1989
+ probability 4607182418800017408
1990
+ begin_IR
1991
+ LIR
1992
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1993
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1994
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
1995
+ nr 10 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
1996
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
1997
+ end_IR
1998
+ end_block
1999
+ begin_block
2000
+ name "B2"
2001
+ from_bci -1
2002
+ to_bci -1
2003
+ predecessors "B0"
2004
+ successors "B3"
2005
+ xhandlers
2006
+ flags
2007
+ probability 4602679318230693872
2008
+ begin_IR
2009
+ LIR
2010
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2011
+ nr -1 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2012
+ nr 16 <|@ st <@st|@live-base-pointers: []
2013
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2014
+ locals: - vstack:0|DWORD -
2015
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2016
+ nr -1 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2017
+ nr 20 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2018
+ end_IR
2019
+ end_block
2020
+ begin_block
2021
+ name "B3"
2022
+ from_bci -1
2023
+ to_bci -1
2024
+ predecessors "B2" "B1"
2025
+ successors
2026
+ xhandlers
2027
+ flags
2028
+ probability 4607182418800017408
2029
+ begin_IR
2030
+ LIR
2031
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2032
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2033
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2034
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2035
+ end_IR
2036
+ end_block
2037
+ begin_block
2038
+ name "B1"
2039
+ from_bci -1
2040
+ to_bci -1
2041
+ predecessors "B0"
2042
+ successors "B3"
2043
+ xhandlers
2044
+ flags
2045
+ probability 4602677821056552993
2046
+ begin_IR
2047
+ LIR
2048
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2049
+ nr -1 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2050
+ nr 24 <|@ st <@st|@live-base-pointers: []
2051
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2052
+ locals: - vstack:0|DWORD -
2053
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2054
+ nr -1 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2055
+ nr 28 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2056
+ end_IR
2057
+ end_block
2058
+ end_cfg
2059
+ begin_bytecodes
2060
+ 0: iload_0
2061
+ 1: ifeq 11
2062
+ 4: invokestatic #48 // opaqueCall:()int
2063
+ 7: istore_2
2064
+ 8: goto 15
2065
+ 11: invokestatic #48 // opaqueCall:()int
2066
+ 14: istore_2
2067
+ 15: iload_2
2068
+ 16: iload_1
2069
+ 17: iadd
2070
+ 18: ireturn
2071
+ <|@
2072
+ end_bytecodes
2073
+ begin_cfg
2074
+ name "After LinearScan"
2075
+ begin_block
2076
+ name "B0"
2077
+ from_bci -1
2078
+ to_bci -1
2079
+ predecessors
2080
+ successors "B1" "B2"
2081
+ xhandlers
2082
+ flags
2083
+ probability 4607182418800017408
2084
+ begin_IR
2085
+ LIR
2086
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2087
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2088
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2089
+ nr 10 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2090
+ nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2091
+ end_IR
2092
+ end_block
2093
+ begin_block
2094
+ name "B2"
2095
+ from_bci -1
2096
+ to_bci -1
2097
+ predecessors "B0"
2098
+ successors "B3"
2099
+ xhandlers
2100
+ flags
2101
+ probability 4602679318230693872
2102
+ begin_IR
2103
+ LIR
2104
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2105
+ nr -1 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2106
+ nr 16 <|@ st <@st|@live-base-pointers: []
2107
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2108
+ locals: - vstack:0|DWORD -
2109
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2110
+ nr -1 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2111
+ nr 20 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2112
+ end_IR
2113
+ end_block
2114
+ begin_block
2115
+ name "B3"
2116
+ from_bci -1
2117
+ to_bci -1
2118
+ predecessors "B2" "B1"
2119
+ successors
2120
+ xhandlers
2121
+ flags
2122
+ probability 4607182418800017408
2123
+ begin_IR
2124
+ LIR
2125
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2126
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2127
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2128
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2129
+ end_IR
2130
+ end_block
2131
+ begin_block
2132
+ name "B1"
2133
+ from_bci -1
2134
+ to_bci -1
2135
+ predecessors "B0"
2136
+ successors "B3"
2137
+ xhandlers
2138
+ flags
2139
+ probability 4602677821056552993
2140
+ begin_IR
2141
+ LIR
2142
+ nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2143
+ nr -1 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2144
+ nr 24 <|@ st <@st|@live-base-pointers: []
2145
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2146
+ locals: - vstack:0|DWORD -
2147
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2148
+ nr -1 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2149
+ nr 28 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2150
+ end_IR
2151
+ end_block
2152
+ end_cfg
2153
+ begin_bytecodes
2154
+ 0: iload_0
2155
+ 1: ifeq 11
2156
+ 4: invokestatic #48 // opaqueCall:()int
2157
+ 7: istore_2
2158
+ 8: goto 15
2159
+ 11: invokestatic #48 // opaqueCall:()int
2160
+ 14: istore_2
2161
+ 15: iload_2
2162
+ 16: iload_1
2163
+ 17: iadd
2164
+ 18: ireturn
2165
+ <|@
2166
+ end_bytecodes
2167
+ begin_cfg
2168
+ name "After StackSlot numbering"
2169
+ begin_block
2170
+ name "B0"
2171
+ from_bci -1
2172
+ to_bci -1
2173
+ predecessors
2174
+ successors "B1" "B2"
2175
+ xhandlers
2176
+ flags
2177
+ probability 4607182418800017408
2178
+ begin_IR
2179
+ LIR
2180
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2181
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2182
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2183
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2184
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2185
+ end_IR
2186
+ end_block
2187
+ begin_block
2188
+ name "B2"
2189
+ from_bci -1
2190
+ to_bci -1
2191
+ predecessors "B0"
2192
+ successors "B3"
2193
+ xhandlers
2194
+ flags
2195
+ probability 4602679318230693872
2196
+ begin_IR
2197
+ LIR
2198
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2199
+ nr 22 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2200
+ nr 24 <|@ st <@st|@live-base-pointers: []
2201
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2202
+ locals: - vstack:0|DWORD -
2203
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2204
+ nr 26 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2205
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2206
+ end_IR
2207
+ end_block
2208
+ begin_block
2209
+ name "B3"
2210
+ from_bci -1
2211
+ to_bci -1
2212
+ predecessors "B2" "B1"
2213
+ successors
2214
+ xhandlers
2215
+ flags
2216
+ probability 4607182418800017408
2217
+ begin_IR
2218
+ LIR
2219
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2220
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2221
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2222
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2223
+ end_IR
2224
+ end_block
2225
+ begin_block
2226
+ name "B1"
2227
+ from_bci -1
2228
+ to_bci -1
2229
+ predecessors "B0"
2230
+ successors "B3"
2231
+ xhandlers
2232
+ flags
2233
+ probability 4602677821056552993
2234
+ begin_IR
2235
+ LIR
2236
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2237
+ nr 12 <|@ instruction vstack:0|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2238
+ nr 14 <|@ st <@st|@live-base-pointers: []
2239
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2240
+ locals: - vstack:0|DWORD -
2241
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2242
+ nr 16 <|@ instruction rdx|DWORD = MOVE vstack:0|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2243
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2244
+ end_IR
2245
+ end_block
2246
+ end_cfg
2247
+ begin_bytecodes
2248
+ 0: iload_0
2249
+ 1: ifeq 11
2250
+ 4: invokestatic #48 // opaqueCall:()int
2251
+ 7: istore_2
2252
+ 8: goto 15
2253
+ 11: invokestatic #48 // opaqueCall:()int
2254
+ 14: istore_2
2255
+ 15: iload_2
2256
+ 16: iload_1
2257
+ 17: iadd
2258
+ 18: ireturn
2259
+ <|@
2260
+ end_bytecodes
2261
+ begin_intervals
2262
+ name "Before stack slot allocation"
2263
+ vstack:0|d DWORD "[vstack:0|d]" vstack:0|d -1 [12, 26[ "NOT_SUPPORTED"
2264
+ end_intervals
2265
+ begin_intervals
2266
+ name "After stack slot allocation"
2267
+ vstack:0|d DWORD "[stack:28|d]" vstack:0|d -1 [12, 26[ "NOT_SUPPORTED"
2268
+ end_intervals
2269
+ begin_cfg
2270
+ name "After LSStackSlotAllocator"
2271
+ begin_block
2272
+ name "B0"
2273
+ from_bci -1
2274
+ to_bci -1
2275
+ predecessors
2276
+ successors "B1" "B2"
2277
+ xhandlers
2278
+ flags
2279
+ probability 4607182418800017408
2280
+ begin_IR
2281
+ LIR
2282
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2283
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2284
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2285
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2286
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2287
+ end_IR
2288
+ end_block
2289
+ begin_block
2290
+ name "B2"
2291
+ from_bci -1
2292
+ to_bci -1
2293
+ predecessors "B0"
2294
+ successors "B3"
2295
+ xhandlers
2296
+ flags
2297
+ probability 4602679318230693872
2298
+ begin_IR
2299
+ LIR
2300
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2301
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2302
+ nr 24 <|@ st <@st|@live-base-pointers: []
2303
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2304
+ locals: - stack:28|DWORD -
2305
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2306
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2307
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2308
+ end_IR
2309
+ end_block
2310
+ begin_block
2311
+ name "B3"
2312
+ from_bci -1
2313
+ to_bci -1
2314
+ predecessors "B2" "B1"
2315
+ successors
2316
+ xhandlers
2317
+ flags
2318
+ probability 4607182418800017408
2319
+ begin_IR
2320
+ LIR
2321
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2322
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2323
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2324
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2325
+ end_IR
2326
+ end_block
2327
+ begin_block
2328
+ name "B1"
2329
+ from_bci -1
2330
+ to_bci -1
2331
+ predecessors "B0"
2332
+ successors "B3"
2333
+ xhandlers
2334
+ flags
2335
+ probability 4602677821056552993
2336
+ begin_IR
2337
+ LIR
2338
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2339
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2340
+ nr 14 <|@ st <@st|@live-base-pointers: []
2341
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2342
+ locals: - stack:28|DWORD -
2343
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2344
+ nr 16 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2345
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2346
+ end_IR
2347
+ end_block
2348
+ end_cfg
2349
+ begin_bytecodes
2350
+ 0: iload_0
2351
+ 1: ifeq 11
2352
+ 4: invokestatic #48 // opaqueCall:()int
2353
+ 7: istore_2
2354
+ 8: goto 15
2355
+ 11: invokestatic #48 // opaqueCall:()int
2356
+ 14: istore_2
2357
+ 15: iload_2
2358
+ 16: iload_1
2359
+ 17: iadd
2360
+ 18: ireturn
2361
+ <|@
2362
+ end_bytecodes
2363
+ begin_cfg
2364
+ name "After LocationMarker"
2365
+ begin_block
2366
+ name "B0"
2367
+ from_bci -1
2368
+ to_bci -1
2369
+ predecessors
2370
+ successors "B1" "B2"
2371
+ xhandlers
2372
+ flags
2373
+ probability 4607182418800017408
2374
+ begin_IR
2375
+ LIR
2376
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2377
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2378
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2379
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2380
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2381
+ end_IR
2382
+ end_block
2383
+ begin_block
2384
+ name "B2"
2385
+ from_bci -1
2386
+ to_bci -1
2387
+ predecessors "B0"
2388
+ successors "B3"
2389
+ xhandlers
2390
+ flags
2391
+ probability 4602679318230693872
2392
+ begin_IR
2393
+ LIR
2394
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2395
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2396
+ nr 24 <|@ st <@st|@reference-map: []
2397
+ live-base-pointers: []
2398
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2399
+ locals: - stack:28|DWORD -
2400
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2401
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2402
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2403
+ end_IR
2404
+ end_block
2405
+ begin_block
2406
+ name "B3"
2407
+ from_bci -1
2408
+ to_bci -1
2409
+ predecessors "B2" "B1"
2410
+ successors
2411
+ xhandlers
2412
+ flags
2413
+ probability 4607182418800017408
2414
+ begin_IR
2415
+ LIR
2416
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2417
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2418
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2419
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2420
+ end_IR
2421
+ end_block
2422
+ begin_block
2423
+ name "B1"
2424
+ from_bci -1
2425
+ to_bci -1
2426
+ predecessors "B0"
2427
+ successors "B3"
2428
+ xhandlers
2429
+ flags
2430
+ probability 4602677821056552993
2431
+ begin_IR
2432
+ LIR
2433
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2434
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2435
+ nr 14 <|@ st <@st|@reference-map: []
2436
+ live-base-pointers: []
2437
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2438
+ locals: - stack:28|DWORD -
2439
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2440
+ nr 16 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2441
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2442
+ end_IR
2443
+ end_block
2444
+ end_cfg
2445
+ begin_bytecodes
2446
+ 0: iload_0
2447
+ 1: ifeq 11
2448
+ 4: invokestatic #48 // opaqueCall:()int
2449
+ 7: istore_2
2450
+ 8: goto 15
2451
+ 11: invokestatic #48 // opaqueCall:()int
2452
+ 14: istore_2
2453
+ 15: iload_2
2454
+ 16: iload_1
2455
+ 17: iadd
2456
+ 18: ireturn
2457
+ <|@
2458
+ end_bytecodes
2459
+ begin_cfg
2460
+ name "After AllocationStage"
2461
+ begin_block
2462
+ name "B0"
2463
+ from_bci -1
2464
+ to_bci -1
2465
+ predecessors
2466
+ successors "B1" "B2"
2467
+ xhandlers
2468
+ flags
2469
+ probability 4607182418800017408
2470
+ begin_IR
2471
+ LIR
2472
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2473
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2474
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2475
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2476
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2477
+ end_IR
2478
+ end_block
2479
+ begin_block
2480
+ name "B2"
2481
+ from_bci -1
2482
+ to_bci -1
2483
+ predecessors "B0"
2484
+ successors "B3"
2485
+ xhandlers
2486
+ flags
2487
+ probability 4602679318230693872
2488
+ begin_IR
2489
+ LIR
2490
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2491
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2492
+ nr 24 <|@ st <@st|@reference-map: []
2493
+ live-base-pointers: []
2494
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2495
+ locals: - stack:28|DWORD -
2496
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2497
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2498
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2499
+ end_IR
2500
+ end_block
2501
+ begin_block
2502
+ name "B3"
2503
+ from_bci -1
2504
+ to_bci -1
2505
+ predecessors "B2" "B1"
2506
+ successors
2507
+ xhandlers
2508
+ flags
2509
+ probability 4607182418800017408
2510
+ begin_IR
2511
+ LIR
2512
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2513
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2514
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2515
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2516
+ end_IR
2517
+ end_block
2518
+ begin_block
2519
+ name "B1"
2520
+ from_bci -1
2521
+ to_bci -1
2522
+ predecessors "B0"
2523
+ successors "B3"
2524
+ xhandlers
2525
+ flags
2526
+ probability 4602677821056552993
2527
+ begin_IR
2528
+ LIR
2529
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2530
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2531
+ nr 14 <|@ st <@st|@reference-map: []
2532
+ live-base-pointers: []
2533
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2534
+ locals: - stack:28|DWORD -
2535
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2536
+ nr 16 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2537
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2538
+ end_IR
2539
+ end_block
2540
+ end_cfg
2541
+ begin_bytecodes
2542
+ 0: iload_0
2543
+ 1: ifeq 11
2544
+ 4: invokestatic #48 // opaqueCall:()int
2545
+ 7: istore_2
2546
+ 8: goto 15
2547
+ 11: invokestatic #48 // opaqueCall:()int
2548
+ 14: istore_2
2549
+ 15: iload_2
2550
+ 16: iload_1
2551
+ 17: iadd
2552
+ 18: ireturn
2553
+ <|@
2554
+ end_bytecodes
2555
+ begin_cfg
2556
+ name "After EdgeMoveOptimizer"
2557
+ begin_block
2558
+ name "B0"
2559
+ from_bci -1
2560
+ to_bci -1
2561
+ predecessors
2562
+ successors "B1" "B2"
2563
+ xhandlers
2564
+ flags
2565
+ probability 4607182418800017408
2566
+ begin_IR
2567
+ LIR
2568
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2569
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2570
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2571
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2572
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2573
+ end_IR
2574
+ end_block
2575
+ begin_block
2576
+ name "B2"
2577
+ from_bci -1
2578
+ to_bci -1
2579
+ predecessors "B0"
2580
+ successors "B3"
2581
+ xhandlers
2582
+ flags
2583
+ probability 4602679318230693872
2584
+ begin_IR
2585
+ LIR
2586
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2587
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2588
+ nr 24 <|@ st <@st|@reference-map: []
2589
+ live-base-pointers: []
2590
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2591
+ locals: - stack:28|DWORD -
2592
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2593
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2594
+ end_IR
2595
+ end_block
2596
+ begin_block
2597
+ name "B3"
2598
+ from_bci -1
2599
+ to_bci -1
2600
+ predecessors "B2" "B1"
2601
+ successors
2602
+ xhandlers
2603
+ flags
2604
+ probability 4607182418800017408
2605
+ begin_IR
2606
+ LIR
2607
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2608
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2609
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2610
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2611
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2612
+ end_IR
2613
+ end_block
2614
+ begin_block
2615
+ name "B1"
2616
+ from_bci -1
2617
+ to_bci -1
2618
+ predecessors "B0"
2619
+ successors "B3"
2620
+ xhandlers
2621
+ flags
2622
+ probability 4602677821056552993
2623
+ begin_IR
2624
+ LIR
2625
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2626
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2627
+ nr 14 <|@ st <@st|@reference-map: []
2628
+ live-base-pointers: []
2629
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2630
+ locals: - stack:28|DWORD -
2631
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2632
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2633
+ end_IR
2634
+ end_block
2635
+ end_cfg
2636
+ begin_bytecodes
2637
+ 0: iload_0
2638
+ 1: ifeq 11
2639
+ 4: invokestatic #48 // opaqueCall:()int
2640
+ 7: istore_2
2641
+ 8: goto 15
2642
+ 11: invokestatic #48 // opaqueCall:()int
2643
+ 14: istore_2
2644
+ 15: iload_2
2645
+ 16: iload_1
2646
+ 17: iadd
2647
+ 18: ireturn
2648
+ <|@
2649
+ end_bytecodes
2650
+ begin_cfg
2651
+ name "After ControlFlowOptimizer"
2652
+ begin_block
2653
+ name "B0"
2654
+ from_bci -1
2655
+ to_bci -1
2656
+ predecessors
2657
+ successors "B1" "B2"
2658
+ xhandlers
2659
+ flags
2660
+ probability 4607182418800017408
2661
+ begin_IR
2662
+ LIR
2663
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2664
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2665
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2666
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2667
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2668
+ end_IR
2669
+ end_block
2670
+ begin_block
2671
+ name "B2"
2672
+ from_bci -1
2673
+ to_bci -1
2674
+ predecessors "B0"
2675
+ successors "B3"
2676
+ xhandlers
2677
+ flags
2678
+ probability 4602679318230693872
2679
+ begin_IR
2680
+ LIR
2681
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2682
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2683
+ nr 24 <|@ st <@st|@reference-map: []
2684
+ live-base-pointers: []
2685
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2686
+ locals: - stack:28|DWORD -
2687
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2688
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2689
+ end_IR
2690
+ end_block
2691
+ begin_block
2692
+ name "B3"
2693
+ from_bci -1
2694
+ to_bci -1
2695
+ predecessors "B2" "B1"
2696
+ successors
2697
+ xhandlers
2698
+ flags
2699
+ probability 4607182418800017408
2700
+ begin_IR
2701
+ LIR
2702
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2703
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2704
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2705
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2706
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2707
+ end_IR
2708
+ end_block
2709
+ begin_block
2710
+ name "B1"
2711
+ from_bci -1
2712
+ to_bci -1
2713
+ predecessors "B0"
2714
+ successors "B3"
2715
+ xhandlers
2716
+ flags
2717
+ probability 4602677821056552993
2718
+ begin_IR
2719
+ LIR
2720
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2721
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2722
+ nr 14 <|@ st <@st|@reference-map: []
2723
+ live-base-pointers: []
2724
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2725
+ locals: - stack:28|DWORD -
2726
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2727
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2728
+ end_IR
2729
+ end_block
2730
+ end_cfg
2731
+ begin_bytecodes
2732
+ 0: iload_0
2733
+ 1: ifeq 11
2734
+ 4: invokestatic #48 // opaqueCall:()int
2735
+ 7: istore_2
2736
+ 8: goto 15
2737
+ 11: invokestatic #48 // opaqueCall:()int
2738
+ 14: istore_2
2739
+ 15: iload_2
2740
+ 16: iload_1
2741
+ 17: iadd
2742
+ 18: ireturn
2743
+ <|@
2744
+ end_bytecodes
2745
+ begin_cfg
2746
+ name "After RedundantMoveElimination"
2747
+ begin_block
2748
+ name "B0"
2749
+ from_bci -1
2750
+ to_bci -1
2751
+ predecessors
2752
+ successors "B1" "B2"
2753
+ xhandlers
2754
+ flags
2755
+ probability 4607182418800017408
2756
+ begin_IR
2757
+ LIR
2758
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2759
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2760
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2761
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2762
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2763
+ end_IR
2764
+ end_block
2765
+ begin_block
2766
+ name "B2"
2767
+ from_bci -1
2768
+ to_bci -1
2769
+ predecessors "B0"
2770
+ successors "B3"
2771
+ xhandlers
2772
+ flags
2773
+ probability 4602679318230693872
2774
+ begin_IR
2775
+ LIR
2776
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2777
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2778
+ nr 24 <|@ st <@st|@reference-map: []
2779
+ live-base-pointers: []
2780
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2781
+ locals: - stack:28|DWORD -
2782
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2783
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2784
+ end_IR
2785
+ end_block
2786
+ begin_block
2787
+ name "B3"
2788
+ from_bci -1
2789
+ to_bci -1
2790
+ predecessors "B2" "B1"
2791
+ successors
2792
+ xhandlers
2793
+ flags
2794
+ probability 4607182418800017408
2795
+ begin_IR
2796
+ LIR
2797
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2798
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2799
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2800
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2801
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2802
+ end_IR
2803
+ end_block
2804
+ begin_block
2805
+ name "B1"
2806
+ from_bci -1
2807
+ to_bci -1
2808
+ predecessors "B0"
2809
+ successors "B3"
2810
+ xhandlers
2811
+ flags
2812
+ probability 4602677821056552993
2813
+ begin_IR
2814
+ LIR
2815
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2816
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2817
+ nr 14 <|@ st <@st|@reference-map: []
2818
+ live-base-pointers: []
2819
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2820
+ locals: - stack:28|DWORD -
2821
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2822
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2823
+ end_IR
2824
+ end_block
2825
+ end_cfg
2826
+ begin_bytecodes
2827
+ 0: iload_0
2828
+ 1: ifeq 11
2829
+ 4: invokestatic #48 // opaqueCall:()int
2830
+ 7: istore_2
2831
+ 8: goto 15
2832
+ 11: invokestatic #48 // opaqueCall:()int
2833
+ 14: istore_2
2834
+ 15: iload_2
2835
+ 16: iload_1
2836
+ 17: iadd
2837
+ 18: ireturn
2838
+ <|@
2839
+ end_bytecodes
2840
+ begin_cfg
2841
+ name "After NullCheckOptimizer"
2842
+ begin_block
2843
+ name "B0"
2844
+ from_bci -1
2845
+ to_bci -1
2846
+ predecessors
2847
+ successors "B1" "B2"
2848
+ xhandlers
2849
+ flags
2850
+ probability 4607182418800017408
2851
+ begin_IR
2852
+ LIR
2853
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2854
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2855
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2856
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2857
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2858
+ end_IR
2859
+ end_block
2860
+ begin_block
2861
+ name "B2"
2862
+ from_bci -1
2863
+ to_bci -1
2864
+ predecessors "B0"
2865
+ successors "B3"
2866
+ xhandlers
2867
+ flags
2868
+ probability 4602679318230693872
2869
+ begin_IR
2870
+ LIR
2871
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2872
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2873
+ nr 24 <|@ st <@st|@reference-map: []
2874
+ live-base-pointers: []
2875
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2876
+ locals: - stack:28|DWORD -
2877
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2878
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2879
+ end_IR
2880
+ end_block
2881
+ begin_block
2882
+ name "B3"
2883
+ from_bci -1
2884
+ to_bci -1
2885
+ predecessors "B2" "B1"
2886
+ successors
2887
+ xhandlers
2888
+ flags
2889
+ probability 4607182418800017408
2890
+ begin_IR
2891
+ LIR
2892
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2893
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2894
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2895
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2896
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2897
+ end_IR
2898
+ end_block
2899
+ begin_block
2900
+ name "B1"
2901
+ from_bci -1
2902
+ to_bci -1
2903
+ predecessors "B0"
2904
+ successors "B3"
2905
+ xhandlers
2906
+ flags
2907
+ probability 4602677821056552993
2908
+ begin_IR
2909
+ LIR
2910
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2911
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2912
+ nr 14 <|@ st <@st|@reference-map: []
2913
+ live-base-pointers: []
2914
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
2915
+ locals: - stack:28|DWORD -
2916
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
2917
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
2918
+ end_IR
2919
+ end_block
2920
+ end_cfg
2921
+ begin_bytecodes
2922
+ 0: iload_0
2923
+ 1: ifeq 11
2924
+ 4: invokestatic #48 // opaqueCall:()int
2925
+ 7: istore_2
2926
+ 8: goto 15
2927
+ 11: invokestatic #48 // opaqueCall:()int
2928
+ 14: istore_2
2929
+ 15: iload_2
2930
+ 16: iload_1
2931
+ 17: iadd
2932
+ 18: ireturn
2933
+ <|@
2934
+ end_bytecodes
2935
+ begin_cfg
2936
+ name "After StackMoveOptimization"
2937
+ begin_block
2938
+ name "B0"
2939
+ from_bci -1
2940
+ to_bci -1
2941
+ predecessors
2942
+ successors "B1" "B2"
2943
+ xhandlers
2944
+ flags
2945
+ probability 4607182418800017408
2946
+ begin_IR
2947
+ LIR
2948
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2949
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2950
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
2951
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
2952
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
2953
+ end_IR
2954
+ end_block
2955
+ begin_block
2956
+ name "B2"
2957
+ from_bci -1
2958
+ to_bci -1
2959
+ predecessors "B0"
2960
+ successors "B3"
2961
+ xhandlers
2962
+ flags
2963
+ probability 4602679318230693872
2964
+ begin_IR
2965
+ LIR
2966
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2967
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2968
+ nr 24 <|@ st <@st|@reference-map: []
2969
+ live-base-pointers: []
2970
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
2971
+ locals: - stack:28|DWORD -
2972
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
2973
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
2974
+ end_IR
2975
+ end_block
2976
+ begin_block
2977
+ name "B3"
2978
+ from_bci -1
2979
+ to_bci -1
2980
+ predecessors "B2" "B1"
2981
+ successors
2982
+ xhandlers
2983
+ flags
2984
+ probability 4607182418800017408
2985
+ begin_IR
2986
+ LIR
2987
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
2988
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
2989
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
2990
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
2991
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
2992
+ end_IR
2993
+ end_block
2994
+ begin_block
2995
+ name "B1"
2996
+ from_bci -1
2997
+ to_bci -1
2998
+ predecessors "B0"
2999
+ successors "B3"
3000
+ xhandlers
3001
+ flags
3002
+ probability 4602677821056552993
3003
+ begin_IR
3004
+ LIR
3005
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3006
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
3007
+ nr 14 <|@ st <@st|@reference-map: []
3008
+ live-base-pointers: []
3009
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
3010
+ locals: - stack:28|DWORD -
3011
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
3012
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3013
+ end_IR
3014
+ end_block
3015
+ end_cfg
3016
+ begin_bytecodes
3017
+ 0: iload_0
3018
+ 1: ifeq 11
3019
+ 4: invokestatic #48 // opaqueCall:()int
3020
+ 7: istore_2
3021
+ 8: goto 15
3022
+ 11: invokestatic #48 // opaqueCall:()int
3023
+ 14: istore_2
3024
+ 15: iload_2
3025
+ 16: iload_1
3026
+ 17: iadd
3027
+ 18: ireturn
3028
+ <|@
3029
+ end_bytecodes
3030
+ begin_cfg
3031
+ name "After PostAllocationOptimizationStage"
3032
+ begin_block
3033
+ name "B0"
3034
+ from_bci -1
3035
+ to_bci -1
3036
+ predecessors
3037
+ successors "B1" "B2"
3038
+ xhandlers
3039
+ flags
3040
+ probability 4607182418800017408
3041
+ begin_IR
3042
+ LIR
3043
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3044
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3045
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <|@ <|@
3046
+ nr 6 <|@ instruction TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <|@ <|@
3047
+ nr 8 <|@ instruction BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
3048
+ end_IR
3049
+ end_block
3050
+ begin_block
3051
+ name "B2"
3052
+ from_bci -1
3053
+ to_bci -1
3054
+ predecessors "B0"
3055
+ successors "B3"
3056
+ xhandlers
3057
+ flags
3058
+ probability 4602679318230693872
3059
+ begin_IR
3060
+ LIR
3061
+ nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3062
+ nr 22 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
3063
+ nr 24 <|@ st <@st|@reference-map: []
3064
+ live-base-pointers: []
3065
+ JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4]
3066
+ locals: - stack:28|DWORD -
3067
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <|@ <|@
3068
+ nr 28 <|@ instruction JUMP ~[] destination: B2 -> B3 <|@ <|@
3069
+ end_IR
3070
+ end_block
3071
+ begin_block
3072
+ name "B3"
3073
+ from_bci -1
3074
+ to_bci -1
3075
+ predecessors "B2" "B1"
3076
+ successors
3077
+ xhandlers
3078
+ flags
3079
+ probability 4607182418800017408
3080
+ begin_IR
3081
+ LIR
3082
+ nr 30 <|@ instruction [] = LABEL numbPhis: 1 align: false label: ? <|@ <|@
3083
+ nr 26 <|@ instruction rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
3084
+ nr 32 <|@ instruction rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <|@ <|@
3085
+ nr 34 <|@ instruction rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
3086
+ nr 36 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
3087
+ end_IR
3088
+ end_block
3089
+ begin_block
3090
+ name "B1"
3091
+ from_bci -1
3092
+ to_bci -1
3093
+ predecessors "B0"
3094
+ successors "B3"
3095
+ xhandlers
3096
+ flags
3097
+ probability 4602677821056552993
3098
+ begin_IR
3099
+ LIR
3100
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3101
+ nr 12 <|@ instruction stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD // MoveResolver resolve mapping <|@ <|@
3102
+ nr 14 <|@ st <@st|@reference-map: []
3103
+ live-base-pointers: []
3104
+ JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11]
3105
+ locals: - stack:28|DWORD -
3106
+ >@ <|@ instruction rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <|@ <|@
3107
+ nr 18 <|@ instruction JUMP ~[] destination: B1 -> B3 <|@ <|@
3108
+ end_IR
3109
+ end_block
3110
+ end_cfg
3111
+ begin_bytecodes
3112
+ 0: iload_0
3113
+ 1: ifeq 11
3114
+ 4: invokestatic #48 // opaqueCall:()int
3115
+ 7: istore_2
3116
+ 8: goto 15
3117
+ 11: invokestatic #48 // opaqueCall:()int
3118
+ 14: istore_2
3119
+ 15: iload_2
3120
+ 16: iload_1
3121
+ 17: iadd
3122
+ 18: ireturn
3123
+ <|@
3124
+ end_bytecodes
3125
+ begin_cfg
3126
+ name "After code generation"
3127
+ end_cfg
3128
+ begin_nmethod
3129
+ <<<HexCodeFile
3130
+ Platform AMD64 64 <||@
3131
+ HexCode 0 89842400c0feff4883ec1848896c241085f60f842800000089542404666690e800000000908b54240403d08bc2488b6c24104883c418850500000000c5f877c389542404666690e80000000090ebd6e80000000090e80000000090 <||@
3132
+ Comment 0 [stack overflow check] <||@
3133
+ Comment 0 3 <||@
3134
+ Comment 0 1 <||@
3135
+ Comment 11 block B0 null <||@
3136
+ Comment 11 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3137
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
3138
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <||@
3139
+ Comment 16 6 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
3140
+ Comment 18 8 BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3141
+ Comment 24 block B2 null <||@
3142
+ Comment 24 20 [] = LABEL numbPhis: 0 align: false label: ? <||@
3143
+ Comment 24 22 stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3144
+ Comment 28 24 rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <||@
3145
+ Comment 28 8 <||@
3146
+ Comment 31 {HotSpotMethod<JavaExamples.opaqueCall()>} <||@
3147
+ Comment 36 []at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4, duringCall: true, rethrow: false]
3148
+ |0 |1 |2
3149
+ locals: |- |stack:28|DWORD |- <||@
3150
+ Comment 37 28 JUMP ~[] destination: B2 -> B3 <||@
3151
+ Comment 37 block B3 null <||@
3152
+ Comment 37 30 [] = LABEL numbPhis: 1 align: false label: ? <||@
3153
+ Comment 37 26 rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD <||@
3154
+ Comment 41 32 rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <||@
3155
+ Comment 43 34 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3156
+ Comment 45 36 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3157
+ Comment 54 12 <||@
3158
+ Comment 64 block B1 null <||@
3159
+ Comment 64 10 [] = LABEL numbPhis: 0 align: false label: ? <||@
3160
+ Comment 64 12 stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3161
+ Comment 68 14 rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <||@
3162
+ Comment 68 8 <||@
3163
+ Comment 71 {HotSpotMethod<JavaExamples.opaqueCall()>} <||@
3164
+ Comment 76 []at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11, duringCall: true, rethrow: false]
3165
+ |0 |1 |2
3166
+ locals: |- |stack:28|DWORD |- <||@
3167
+ Comment 77 18 JUMP ~[] destination: B1 -> B3 <||@
3168
+ Comment 79 {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} <||@
3169
+ Comment 79 4 <||@
3170
+ Comment 85 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
3171
+ Comment 85 5 <||@
3172
+ HexCodeFile>>> <|@
3173
+ end_nmethod
3174
+ begin_compilation
3175
+ name " HotSpotCompilation-348[JavaExamples.examplePhi(boolean, int)]"
3176
+ method "HotSpotCompilation-348[JavaExamples.examplePhi(boolean, int)]"
3177
+ date 1583364091471
3178
+ end_compilation
3179
+ begin_cfg
3180
+ name "After code installation"
3181
+ end_cfg
3182
+ begin_nmethod
3183
+ <<<HexCodeFile
3184
+ Platform AMD64 64 <||@
3185
+ HexCode 112e30aa0 89842400c0feff4883ec1848896c241085f60f842800000089542404666690e8fc3ef8ff908b54240403d08bc2488b6c24104883c41885052aa593fbc5f877c389542404666690e8d43ef8ff90ebd6e82c38ffff90e84637ebff90f4f4f4f4f448bb0000000000000000e9fbffffff48bb0000000000000000e9fbfffffff4f4 <||@
3186
+ Comment 0 [stack overflow check] <||@
3187
+ Comment 0 3 <||@
3188
+ Comment 0 1 <||@
3189
+ Comment 11 block B0 null <||@
3190
+ Comment 11 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
3191
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
3192
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@14513f900 slotKind: QWORD <||@
3193
+ Comment 16 6 TEST (x: rsi|DWORD, y: rsi|DWORD) size: DWORD <||@
3194
+ Comment 18 8 BRANCH trueDestinationProbability: 0.4999445934265641 condition: = trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
3195
+ Comment 24 block B2 null <||@
3196
+ Comment 24 20 [] = LABEL numbPhis: 0 align: false label: ? <||@
3197
+ Comment 24 22 stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3198
+ Comment 28 24 rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:4] <||@
3199
+ Comment 28 8 <||@
3200
+ Comment 31 {HotSpotMethod<JavaExamples.opaqueCall()>} <||@
3201
+ Comment 36 []at JavaExamples.examplePhi(JavaExamples.java:96) [bci: 4, duringCall: true, rethrow: false]
3202
+ |0 |1 |2
3203
+ locals: |- |stack:28|DWORD |- <||@
3204
+ Comment 37 28 JUMP ~[] destination: B2 -> B3 <||@
3205
+ Comment 37 block B3 null <||@
3206
+ Comment 37 30 [] = LABEL numbPhis: 1 align: false label: ? <||@
3207
+ Comment 37 26 rdx|DWORD = MOVE stack:28|DWORD moveKind: DWORD <||@
3208
+ Comment 41 32 rdx|DWORD = ADD (x: rdx|DWORD, y: rax|DWORD) size: DWORD <||@
3209
+ Comment 43 34 rax|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3210
+ Comment 45 36 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
3211
+ Comment 54 12 <||@
3212
+ Comment 64 block B1 null <||@
3213
+ Comment 64 10 [] = LABEL numbPhis: 0 align: false label: ? <||@
3214
+ Comment 64 12 stack:28|DWORD = MOVE rdx|DWORD moveKind: DWORD <||@
3215
+ Comment 68 14 rax|DWORD = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.opaqueCall()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 state [bci:11] <||@
3216
+ Comment 68 8 <||@
3217
+ Comment 71 {HotSpotMethod<JavaExamples.opaqueCall()>} <||@
3218
+ Comment 76 []at JavaExamples.examplePhi(JavaExamples.java:98) [bci: 11, duringCall: true, rethrow: false]
3219
+ |0 |1 |2
3220
+ locals: |- |stack:28|DWORD |- <||@
3221
+ Comment 77 18 JUMP ~[] destination: B1 -> B3 <||@
3222
+ Comment 79 {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} <||@
3223
+ Comment 79 4 <||@
3224
+ Comment 85 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
3225
+ Comment 85 5 <||@
3226
+ HexCodeFile>>> <|@
3227
+ end_nmethod