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,2263 @@
|
|
|
1
|
+
begin_compilation
|
|
2
|
+
name " HotSpotCompilation-130[JavaExamples.exampleArrayRead(int[], int)]"
|
|
3
|
+
method "HotSpotCompilation-130[JavaExamples.exampleArrayRead(int[], int)]"
|
|
4
|
+
date 1583364091890
|
|
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: i42
|
|
28
|
+
=== Usages ===
|
|
29
|
+
=== Predecessor ===
|
|
30
|
+
- >@ <|@
|
|
31
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: i42 <|@ <|@
|
|
32
|
+
f <@~|@floating>@ <|@
|
|
33
|
+
tid a1 <|@
|
|
34
|
+
d <@d|@=== Debug Properties ===
|
|
35
|
+
index: 0
|
|
36
|
+
stamp: a# [I
|
|
37
|
+
uncheckedStamp: [null]
|
|
38
|
+
=== Inputs ===
|
|
39
|
+
=== Succesors ===
|
|
40
|
+
=== Usages ===
|
|
41
|
+
?3 v45 v44
|
|
42
|
+
=== Predecessor ===
|
|
43
|
+
- >@ <|@
|
|
44
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
45
|
+
f <@~|@floating>@ <|@
|
|
46
|
+
tid i2 <|@
|
|
47
|
+
d <@d|@=== Debug Properties ===
|
|
48
|
+
index: 1
|
|
49
|
+
stamp: i32
|
|
50
|
+
uncheckedStamp: [null]
|
|
51
|
+
=== Inputs ===
|
|
52
|
+
=== Succesors ===
|
|
53
|
+
=== Usages ===
|
|
54
|
+
?3 v45 v12
|
|
55
|
+
=== Predecessor ===
|
|
56
|
+
- >@ <|@
|
|
57
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
58
|
+
tid ?3 <|@
|
|
59
|
+
d <@d|@=== Debug Properties ===
|
|
60
|
+
bci: 0
|
|
61
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleArrayRead(int[], int)>
|
|
62
|
+
duringCall: false
|
|
63
|
+
localsSize: 2
|
|
64
|
+
locksSize: 0
|
|
65
|
+
rethrowException: false
|
|
66
|
+
sourceFile: JavaExamples.java
|
|
67
|
+
sourceLine: 313
|
|
68
|
+
stackSize: 0
|
|
69
|
+
=== Inputs ===
|
|
70
|
+
outerFrameState: -
|
|
71
|
+
values: a1 i2
|
|
72
|
+
=== Succesors ===
|
|
73
|
+
=== Usages ===
|
|
74
|
+
v39 i42
|
|
75
|
+
=== Predecessor ===
|
|
76
|
+
- >@ <|@
|
|
77
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a1 i2 <|@ <|@
|
|
78
|
+
f <@~|@floating>@ <|@
|
|
79
|
+
tid v44 <|@
|
|
80
|
+
d <@d|@=== Debug Properties ===
|
|
81
|
+
displacement: 12
|
|
82
|
+
scale: Times1
|
|
83
|
+
stamp: void*
|
|
84
|
+
=== Inputs ===
|
|
85
|
+
base: a1
|
|
86
|
+
index: -
|
|
87
|
+
=== Succesors ===
|
|
88
|
+
=== Usages ===
|
|
89
|
+
i42
|
|
90
|
+
=== Predecessor ===
|
|
91
|
+
- >@ <|@
|
|
92
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
|
|
93
|
+
f <@#|@fixed with next>@ <|@
|
|
94
|
+
tid i42 <|@
|
|
95
|
+
d <@d|@=== Debug Properties ===
|
|
96
|
+
barrierType: NONE
|
|
97
|
+
forceFixed: false
|
|
98
|
+
location: [].length:final
|
|
99
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
100
|
+
nullCheck: true
|
|
101
|
+
stamp: i32 [0 - 2147483647] ⇈000000007fffffff
|
|
102
|
+
=== Inputs ===
|
|
103
|
+
stateBefore: ?3
|
|
104
|
+
guard: -
|
|
105
|
+
address: v44
|
|
106
|
+
lastLocationAccess: -
|
|
107
|
+
=== Succesors ===
|
|
108
|
+
next: v32
|
|
109
|
+
=== Usages ===
|
|
110
|
+
v12
|
|
111
|
+
=== Predecessor ===
|
|
112
|
+
v0 >@ <|@
|
|
113
|
+
instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: ?3 guard: - address: v44 lastLocationAccess: - #next: v32 <|@ <|@
|
|
114
|
+
f <@~|@floating>@ <|@
|
|
115
|
+
tid v12 <|@
|
|
116
|
+
d <@d|@=== Debug Properties ===
|
|
117
|
+
condition: BT
|
|
118
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
119
|
+
op: org.graalvm.compiler.nodes.calc.IntegerBelowNode$BelowOp@136e382d8
|
|
120
|
+
stamp: void
|
|
121
|
+
unorderedIsTrue: false
|
|
122
|
+
=== Inputs ===
|
|
123
|
+
x: i2
|
|
124
|
+
y: i42
|
|
125
|
+
=== Succesors ===
|
|
126
|
+
=== Usages ===
|
|
127
|
+
v32
|
|
128
|
+
=== Predecessor ===
|
|
129
|
+
- >@ <|@
|
|
130
|
+
instruction <@|<||@org.graalvm.compiler.nodes.calc.IntegerBelowNode>@ x: i2 y: i42 <|@ <|@
|
|
131
|
+
f <@*|@fixed>@ <|@
|
|
132
|
+
tid v32 <|@
|
|
133
|
+
d <@d|@=== Debug Properties ===
|
|
134
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
135
|
+
stamp: void
|
|
136
|
+
trueSuccessorProbability: 1.0
|
|
137
|
+
=== Inputs ===
|
|
138
|
+
condition: v12
|
|
139
|
+
=== Succesors ===
|
|
140
|
+
trueSuccessor: v29
|
|
141
|
+
falseSuccessor: v31
|
|
142
|
+
=== Usages ===
|
|
143
|
+
=== Predecessor ===
|
|
144
|
+
i42 >@ <|@
|
|
145
|
+
instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v12 #trueSuccessor: v29 #falseSuccessor: v31 <|@ <|@
|
|
146
|
+
end_IR
|
|
147
|
+
end_block
|
|
148
|
+
begin_block
|
|
149
|
+
name "B1"
|
|
150
|
+
from_bci -1
|
|
151
|
+
to_bci -1
|
|
152
|
+
predecessors "B0"
|
|
153
|
+
successors
|
|
154
|
+
xhandlers
|
|
155
|
+
flags
|
|
156
|
+
probability 4607182418800017408
|
|
157
|
+
begin_IR
|
|
158
|
+
HIR
|
|
159
|
+
f <@#|@fixed with next>@ <|@
|
|
160
|
+
tid v29 <|@
|
|
161
|
+
d <@d|@=== Debug Properties ===
|
|
162
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
163
|
+
stamp: void
|
|
164
|
+
withSpeculationFence: false
|
|
165
|
+
=== Inputs ===
|
|
166
|
+
=== Succesors ===
|
|
167
|
+
next: i43
|
|
168
|
+
=== Usages ===
|
|
169
|
+
=== Predecessor ===
|
|
170
|
+
v32 >@ <|@
|
|
171
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i43 <|@ <|@
|
|
172
|
+
f <@~|@floating>@ <|@
|
|
173
|
+
tid v45 <|@
|
|
174
|
+
d <@d|@=== Debug Properties ===
|
|
175
|
+
displacement: 16
|
|
176
|
+
scale: Times4
|
|
177
|
+
stamp: void*
|
|
178
|
+
=== Inputs ===
|
|
179
|
+
base: a1
|
|
180
|
+
index: i2
|
|
181
|
+
=== Succesors ===
|
|
182
|
+
=== Usages ===
|
|
183
|
+
i43
|
|
184
|
+
=== Predecessor ===
|
|
185
|
+
- >@ <|@
|
|
186
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: i2 <|@ <|@
|
|
187
|
+
f <@#|@fixed with next>@ <|@
|
|
188
|
+
tid i43 <|@
|
|
189
|
+
d <@d|@=== Debug Properties ===
|
|
190
|
+
barrierType: NONE
|
|
191
|
+
forceFixed: false
|
|
192
|
+
location: Array: int
|
|
193
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
194
|
+
nullCheck: false
|
|
195
|
+
stamp: i32
|
|
196
|
+
=== Inputs ===
|
|
197
|
+
stateBefore: -
|
|
198
|
+
guard: -
|
|
199
|
+
address: v45
|
|
200
|
+
lastLocationAccess: -
|
|
201
|
+
=== Succesors ===
|
|
202
|
+
next: v5
|
|
203
|
+
=== Usages ===
|
|
204
|
+
v5
|
|
205
|
+
=== Predecessor ===
|
|
206
|
+
v29 >@ <|@
|
|
207
|
+
instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v45 lastLocationAccess: - #next: v5 <|@ <|@
|
|
208
|
+
f <@*|@fixed>@ <|@
|
|
209
|
+
tid v5 <|@
|
|
210
|
+
d <@d|@=== Debug Properties ===
|
|
211
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 3]
|
|
212
|
+
stamp: void
|
|
213
|
+
=== Inputs ===
|
|
214
|
+
result: i43
|
|
215
|
+
memoryMap: -
|
|
216
|
+
=== Succesors ===
|
|
217
|
+
=== Usages ===
|
|
218
|
+
=== Predecessor ===
|
|
219
|
+
i43 >@ <|@
|
|
220
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i43 memoryMap: - <|@ <|@
|
|
221
|
+
end_IR
|
|
222
|
+
end_block
|
|
223
|
+
begin_block
|
|
224
|
+
name "B2"
|
|
225
|
+
from_bci -1
|
|
226
|
+
to_bci -1
|
|
227
|
+
predecessors "B0"
|
|
228
|
+
successors
|
|
229
|
+
xhandlers
|
|
230
|
+
flags
|
|
231
|
+
probability 2355382605114769408
|
|
232
|
+
begin_IR
|
|
233
|
+
HIR
|
|
234
|
+
f <@#|@fixed with next>@ <|@
|
|
235
|
+
tid v31 <|@
|
|
236
|
+
d <@d|@=== Debug Properties ===
|
|
237
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
238
|
+
stamp: void
|
|
239
|
+
withSpeculationFence: false
|
|
240
|
+
=== Inputs ===
|
|
241
|
+
=== Succesors ===
|
|
242
|
+
next: v39
|
|
243
|
+
=== Usages ===
|
|
244
|
+
=== Predecessor ===
|
|
245
|
+
v32 >@ <|@
|
|
246
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v39 <|@ <|@
|
|
247
|
+
f <@~|@floating>@ <|@
|
|
248
|
+
tid j36 <|@
|
|
249
|
+
d <@d|@=== Debug Properties ===
|
|
250
|
+
isDefaultStable: false
|
|
251
|
+
rawvalue: 0
|
|
252
|
+
stableDimension: 0
|
|
253
|
+
stamp: i64 [0] ⇈0000000000000000
|
|
254
|
+
stampKind: i64
|
|
255
|
+
value: long[0|0x0]
|
|
256
|
+
=== Inputs ===
|
|
257
|
+
=== Succesors ===
|
|
258
|
+
=== Usages ===
|
|
259
|
+
v39
|
|
260
|
+
=== Predecessor ===
|
|
261
|
+
- >@ <|@
|
|
262
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
263
|
+
f <@~|@floating>@ <|@
|
|
264
|
+
tid i41 <|@
|
|
265
|
+
d <@d|@=== Debug Properties ===
|
|
266
|
+
isDefaultStable: false
|
|
267
|
+
rawvalue: -3355
|
|
268
|
+
stableDimension: 0
|
|
269
|
+
stamp: i32 [-3355] ⇊00000000fffff2e5 ⇈00000000fffff2e5
|
|
270
|
+
stampKind: i32
|
|
271
|
+
value: int[-3355|0xfffffffffffff2e5]
|
|
272
|
+
=== Inputs ===
|
|
273
|
+
=== Succesors ===
|
|
274
|
+
=== Usages ===
|
|
275
|
+
v39
|
|
276
|
+
=== Predecessor ===
|
|
277
|
+
- >@ <|@
|
|
278
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
279
|
+
f <@*|@fixed>@ <|@
|
|
280
|
+
tid v39 <|@
|
|
281
|
+
d <@d|@=== Debug Properties ===
|
|
282
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
283
|
+
stamp: void
|
|
284
|
+
=== Inputs ===
|
|
285
|
+
stateBefore: ?3
|
|
286
|
+
actionAndReason: i41
|
|
287
|
+
speculation: j36
|
|
288
|
+
=== Succesors ===
|
|
289
|
+
=== Usages ===
|
|
290
|
+
=== Predecessor ===
|
|
291
|
+
v31 >@ <|@
|
|
292
|
+
instruction <@DynamicDeoptimize|@org.graalvm.compiler.nodes.DynamicDeoptimizeNode>@ stateBefore: ?3 actionAndReason: i41 speculation: j36 <|@ <|@
|
|
293
|
+
end_IR
|
|
294
|
+
end_block
|
|
295
|
+
end_cfg
|
|
296
|
+
begin_cfg
|
|
297
|
+
name "After LIRGeneration"
|
|
298
|
+
begin_block
|
|
299
|
+
name "B0"
|
|
300
|
+
from_bci -1
|
|
301
|
+
to_bci -1
|
|
302
|
+
predecessors
|
|
303
|
+
successors "B1" "B2"
|
|
304
|
+
xhandlers
|
|
305
|
+
flags
|
|
306
|
+
probability 4607182418800017408
|
|
307
|
+
begin_IR
|
|
308
|
+
LIR
|
|
309
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
310
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
311
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
312
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
313
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
314
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
315
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
316
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
317
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
318
|
+
end_IR
|
|
319
|
+
end_block
|
|
320
|
+
begin_block
|
|
321
|
+
name "B1"
|
|
322
|
+
from_bci -1
|
|
323
|
+
to_bci -1
|
|
324
|
+
predecessors "B0"
|
|
325
|
+
successors
|
|
326
|
+
xhandlers
|
|
327
|
+
flags
|
|
328
|
+
probability 4607182418800017408
|
|
329
|
+
begin_IR
|
|
330
|
+
LIR
|
|
331
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
332
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
333
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
334
|
+
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@147e07170 <|@ <|@
|
|
335
|
+
end_IR
|
|
336
|
+
end_block
|
|
337
|
+
begin_block
|
|
338
|
+
name "B2"
|
|
339
|
+
from_bci -1
|
|
340
|
+
to_bci -1
|
|
341
|
+
predecessors "B0"
|
|
342
|
+
successors
|
|
343
|
+
xhandlers
|
|
344
|
+
flags
|
|
345
|
+
probability 2355382605114769408
|
|
346
|
+
begin_IR
|
|
347
|
+
LIR
|
|
348
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
349
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
350
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
351
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
352
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
353
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
354
|
+
end_IR
|
|
355
|
+
end_block
|
|
356
|
+
end_cfg
|
|
357
|
+
begin_bytecodes
|
|
358
|
+
0: aload_0
|
|
359
|
+
1: iload_1
|
|
360
|
+
2: iaload
|
|
361
|
+
3: ireturn
|
|
362
|
+
<|@
|
|
363
|
+
end_bytecodes
|
|
364
|
+
begin_cfg
|
|
365
|
+
name "After LIR generation"
|
|
366
|
+
begin_block
|
|
367
|
+
name "B0"
|
|
368
|
+
from_bci -1
|
|
369
|
+
to_bci -1
|
|
370
|
+
predecessors
|
|
371
|
+
successors "B1" "B2"
|
|
372
|
+
xhandlers
|
|
373
|
+
flags
|
|
374
|
+
probability 4607182418800017408
|
|
375
|
+
begin_IR
|
|
376
|
+
HIR
|
|
377
|
+
f <@#|@fixed with next>@ <|@
|
|
378
|
+
tid v0 <|@
|
|
379
|
+
d <@d|@=== Debug Properties ===
|
|
380
|
+
stamp: void
|
|
381
|
+
withSpeculationFence: false
|
|
382
|
+
=== Inputs ===
|
|
383
|
+
stateAfter: -
|
|
384
|
+
=== Succesors ===
|
|
385
|
+
next: i42
|
|
386
|
+
=== Usages ===
|
|
387
|
+
=== Predecessor ===
|
|
388
|
+
- >@ <|@
|
|
389
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: i42 <|@ <|@
|
|
390
|
+
f <@~|@floating>@ <|@
|
|
391
|
+
tid a1 <|@
|
|
392
|
+
result v0|QWORD[.] <|@
|
|
393
|
+
d <@d|@=== Debug Properties ===
|
|
394
|
+
index: 0
|
|
395
|
+
stamp: a# [I
|
|
396
|
+
uncheckedStamp: [null]
|
|
397
|
+
=== Inputs ===
|
|
398
|
+
=== Succesors ===
|
|
399
|
+
=== Usages ===
|
|
400
|
+
?3 v45 v44
|
|
401
|
+
=== Predecessor ===
|
|
402
|
+
- >@ <|@
|
|
403
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
404
|
+
f <@~|@floating>@ <|@
|
|
405
|
+
tid i2 <|@
|
|
406
|
+
result v1|DWORD <|@
|
|
407
|
+
d <@d|@=== Debug Properties ===
|
|
408
|
+
index: 1
|
|
409
|
+
stamp: i32
|
|
410
|
+
uncheckedStamp: [null]
|
|
411
|
+
=== Inputs ===
|
|
412
|
+
=== Succesors ===
|
|
413
|
+
=== Usages ===
|
|
414
|
+
?3 v45 v12
|
|
415
|
+
=== Predecessor ===
|
|
416
|
+
- >@ <|@
|
|
417
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
418
|
+
tid ?3 <|@
|
|
419
|
+
d <@d|@=== Debug Properties ===
|
|
420
|
+
bci: 0
|
|
421
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleArrayRead(int[], int)>
|
|
422
|
+
duringCall: false
|
|
423
|
+
localsSize: 2
|
|
424
|
+
locksSize: 0
|
|
425
|
+
rethrowException: false
|
|
426
|
+
sourceFile: JavaExamples.java
|
|
427
|
+
sourceLine: 313
|
|
428
|
+
stackSize: 0
|
|
429
|
+
=== Inputs ===
|
|
430
|
+
outerFrameState: -
|
|
431
|
+
values: a1 i2
|
|
432
|
+
=== Succesors ===
|
|
433
|
+
=== Usages ===
|
|
434
|
+
v39 i42
|
|
435
|
+
=== Predecessor ===
|
|
436
|
+
- >@ <|@
|
|
437
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a1 i2 <|@ <|@
|
|
438
|
+
f <@~|@floating>@ <|@
|
|
439
|
+
tid v44 <|@
|
|
440
|
+
result [v0|QWORD[.] + 12] <|@
|
|
441
|
+
d <@d|@=== Debug Properties ===
|
|
442
|
+
displacement: 12
|
|
443
|
+
scale: Times1
|
|
444
|
+
stamp: void*
|
|
445
|
+
=== Inputs ===
|
|
446
|
+
base: a1
|
|
447
|
+
index: -
|
|
448
|
+
=== Succesors ===
|
|
449
|
+
=== Usages ===
|
|
450
|
+
i42
|
|
451
|
+
=== Predecessor ===
|
|
452
|
+
- >@ <|@
|
|
453
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
|
|
454
|
+
f <@#|@fixed with next>@ <|@
|
|
455
|
+
tid i42 <|@
|
|
456
|
+
result INTERIOR_MATCH <|@
|
|
457
|
+
d <@d|@=== Debug Properties ===
|
|
458
|
+
barrierType: NONE
|
|
459
|
+
forceFixed: false
|
|
460
|
+
location: [].length:final
|
|
461
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
462
|
+
nullCheck: true
|
|
463
|
+
stamp: i32 [0 - 2147483647] ⇈000000007fffffff
|
|
464
|
+
=== Inputs ===
|
|
465
|
+
stateBefore: ?3
|
|
466
|
+
guard: -
|
|
467
|
+
address: v44
|
|
468
|
+
lastLocationAccess: -
|
|
469
|
+
=== Succesors ===
|
|
470
|
+
next: v32
|
|
471
|
+
=== Usages ===
|
|
472
|
+
v12
|
|
473
|
+
=== Predecessor ===
|
|
474
|
+
v0 >@ <|@
|
|
475
|
+
instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: ?3 guard: - address: v44 lastLocationAccess: - #next: v32 <|@ <|@
|
|
476
|
+
f <@~|@floating>@ <|@
|
|
477
|
+
tid v12 <|@
|
|
478
|
+
result INTERIOR_MATCH <|@
|
|
479
|
+
d <@d|@=== Debug Properties ===
|
|
480
|
+
condition: BT
|
|
481
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
482
|
+
op: org.graalvm.compiler.nodes.calc.IntegerBelowNode$BelowOp@136e382d8
|
|
483
|
+
stamp: void
|
|
484
|
+
unorderedIsTrue: false
|
|
485
|
+
=== Inputs ===
|
|
486
|
+
x: i2
|
|
487
|
+
y: i42
|
|
488
|
+
=== Succesors ===
|
|
489
|
+
=== Usages ===
|
|
490
|
+
v32
|
|
491
|
+
=== Predecessor ===
|
|
492
|
+
- >@ <|@
|
|
493
|
+
instruction <@|<||@org.graalvm.compiler.nodes.calc.IntegerBelowNode>@ x: i2 y: i42 <|@ <|@
|
|
494
|
+
f <@*|@fixed>@ <|@
|
|
495
|
+
tid v32 <|@
|
|
496
|
+
result org.graalvm.compiler.core.match.ComplexMatchValue@13bdcebd8 <|@
|
|
497
|
+
d <@d|@=== Debug Properties ===
|
|
498
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
499
|
+
stamp: void
|
|
500
|
+
trueSuccessorProbability: 1.0
|
|
501
|
+
=== Inputs ===
|
|
502
|
+
condition: v12
|
|
503
|
+
=== Succesors ===
|
|
504
|
+
trueSuccessor: v29
|
|
505
|
+
falseSuccessor: v31
|
|
506
|
+
=== Usages ===
|
|
507
|
+
=== Predecessor ===
|
|
508
|
+
i42 >@ <|@
|
|
509
|
+
instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v12 #trueSuccessor: v29 #falseSuccessor: v31 <|@ <|@
|
|
510
|
+
end_IR
|
|
511
|
+
begin_IR
|
|
512
|
+
LIR
|
|
513
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
514
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
515
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
516
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
517
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
518
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
519
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
520
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
521
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
522
|
+
end_IR
|
|
523
|
+
end_block
|
|
524
|
+
begin_block
|
|
525
|
+
name "B1"
|
|
526
|
+
from_bci -1
|
|
527
|
+
to_bci -1
|
|
528
|
+
predecessors "B0"
|
|
529
|
+
successors
|
|
530
|
+
xhandlers
|
|
531
|
+
flags
|
|
532
|
+
probability 4607182418800017408
|
|
533
|
+
begin_IR
|
|
534
|
+
HIR
|
|
535
|
+
f <@#|@fixed with next>@ <|@
|
|
536
|
+
tid v29 <|@
|
|
537
|
+
d <@d|@=== Debug Properties ===
|
|
538
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
539
|
+
stamp: void
|
|
540
|
+
withSpeculationFence: false
|
|
541
|
+
=== Inputs ===
|
|
542
|
+
=== Succesors ===
|
|
543
|
+
next: i43
|
|
544
|
+
=== Usages ===
|
|
545
|
+
=== Predecessor ===
|
|
546
|
+
v32 >@ <|@
|
|
547
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: i43 <|@ <|@
|
|
548
|
+
f <@~|@floating>@ <|@
|
|
549
|
+
tid v45 <|@
|
|
550
|
+
result [v0|QWORD[.] + v1|DWORD * 4 + 16] <|@
|
|
551
|
+
d <@d|@=== Debug Properties ===
|
|
552
|
+
displacement: 16
|
|
553
|
+
scale: Times4
|
|
554
|
+
stamp: void*
|
|
555
|
+
=== Inputs ===
|
|
556
|
+
base: a1
|
|
557
|
+
index: i2
|
|
558
|
+
=== Succesors ===
|
|
559
|
+
=== Usages ===
|
|
560
|
+
i43
|
|
561
|
+
=== Predecessor ===
|
|
562
|
+
- >@ <|@
|
|
563
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: i2 <|@ <|@
|
|
564
|
+
f <@#|@fixed with next>@ <|@
|
|
565
|
+
tid i43 <|@
|
|
566
|
+
result v2|DWORD <|@
|
|
567
|
+
d <@d|@=== Debug Properties ===
|
|
568
|
+
barrierType: NONE
|
|
569
|
+
forceFixed: false
|
|
570
|
+
location: Array: int
|
|
571
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
572
|
+
nullCheck: false
|
|
573
|
+
stamp: i32
|
|
574
|
+
=== Inputs ===
|
|
575
|
+
stateBefore: -
|
|
576
|
+
guard: -
|
|
577
|
+
address: v45
|
|
578
|
+
lastLocationAccess: -
|
|
579
|
+
=== Succesors ===
|
|
580
|
+
next: v5
|
|
581
|
+
=== Usages ===
|
|
582
|
+
v5
|
|
583
|
+
=== Predecessor ===
|
|
584
|
+
v29 >@ <|@
|
|
585
|
+
instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v45 lastLocationAccess: - #next: v5 <|@ <|@
|
|
586
|
+
f <@*|@fixed>@ <|@
|
|
587
|
+
tid v5 <|@
|
|
588
|
+
d <@d|@=== Debug Properties ===
|
|
589
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 3]
|
|
590
|
+
stamp: void
|
|
591
|
+
=== Inputs ===
|
|
592
|
+
result: i43
|
|
593
|
+
memoryMap: -
|
|
594
|
+
=== Succesors ===
|
|
595
|
+
=== Usages ===
|
|
596
|
+
=== Predecessor ===
|
|
597
|
+
i43 >@ <|@
|
|
598
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i43 memoryMap: - <|@ <|@
|
|
599
|
+
end_IR
|
|
600
|
+
begin_IR
|
|
601
|
+
LIR
|
|
602
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
603
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
604
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
605
|
+
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@147e07170 <|@ <|@
|
|
606
|
+
end_IR
|
|
607
|
+
end_block
|
|
608
|
+
begin_block
|
|
609
|
+
name "B2"
|
|
610
|
+
from_bci -1
|
|
611
|
+
to_bci -1
|
|
612
|
+
predecessors "B0"
|
|
613
|
+
successors
|
|
614
|
+
xhandlers
|
|
615
|
+
flags
|
|
616
|
+
probability 2355382605114769408
|
|
617
|
+
begin_IR
|
|
618
|
+
HIR
|
|
619
|
+
f <@#|@fixed with next>@ <|@
|
|
620
|
+
tid v31 <|@
|
|
621
|
+
d <@d|@=== Debug Properties ===
|
|
622
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
623
|
+
stamp: void
|
|
624
|
+
withSpeculationFence: false
|
|
625
|
+
=== Inputs ===
|
|
626
|
+
=== Succesors ===
|
|
627
|
+
next: v39
|
|
628
|
+
=== Usages ===
|
|
629
|
+
=== Predecessor ===
|
|
630
|
+
v32 >@ <|@
|
|
631
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v39 <|@ <|@
|
|
632
|
+
f <@~|@floating>@ <|@
|
|
633
|
+
tid j36 <|@
|
|
634
|
+
result long[0|0x0] <|@
|
|
635
|
+
d <@d|@=== Debug Properties ===
|
|
636
|
+
isDefaultStable: false
|
|
637
|
+
rawvalue: 0
|
|
638
|
+
stableDimension: 0
|
|
639
|
+
stamp: i64 [0] ⇈0000000000000000
|
|
640
|
+
stampKind: i64
|
|
641
|
+
value: long[0|0x0]
|
|
642
|
+
=== Inputs ===
|
|
643
|
+
=== Succesors ===
|
|
644
|
+
=== Usages ===
|
|
645
|
+
v39
|
|
646
|
+
=== Predecessor ===
|
|
647
|
+
- >@ <|@
|
|
648
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
649
|
+
f <@~|@floating>@ <|@
|
|
650
|
+
tid i41 <|@
|
|
651
|
+
result int[-3355|0xfffffffffffff2e5] <|@
|
|
652
|
+
d <@d|@=== Debug Properties ===
|
|
653
|
+
isDefaultStable: false
|
|
654
|
+
rawvalue: -3355
|
|
655
|
+
stableDimension: 0
|
|
656
|
+
stamp: i32 [-3355] ⇊00000000fffff2e5 ⇈00000000fffff2e5
|
|
657
|
+
stampKind: i32
|
|
658
|
+
value: int[-3355|0xfffffffffffff2e5]
|
|
659
|
+
=== Inputs ===
|
|
660
|
+
=== Succesors ===
|
|
661
|
+
=== Usages ===
|
|
662
|
+
v39
|
|
663
|
+
=== Predecessor ===
|
|
664
|
+
- >@ <|@
|
|
665
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
666
|
+
f <@*|@fixed>@ <|@
|
|
667
|
+
tid v39 <|@
|
|
668
|
+
d <@d|@=== Debug Properties ===
|
|
669
|
+
nodeSourcePosition: at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 2]
|
|
670
|
+
stamp: void
|
|
671
|
+
=== Inputs ===
|
|
672
|
+
stateBefore: ?3
|
|
673
|
+
actionAndReason: i41
|
|
674
|
+
speculation: j36
|
|
675
|
+
=== Succesors ===
|
|
676
|
+
=== Usages ===
|
|
677
|
+
=== Predecessor ===
|
|
678
|
+
v31 >@ <|@
|
|
679
|
+
instruction <@DynamicDeoptimize|@org.graalvm.compiler.nodes.DynamicDeoptimizeNode>@ stateBefore: ?3 actionAndReason: i41 speculation: j36 <|@ <|@
|
|
680
|
+
end_IR
|
|
681
|
+
begin_IR
|
|
682
|
+
LIR
|
|
683
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
684
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
685
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
686
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
687
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
688
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
689
|
+
end_IR
|
|
690
|
+
end_block
|
|
691
|
+
end_cfg
|
|
692
|
+
begin_cfg
|
|
693
|
+
name "After ConstantLoadOptimization"
|
|
694
|
+
begin_block
|
|
695
|
+
name "B0"
|
|
696
|
+
from_bci -1
|
|
697
|
+
to_bci -1
|
|
698
|
+
predecessors
|
|
699
|
+
successors "B1" "B2"
|
|
700
|
+
xhandlers
|
|
701
|
+
flags
|
|
702
|
+
probability 4607182418800017408
|
|
703
|
+
begin_IR
|
|
704
|
+
LIR
|
|
705
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
706
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
707
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
708
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
709
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
710
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
711
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
712
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
713
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
714
|
+
end_IR
|
|
715
|
+
end_block
|
|
716
|
+
begin_block
|
|
717
|
+
name "B1"
|
|
718
|
+
from_bci -1
|
|
719
|
+
to_bci -1
|
|
720
|
+
predecessors "B0"
|
|
721
|
+
successors
|
|
722
|
+
xhandlers
|
|
723
|
+
flags
|
|
724
|
+
probability 4607182418800017408
|
|
725
|
+
begin_IR
|
|
726
|
+
LIR
|
|
727
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
728
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
729
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
730
|
+
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@147e07170 <|@ <|@
|
|
731
|
+
end_IR
|
|
732
|
+
end_block
|
|
733
|
+
begin_block
|
|
734
|
+
name "B2"
|
|
735
|
+
from_bci -1
|
|
736
|
+
to_bci -1
|
|
737
|
+
predecessors "B0"
|
|
738
|
+
successors
|
|
739
|
+
xhandlers
|
|
740
|
+
flags
|
|
741
|
+
probability 2355382605114769408
|
|
742
|
+
begin_IR
|
|
743
|
+
LIR
|
|
744
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
745
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
746
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
747
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
748
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
749
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
750
|
+
end_IR
|
|
751
|
+
end_block
|
|
752
|
+
end_cfg
|
|
753
|
+
begin_bytecodes
|
|
754
|
+
0: aload_0
|
|
755
|
+
1: iload_1
|
|
756
|
+
2: iaload
|
|
757
|
+
3: ireturn
|
|
758
|
+
<|@
|
|
759
|
+
end_bytecodes
|
|
760
|
+
begin_cfg
|
|
761
|
+
name "After SaveCalleeSaveRegisters"
|
|
762
|
+
begin_block
|
|
763
|
+
name "B0"
|
|
764
|
+
from_bci -1
|
|
765
|
+
to_bci -1
|
|
766
|
+
predecessors
|
|
767
|
+
successors "B1" "B2"
|
|
768
|
+
xhandlers
|
|
769
|
+
flags
|
|
770
|
+
probability 4607182418800017408
|
|
771
|
+
begin_IR
|
|
772
|
+
LIR
|
|
773
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
774
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
775
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
776
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
777
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
778
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
779
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
780
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
781
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
782
|
+
end_IR
|
|
783
|
+
end_block
|
|
784
|
+
begin_block
|
|
785
|
+
name "B1"
|
|
786
|
+
from_bci -1
|
|
787
|
+
to_bci -1
|
|
788
|
+
predecessors "B0"
|
|
789
|
+
successors
|
|
790
|
+
xhandlers
|
|
791
|
+
flags
|
|
792
|
+
probability 4607182418800017408
|
|
793
|
+
begin_IR
|
|
794
|
+
LIR
|
|
795
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
796
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
797
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
798
|
+
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@147e07170 <|@ <|@
|
|
799
|
+
end_IR
|
|
800
|
+
end_block
|
|
801
|
+
begin_block
|
|
802
|
+
name "B2"
|
|
803
|
+
from_bci -1
|
|
804
|
+
to_bci -1
|
|
805
|
+
predecessors "B0"
|
|
806
|
+
successors
|
|
807
|
+
xhandlers
|
|
808
|
+
flags
|
|
809
|
+
probability 2355382605114769408
|
|
810
|
+
begin_IR
|
|
811
|
+
LIR
|
|
812
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
813
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
814
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
815
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
816
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
817
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
818
|
+
end_IR
|
|
819
|
+
end_block
|
|
820
|
+
end_cfg
|
|
821
|
+
begin_bytecodes
|
|
822
|
+
0: aload_0
|
|
823
|
+
1: iload_1
|
|
824
|
+
2: iaload
|
|
825
|
+
3: ireturn
|
|
826
|
+
<|@
|
|
827
|
+
end_bytecodes
|
|
828
|
+
begin_cfg
|
|
829
|
+
name "After PreAllocationOptimizationStage"
|
|
830
|
+
begin_block
|
|
831
|
+
name "B0"
|
|
832
|
+
from_bci -1
|
|
833
|
+
to_bci -1
|
|
834
|
+
predecessors
|
|
835
|
+
successors "B1" "B2"
|
|
836
|
+
xhandlers
|
|
837
|
+
flags
|
|
838
|
+
probability 4607182418800017408
|
|
839
|
+
begin_IR
|
|
840
|
+
LIR
|
|
841
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
842
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
843
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
844
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
845
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
846
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
847
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
848
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
849
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
850
|
+
end_IR
|
|
851
|
+
end_block
|
|
852
|
+
begin_block
|
|
853
|
+
name "B1"
|
|
854
|
+
from_bci -1
|
|
855
|
+
to_bci -1
|
|
856
|
+
predecessors "B0"
|
|
857
|
+
successors
|
|
858
|
+
xhandlers
|
|
859
|
+
flags
|
|
860
|
+
probability 4607182418800017408
|
|
861
|
+
begin_IR
|
|
862
|
+
LIR
|
|
863
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
864
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
865
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
866
|
+
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@147e07170 <|@ <|@
|
|
867
|
+
end_IR
|
|
868
|
+
end_block
|
|
869
|
+
begin_block
|
|
870
|
+
name "B2"
|
|
871
|
+
from_bci -1
|
|
872
|
+
to_bci -1
|
|
873
|
+
predecessors "B0"
|
|
874
|
+
successors
|
|
875
|
+
xhandlers
|
|
876
|
+
flags
|
|
877
|
+
probability 2355382605114769408
|
|
878
|
+
begin_IR
|
|
879
|
+
LIR
|
|
880
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
881
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
882
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
883
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
884
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
885
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
886
|
+
end_IR
|
|
887
|
+
end_block
|
|
888
|
+
end_cfg
|
|
889
|
+
begin_bytecodes
|
|
890
|
+
0: aload_0
|
|
891
|
+
1: iload_1
|
|
892
|
+
2: iaload
|
|
893
|
+
3: ireturn
|
|
894
|
+
<|@
|
|
895
|
+
end_bytecodes
|
|
896
|
+
begin_cfg
|
|
897
|
+
name "After MarkBasePointers"
|
|
898
|
+
begin_block
|
|
899
|
+
name "B0"
|
|
900
|
+
from_bci -1
|
|
901
|
+
to_bci -1
|
|
902
|
+
predecessors
|
|
903
|
+
successors "B1" "B2"
|
|
904
|
+
xhandlers
|
|
905
|
+
flags
|
|
906
|
+
probability 4607182418800017408
|
|
907
|
+
begin_IR
|
|
908
|
+
LIR
|
|
909
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
910
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
911
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
912
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
913
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
914
|
+
nr -1 <|@ st <@st|@live-base-pointers: []
|
|
915
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
916
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
917
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
918
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
919
|
+
end_IR
|
|
920
|
+
end_block
|
|
921
|
+
begin_block
|
|
922
|
+
name "B1"
|
|
923
|
+
from_bci -1
|
|
924
|
+
to_bci -1
|
|
925
|
+
predecessors "B0"
|
|
926
|
+
successors
|
|
927
|
+
xhandlers
|
|
928
|
+
flags
|
|
929
|
+
probability 4607182418800017408
|
|
930
|
+
begin_IR
|
|
931
|
+
LIR
|
|
932
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
933
|
+
nr -1 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
934
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
935
|
+
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@147e07170 <|@ <|@
|
|
936
|
+
end_IR
|
|
937
|
+
end_block
|
|
938
|
+
begin_block
|
|
939
|
+
name "B2"
|
|
940
|
+
from_bci -1
|
|
941
|
+
to_bci -1
|
|
942
|
+
predecessors "B0"
|
|
943
|
+
successors
|
|
944
|
+
xhandlers
|
|
945
|
+
flags
|
|
946
|
+
probability 2355382605114769408
|
|
947
|
+
begin_IR
|
|
948
|
+
LIR
|
|
949
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
950
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
951
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
952
|
+
nr -1 <|@ st <@st|@live-base-pointers: []
|
|
953
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
954
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
955
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
956
|
+
end_IR
|
|
957
|
+
end_block
|
|
958
|
+
end_cfg
|
|
959
|
+
begin_bytecodes
|
|
960
|
+
0: aload_0
|
|
961
|
+
1: iload_1
|
|
962
|
+
2: iaload
|
|
963
|
+
3: ireturn
|
|
964
|
+
<|@
|
|
965
|
+
end_bytecodes
|
|
966
|
+
begin_cfg
|
|
967
|
+
name "Before register allocation"
|
|
968
|
+
begin_block
|
|
969
|
+
name "B0"
|
|
970
|
+
from_bci -1
|
|
971
|
+
to_bci -1
|
|
972
|
+
predecessors
|
|
973
|
+
successors "B1" "B2"
|
|
974
|
+
xhandlers
|
|
975
|
+
flags
|
|
976
|
+
probability 4607182418800017408
|
|
977
|
+
begin_IR
|
|
978
|
+
LIR
|
|
979
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
980
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
981
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
982
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
983
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
984
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
985
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
986
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
987
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
988
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
989
|
+
end_IR
|
|
990
|
+
end_block
|
|
991
|
+
begin_block
|
|
992
|
+
name "B1"
|
|
993
|
+
from_bci -1
|
|
994
|
+
to_bci -1
|
|
995
|
+
predecessors "B0"
|
|
996
|
+
successors
|
|
997
|
+
xhandlers
|
|
998
|
+
flags
|
|
999
|
+
probability 4607182418800017408
|
|
1000
|
+
begin_IR
|
|
1001
|
+
LIR
|
|
1002
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1003
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1004
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1005
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1006
|
+
end_IR
|
|
1007
|
+
end_block
|
|
1008
|
+
begin_block
|
|
1009
|
+
name "B2"
|
|
1010
|
+
from_bci -1
|
|
1011
|
+
to_bci -1
|
|
1012
|
+
predecessors "B0"
|
|
1013
|
+
successors
|
|
1014
|
+
xhandlers
|
|
1015
|
+
flags
|
|
1016
|
+
probability 2355382605114769408
|
|
1017
|
+
begin_IR
|
|
1018
|
+
LIR
|
|
1019
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1020
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1021
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1022
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1023
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1024
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1025
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1026
|
+
end_IR
|
|
1027
|
+
end_block
|
|
1028
|
+
end_cfg
|
|
1029
|
+
begin_bytecodes
|
|
1030
|
+
0: aload_0
|
|
1031
|
+
1: iload_1
|
|
1032
|
+
2: iaload
|
|
1033
|
+
3: ireturn
|
|
1034
|
+
<|@
|
|
1035
|
+
end_bytecodes
|
|
1036
|
+
begin_cfg
|
|
1037
|
+
name "After SSALinearScanLifetimeAnalysis"
|
|
1038
|
+
begin_block
|
|
1039
|
+
name "B0"
|
|
1040
|
+
from_bci -1
|
|
1041
|
+
to_bci -1
|
|
1042
|
+
predecessors
|
|
1043
|
+
successors "B1" "B2"
|
|
1044
|
+
xhandlers
|
|
1045
|
+
flags
|
|
1046
|
+
probability 4607182418800017408
|
|
1047
|
+
begin_IR
|
|
1048
|
+
LIR
|
|
1049
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1050
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1051
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1052
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
1053
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1054
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1055
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1056
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1057
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1058
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1059
|
+
end_IR
|
|
1060
|
+
end_block
|
|
1061
|
+
begin_block
|
|
1062
|
+
name "B1"
|
|
1063
|
+
from_bci -1
|
|
1064
|
+
to_bci -1
|
|
1065
|
+
predecessors "B0"
|
|
1066
|
+
successors
|
|
1067
|
+
xhandlers
|
|
1068
|
+
flags
|
|
1069
|
+
probability 4607182418800017408
|
|
1070
|
+
begin_IR
|
|
1071
|
+
LIR
|
|
1072
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1073
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1074
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1075
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
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
|
|
1084
|
+
xhandlers
|
|
1085
|
+
flags
|
|
1086
|
+
probability 2355382605114769408
|
|
1087
|
+
begin_IR
|
|
1088
|
+
LIR
|
|
1089
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1090
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1091
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1092
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1093
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1094
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1095
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1096
|
+
end_IR
|
|
1097
|
+
end_block
|
|
1098
|
+
end_cfg
|
|
1099
|
+
begin_bytecodes
|
|
1100
|
+
0: aload_0
|
|
1101
|
+
1: iload_1
|
|
1102
|
+
2: iaload
|
|
1103
|
+
3: ireturn
|
|
1104
|
+
<|@
|
|
1105
|
+
end_bytecodes
|
|
1106
|
+
begin_intervals
|
|
1107
|
+
name "Before register allocation"
|
|
1108
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[18, 20[ "NoSpillStore"
|
|
1109
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
1110
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
1111
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
1112
|
+
v0|q QWORD "[v0|q]" v0|q rsi|q [6, 16[[22, 29[6 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1113
|
+
v1|d DWORD "[v1|d]" v1|d rdx|d [8, 16[[22, 29[8 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1114
|
+
v2|d DWORD "[v2|d]" v2|d -1 [16, 18[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
|
|
1115
|
+
end_intervals
|
|
1116
|
+
begin_intervals
|
|
1117
|
+
name "After register allocation"
|
|
1118
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[18, 20[ "NoSpillStore"
|
|
1119
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
1120
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
1121
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
1122
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 16[[22, 29[6 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1123
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 16[[22, 29[8 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1124
|
+
v2|d DWORD "[rax|d]" v2|d -1 [16, 18[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
|
|
1125
|
+
end_intervals
|
|
1126
|
+
begin_cfg
|
|
1127
|
+
name "After LinearScanRegisterAllocation"
|
|
1128
|
+
begin_block
|
|
1129
|
+
name "B0"
|
|
1130
|
+
from_bci -1
|
|
1131
|
+
to_bci -1
|
|
1132
|
+
predecessors
|
|
1133
|
+
successors "B1" "B2"
|
|
1134
|
+
xhandlers
|
|
1135
|
+
flags
|
|
1136
|
+
probability 4607182418800017408
|
|
1137
|
+
begin_IR
|
|
1138
|
+
LIR
|
|
1139
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1140
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1141
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1142
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
1143
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1144
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1145
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1146
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1147
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1148
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1149
|
+
end_IR
|
|
1150
|
+
end_block
|
|
1151
|
+
begin_block
|
|
1152
|
+
name "B1"
|
|
1153
|
+
from_bci -1
|
|
1154
|
+
to_bci -1
|
|
1155
|
+
predecessors "B0"
|
|
1156
|
+
successors
|
|
1157
|
+
xhandlers
|
|
1158
|
+
flags
|
|
1159
|
+
probability 4607182418800017408
|
|
1160
|
+
begin_IR
|
|
1161
|
+
LIR
|
|
1162
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1163
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1164
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1165
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1166
|
+
end_IR
|
|
1167
|
+
end_block
|
|
1168
|
+
begin_block
|
|
1169
|
+
name "B2"
|
|
1170
|
+
from_bci -1
|
|
1171
|
+
to_bci -1
|
|
1172
|
+
predecessors "B0"
|
|
1173
|
+
successors
|
|
1174
|
+
xhandlers
|
|
1175
|
+
flags
|
|
1176
|
+
probability 2355382605114769408
|
|
1177
|
+
begin_IR
|
|
1178
|
+
LIR
|
|
1179
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1180
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1181
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1182
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1183
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1184
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1185
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1186
|
+
end_IR
|
|
1187
|
+
end_block
|
|
1188
|
+
end_cfg
|
|
1189
|
+
begin_bytecodes
|
|
1190
|
+
0: aload_0
|
|
1191
|
+
1: iload_1
|
|
1192
|
+
2: iaload
|
|
1193
|
+
3: ireturn
|
|
1194
|
+
<|@
|
|
1195
|
+
end_bytecodes
|
|
1196
|
+
begin_intervals
|
|
1197
|
+
name "After optimize spill position"
|
|
1198
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[18, 20[ "NoSpillStore"
|
|
1199
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
1200
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
1201
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
1202
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 16[[22, 29[6 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1203
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 16[[22, 29[8 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1204
|
+
v2|d DWORD "[rax|d]" v2|d -1 [16, 18[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
|
|
1205
|
+
end_intervals
|
|
1206
|
+
begin_cfg
|
|
1207
|
+
name "After LinearScanOptimizeSpillPosition"
|
|
1208
|
+
begin_block
|
|
1209
|
+
name "B0"
|
|
1210
|
+
from_bci -1
|
|
1211
|
+
to_bci -1
|
|
1212
|
+
predecessors
|
|
1213
|
+
successors "B1" "B2"
|
|
1214
|
+
xhandlers
|
|
1215
|
+
flags
|
|
1216
|
+
probability 4607182418800017408
|
|
1217
|
+
begin_IR
|
|
1218
|
+
LIR
|
|
1219
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1220
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1221
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1222
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
1223
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1224
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1225
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1226
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1227
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1228
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1229
|
+
end_IR
|
|
1230
|
+
end_block
|
|
1231
|
+
begin_block
|
|
1232
|
+
name "B1"
|
|
1233
|
+
from_bci -1
|
|
1234
|
+
to_bci -1
|
|
1235
|
+
predecessors "B0"
|
|
1236
|
+
successors
|
|
1237
|
+
xhandlers
|
|
1238
|
+
flags
|
|
1239
|
+
probability 4607182418800017408
|
|
1240
|
+
begin_IR
|
|
1241
|
+
LIR
|
|
1242
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1243
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1244
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1245
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1246
|
+
end_IR
|
|
1247
|
+
end_block
|
|
1248
|
+
begin_block
|
|
1249
|
+
name "B2"
|
|
1250
|
+
from_bci -1
|
|
1251
|
+
to_bci -1
|
|
1252
|
+
predecessors "B0"
|
|
1253
|
+
successors
|
|
1254
|
+
xhandlers
|
|
1255
|
+
flags
|
|
1256
|
+
probability 2355382605114769408
|
|
1257
|
+
begin_IR
|
|
1258
|
+
LIR
|
|
1259
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1260
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1261
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1262
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1263
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1264
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1265
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1266
|
+
end_IR
|
|
1267
|
+
end_block
|
|
1268
|
+
end_cfg
|
|
1269
|
+
begin_bytecodes
|
|
1270
|
+
0: aload_0
|
|
1271
|
+
1: iload_1
|
|
1272
|
+
2: iaload
|
|
1273
|
+
3: ireturn
|
|
1274
|
+
<|@
|
|
1275
|
+
end_bytecodes
|
|
1276
|
+
begin_intervals
|
|
1277
|
+
name "After resolve data flow"
|
|
1278
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[18, 20[ "NoSpillStore"
|
|
1279
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
1280
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
1281
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
1282
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 16[[22, 29[6 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1283
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 16[[22, 29[8 MustHaveRegister 10 MustHaveRegister 16 MustHaveRegister "NoSpillStore"
|
|
1284
|
+
v2|d DWORD "[rax|d]" v2|d -1 [16, 18[16 MustHaveRegister 18 ShouldHaveRegister "NoSpillStore"
|
|
1285
|
+
end_intervals
|
|
1286
|
+
begin_cfg
|
|
1287
|
+
name "After SSALinearScanResolveDataFlow"
|
|
1288
|
+
begin_block
|
|
1289
|
+
name "B0"
|
|
1290
|
+
from_bci -1
|
|
1291
|
+
to_bci -1
|
|
1292
|
+
predecessors
|
|
1293
|
+
successors "B1" "B2"
|
|
1294
|
+
xhandlers
|
|
1295
|
+
flags
|
|
1296
|
+
probability 4607182418800017408
|
|
1297
|
+
begin_IR
|
|
1298
|
+
LIR
|
|
1299
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1300
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1301
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1302
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
1303
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1304
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1305
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1306
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1307
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1308
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1309
|
+
end_IR
|
|
1310
|
+
end_block
|
|
1311
|
+
begin_block
|
|
1312
|
+
name "B1"
|
|
1313
|
+
from_bci -1
|
|
1314
|
+
to_bci -1
|
|
1315
|
+
predecessors "B0"
|
|
1316
|
+
successors
|
|
1317
|
+
xhandlers
|
|
1318
|
+
flags
|
|
1319
|
+
probability 4607182418800017408
|
|
1320
|
+
begin_IR
|
|
1321
|
+
LIR
|
|
1322
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1323
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1324
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1325
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1326
|
+
end_IR
|
|
1327
|
+
end_block
|
|
1328
|
+
begin_block
|
|
1329
|
+
name "B2"
|
|
1330
|
+
from_bci -1
|
|
1331
|
+
to_bci -1
|
|
1332
|
+
predecessors "B0"
|
|
1333
|
+
successors
|
|
1334
|
+
xhandlers
|
|
1335
|
+
flags
|
|
1336
|
+
probability 2355382605114769408
|
|
1337
|
+
begin_IR
|
|
1338
|
+
LIR
|
|
1339
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1340
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1341
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1342
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1343
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1344
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1345
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1346
|
+
end_IR
|
|
1347
|
+
end_block
|
|
1348
|
+
end_cfg
|
|
1349
|
+
begin_bytecodes
|
|
1350
|
+
0: aload_0
|
|
1351
|
+
1: iload_1
|
|
1352
|
+
2: iaload
|
|
1353
|
+
3: ireturn
|
|
1354
|
+
<|@
|
|
1355
|
+
end_bytecodes
|
|
1356
|
+
begin_cfg
|
|
1357
|
+
name "After SSALinearScanEliminateSpillMove"
|
|
1358
|
+
begin_block
|
|
1359
|
+
name "B0"
|
|
1360
|
+
from_bci -1
|
|
1361
|
+
to_bci -1
|
|
1362
|
+
predecessors
|
|
1363
|
+
successors "B1" "B2"
|
|
1364
|
+
xhandlers
|
|
1365
|
+
flags
|
|
1366
|
+
probability 4607182418800017408
|
|
1367
|
+
begin_IR
|
|
1368
|
+
LIR
|
|
1369
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1370
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1371
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1372
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
1373
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1374
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1375
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1376
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1377
|
+
>@ <|@ instruction CMP (x: v1|DWORD, y: [v0|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1378
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1379
|
+
end_IR
|
|
1380
|
+
end_block
|
|
1381
|
+
begin_block
|
|
1382
|
+
name "B1"
|
|
1383
|
+
from_bci -1
|
|
1384
|
+
to_bci -1
|
|
1385
|
+
predecessors "B0"
|
|
1386
|
+
successors
|
|
1387
|
+
xhandlers
|
|
1388
|
+
flags
|
|
1389
|
+
probability 4607182418800017408
|
|
1390
|
+
begin_IR
|
|
1391
|
+
LIR
|
|
1392
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1393
|
+
nr 16 <|@ instruction v2|DWORD = MOV [v0|QWORD[.] + v1|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1394
|
+
nr 18 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1395
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1396
|
+
end_IR
|
|
1397
|
+
end_block
|
|
1398
|
+
begin_block
|
|
1399
|
+
name "B2"
|
|
1400
|
+
from_bci -1
|
|
1401
|
+
to_bci -1
|
|
1402
|
+
predecessors "B0"
|
|
1403
|
+
successors
|
|
1404
|
+
xhandlers
|
|
1405
|
+
flags
|
|
1406
|
+
probability 2355382605114769408
|
|
1407
|
+
begin_IR
|
|
1408
|
+
LIR
|
|
1409
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1410
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1411
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1412
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1413
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1414
|
+
locals: v0|QWORD[.] v1|DWORD
|
|
1415
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1416
|
+
end_IR
|
|
1417
|
+
end_block
|
|
1418
|
+
end_cfg
|
|
1419
|
+
begin_bytecodes
|
|
1420
|
+
0: aload_0
|
|
1421
|
+
1: iload_1
|
|
1422
|
+
2: iaload
|
|
1423
|
+
3: ireturn
|
|
1424
|
+
<|@
|
|
1425
|
+
end_bytecodes
|
|
1426
|
+
begin_cfg
|
|
1427
|
+
name "After LinearScanAssignLocations"
|
|
1428
|
+
begin_block
|
|
1429
|
+
name "B0"
|
|
1430
|
+
from_bci -1
|
|
1431
|
+
to_bci -1
|
|
1432
|
+
predecessors
|
|
1433
|
+
successors "B1" "B2"
|
|
1434
|
+
xhandlers
|
|
1435
|
+
flags
|
|
1436
|
+
probability 4607182418800017408
|
|
1437
|
+
begin_IR
|
|
1438
|
+
LIR
|
|
1439
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1440
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1441
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1442
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1443
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1444
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1445
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1446
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1447
|
+
end_IR
|
|
1448
|
+
end_block
|
|
1449
|
+
begin_block
|
|
1450
|
+
name "B1"
|
|
1451
|
+
from_bci -1
|
|
1452
|
+
to_bci -1
|
|
1453
|
+
predecessors "B0"
|
|
1454
|
+
successors
|
|
1455
|
+
xhandlers
|
|
1456
|
+
flags
|
|
1457
|
+
probability 4607182418800017408
|
|
1458
|
+
begin_IR
|
|
1459
|
+
LIR
|
|
1460
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1461
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1462
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1463
|
+
end_IR
|
|
1464
|
+
end_block
|
|
1465
|
+
begin_block
|
|
1466
|
+
name "B2"
|
|
1467
|
+
from_bci -1
|
|
1468
|
+
to_bci -1
|
|
1469
|
+
predecessors "B0"
|
|
1470
|
+
successors
|
|
1471
|
+
xhandlers
|
|
1472
|
+
flags
|
|
1473
|
+
probability 2355382605114769408
|
|
1474
|
+
begin_IR
|
|
1475
|
+
LIR
|
|
1476
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1477
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1478
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1479
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1480
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1481
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1482
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1483
|
+
end_IR
|
|
1484
|
+
end_block
|
|
1485
|
+
end_cfg
|
|
1486
|
+
begin_bytecodes
|
|
1487
|
+
0: aload_0
|
|
1488
|
+
1: iload_1
|
|
1489
|
+
2: iaload
|
|
1490
|
+
3: ireturn
|
|
1491
|
+
<|@
|
|
1492
|
+
end_bytecodes
|
|
1493
|
+
begin_cfg
|
|
1494
|
+
name "After LinearScan"
|
|
1495
|
+
begin_block
|
|
1496
|
+
name "B0"
|
|
1497
|
+
from_bci -1
|
|
1498
|
+
to_bci -1
|
|
1499
|
+
predecessors
|
|
1500
|
+
successors "B1" "B2"
|
|
1501
|
+
xhandlers
|
|
1502
|
+
flags
|
|
1503
|
+
probability 4607182418800017408
|
|
1504
|
+
begin_IR
|
|
1505
|
+
LIR
|
|
1506
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1507
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1508
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1509
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1510
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1511
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1512
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1513
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1514
|
+
end_IR
|
|
1515
|
+
end_block
|
|
1516
|
+
begin_block
|
|
1517
|
+
name "B1"
|
|
1518
|
+
from_bci -1
|
|
1519
|
+
to_bci -1
|
|
1520
|
+
predecessors "B0"
|
|
1521
|
+
successors
|
|
1522
|
+
xhandlers
|
|
1523
|
+
flags
|
|
1524
|
+
probability 4607182418800017408
|
|
1525
|
+
begin_IR
|
|
1526
|
+
LIR
|
|
1527
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1528
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1529
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1530
|
+
end_IR
|
|
1531
|
+
end_block
|
|
1532
|
+
begin_block
|
|
1533
|
+
name "B2"
|
|
1534
|
+
from_bci -1
|
|
1535
|
+
to_bci -1
|
|
1536
|
+
predecessors "B0"
|
|
1537
|
+
successors
|
|
1538
|
+
xhandlers
|
|
1539
|
+
flags
|
|
1540
|
+
probability 2355382605114769408
|
|
1541
|
+
begin_IR
|
|
1542
|
+
LIR
|
|
1543
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1544
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1545
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1546
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1547
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1548
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1549
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1550
|
+
end_IR
|
|
1551
|
+
end_block
|
|
1552
|
+
end_cfg
|
|
1553
|
+
begin_bytecodes
|
|
1554
|
+
0: aload_0
|
|
1555
|
+
1: iload_1
|
|
1556
|
+
2: iaload
|
|
1557
|
+
3: ireturn
|
|
1558
|
+
<|@
|
|
1559
|
+
end_bytecodes
|
|
1560
|
+
begin_cfg
|
|
1561
|
+
name "After LSStackSlotAllocator"
|
|
1562
|
+
begin_block
|
|
1563
|
+
name "B0"
|
|
1564
|
+
from_bci -1
|
|
1565
|
+
to_bci -1
|
|
1566
|
+
predecessors
|
|
1567
|
+
successors "B1" "B2"
|
|
1568
|
+
xhandlers
|
|
1569
|
+
flags
|
|
1570
|
+
probability 4607182418800017408
|
|
1571
|
+
begin_IR
|
|
1572
|
+
LIR
|
|
1573
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1574
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1575
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1576
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
1577
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1578
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1579
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1580
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1581
|
+
end_IR
|
|
1582
|
+
end_block
|
|
1583
|
+
begin_block
|
|
1584
|
+
name "B1"
|
|
1585
|
+
from_bci -1
|
|
1586
|
+
to_bci -1
|
|
1587
|
+
predecessors "B0"
|
|
1588
|
+
successors
|
|
1589
|
+
xhandlers
|
|
1590
|
+
flags
|
|
1591
|
+
probability 4607182418800017408
|
|
1592
|
+
begin_IR
|
|
1593
|
+
LIR
|
|
1594
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1595
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1596
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1597
|
+
end_IR
|
|
1598
|
+
end_block
|
|
1599
|
+
begin_block
|
|
1600
|
+
name "B2"
|
|
1601
|
+
from_bci -1
|
|
1602
|
+
to_bci -1
|
|
1603
|
+
predecessors "B0"
|
|
1604
|
+
successors
|
|
1605
|
+
xhandlers
|
|
1606
|
+
flags
|
|
1607
|
+
probability 2355382605114769408
|
|
1608
|
+
begin_IR
|
|
1609
|
+
LIR
|
|
1610
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1611
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1612
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1613
|
+
nr 28 <|@ st <@st|@live-base-pointers: []
|
|
1614
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1615
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1616
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1617
|
+
end_IR
|
|
1618
|
+
end_block
|
|
1619
|
+
end_cfg
|
|
1620
|
+
begin_bytecodes
|
|
1621
|
+
0: aload_0
|
|
1622
|
+
1: iload_1
|
|
1623
|
+
2: iaload
|
|
1624
|
+
3: ireturn
|
|
1625
|
+
<|@
|
|
1626
|
+
end_bytecodes
|
|
1627
|
+
begin_cfg
|
|
1628
|
+
name "After LocationMarker"
|
|
1629
|
+
begin_block
|
|
1630
|
+
name "B0"
|
|
1631
|
+
from_bci -1
|
|
1632
|
+
to_bci -1
|
|
1633
|
+
predecessors
|
|
1634
|
+
successors "B1" "B2"
|
|
1635
|
+
xhandlers
|
|
1636
|
+
flags
|
|
1637
|
+
probability 4607182418800017408
|
|
1638
|
+
begin_IR
|
|
1639
|
+
LIR
|
|
1640
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1641
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1642
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1643
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1644
|
+
live-base-pointers: []
|
|
1645
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1646
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1647
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1648
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1649
|
+
end_IR
|
|
1650
|
+
end_block
|
|
1651
|
+
begin_block
|
|
1652
|
+
name "B1"
|
|
1653
|
+
from_bci -1
|
|
1654
|
+
to_bci -1
|
|
1655
|
+
predecessors "B0"
|
|
1656
|
+
successors
|
|
1657
|
+
xhandlers
|
|
1658
|
+
flags
|
|
1659
|
+
probability 4607182418800017408
|
|
1660
|
+
begin_IR
|
|
1661
|
+
LIR
|
|
1662
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1663
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1664
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
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
|
|
1673
|
+
xhandlers
|
|
1674
|
+
flags
|
|
1675
|
+
probability 2355382605114769408
|
|
1676
|
+
begin_IR
|
|
1677
|
+
LIR
|
|
1678
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1679
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1680
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1681
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
1682
|
+
live-base-pointers: []
|
|
1683
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1684
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1685
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1686
|
+
end_IR
|
|
1687
|
+
end_block
|
|
1688
|
+
end_cfg
|
|
1689
|
+
begin_bytecodes
|
|
1690
|
+
0: aload_0
|
|
1691
|
+
1: iload_1
|
|
1692
|
+
2: iaload
|
|
1693
|
+
3: ireturn
|
|
1694
|
+
<|@
|
|
1695
|
+
end_bytecodes
|
|
1696
|
+
begin_cfg
|
|
1697
|
+
name "After AllocationStage"
|
|
1698
|
+
begin_block
|
|
1699
|
+
name "B0"
|
|
1700
|
+
from_bci -1
|
|
1701
|
+
to_bci -1
|
|
1702
|
+
predecessors
|
|
1703
|
+
successors "B1" "B2"
|
|
1704
|
+
xhandlers
|
|
1705
|
+
flags
|
|
1706
|
+
probability 4607182418800017408
|
|
1707
|
+
begin_IR
|
|
1708
|
+
LIR
|
|
1709
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1710
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1711
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1712
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1713
|
+
live-base-pointers: []
|
|
1714
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1715
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1716
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1717
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1718
|
+
end_IR
|
|
1719
|
+
end_block
|
|
1720
|
+
begin_block
|
|
1721
|
+
name "B1"
|
|
1722
|
+
from_bci -1
|
|
1723
|
+
to_bci -1
|
|
1724
|
+
predecessors "B0"
|
|
1725
|
+
successors
|
|
1726
|
+
xhandlers
|
|
1727
|
+
flags
|
|
1728
|
+
probability 4607182418800017408
|
|
1729
|
+
begin_IR
|
|
1730
|
+
LIR
|
|
1731
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1732
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1733
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1734
|
+
end_IR
|
|
1735
|
+
end_block
|
|
1736
|
+
begin_block
|
|
1737
|
+
name "B2"
|
|
1738
|
+
from_bci -1
|
|
1739
|
+
to_bci -1
|
|
1740
|
+
predecessors "B0"
|
|
1741
|
+
successors
|
|
1742
|
+
xhandlers
|
|
1743
|
+
flags
|
|
1744
|
+
probability 2355382605114769408
|
|
1745
|
+
begin_IR
|
|
1746
|
+
LIR
|
|
1747
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1748
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1749
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1750
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
1751
|
+
live-base-pointers: []
|
|
1752
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1753
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1754
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1755
|
+
end_IR
|
|
1756
|
+
end_block
|
|
1757
|
+
end_cfg
|
|
1758
|
+
begin_bytecodes
|
|
1759
|
+
0: aload_0
|
|
1760
|
+
1: iload_1
|
|
1761
|
+
2: iaload
|
|
1762
|
+
3: ireturn
|
|
1763
|
+
<|@
|
|
1764
|
+
end_bytecodes
|
|
1765
|
+
begin_cfg
|
|
1766
|
+
name "After EdgeMoveOptimizer"
|
|
1767
|
+
begin_block
|
|
1768
|
+
name "B0"
|
|
1769
|
+
from_bci -1
|
|
1770
|
+
to_bci -1
|
|
1771
|
+
predecessors
|
|
1772
|
+
successors "B1" "B2"
|
|
1773
|
+
xhandlers
|
|
1774
|
+
flags
|
|
1775
|
+
probability 4607182418800017408
|
|
1776
|
+
begin_IR
|
|
1777
|
+
LIR
|
|
1778
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1779
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1780
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1781
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1782
|
+
live-base-pointers: []
|
|
1783
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1784
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1785
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1786
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1787
|
+
end_IR
|
|
1788
|
+
end_block
|
|
1789
|
+
begin_block
|
|
1790
|
+
name "B1"
|
|
1791
|
+
from_bci -1
|
|
1792
|
+
to_bci -1
|
|
1793
|
+
predecessors "B0"
|
|
1794
|
+
successors
|
|
1795
|
+
xhandlers
|
|
1796
|
+
flags
|
|
1797
|
+
probability 4607182418800017408
|
|
1798
|
+
begin_IR
|
|
1799
|
+
LIR
|
|
1800
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1801
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1802
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1803
|
+
end_IR
|
|
1804
|
+
end_block
|
|
1805
|
+
begin_block
|
|
1806
|
+
name "B2"
|
|
1807
|
+
from_bci -1
|
|
1808
|
+
to_bci -1
|
|
1809
|
+
predecessors "B0"
|
|
1810
|
+
successors
|
|
1811
|
+
xhandlers
|
|
1812
|
+
flags
|
|
1813
|
+
probability 2355382605114769408
|
|
1814
|
+
begin_IR
|
|
1815
|
+
LIR
|
|
1816
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1817
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1818
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1819
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
1820
|
+
live-base-pointers: []
|
|
1821
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1822
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1823
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1824
|
+
end_IR
|
|
1825
|
+
end_block
|
|
1826
|
+
end_cfg
|
|
1827
|
+
begin_bytecodes
|
|
1828
|
+
0: aload_0
|
|
1829
|
+
1: iload_1
|
|
1830
|
+
2: iaload
|
|
1831
|
+
3: ireturn
|
|
1832
|
+
<|@
|
|
1833
|
+
end_bytecodes
|
|
1834
|
+
begin_cfg
|
|
1835
|
+
name "After ControlFlowOptimizer"
|
|
1836
|
+
begin_block
|
|
1837
|
+
name "B0"
|
|
1838
|
+
from_bci -1
|
|
1839
|
+
to_bci -1
|
|
1840
|
+
predecessors
|
|
1841
|
+
successors "B1" "B2"
|
|
1842
|
+
xhandlers
|
|
1843
|
+
flags
|
|
1844
|
+
probability 4607182418800017408
|
|
1845
|
+
begin_IR
|
|
1846
|
+
LIR
|
|
1847
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1848
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1849
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1850
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1851
|
+
live-base-pointers: []
|
|
1852
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1853
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1854
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1855
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1856
|
+
end_IR
|
|
1857
|
+
end_block
|
|
1858
|
+
begin_block
|
|
1859
|
+
name "B1"
|
|
1860
|
+
from_bci -1
|
|
1861
|
+
to_bci -1
|
|
1862
|
+
predecessors "B0"
|
|
1863
|
+
successors
|
|
1864
|
+
xhandlers
|
|
1865
|
+
flags
|
|
1866
|
+
probability 4607182418800017408
|
|
1867
|
+
begin_IR
|
|
1868
|
+
LIR
|
|
1869
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1870
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1871
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1872
|
+
end_IR
|
|
1873
|
+
end_block
|
|
1874
|
+
begin_block
|
|
1875
|
+
name "B2"
|
|
1876
|
+
from_bci -1
|
|
1877
|
+
to_bci -1
|
|
1878
|
+
predecessors "B0"
|
|
1879
|
+
successors
|
|
1880
|
+
xhandlers
|
|
1881
|
+
flags
|
|
1882
|
+
probability 2355382605114769408
|
|
1883
|
+
begin_IR
|
|
1884
|
+
LIR
|
|
1885
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1886
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1887
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1888
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
1889
|
+
live-base-pointers: []
|
|
1890
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1891
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1892
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1893
|
+
end_IR
|
|
1894
|
+
end_block
|
|
1895
|
+
end_cfg
|
|
1896
|
+
begin_bytecodes
|
|
1897
|
+
0: aload_0
|
|
1898
|
+
1: iload_1
|
|
1899
|
+
2: iaload
|
|
1900
|
+
3: ireturn
|
|
1901
|
+
<|@
|
|
1902
|
+
end_bytecodes
|
|
1903
|
+
begin_cfg
|
|
1904
|
+
name "After RedundantMoveElimination"
|
|
1905
|
+
begin_block
|
|
1906
|
+
name "B0"
|
|
1907
|
+
from_bci -1
|
|
1908
|
+
to_bci -1
|
|
1909
|
+
predecessors
|
|
1910
|
+
successors "B1" "B2"
|
|
1911
|
+
xhandlers
|
|
1912
|
+
flags
|
|
1913
|
+
probability 4607182418800017408
|
|
1914
|
+
begin_IR
|
|
1915
|
+
LIR
|
|
1916
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1917
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1918
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1919
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1920
|
+
live-base-pointers: []
|
|
1921
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1922
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1923
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1924
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1925
|
+
end_IR
|
|
1926
|
+
end_block
|
|
1927
|
+
begin_block
|
|
1928
|
+
name "B1"
|
|
1929
|
+
from_bci -1
|
|
1930
|
+
to_bci -1
|
|
1931
|
+
predecessors "B0"
|
|
1932
|
+
successors
|
|
1933
|
+
xhandlers
|
|
1934
|
+
flags
|
|
1935
|
+
probability 4607182418800017408
|
|
1936
|
+
begin_IR
|
|
1937
|
+
LIR
|
|
1938
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1939
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
1940
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1941
|
+
end_IR
|
|
1942
|
+
end_block
|
|
1943
|
+
begin_block
|
|
1944
|
+
name "B2"
|
|
1945
|
+
from_bci -1
|
|
1946
|
+
to_bci -1
|
|
1947
|
+
predecessors "B0"
|
|
1948
|
+
successors
|
|
1949
|
+
xhandlers
|
|
1950
|
+
flags
|
|
1951
|
+
probability 2355382605114769408
|
|
1952
|
+
begin_IR
|
|
1953
|
+
LIR
|
|
1954
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1955
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
1956
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1957
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
1958
|
+
live-base-pointers: []
|
|
1959
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1960
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1961
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1962
|
+
end_IR
|
|
1963
|
+
end_block
|
|
1964
|
+
end_cfg
|
|
1965
|
+
begin_bytecodes
|
|
1966
|
+
0: aload_0
|
|
1967
|
+
1: iload_1
|
|
1968
|
+
2: iaload
|
|
1969
|
+
3: ireturn
|
|
1970
|
+
<|@
|
|
1971
|
+
end_bytecodes
|
|
1972
|
+
begin_cfg
|
|
1973
|
+
name "After NullCheckOptimizer"
|
|
1974
|
+
begin_block
|
|
1975
|
+
name "B0"
|
|
1976
|
+
from_bci -1
|
|
1977
|
+
to_bci -1
|
|
1978
|
+
predecessors
|
|
1979
|
+
successors "B1" "B2"
|
|
1980
|
+
xhandlers
|
|
1981
|
+
flags
|
|
1982
|
+
probability 4607182418800017408
|
|
1983
|
+
begin_IR
|
|
1984
|
+
LIR
|
|
1985
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1986
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1987
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
1988
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
1989
|
+
live-base-pointers: []
|
|
1990
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
1991
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
1992
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
1993
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
1994
|
+
end_IR
|
|
1995
|
+
end_block
|
|
1996
|
+
begin_block
|
|
1997
|
+
name "B1"
|
|
1998
|
+
from_bci -1
|
|
1999
|
+
to_bci -1
|
|
2000
|
+
predecessors "B0"
|
|
2001
|
+
successors
|
|
2002
|
+
xhandlers
|
|
2003
|
+
flags
|
|
2004
|
+
probability 4607182418800017408
|
|
2005
|
+
begin_IR
|
|
2006
|
+
LIR
|
|
2007
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2008
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
2009
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
2010
|
+
end_IR
|
|
2011
|
+
end_block
|
|
2012
|
+
begin_block
|
|
2013
|
+
name "B2"
|
|
2014
|
+
from_bci -1
|
|
2015
|
+
to_bci -1
|
|
2016
|
+
predecessors "B0"
|
|
2017
|
+
successors
|
|
2018
|
+
xhandlers
|
|
2019
|
+
flags
|
|
2020
|
+
probability 2355382605114769408
|
|
2021
|
+
begin_IR
|
|
2022
|
+
LIR
|
|
2023
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2024
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
2025
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
2026
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
2027
|
+
live-base-pointers: []
|
|
2028
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
2029
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
2030
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
2031
|
+
end_IR
|
|
2032
|
+
end_block
|
|
2033
|
+
end_cfg
|
|
2034
|
+
begin_bytecodes
|
|
2035
|
+
0: aload_0
|
|
2036
|
+
1: iload_1
|
|
2037
|
+
2: iaload
|
|
2038
|
+
3: ireturn
|
|
2039
|
+
<|@
|
|
2040
|
+
end_bytecodes
|
|
2041
|
+
begin_cfg
|
|
2042
|
+
name "After StackMoveOptimization"
|
|
2043
|
+
begin_block
|
|
2044
|
+
name "B0"
|
|
2045
|
+
from_bci -1
|
|
2046
|
+
to_bci -1
|
|
2047
|
+
predecessors
|
|
2048
|
+
successors "B1" "B2"
|
|
2049
|
+
xhandlers
|
|
2050
|
+
flags
|
|
2051
|
+
probability 4607182418800017408
|
|
2052
|
+
begin_IR
|
|
2053
|
+
LIR
|
|
2054
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2055
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
2056
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
2057
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
2058
|
+
live-base-pointers: []
|
|
2059
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
2060
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
2061
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
2062
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
2063
|
+
end_IR
|
|
2064
|
+
end_block
|
|
2065
|
+
begin_block
|
|
2066
|
+
name "B1"
|
|
2067
|
+
from_bci -1
|
|
2068
|
+
to_bci -1
|
|
2069
|
+
predecessors "B0"
|
|
2070
|
+
successors
|
|
2071
|
+
xhandlers
|
|
2072
|
+
flags
|
|
2073
|
+
probability 4607182418800017408
|
|
2074
|
+
begin_IR
|
|
2075
|
+
LIR
|
|
2076
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2077
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
2078
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
2079
|
+
end_IR
|
|
2080
|
+
end_block
|
|
2081
|
+
begin_block
|
|
2082
|
+
name "B2"
|
|
2083
|
+
from_bci -1
|
|
2084
|
+
to_bci -1
|
|
2085
|
+
predecessors "B0"
|
|
2086
|
+
successors
|
|
2087
|
+
xhandlers
|
|
2088
|
+
flags
|
|
2089
|
+
probability 2355382605114769408
|
|
2090
|
+
begin_IR
|
|
2091
|
+
LIR
|
|
2092
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2093
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
2094
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
2095
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
2096
|
+
live-base-pointers: []
|
|
2097
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
2098
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
2099
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
2100
|
+
end_IR
|
|
2101
|
+
end_block
|
|
2102
|
+
end_cfg
|
|
2103
|
+
begin_bytecodes
|
|
2104
|
+
0: aload_0
|
|
2105
|
+
1: iload_1
|
|
2106
|
+
2: iaload
|
|
2107
|
+
3: ireturn
|
|
2108
|
+
<|@
|
|
2109
|
+
end_bytecodes
|
|
2110
|
+
begin_cfg
|
|
2111
|
+
name "After PostAllocationOptimizationStage"
|
|
2112
|
+
begin_block
|
|
2113
|
+
name "B0"
|
|
2114
|
+
from_bci -1
|
|
2115
|
+
to_bci -1
|
|
2116
|
+
predecessors
|
|
2117
|
+
successors "B1" "B2"
|
|
2118
|
+
xhandlers
|
|
2119
|
+
flags
|
|
2120
|
+
probability 4607182418800017408
|
|
2121
|
+
begin_IR
|
|
2122
|
+
LIR
|
|
2123
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2124
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
2125
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <|@ <|@
|
|
2126
|
+
nr 10 <|@ st <@st|@reference-map: [rsi:0]
|
|
2127
|
+
live-base-pointers: []
|
|
2128
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
2129
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
2130
|
+
>@ <|@ instruction CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <|@ <|@
|
|
2131
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <|@ <|@
|
|
2132
|
+
end_IR
|
|
2133
|
+
end_block
|
|
2134
|
+
begin_block
|
|
2135
|
+
name "B1"
|
|
2136
|
+
from_bci -1
|
|
2137
|
+
to_bci -1
|
|
2138
|
+
predecessors "B0"
|
|
2139
|
+
successors
|
|
2140
|
+
xhandlers
|
|
2141
|
+
flags
|
|
2142
|
+
probability 4607182418800017408
|
|
2143
|
+
begin_IR
|
|
2144
|
+
LIR
|
|
2145
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2146
|
+
nr 16 <|@ instruction rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <|@ <|@
|
|
2147
|
+
nr 20 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
2148
|
+
end_IR
|
|
2149
|
+
end_block
|
|
2150
|
+
begin_block
|
|
2151
|
+
name "B2"
|
|
2152
|
+
from_bci -1
|
|
2153
|
+
to_bci -1
|
|
2154
|
+
predecessors "B0"
|
|
2155
|
+
successors
|
|
2156
|
+
xhandlers
|
|
2157
|
+
flags
|
|
2158
|
+
probability 2355382605114769408
|
|
2159
|
+
begin_IR
|
|
2160
|
+
LIR
|
|
2161
|
+
nr 22 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
2162
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 644] y: -3355 size: DWORD <|@ <|@
|
|
2163
|
+
nr 26 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
2164
|
+
nr 28 <|@ st <@st|@reference-map: [rsi:0]
|
|
2165
|
+
live-base-pointers: []
|
|
2166
|
+
JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0]
|
|
2167
|
+
locals: rsi|QWORD[.] rdx|DWORD
|
|
2168
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
2169
|
+
end_IR
|
|
2170
|
+
end_block
|
|
2171
|
+
end_cfg
|
|
2172
|
+
begin_bytecodes
|
|
2173
|
+
0: aload_0
|
|
2174
|
+
1: iload_1
|
|
2175
|
+
2: iaload
|
|
2176
|
+
3: ireturn
|
|
2177
|
+
<|@
|
|
2178
|
+
end_bytecodes
|
|
2179
|
+
begin_cfg
|
|
2180
|
+
name "After code generation"
|
|
2181
|
+
end_cfg
|
|
2182
|
+
begin_nmethod
|
|
2183
|
+
<<<HexCodeFile
|
|
2184
|
+
Platform AMD64 64 <||@
|
|
2185
|
+
HexCode 0 89842400c0feff4883ec1848896c24103b560c0f83170000008b449610488b6c24104883c418850500000000c5f877c341c78784020000e5f2ffff49c7879002000000000000e80000000090e80000000090e80000000090 <||@
|
|
2186
|
+
Comment 0 [stack overflow check] <||@
|
|
2187
|
+
Comment 0 3 <||@
|
|
2188
|
+
Comment 0 1 <||@
|
|
2189
|
+
Comment 11 block B0 null <||@
|
|
2190
|
+
Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2191
|
+
Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
|
|
2192
|
+
Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <||@
|
|
2193
|
+
Comment 16 10 CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <||@
|
|
2194
|
+
Comment 16 [rsi:0]at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0, duringCall: false, rethrow: false]
|
|
2195
|
+
|0 |1
|
|
2196
|
+
locals: |rsi|QWORD[.] |rdx|DWORD <||@
|
|
2197
|
+
Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
|
|
2198
|
+
Comment 19 12 BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
|
|
2199
|
+
Comment 25 block B1 null <||@
|
|
2200
|
+
Comment 25 14 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2201
|
+
Comment 25 16 rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <||@
|
|
2202
|
+
Comment 29 20 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
|
|
2203
|
+
Comment 38 12 <||@
|
|
2204
|
+
Comment 48 block B2 null <||@
|
|
2205
|
+
Comment 48 22 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2206
|
+
Comment 48 24 MOV [r15|QWORD + 644] y: -3355 size: DWORD <||@
|
|
2207
|
+
Comment 59 26 MOV [r15|QWORD + 656] y: 0 size: QWORD <||@
|
|
2208
|
+
Comment 70 28 DEOPT info [bci:0] <||@
|
|
2209
|
+
Comment 70 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap, type=address, offset=0, address=0x1108bc130, value=4610474814]:0x112ce433e} <||@
|
|
2210
|
+
Comment 75 [rsi:0]at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0, duringCall: false, rethrow: false]
|
|
2211
|
+
|0 |1
|
|
2212
|
+
locals: |rsi|QWORD[.] |rdx|DWORD <||@
|
|
2213
|
+
Comment 76 {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} <||@
|
|
2214
|
+
Comment 76 4 <||@
|
|
2215
|
+
Comment 82 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
|
|
2216
|
+
Comment 82 5 <||@
|
|
2217
|
+
HexCodeFile>>> <|@
|
|
2218
|
+
end_nmethod
|
|
2219
|
+
begin_compilation
|
|
2220
|
+
name " HotSpotCompilation-130[JavaExamples.exampleArrayRead(int[], int)]"
|
|
2221
|
+
method "HotSpotCompilation-130[JavaExamples.exampleArrayRead(int[], int)]"
|
|
2222
|
+
date 1583364091909
|
|
2223
|
+
end_compilation
|
|
2224
|
+
begin_cfg
|
|
2225
|
+
name "After code installation"
|
|
2226
|
+
end_cfg
|
|
2227
|
+
begin_nmethod
|
|
2228
|
+
<<<HexCodeFile
|
|
2229
|
+
Platform AMD64 64 <||@
|
|
2230
|
+
HexCode 112e359e0 89842400c0feff4883ec1848896c24103b560c0f83170000008b449610488b6c24104883c4188505fa5593fbc5f877c341c78784020000e5f2ffff49c7879002000000000000e813e9eaff90e8efe8feff90e809e8eaff90 <||@
|
|
2231
|
+
Comment 0 [stack overflow check] <||@
|
|
2232
|
+
Comment 0 3 <||@
|
|
2233
|
+
Comment 0 1 <||@
|
|
2234
|
+
Comment 11 block B0 null <||@
|
|
2235
|
+
Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2236
|
+
Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
|
|
2237
|
+
Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13bdcd760 slotKind: QWORD <||@
|
|
2238
|
+
Comment 16 10 CMP (x: rdx|DWORD, y: [rsi|QWORD[.] + 12]) size: DWORD state [bci:0] <||@
|
|
2239
|
+
Comment 16 [rsi:0]at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0, duringCall: false, rethrow: false]
|
|
2240
|
+
|0 |1
|
|
2241
|
+
locals: |rsi|QWORD[.] |rdx|DWORD <||@
|
|
2242
|
+
Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
|
|
2243
|
+
Comment 19 12 BRANCH trueDestinationProbability: 1.0 condition: |<| trueDestination: B0 -> B1 falseDestination: B0 -> B2 <||@
|
|
2244
|
+
Comment 25 block B1 null <||@
|
|
2245
|
+
Comment 25 14 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2246
|
+
Comment 25 16 rax|DWORD = MOV [rsi|QWORD[.] + rdx|DWORD * 4 + 16] size: DWORD <||@
|
|
2247
|
+
Comment 29 20 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
|
|
2248
|
+
Comment 38 12 <||@
|
|
2249
|
+
Comment 48 block B2 null <||@
|
|
2250
|
+
Comment 48 22 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
2251
|
+
Comment 48 24 MOV [r15|QWORD + 644] y: -3355 size: DWORD <||@
|
|
2252
|
+
Comment 59 26 MOV [r15|QWORD + 656] y: 0 size: QWORD <||@
|
|
2253
|
+
Comment 70 28 DEOPT info [bci:0] <||@
|
|
2254
|
+
Comment 70 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap, type=address, offset=0, address=0x1108bc130, value=4610474814]:0x112ce433e} <||@
|
|
2255
|
+
Comment 75 [rsi:0]at JavaExamples.exampleArrayRead(JavaExamples.java:313) [bci: 0, duringCall: false, rethrow: false]
|
|
2256
|
+
|0 |1
|
|
2257
|
+
locals: |rsi|QWORD[.] |rdx|DWORD <||@
|
|
2258
|
+
Comment 76 {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} <||@
|
|
2259
|
+
Comment 76 4 <||@
|
|
2260
|
+
Comment 82 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
|
|
2261
|
+
Comment 82 5 <||@
|
|
2262
|
+
HexCodeFile>>> <|@
|
|
2263
|
+
end_nmethod
|