seafoam 0.2

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