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