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,1102 @@
|
|
|
1
|
+
begin_compilation
|
|
2
|
+
name " HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
|
|
3
|
+
method "HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
|
|
4
|
+
date 1583364091871
|
|
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
|
|
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: v12
|
|
28
|
+
=== Usages ===
|
|
29
|
+
=== Predecessor ===
|
|
30
|
+
- >@ <|@
|
|
31
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v12 <|@ <|@
|
|
32
|
+
f <@~|@floating>@ <|@
|
|
33
|
+
tid a17 <|@
|
|
34
|
+
d <@d|@=== Debug Properties ===
|
|
35
|
+
isDefaultStable: false
|
|
36
|
+
rawvalue: null
|
|
37
|
+
stableDimension: 0
|
|
38
|
+
stamp: a - NULL
|
|
39
|
+
stampKind: a -
|
|
40
|
+
value: Object[null]
|
|
41
|
+
=== Inputs ===
|
|
42
|
+
=== Succesors ===
|
|
43
|
+
=== Usages ===
|
|
44
|
+
?3
|
|
45
|
+
=== Predecessor ===
|
|
46
|
+
- >@ <|@
|
|
47
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
48
|
+
f <@~|@floating>@ <|@
|
|
49
|
+
tid i2 <|@
|
|
50
|
+
d <@d|@=== Debug Properties ===
|
|
51
|
+
index: 1
|
|
52
|
+
stamp: i32
|
|
53
|
+
uncheckedStamp: [null]
|
|
54
|
+
=== Inputs ===
|
|
55
|
+
=== Succesors ===
|
|
56
|
+
=== Usages ===
|
|
57
|
+
?3 v12
|
|
58
|
+
=== Predecessor ===
|
|
59
|
+
- >@ <|@
|
|
60
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
61
|
+
tid ?3 <|@
|
|
62
|
+
d <@d|@=== Debug Properties ===
|
|
63
|
+
bci: 0
|
|
64
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)>
|
|
65
|
+
duringCall: false
|
|
66
|
+
localsSize: 2
|
|
67
|
+
locksSize: 0
|
|
68
|
+
rethrowException: false
|
|
69
|
+
sourceFile: JavaExamples.java
|
|
70
|
+
sourceLine: 300
|
|
71
|
+
stackSize: 0
|
|
72
|
+
=== Inputs ===
|
|
73
|
+
outerFrameState: -
|
|
74
|
+
values: a17 i2
|
|
75
|
+
=== Succesors ===
|
|
76
|
+
=== Usages ===
|
|
77
|
+
v12
|
|
78
|
+
=== Predecessor ===
|
|
79
|
+
- >@ <|@
|
|
80
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a17 i2 <|@ <|@
|
|
81
|
+
f <@~|@floating>@ <|@
|
|
82
|
+
tid a1 <|@
|
|
83
|
+
d <@d|@=== Debug Properties ===
|
|
84
|
+
index: 0
|
|
85
|
+
stamp: a# LJavaExamples$ExampleObject;
|
|
86
|
+
uncheckedStamp: [null]
|
|
87
|
+
=== Inputs ===
|
|
88
|
+
=== Succesors ===
|
|
89
|
+
=== Usages ===
|
|
90
|
+
v18
|
|
91
|
+
=== Predecessor ===
|
|
92
|
+
- >@ <|@
|
|
93
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
94
|
+
f <@~|@floating>@ <|@
|
|
95
|
+
tid v18 <|@
|
|
96
|
+
d <@d|@=== Debug Properties ===
|
|
97
|
+
displacement: 12
|
|
98
|
+
scale: Times1
|
|
99
|
+
stamp: void*
|
|
100
|
+
=== Inputs ===
|
|
101
|
+
base: a1
|
|
102
|
+
index: -
|
|
103
|
+
=== Succesors ===
|
|
104
|
+
=== Usages ===
|
|
105
|
+
v12
|
|
106
|
+
=== Predecessor ===
|
|
107
|
+
- >@ <|@
|
|
108
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
|
|
109
|
+
f <@#|@fixed with next>@ <|@
|
|
110
|
+
tid v12 <|@
|
|
111
|
+
d <@d|@=== Debug Properties ===
|
|
112
|
+
barrierType: NONE
|
|
113
|
+
location: JavaExamples$ExampleObject.x
|
|
114
|
+
nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 2]
|
|
115
|
+
nullCheck: true
|
|
116
|
+
stamp: void
|
|
117
|
+
volatileAccess: false
|
|
118
|
+
=== Inputs ===
|
|
119
|
+
stateBefore: ?3
|
|
120
|
+
guard: -
|
|
121
|
+
address: v18
|
|
122
|
+
value: i2
|
|
123
|
+
stateAfter: -
|
|
124
|
+
lastLocationAccess: -
|
|
125
|
+
=== Succesors ===
|
|
126
|
+
next: v6
|
|
127
|
+
=== Usages ===
|
|
128
|
+
=== Predecessor ===
|
|
129
|
+
v0 >@ <|@
|
|
130
|
+
instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: ?3 guard: - address: v18 value: i2 stateAfter: - lastLocationAccess: - #next: v6 <|@ <|@
|
|
131
|
+
f <@*|@fixed>@ <|@
|
|
132
|
+
tid v6 <|@
|
|
133
|
+
d <@d|@=== Debug Properties ===
|
|
134
|
+
nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:301) [bci: 5]
|
|
135
|
+
stamp: void
|
|
136
|
+
=== Inputs ===
|
|
137
|
+
result: -
|
|
138
|
+
memoryMap: -
|
|
139
|
+
=== Succesors ===
|
|
140
|
+
=== Usages ===
|
|
141
|
+
=== Predecessor ===
|
|
142
|
+
v12 >@ <|@
|
|
143
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
|
|
144
|
+
end_IR
|
|
145
|
+
end_block
|
|
146
|
+
end_cfg
|
|
147
|
+
begin_cfg
|
|
148
|
+
name "After LIRGeneration"
|
|
149
|
+
begin_block
|
|
150
|
+
name "B0"
|
|
151
|
+
from_bci -1
|
|
152
|
+
to_bci -1
|
|
153
|
+
predecessors
|
|
154
|
+
successors
|
|
155
|
+
xhandlers
|
|
156
|
+
flags
|
|
157
|
+
probability 4607182418800017408
|
|
158
|
+
begin_IR
|
|
159
|
+
LIR
|
|
160
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
161
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
162
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
163
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
164
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
165
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
166
|
+
locals: Object[null] v1|DWORD
|
|
167
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
168
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
169
|
+
end_IR
|
|
170
|
+
end_block
|
|
171
|
+
end_cfg
|
|
172
|
+
begin_bytecodes
|
|
173
|
+
0: aload_0
|
|
174
|
+
1: iload_1
|
|
175
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
176
|
+
5: return
|
|
177
|
+
<|@
|
|
178
|
+
end_bytecodes
|
|
179
|
+
begin_cfg
|
|
180
|
+
name "After LIR generation"
|
|
181
|
+
begin_block
|
|
182
|
+
name "B0"
|
|
183
|
+
from_bci -1
|
|
184
|
+
to_bci -1
|
|
185
|
+
predecessors
|
|
186
|
+
successors
|
|
187
|
+
xhandlers
|
|
188
|
+
flags
|
|
189
|
+
probability 4607182418800017408
|
|
190
|
+
begin_IR
|
|
191
|
+
HIR
|
|
192
|
+
f <@#|@fixed with next>@ <|@
|
|
193
|
+
tid v0 <|@
|
|
194
|
+
d <@d|@=== Debug Properties ===
|
|
195
|
+
stamp: void
|
|
196
|
+
withSpeculationFence: false
|
|
197
|
+
=== Inputs ===
|
|
198
|
+
stateAfter: -
|
|
199
|
+
=== Succesors ===
|
|
200
|
+
next: v12
|
|
201
|
+
=== Usages ===
|
|
202
|
+
=== Predecessor ===
|
|
203
|
+
- >@ <|@
|
|
204
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v12 <|@ <|@
|
|
205
|
+
f <@~|@floating>@ <|@
|
|
206
|
+
tid a17 <|@
|
|
207
|
+
result Object[null] <|@
|
|
208
|
+
d <@d|@=== Debug Properties ===
|
|
209
|
+
isDefaultStable: false
|
|
210
|
+
rawvalue: null
|
|
211
|
+
stableDimension: 0
|
|
212
|
+
stamp: a - NULL
|
|
213
|
+
stampKind: a -
|
|
214
|
+
value: Object[null]
|
|
215
|
+
=== Inputs ===
|
|
216
|
+
=== Succesors ===
|
|
217
|
+
=== Usages ===
|
|
218
|
+
?3
|
|
219
|
+
=== Predecessor ===
|
|
220
|
+
- >@ <|@
|
|
221
|
+
instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
|
|
222
|
+
f <@~|@floating>@ <|@
|
|
223
|
+
tid i2 <|@
|
|
224
|
+
result v1|DWORD <|@
|
|
225
|
+
d <@d|@=== Debug Properties ===
|
|
226
|
+
index: 1
|
|
227
|
+
stamp: i32
|
|
228
|
+
uncheckedStamp: [null]
|
|
229
|
+
=== Inputs ===
|
|
230
|
+
=== Succesors ===
|
|
231
|
+
=== Usages ===
|
|
232
|
+
?3 v12
|
|
233
|
+
=== Predecessor ===
|
|
234
|
+
- >@ <|@
|
|
235
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
236
|
+
tid ?3 <|@
|
|
237
|
+
d <@d|@=== Debug Properties ===
|
|
238
|
+
bci: 0
|
|
239
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)>
|
|
240
|
+
duringCall: false
|
|
241
|
+
localsSize: 2
|
|
242
|
+
locksSize: 0
|
|
243
|
+
rethrowException: false
|
|
244
|
+
sourceFile: JavaExamples.java
|
|
245
|
+
sourceLine: 300
|
|
246
|
+
stackSize: 0
|
|
247
|
+
=== Inputs ===
|
|
248
|
+
outerFrameState: -
|
|
249
|
+
values: a17 i2
|
|
250
|
+
=== Succesors ===
|
|
251
|
+
=== Usages ===
|
|
252
|
+
v12
|
|
253
|
+
=== Predecessor ===
|
|
254
|
+
- >@ <|@
|
|
255
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: a17 i2 <|@ <|@
|
|
256
|
+
f <@~|@floating>@ <|@
|
|
257
|
+
tid a1 <|@
|
|
258
|
+
result v0|QWORD[.] <|@
|
|
259
|
+
d <@d|@=== Debug Properties ===
|
|
260
|
+
index: 0
|
|
261
|
+
stamp: a# LJavaExamples$ExampleObject;
|
|
262
|
+
uncheckedStamp: [null]
|
|
263
|
+
=== Inputs ===
|
|
264
|
+
=== Succesors ===
|
|
265
|
+
=== Usages ===
|
|
266
|
+
v18
|
|
267
|
+
=== Predecessor ===
|
|
268
|
+
- >@ <|@
|
|
269
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
270
|
+
f <@~|@floating>@ <|@
|
|
271
|
+
tid v18 <|@
|
|
272
|
+
result [v0|QWORD[.] + 12] <|@
|
|
273
|
+
d <@d|@=== Debug Properties ===
|
|
274
|
+
displacement: 12
|
|
275
|
+
scale: Times1
|
|
276
|
+
stamp: void*
|
|
277
|
+
=== Inputs ===
|
|
278
|
+
base: a1
|
|
279
|
+
index: -
|
|
280
|
+
=== Succesors ===
|
|
281
|
+
=== Usages ===
|
|
282
|
+
v12
|
|
283
|
+
=== Predecessor ===
|
|
284
|
+
- >@ <|@
|
|
285
|
+
instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a1 index: - <|@ <|@
|
|
286
|
+
f <@#|@fixed with next>@ <|@
|
|
287
|
+
tid v12 <|@
|
|
288
|
+
d <@d|@=== Debug Properties ===
|
|
289
|
+
barrierType: NONE
|
|
290
|
+
location: JavaExamples$ExampleObject.x
|
|
291
|
+
nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 2]
|
|
292
|
+
nullCheck: true
|
|
293
|
+
stamp: void
|
|
294
|
+
volatileAccess: false
|
|
295
|
+
=== Inputs ===
|
|
296
|
+
stateBefore: ?3
|
|
297
|
+
guard: -
|
|
298
|
+
address: v18
|
|
299
|
+
value: i2
|
|
300
|
+
stateAfter: -
|
|
301
|
+
lastLocationAccess: -
|
|
302
|
+
=== Succesors ===
|
|
303
|
+
next: v6
|
|
304
|
+
=== Usages ===
|
|
305
|
+
=== Predecessor ===
|
|
306
|
+
v0 >@ <|@
|
|
307
|
+
instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: ?3 guard: - address: v18 value: i2 stateAfter: - lastLocationAccess: - #next: v6 <|@ <|@
|
|
308
|
+
f <@*|@fixed>@ <|@
|
|
309
|
+
tid v6 <|@
|
|
310
|
+
d <@d|@=== Debug Properties ===
|
|
311
|
+
nodeSourcePosition: at JavaExamples.exampleFieldWrite(JavaExamples.java:301) [bci: 5]
|
|
312
|
+
stamp: void
|
|
313
|
+
=== Inputs ===
|
|
314
|
+
result: -
|
|
315
|
+
memoryMap: -
|
|
316
|
+
=== Succesors ===
|
|
317
|
+
=== Usages ===
|
|
318
|
+
=== Predecessor ===
|
|
319
|
+
v12 >@ <|@
|
|
320
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
|
|
321
|
+
end_IR
|
|
322
|
+
begin_IR
|
|
323
|
+
LIR
|
|
324
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
325
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
326
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
327
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
328
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
329
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
330
|
+
locals: Object[null] v1|DWORD
|
|
331
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
332
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
333
|
+
end_IR
|
|
334
|
+
end_block
|
|
335
|
+
end_cfg
|
|
336
|
+
begin_cfg
|
|
337
|
+
name "After ConstantLoadOptimization"
|
|
338
|
+
begin_block
|
|
339
|
+
name "B0"
|
|
340
|
+
from_bci -1
|
|
341
|
+
to_bci -1
|
|
342
|
+
predecessors
|
|
343
|
+
successors
|
|
344
|
+
xhandlers
|
|
345
|
+
flags
|
|
346
|
+
probability 4607182418800017408
|
|
347
|
+
begin_IR
|
|
348
|
+
LIR
|
|
349
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
350
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
351
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
352
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
353
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
354
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
355
|
+
locals: Object[null] v1|DWORD
|
|
356
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
357
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
358
|
+
end_IR
|
|
359
|
+
end_block
|
|
360
|
+
end_cfg
|
|
361
|
+
begin_bytecodes
|
|
362
|
+
0: aload_0
|
|
363
|
+
1: iload_1
|
|
364
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
365
|
+
5: return
|
|
366
|
+
<|@
|
|
367
|
+
end_bytecodes
|
|
368
|
+
begin_cfg
|
|
369
|
+
name "After SaveCalleeSaveRegisters"
|
|
370
|
+
begin_block
|
|
371
|
+
name "B0"
|
|
372
|
+
from_bci -1
|
|
373
|
+
to_bci -1
|
|
374
|
+
predecessors
|
|
375
|
+
successors
|
|
376
|
+
xhandlers
|
|
377
|
+
flags
|
|
378
|
+
probability 4607182418800017408
|
|
379
|
+
begin_IR
|
|
380
|
+
LIR
|
|
381
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
382
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
383
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
384
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
385
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
386
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
387
|
+
locals: Object[null] v1|DWORD
|
|
388
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
389
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
390
|
+
end_IR
|
|
391
|
+
end_block
|
|
392
|
+
end_cfg
|
|
393
|
+
begin_bytecodes
|
|
394
|
+
0: aload_0
|
|
395
|
+
1: iload_1
|
|
396
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
397
|
+
5: return
|
|
398
|
+
<|@
|
|
399
|
+
end_bytecodes
|
|
400
|
+
begin_cfg
|
|
401
|
+
name "After PreAllocationOptimizationStage"
|
|
402
|
+
begin_block
|
|
403
|
+
name "B0"
|
|
404
|
+
from_bci -1
|
|
405
|
+
to_bci -1
|
|
406
|
+
predecessors
|
|
407
|
+
successors
|
|
408
|
+
xhandlers
|
|
409
|
+
flags
|
|
410
|
+
probability 4607182418800017408
|
|
411
|
+
begin_IR
|
|
412
|
+
LIR
|
|
413
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
414
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
415
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
416
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
417
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
418
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
419
|
+
locals: Object[null] v1|DWORD
|
|
420
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
421
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
422
|
+
end_IR
|
|
423
|
+
end_block
|
|
424
|
+
end_cfg
|
|
425
|
+
begin_bytecodes
|
|
426
|
+
0: aload_0
|
|
427
|
+
1: iload_1
|
|
428
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
429
|
+
5: return
|
|
430
|
+
<|@
|
|
431
|
+
end_bytecodes
|
|
432
|
+
begin_cfg
|
|
433
|
+
name "After MarkBasePointers"
|
|
434
|
+
begin_block
|
|
435
|
+
name "B0"
|
|
436
|
+
from_bci -1
|
|
437
|
+
to_bci -1
|
|
438
|
+
predecessors
|
|
439
|
+
successors
|
|
440
|
+
xhandlers
|
|
441
|
+
flags
|
|
442
|
+
probability 4607182418800017408
|
|
443
|
+
begin_IR
|
|
444
|
+
LIR
|
|
445
|
+
nr -1 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
446
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
447
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
448
|
+
nr -1 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
449
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
450
|
+
nr -1 <|@ st <@st|@live-base-pointers: []
|
|
451
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
452
|
+
locals: Object[null] v1|DWORD
|
|
453
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
454
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
455
|
+
end_IR
|
|
456
|
+
end_block
|
|
457
|
+
end_cfg
|
|
458
|
+
begin_bytecodes
|
|
459
|
+
0: aload_0
|
|
460
|
+
1: iload_1
|
|
461
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
462
|
+
5: return
|
|
463
|
+
<|@
|
|
464
|
+
end_bytecodes
|
|
465
|
+
begin_cfg
|
|
466
|
+
name "Before register allocation"
|
|
467
|
+
begin_block
|
|
468
|
+
name "B0"
|
|
469
|
+
from_bci -1
|
|
470
|
+
to_bci -1
|
|
471
|
+
predecessors
|
|
472
|
+
successors
|
|
473
|
+
xhandlers
|
|
474
|
+
flags
|
|
475
|
+
probability 4607182418800017408
|
|
476
|
+
begin_IR
|
|
477
|
+
LIR
|
|
478
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
479
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
480
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
481
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
482
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
483
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
484
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
485
|
+
locals: Object[null] v1|DWORD
|
|
486
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
487
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
488
|
+
end_IR
|
|
489
|
+
end_block
|
|
490
|
+
end_cfg
|
|
491
|
+
begin_bytecodes
|
|
492
|
+
0: aload_0
|
|
493
|
+
1: iload_1
|
|
494
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
495
|
+
5: return
|
|
496
|
+
<|@
|
|
497
|
+
end_bytecodes
|
|
498
|
+
begin_cfg
|
|
499
|
+
name "After SSALinearScanLifetimeAnalysis"
|
|
500
|
+
begin_block
|
|
501
|
+
name "B0"
|
|
502
|
+
from_bci -1
|
|
503
|
+
to_bci -1
|
|
504
|
+
predecessors
|
|
505
|
+
successors
|
|
506
|
+
xhandlers
|
|
507
|
+
flags
|
|
508
|
+
probability 4607182418800017408
|
|
509
|
+
begin_IR
|
|
510
|
+
LIR
|
|
511
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
512
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
513
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
514
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
515
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
516
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
517
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
518
|
+
locals: Object[null] v1|DWORD
|
|
519
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
520
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
521
|
+
end_IR
|
|
522
|
+
end_block
|
|
523
|
+
end_cfg
|
|
524
|
+
begin_bytecodes
|
|
525
|
+
0: aload_0
|
|
526
|
+
1: iload_1
|
|
527
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
528
|
+
5: return
|
|
529
|
+
<|@
|
|
530
|
+
end_bytecodes
|
|
531
|
+
begin_intervals
|
|
532
|
+
name "Before register allocation"
|
|
533
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
534
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
535
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
536
|
+
v0|q QWORD "[v0|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
537
|
+
v1|d DWORD "[v1|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
538
|
+
end_intervals
|
|
539
|
+
begin_intervals
|
|
540
|
+
name "After register allocation"
|
|
541
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
542
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
543
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
544
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
545
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
546
|
+
end_intervals
|
|
547
|
+
begin_cfg
|
|
548
|
+
name "After LinearScanRegisterAllocation"
|
|
549
|
+
begin_block
|
|
550
|
+
name "B0"
|
|
551
|
+
from_bci -1
|
|
552
|
+
to_bci -1
|
|
553
|
+
predecessors
|
|
554
|
+
successors
|
|
555
|
+
xhandlers
|
|
556
|
+
flags
|
|
557
|
+
probability 4607182418800017408
|
|
558
|
+
begin_IR
|
|
559
|
+
LIR
|
|
560
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
561
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
562
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
563
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
564
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
565
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
566
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
567
|
+
locals: Object[null] v1|DWORD
|
|
568
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
569
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
570
|
+
end_IR
|
|
571
|
+
end_block
|
|
572
|
+
end_cfg
|
|
573
|
+
begin_bytecodes
|
|
574
|
+
0: aload_0
|
|
575
|
+
1: iload_1
|
|
576
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
577
|
+
5: return
|
|
578
|
+
<|@
|
|
579
|
+
end_bytecodes
|
|
580
|
+
begin_intervals
|
|
581
|
+
name "After optimize spill position"
|
|
582
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
583
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
584
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
585
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
586
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
587
|
+
end_intervals
|
|
588
|
+
begin_cfg
|
|
589
|
+
name "After LinearScanOptimizeSpillPosition"
|
|
590
|
+
begin_block
|
|
591
|
+
name "B0"
|
|
592
|
+
from_bci -1
|
|
593
|
+
to_bci -1
|
|
594
|
+
predecessors
|
|
595
|
+
successors
|
|
596
|
+
xhandlers
|
|
597
|
+
flags
|
|
598
|
+
probability 4607182418800017408
|
|
599
|
+
begin_IR
|
|
600
|
+
LIR
|
|
601
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
602
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
603
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
604
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
605
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
606
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
607
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
608
|
+
locals: Object[null] v1|DWORD
|
|
609
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
610
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
611
|
+
end_IR
|
|
612
|
+
end_block
|
|
613
|
+
end_cfg
|
|
614
|
+
begin_bytecodes
|
|
615
|
+
0: aload_0
|
|
616
|
+
1: iload_1
|
|
617
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
618
|
+
5: return
|
|
619
|
+
<|@
|
|
620
|
+
end_bytecodes
|
|
621
|
+
begin_intervals
|
|
622
|
+
name "After resolve data flow"
|
|
623
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
624
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
625
|
+
rsi|q fixed "[rsi|q]" rsi|q -1 [0, 6[ "NoSpillStore"
|
|
626
|
+
v0|q QWORD "[rsi|q]" v0|q rsi|q [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
627
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 11[8 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
|
|
628
|
+
end_intervals
|
|
629
|
+
begin_cfg
|
|
630
|
+
name "After SSALinearScanResolveDataFlow"
|
|
631
|
+
begin_block
|
|
632
|
+
name "B0"
|
|
633
|
+
from_bci -1
|
|
634
|
+
to_bci -1
|
|
635
|
+
predecessors
|
|
636
|
+
successors
|
|
637
|
+
xhandlers
|
|
638
|
+
flags
|
|
639
|
+
probability 4607182418800017408
|
|
640
|
+
begin_IR
|
|
641
|
+
LIR
|
|
642
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
643
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
644
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
645
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
646
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
647
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
648
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
649
|
+
locals: Object[null] v1|DWORD
|
|
650
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
651
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
652
|
+
end_IR
|
|
653
|
+
end_block
|
|
654
|
+
end_cfg
|
|
655
|
+
begin_bytecodes
|
|
656
|
+
0: aload_0
|
|
657
|
+
1: iload_1
|
|
658
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
659
|
+
5: return
|
|
660
|
+
<|@
|
|
661
|
+
end_bytecodes
|
|
662
|
+
begin_cfg
|
|
663
|
+
name "After SSALinearScanEliminateSpillMove"
|
|
664
|
+
begin_block
|
|
665
|
+
name "B0"
|
|
666
|
+
from_bci -1
|
|
667
|
+
to_bci -1
|
|
668
|
+
predecessors
|
|
669
|
+
successors
|
|
670
|
+
xhandlers
|
|
671
|
+
flags
|
|
672
|
+
probability 4607182418800017408
|
|
673
|
+
begin_IR
|
|
674
|
+
LIR
|
|
675
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
676
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
677
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
678
|
+
nr 6 <|@ instruction v0|QWORD[.] = MOVE rsi|QWORD[.] moveKind: QWORD <|@ <|@
|
|
679
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
680
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
681
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
682
|
+
locals: Object[null] v1|DWORD
|
|
683
|
+
>@ <|@ instruction MOV (x: [v0|QWORD[.] + 12], y: v1|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
684
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
685
|
+
end_IR
|
|
686
|
+
end_block
|
|
687
|
+
end_cfg
|
|
688
|
+
begin_bytecodes
|
|
689
|
+
0: aload_0
|
|
690
|
+
1: iload_1
|
|
691
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
692
|
+
5: return
|
|
693
|
+
<|@
|
|
694
|
+
end_bytecodes
|
|
695
|
+
begin_cfg
|
|
696
|
+
name "After LinearScanAssignLocations"
|
|
697
|
+
begin_block
|
|
698
|
+
name "B0"
|
|
699
|
+
from_bci -1
|
|
700
|
+
to_bci -1
|
|
701
|
+
predecessors
|
|
702
|
+
successors
|
|
703
|
+
xhandlers
|
|
704
|
+
flags
|
|
705
|
+
probability 4607182418800017408
|
|
706
|
+
begin_IR
|
|
707
|
+
LIR
|
|
708
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
709
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
710
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
711
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
712
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
713
|
+
locals: Object[null] rdx|DWORD
|
|
714
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
715
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
716
|
+
end_IR
|
|
717
|
+
end_block
|
|
718
|
+
end_cfg
|
|
719
|
+
begin_bytecodes
|
|
720
|
+
0: aload_0
|
|
721
|
+
1: iload_1
|
|
722
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
723
|
+
5: return
|
|
724
|
+
<|@
|
|
725
|
+
end_bytecodes
|
|
726
|
+
begin_cfg
|
|
727
|
+
name "After LinearScan"
|
|
728
|
+
begin_block
|
|
729
|
+
name "B0"
|
|
730
|
+
from_bci -1
|
|
731
|
+
to_bci -1
|
|
732
|
+
predecessors
|
|
733
|
+
successors
|
|
734
|
+
xhandlers
|
|
735
|
+
flags
|
|
736
|
+
probability 4607182418800017408
|
|
737
|
+
begin_IR
|
|
738
|
+
LIR
|
|
739
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
740
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
741
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
742
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
743
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
744
|
+
locals: Object[null] rdx|DWORD
|
|
745
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
746
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
747
|
+
end_IR
|
|
748
|
+
end_block
|
|
749
|
+
end_cfg
|
|
750
|
+
begin_bytecodes
|
|
751
|
+
0: aload_0
|
|
752
|
+
1: iload_1
|
|
753
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
754
|
+
5: return
|
|
755
|
+
<|@
|
|
756
|
+
end_bytecodes
|
|
757
|
+
begin_cfg
|
|
758
|
+
name "After LSStackSlotAllocator"
|
|
759
|
+
begin_block
|
|
760
|
+
name "B0"
|
|
761
|
+
from_bci -1
|
|
762
|
+
to_bci -1
|
|
763
|
+
predecessors
|
|
764
|
+
successors
|
|
765
|
+
xhandlers
|
|
766
|
+
flags
|
|
767
|
+
probability 4607182418800017408
|
|
768
|
+
begin_IR
|
|
769
|
+
LIR
|
|
770
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
771
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
772
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
773
|
+
nr 10 <|@ st <@st|@live-base-pointers: []
|
|
774
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
775
|
+
locals: Object[null] rdx|DWORD
|
|
776
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
777
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
778
|
+
end_IR
|
|
779
|
+
end_block
|
|
780
|
+
end_cfg
|
|
781
|
+
begin_bytecodes
|
|
782
|
+
0: aload_0
|
|
783
|
+
1: iload_1
|
|
784
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
785
|
+
5: return
|
|
786
|
+
<|@
|
|
787
|
+
end_bytecodes
|
|
788
|
+
begin_cfg
|
|
789
|
+
name "After LocationMarker"
|
|
790
|
+
begin_block
|
|
791
|
+
name "B0"
|
|
792
|
+
from_bci -1
|
|
793
|
+
to_bci -1
|
|
794
|
+
predecessors
|
|
795
|
+
successors
|
|
796
|
+
xhandlers
|
|
797
|
+
flags
|
|
798
|
+
probability 4607182418800017408
|
|
799
|
+
begin_IR
|
|
800
|
+
LIR
|
|
801
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
802
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
803
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
804
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
805
|
+
live-base-pointers: []
|
|
806
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
807
|
+
locals: Object[null] rdx|DWORD
|
|
808
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
809
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
810
|
+
end_IR
|
|
811
|
+
end_block
|
|
812
|
+
end_cfg
|
|
813
|
+
begin_bytecodes
|
|
814
|
+
0: aload_0
|
|
815
|
+
1: iload_1
|
|
816
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
817
|
+
5: return
|
|
818
|
+
<|@
|
|
819
|
+
end_bytecodes
|
|
820
|
+
begin_cfg
|
|
821
|
+
name "After AllocationStage"
|
|
822
|
+
begin_block
|
|
823
|
+
name "B0"
|
|
824
|
+
from_bci -1
|
|
825
|
+
to_bci -1
|
|
826
|
+
predecessors
|
|
827
|
+
successors
|
|
828
|
+
xhandlers
|
|
829
|
+
flags
|
|
830
|
+
probability 4607182418800017408
|
|
831
|
+
begin_IR
|
|
832
|
+
LIR
|
|
833
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
834
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
835
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
836
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
837
|
+
live-base-pointers: []
|
|
838
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
839
|
+
locals: Object[null] rdx|DWORD
|
|
840
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
841
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
842
|
+
end_IR
|
|
843
|
+
end_block
|
|
844
|
+
end_cfg
|
|
845
|
+
begin_bytecodes
|
|
846
|
+
0: aload_0
|
|
847
|
+
1: iload_1
|
|
848
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
849
|
+
5: return
|
|
850
|
+
<|@
|
|
851
|
+
end_bytecodes
|
|
852
|
+
begin_cfg
|
|
853
|
+
name "After EdgeMoveOptimizer"
|
|
854
|
+
begin_block
|
|
855
|
+
name "B0"
|
|
856
|
+
from_bci -1
|
|
857
|
+
to_bci -1
|
|
858
|
+
predecessors
|
|
859
|
+
successors
|
|
860
|
+
xhandlers
|
|
861
|
+
flags
|
|
862
|
+
probability 4607182418800017408
|
|
863
|
+
begin_IR
|
|
864
|
+
LIR
|
|
865
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
866
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
867
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
868
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
869
|
+
live-base-pointers: []
|
|
870
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
871
|
+
locals: Object[null] rdx|DWORD
|
|
872
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
873
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
874
|
+
end_IR
|
|
875
|
+
end_block
|
|
876
|
+
end_cfg
|
|
877
|
+
begin_bytecodes
|
|
878
|
+
0: aload_0
|
|
879
|
+
1: iload_1
|
|
880
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
881
|
+
5: return
|
|
882
|
+
<|@
|
|
883
|
+
end_bytecodes
|
|
884
|
+
begin_cfg
|
|
885
|
+
name "After ControlFlowOptimizer"
|
|
886
|
+
begin_block
|
|
887
|
+
name "B0"
|
|
888
|
+
from_bci -1
|
|
889
|
+
to_bci -1
|
|
890
|
+
predecessors
|
|
891
|
+
successors
|
|
892
|
+
xhandlers
|
|
893
|
+
flags
|
|
894
|
+
probability 4607182418800017408
|
|
895
|
+
begin_IR
|
|
896
|
+
LIR
|
|
897
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
898
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
899
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
900
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
901
|
+
live-base-pointers: []
|
|
902
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
903
|
+
locals: Object[null] rdx|DWORD
|
|
904
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
905
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
906
|
+
end_IR
|
|
907
|
+
end_block
|
|
908
|
+
end_cfg
|
|
909
|
+
begin_bytecodes
|
|
910
|
+
0: aload_0
|
|
911
|
+
1: iload_1
|
|
912
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
913
|
+
5: return
|
|
914
|
+
<|@
|
|
915
|
+
end_bytecodes
|
|
916
|
+
begin_cfg
|
|
917
|
+
name "After RedundantMoveElimination"
|
|
918
|
+
begin_block
|
|
919
|
+
name "B0"
|
|
920
|
+
from_bci -1
|
|
921
|
+
to_bci -1
|
|
922
|
+
predecessors
|
|
923
|
+
successors
|
|
924
|
+
xhandlers
|
|
925
|
+
flags
|
|
926
|
+
probability 4607182418800017408
|
|
927
|
+
begin_IR
|
|
928
|
+
LIR
|
|
929
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
930
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
931
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
932
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
933
|
+
live-base-pointers: []
|
|
934
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
935
|
+
locals: Object[null] rdx|DWORD
|
|
936
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
937
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
938
|
+
end_IR
|
|
939
|
+
end_block
|
|
940
|
+
end_cfg
|
|
941
|
+
begin_bytecodes
|
|
942
|
+
0: aload_0
|
|
943
|
+
1: iload_1
|
|
944
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
945
|
+
5: return
|
|
946
|
+
<|@
|
|
947
|
+
end_bytecodes
|
|
948
|
+
begin_cfg
|
|
949
|
+
name "After NullCheckOptimizer"
|
|
950
|
+
begin_block
|
|
951
|
+
name "B0"
|
|
952
|
+
from_bci -1
|
|
953
|
+
to_bci -1
|
|
954
|
+
predecessors
|
|
955
|
+
successors
|
|
956
|
+
xhandlers
|
|
957
|
+
flags
|
|
958
|
+
probability 4607182418800017408
|
|
959
|
+
begin_IR
|
|
960
|
+
LIR
|
|
961
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
962
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
963
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
964
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
965
|
+
live-base-pointers: []
|
|
966
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
967
|
+
locals: Object[null] rdx|DWORD
|
|
968
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
969
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
970
|
+
end_IR
|
|
971
|
+
end_block
|
|
972
|
+
end_cfg
|
|
973
|
+
begin_bytecodes
|
|
974
|
+
0: aload_0
|
|
975
|
+
1: iload_1
|
|
976
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
977
|
+
5: return
|
|
978
|
+
<|@
|
|
979
|
+
end_bytecodes
|
|
980
|
+
begin_cfg
|
|
981
|
+
name "After StackMoveOptimization"
|
|
982
|
+
begin_block
|
|
983
|
+
name "B0"
|
|
984
|
+
from_bci -1
|
|
985
|
+
to_bci -1
|
|
986
|
+
predecessors
|
|
987
|
+
successors
|
|
988
|
+
xhandlers
|
|
989
|
+
flags
|
|
990
|
+
probability 4607182418800017408
|
|
991
|
+
begin_IR
|
|
992
|
+
LIR
|
|
993
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
994
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
995
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
996
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
997
|
+
live-base-pointers: []
|
|
998
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
999
|
+
locals: Object[null] rdx|DWORD
|
|
1000
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
1001
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1002
|
+
end_IR
|
|
1003
|
+
end_block
|
|
1004
|
+
end_cfg
|
|
1005
|
+
begin_bytecodes
|
|
1006
|
+
0: aload_0
|
|
1007
|
+
1: iload_1
|
|
1008
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
1009
|
+
5: return
|
|
1010
|
+
<|@
|
|
1011
|
+
end_bytecodes
|
|
1012
|
+
begin_cfg
|
|
1013
|
+
name "After PostAllocationOptimizationStage"
|
|
1014
|
+
begin_block
|
|
1015
|
+
name "B0"
|
|
1016
|
+
from_bci -1
|
|
1017
|
+
to_bci -1
|
|
1018
|
+
predecessors
|
|
1019
|
+
successors
|
|
1020
|
+
xhandlers
|
|
1021
|
+
flags
|
|
1022
|
+
probability 4607182418800017408
|
|
1023
|
+
begin_IR
|
|
1024
|
+
LIR
|
|
1025
|
+
nr 0 <|@ instruction [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1026
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1027
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <|@ <|@
|
|
1028
|
+
nr 10 <|@ st <@st|@reference-map: []
|
|
1029
|
+
live-base-pointers: []
|
|
1030
|
+
JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0]
|
|
1031
|
+
locals: Object[null] rdx|DWORD
|
|
1032
|
+
>@ <|@ instruction MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <|@ <|@
|
|
1033
|
+
nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
|
|
1034
|
+
end_IR
|
|
1035
|
+
end_block
|
|
1036
|
+
end_cfg
|
|
1037
|
+
begin_bytecodes
|
|
1038
|
+
0: aload_0
|
|
1039
|
+
1: iload_1
|
|
1040
|
+
2: putfield #58 // JavaExamples$ExampleObject.x:int
|
|
1041
|
+
5: return
|
|
1042
|
+
<|@
|
|
1043
|
+
end_bytecodes
|
|
1044
|
+
begin_cfg
|
|
1045
|
+
name "After code generation"
|
|
1046
|
+
end_cfg
|
|
1047
|
+
begin_nmethod
|
|
1048
|
+
<<<HexCodeFile
|
|
1049
|
+
Platform AMD64 64 <||@
|
|
1050
|
+
HexCode 0 89842400c0feff4883ec1848896c241089560c488b6c24104883c418850500000000c5f877c3e80000000090e80000000090 <||@
|
|
1051
|
+
Comment 0 [stack overflow check] <||@
|
|
1052
|
+
Comment 0 3 <||@
|
|
1053
|
+
Comment 0 1 <||@
|
|
1054
|
+
Comment 11 block B0 null <||@
|
|
1055
|
+
Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
1056
|
+
Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
|
|
1057
|
+
Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <||@
|
|
1058
|
+
Comment 16 10 MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <||@
|
|
1059
|
+
Comment 16 []at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0, duringCall: false, rethrow: false]
|
|
1060
|
+
|0 |1
|
|
1061
|
+
locals: |Object[null] |rdx|DWORD <||@
|
|
1062
|
+
Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
|
|
1063
|
+
Comment 19 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
|
|
1064
|
+
Comment 28 12 <||@
|
|
1065
|
+
Comment 38 {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} <||@
|
|
1066
|
+
Comment 38 4 <||@
|
|
1067
|
+
Comment 44 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
|
|
1068
|
+
Comment 44 5 <||@
|
|
1069
|
+
HexCodeFile>>> <|@
|
|
1070
|
+
end_nmethod
|
|
1071
|
+
begin_compilation
|
|
1072
|
+
name " HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
|
|
1073
|
+
method "HotSpotCompilation-128[JavaExamples.exampleFieldWrite(JavaExamples$ExampleObject, int)]"
|
|
1074
|
+
date 1583364091880
|
|
1075
|
+
end_compilation
|
|
1076
|
+
begin_cfg
|
|
1077
|
+
name "After code installation"
|
|
1078
|
+
end_cfg
|
|
1079
|
+
begin_nmethod
|
|
1080
|
+
<<<HexCodeFile
|
|
1081
|
+
Platform AMD64 64 <||@
|
|
1082
|
+
HexCode 112e352a0 89842400c0feff4883ec1848896c241089560c488b6c24104883c4188505445d93fbc5f877c3e855f0feff90e86fefeaff90f4f4f4f4f4f4 <||@
|
|
1083
|
+
Comment 0 [stack overflow check] <||@
|
|
1084
|
+
Comment 0 3 <||@
|
|
1085
|
+
Comment 0 1 <||@
|
|
1086
|
+
Comment 11 block B0 null <||@
|
|
1087
|
+
Comment 11 0 [rsi|QWORD[.], rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
1088
|
+
Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
|
|
1089
|
+
Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13c640828 slotKind: QWORD <||@
|
|
1090
|
+
Comment 16 10 MOV (x: [rsi|QWORD[.] + 12], y: rdx|DWORD) size: DWORD state [bci:0] <||@
|
|
1091
|
+
Comment 16 []at JavaExamples.exampleFieldWrite(JavaExamples.java:300) [bci: 0, duringCall: false, rethrow: false]
|
|
1092
|
+
|0 |1
|
|
1093
|
+
locals: |Object[null] |rdx|DWORD <||@
|
|
1094
|
+
Comment 16 {infopoint: IMPLICIT_EXCEPTION} <||@
|
|
1095
|
+
Comment 19 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
|
|
1096
|
+
Comment 28 12 <||@
|
|
1097
|
+
Comment 38 {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} <||@
|
|
1098
|
+
Comment 38 4 <||@
|
|
1099
|
+
Comment 44 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
|
|
1100
|
+
Comment 44 5 <||@
|
|
1101
|
+
HexCodeFile>>> <|@
|
|
1102
|
+
end_nmethod
|