seafoam 0.3 → 0.8

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