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,1888 @@
|
|
|
1
|
+
begin_compilation
|
|
2
|
+
name " HotSpotCompilation-346[JavaExamples.exampleExactArith(int, int)]"
|
|
3
|
+
method "HotSpotCompilation-346[JavaExamples.exampleExactArith(int, int)]"
|
|
4
|
+
date 1583364091426
|
|
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: i13
|
|
28
|
+
=== Usages ===
|
|
29
|
+
=== Predecessor ===
|
|
30
|
+
- >@ <|@
|
|
31
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: i13 <|@ <|@
|
|
32
|
+
f <@~|@floating>@ <|@
|
|
33
|
+
tid i2 <|@
|
|
34
|
+
d <@d|@=== Debug Properties ===
|
|
35
|
+
index: 1
|
|
36
|
+
stamp: i32
|
|
37
|
+
uncheckedStamp: [null]
|
|
38
|
+
=== Inputs ===
|
|
39
|
+
=== Succesors ===
|
|
40
|
+
=== Usages ===
|
|
41
|
+
?3 i13
|
|
42
|
+
=== Predecessor ===
|
|
43
|
+
- >@ <|@
|
|
44
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
45
|
+
f <@~|@floating>@ <|@
|
|
46
|
+
tid i1 <|@
|
|
47
|
+
d <@d|@=== Debug Properties ===
|
|
48
|
+
index: 0
|
|
49
|
+
stamp: i32
|
|
50
|
+
uncheckedStamp: [null]
|
|
51
|
+
=== Inputs ===
|
|
52
|
+
=== Succesors ===
|
|
53
|
+
=== Usages ===
|
|
54
|
+
?3 i13
|
|
55
|
+
=== Predecessor ===
|
|
56
|
+
- >@ <|@
|
|
57
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
58
|
+
f <@*|@fixed>@ <|@
|
|
59
|
+
tid i13 <|@
|
|
60
|
+
d <@d|@=== Debug Properties ===
|
|
61
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
62
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
63
|
+
stamp: i32
|
|
64
|
+
=== Inputs ===
|
|
65
|
+
x: i1
|
|
66
|
+
y: i2
|
|
67
|
+
=== Succesors ===
|
|
68
|
+
next: v9
|
|
69
|
+
overflowSuccessor: v11
|
|
70
|
+
=== Usages ===
|
|
71
|
+
v7
|
|
72
|
+
=== Predecessor ===
|
|
73
|
+
v0 >@ <|@
|
|
74
|
+
instruction <@IntegerAddExactSplit|@org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactSplitNode>@ x: i1 y: i2 #next: v9 #overflowSuccessor: v11 <|@ <|@
|
|
75
|
+
end_IR
|
|
76
|
+
end_block
|
|
77
|
+
begin_block
|
|
78
|
+
name "B1"
|
|
79
|
+
from_bci -1
|
|
80
|
+
to_bci -1
|
|
81
|
+
predecessors "B0"
|
|
82
|
+
successors
|
|
83
|
+
xhandlers
|
|
84
|
+
flags
|
|
85
|
+
probability 4607182418800017408
|
|
86
|
+
begin_IR
|
|
87
|
+
HIR
|
|
88
|
+
f <@#|@fixed with next>@ <|@
|
|
89
|
+
tid v9 <|@
|
|
90
|
+
d <@d|@=== Debug Properties ===
|
|
91
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
92
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
93
|
+
stamp: void
|
|
94
|
+
withSpeculationFence: false
|
|
95
|
+
=== Inputs ===
|
|
96
|
+
=== Succesors ===
|
|
97
|
+
next: v7
|
|
98
|
+
=== Usages ===
|
|
99
|
+
=== Predecessor ===
|
|
100
|
+
i13 >@ <|@
|
|
101
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v7 <|@ <|@
|
|
102
|
+
f <@*|@fixed>@ <|@
|
|
103
|
+
tid v7 <|@
|
|
104
|
+
d <@d|@=== Debug Properties ===
|
|
105
|
+
nodeSourcePosition: at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 5]
|
|
106
|
+
stamp: void
|
|
107
|
+
=== Inputs ===
|
|
108
|
+
result: i13
|
|
109
|
+
memoryMap: -
|
|
110
|
+
=== Succesors ===
|
|
111
|
+
=== Usages ===
|
|
112
|
+
=== Predecessor ===
|
|
113
|
+
v9 >@ <|@
|
|
114
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i13 memoryMap: - <|@ <|@
|
|
115
|
+
end_IR
|
|
116
|
+
end_block
|
|
117
|
+
begin_block
|
|
118
|
+
name "B2"
|
|
119
|
+
from_bci -1
|
|
120
|
+
to_bci -1
|
|
121
|
+
predecessors "B0"
|
|
122
|
+
successors
|
|
123
|
+
xhandlers
|
|
124
|
+
flags
|
|
125
|
+
probability 2355382605114769408
|
|
126
|
+
begin_IR
|
|
127
|
+
HIR
|
|
128
|
+
f <@#|@fixed with next>@ <|@
|
|
129
|
+
tid v11 <|@
|
|
130
|
+
d <@d|@=== Debug Properties ===
|
|
131
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
132
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
133
|
+
stamp: void
|
|
134
|
+
withSpeculationFence: false
|
|
135
|
+
=== Inputs ===
|
|
136
|
+
=== Succesors ===
|
|
137
|
+
next: v10
|
|
138
|
+
=== Usages ===
|
|
139
|
+
=== Predecessor ===
|
|
140
|
+
i13 >@ <|@
|
|
141
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v10 <|@ <|@
|
|
142
|
+
tid ?3 <|@
|
|
143
|
+
d <@d|@=== Debug Properties ===
|
|
144
|
+
bci: 0
|
|
145
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleExactArith(int, int)>
|
|
146
|
+
duringCall: false
|
|
147
|
+
localsSize: 2
|
|
148
|
+
locksSize: 0
|
|
149
|
+
rethrowException: false
|
|
150
|
+
sourceFile: JavaExamples.java
|
|
151
|
+
sourceLine: 90
|
|
152
|
+
stackSize: 0
|
|
153
|
+
=== Inputs ===
|
|
154
|
+
outerFrameState: -
|
|
155
|
+
values: i1 i2
|
|
156
|
+
=== Succesors ===
|
|
157
|
+
=== Usages ===
|
|
158
|
+
v10
|
|
159
|
+
=== Predecessor ===
|
|
160
|
+
- >@ <|@
|
|
161
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: i1 i2 <|@ <|@
|
|
162
|
+
f <@*|@fixed>@ <|@
|
|
163
|
+
tid v10 <|@
|
|
164
|
+
d <@d|@=== Debug Properties ===
|
|
165
|
+
action: InvalidateRecompile
|
|
166
|
+
debugId: 8
|
|
167
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
168
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
169
|
+
reason: ArithmeticException
|
|
170
|
+
speculation: jdk.vm.ci.meta.SpeculationLog$NoSpeculationReason@137006448
|
|
171
|
+
stamp: void
|
|
172
|
+
=== Inputs ===
|
|
173
|
+
stateBefore: ?3
|
|
174
|
+
=== Succesors ===
|
|
175
|
+
=== Usages ===
|
|
176
|
+
=== Predecessor ===
|
|
177
|
+
v11 >@ <|@
|
|
178
|
+
instruction <@Deopt|@org.graalvm.compiler.nodes.DeoptimizeNode>@ stateBefore: ?3 <|@ <|@
|
|
179
|
+
end_IR
|
|
180
|
+
end_block
|
|
181
|
+
end_cfg
|
|
182
|
+
begin_cfg
|
|
183
|
+
name "After LIRGeneration"
|
|
184
|
+
begin_block
|
|
185
|
+
name "B0"
|
|
186
|
+
from_bci -1
|
|
187
|
+
to_bci -1
|
|
188
|
+
predecessors
|
|
189
|
+
successors "B1" "B2"
|
|
190
|
+
xhandlers
|
|
191
|
+
flags
|
|
192
|
+
probability 4607182418800017408
|
|
193
|
+
begin_IR
|
|
194
|
+
LIR
|
|
195
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
196
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
197
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
198
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
199
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
200
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
201
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
202
|
+
end_IR
|
|
203
|
+
end_block
|
|
204
|
+
begin_block
|
|
205
|
+
name "B1"
|
|
206
|
+
from_bci -1
|
|
207
|
+
to_bci -1
|
|
208
|
+
predecessors "B0"
|
|
209
|
+
successors
|
|
210
|
+
xhandlers
|
|
211
|
+
flags
|
|
212
|
+
probability 4607182418800017408
|
|
213
|
+
begin_IR
|
|
214
|
+
LIR
|
|
215
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
216
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
217
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
218
|
+
end_IR
|
|
219
|
+
end_block
|
|
220
|
+
begin_block
|
|
221
|
+
name "B2"
|
|
222
|
+
from_bci -1
|
|
223
|
+
to_bci -1
|
|
224
|
+
predecessors "B0"
|
|
225
|
+
successors
|
|
226
|
+
xhandlers
|
|
227
|
+
flags
|
|
228
|
+
probability 2355382605114769408
|
|
229
|
+
begin_IR
|
|
230
|
+
LIR
|
|
231
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
232
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
233
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
234
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
235
|
+
locals: v0|DWORD v1|DWORD
|
|
236
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
237
|
+
end_IR
|
|
238
|
+
end_block
|
|
239
|
+
end_cfg
|
|
240
|
+
begin_bytecodes
|
|
241
|
+
0: iload_0
|
|
242
|
+
1: iload_1
|
|
243
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
244
|
+
5: ireturn
|
|
245
|
+
<|@
|
|
246
|
+
end_bytecodes
|
|
247
|
+
begin_cfg
|
|
248
|
+
name "After LIR generation"
|
|
249
|
+
begin_block
|
|
250
|
+
name "B0"
|
|
251
|
+
from_bci -1
|
|
252
|
+
to_bci -1
|
|
253
|
+
predecessors
|
|
254
|
+
successors "B1" "B2"
|
|
255
|
+
xhandlers
|
|
256
|
+
flags
|
|
257
|
+
probability 4607182418800017408
|
|
258
|
+
begin_IR
|
|
259
|
+
HIR
|
|
260
|
+
f <@#|@fixed with next>@ <|@
|
|
261
|
+
tid v0 <|@
|
|
262
|
+
d <@d|@=== Debug Properties ===
|
|
263
|
+
stamp: void
|
|
264
|
+
withSpeculationFence: false
|
|
265
|
+
=== Inputs ===
|
|
266
|
+
stateAfter: -
|
|
267
|
+
=== Succesors ===
|
|
268
|
+
next: i13
|
|
269
|
+
=== Usages ===
|
|
270
|
+
=== Predecessor ===
|
|
271
|
+
- >@ <|@
|
|
272
|
+
instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: i13 <|@ <|@
|
|
273
|
+
f <@~|@floating>@ <|@
|
|
274
|
+
tid i2 <|@
|
|
275
|
+
result v1|DWORD <|@
|
|
276
|
+
d <@d|@=== Debug Properties ===
|
|
277
|
+
index: 1
|
|
278
|
+
stamp: i32
|
|
279
|
+
uncheckedStamp: [null]
|
|
280
|
+
=== Inputs ===
|
|
281
|
+
=== Succesors ===
|
|
282
|
+
=== Usages ===
|
|
283
|
+
?3 i13
|
|
284
|
+
=== Predecessor ===
|
|
285
|
+
- >@ <|@
|
|
286
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
287
|
+
f <@~|@floating>@ <|@
|
|
288
|
+
tid i1 <|@
|
|
289
|
+
result v0|DWORD <|@
|
|
290
|
+
d <@d|@=== Debug Properties ===
|
|
291
|
+
index: 0
|
|
292
|
+
stamp: i32
|
|
293
|
+
uncheckedStamp: [null]
|
|
294
|
+
=== Inputs ===
|
|
295
|
+
=== Succesors ===
|
|
296
|
+
=== Usages ===
|
|
297
|
+
?3 i13
|
|
298
|
+
=== Predecessor ===
|
|
299
|
+
- >@ <|@
|
|
300
|
+
instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
|
|
301
|
+
f <@*|@fixed>@ <|@
|
|
302
|
+
tid i13 <|@
|
|
303
|
+
result v2|DWORD <|@
|
|
304
|
+
d <@d|@=== Debug Properties ===
|
|
305
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
306
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
307
|
+
stamp: i32
|
|
308
|
+
=== Inputs ===
|
|
309
|
+
x: i1
|
|
310
|
+
y: i2
|
|
311
|
+
=== Succesors ===
|
|
312
|
+
next: v9
|
|
313
|
+
overflowSuccessor: v11
|
|
314
|
+
=== Usages ===
|
|
315
|
+
v7
|
|
316
|
+
=== Predecessor ===
|
|
317
|
+
v0 >@ <|@
|
|
318
|
+
instruction <@IntegerAddExactSplit|@org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactSplitNode>@ x: i1 y: i2 #next: v9 #overflowSuccessor: v11 <|@ <|@
|
|
319
|
+
end_IR
|
|
320
|
+
begin_IR
|
|
321
|
+
LIR
|
|
322
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
323
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
324
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
325
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
326
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
327
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
328
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
329
|
+
end_IR
|
|
330
|
+
end_block
|
|
331
|
+
begin_block
|
|
332
|
+
name "B1"
|
|
333
|
+
from_bci -1
|
|
334
|
+
to_bci -1
|
|
335
|
+
predecessors "B0"
|
|
336
|
+
successors
|
|
337
|
+
xhandlers
|
|
338
|
+
flags
|
|
339
|
+
probability 4607182418800017408
|
|
340
|
+
begin_IR
|
|
341
|
+
HIR
|
|
342
|
+
f <@#|@fixed with next>@ <|@
|
|
343
|
+
tid v9 <|@
|
|
344
|
+
d <@d|@=== Debug Properties ===
|
|
345
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
346
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
347
|
+
stamp: void
|
|
348
|
+
withSpeculationFence: false
|
|
349
|
+
=== Inputs ===
|
|
350
|
+
=== Succesors ===
|
|
351
|
+
next: v7
|
|
352
|
+
=== Usages ===
|
|
353
|
+
=== Predecessor ===
|
|
354
|
+
i13 >@ <|@
|
|
355
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v7 <|@ <|@
|
|
356
|
+
f <@*|@fixed>@ <|@
|
|
357
|
+
tid v7 <|@
|
|
358
|
+
d <@d|@=== Debug Properties ===
|
|
359
|
+
nodeSourcePosition: at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 5]
|
|
360
|
+
stamp: void
|
|
361
|
+
=== Inputs ===
|
|
362
|
+
result: i13
|
|
363
|
+
memoryMap: -
|
|
364
|
+
=== Succesors ===
|
|
365
|
+
=== Usages ===
|
|
366
|
+
=== Predecessor ===
|
|
367
|
+
v9 >@ <|@
|
|
368
|
+
instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i13 memoryMap: - <|@ <|@
|
|
369
|
+
end_IR
|
|
370
|
+
begin_IR
|
|
371
|
+
LIR
|
|
372
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
373
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
374
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
375
|
+
end_IR
|
|
376
|
+
end_block
|
|
377
|
+
begin_block
|
|
378
|
+
name "B2"
|
|
379
|
+
from_bci -1
|
|
380
|
+
to_bci -1
|
|
381
|
+
predecessors "B0"
|
|
382
|
+
successors
|
|
383
|
+
xhandlers
|
|
384
|
+
flags
|
|
385
|
+
probability 2355382605114769408
|
|
386
|
+
begin_IR
|
|
387
|
+
HIR
|
|
388
|
+
f <@#|@fixed with next>@ <|@
|
|
389
|
+
tid v11 <|@
|
|
390
|
+
d <@d|@=== Debug Properties ===
|
|
391
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
392
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
393
|
+
stamp: void
|
|
394
|
+
withSpeculationFence: false
|
|
395
|
+
=== Inputs ===
|
|
396
|
+
=== Succesors ===
|
|
397
|
+
next: v10
|
|
398
|
+
=== Usages ===
|
|
399
|
+
=== Predecessor ===
|
|
400
|
+
i13 >@ <|@
|
|
401
|
+
instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v10 <|@ <|@
|
|
402
|
+
tid ?3 <|@
|
|
403
|
+
d <@d|@=== Debug Properties ===
|
|
404
|
+
bci: 0
|
|
405
|
+
code: ResolvedJavaMethodBytecode<JavaExamples.exampleExactArith(int, int)>
|
|
406
|
+
duringCall: false
|
|
407
|
+
localsSize: 2
|
|
408
|
+
locksSize: 0
|
|
409
|
+
rethrowException: false
|
|
410
|
+
sourceFile: JavaExamples.java
|
|
411
|
+
sourceLine: 90
|
|
412
|
+
stackSize: 0
|
|
413
|
+
=== Inputs ===
|
|
414
|
+
outerFrameState: -
|
|
415
|
+
values: i1 i2
|
|
416
|
+
=== Succesors ===
|
|
417
|
+
=== Usages ===
|
|
418
|
+
v10
|
|
419
|
+
=== Predecessor ===
|
|
420
|
+
- >@ <|@
|
|
421
|
+
instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: i1 i2 <|@ <|@
|
|
422
|
+
f <@*|@fixed>@ <|@
|
|
423
|
+
tid v10 <|@
|
|
424
|
+
d <@d|@=== Debug Properties ===
|
|
425
|
+
action: InvalidateRecompile
|
|
426
|
+
debugId: 8
|
|
427
|
+
nodeSourcePosition: at java.lang.Math.addExact(int, int) [bci: -1]
|
|
428
|
+
at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 2]
|
|
429
|
+
reason: ArithmeticException
|
|
430
|
+
speculation: jdk.vm.ci.meta.SpeculationLog$NoSpeculationReason@137006448
|
|
431
|
+
stamp: void
|
|
432
|
+
=== Inputs ===
|
|
433
|
+
stateBefore: ?3
|
|
434
|
+
=== Succesors ===
|
|
435
|
+
=== Usages ===
|
|
436
|
+
=== Predecessor ===
|
|
437
|
+
v11 >@ <|@
|
|
438
|
+
instruction <@Deopt|@org.graalvm.compiler.nodes.DeoptimizeNode>@ stateBefore: ?3 <|@ <|@
|
|
439
|
+
end_IR
|
|
440
|
+
begin_IR
|
|
441
|
+
LIR
|
|
442
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
443
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
444
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
445
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
446
|
+
locals: v0|DWORD v1|DWORD
|
|
447
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
448
|
+
end_IR
|
|
449
|
+
end_block
|
|
450
|
+
end_cfg
|
|
451
|
+
begin_cfg
|
|
452
|
+
name "After ConstantLoadOptimization"
|
|
453
|
+
begin_block
|
|
454
|
+
name "B0"
|
|
455
|
+
from_bci -1
|
|
456
|
+
to_bci -1
|
|
457
|
+
predecessors
|
|
458
|
+
successors "B1" "B2"
|
|
459
|
+
xhandlers
|
|
460
|
+
flags
|
|
461
|
+
probability 4607182418800017408
|
|
462
|
+
begin_IR
|
|
463
|
+
LIR
|
|
464
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
465
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
466
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
467
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
468
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
469
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
470
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
471
|
+
end_IR
|
|
472
|
+
end_block
|
|
473
|
+
begin_block
|
|
474
|
+
name "B1"
|
|
475
|
+
from_bci -1
|
|
476
|
+
to_bci -1
|
|
477
|
+
predecessors "B0"
|
|
478
|
+
successors
|
|
479
|
+
xhandlers
|
|
480
|
+
flags
|
|
481
|
+
probability 4607182418800017408
|
|
482
|
+
begin_IR
|
|
483
|
+
LIR
|
|
484
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
485
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
486
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
487
|
+
end_IR
|
|
488
|
+
end_block
|
|
489
|
+
begin_block
|
|
490
|
+
name "B2"
|
|
491
|
+
from_bci -1
|
|
492
|
+
to_bci -1
|
|
493
|
+
predecessors "B0"
|
|
494
|
+
successors
|
|
495
|
+
xhandlers
|
|
496
|
+
flags
|
|
497
|
+
probability 2355382605114769408
|
|
498
|
+
begin_IR
|
|
499
|
+
LIR
|
|
500
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
501
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
502
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
503
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
504
|
+
locals: v0|DWORD v1|DWORD
|
|
505
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
506
|
+
end_IR
|
|
507
|
+
end_block
|
|
508
|
+
end_cfg
|
|
509
|
+
begin_bytecodes
|
|
510
|
+
0: iload_0
|
|
511
|
+
1: iload_1
|
|
512
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
513
|
+
5: ireturn
|
|
514
|
+
<|@
|
|
515
|
+
end_bytecodes
|
|
516
|
+
begin_cfg
|
|
517
|
+
name "After SaveCalleeSaveRegisters"
|
|
518
|
+
begin_block
|
|
519
|
+
name "B0"
|
|
520
|
+
from_bci -1
|
|
521
|
+
to_bci -1
|
|
522
|
+
predecessors
|
|
523
|
+
successors "B1" "B2"
|
|
524
|
+
xhandlers
|
|
525
|
+
flags
|
|
526
|
+
probability 4607182418800017408
|
|
527
|
+
begin_IR
|
|
528
|
+
LIR
|
|
529
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
530
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
531
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
532
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
533
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
534
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
535
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
536
|
+
end_IR
|
|
537
|
+
end_block
|
|
538
|
+
begin_block
|
|
539
|
+
name "B1"
|
|
540
|
+
from_bci -1
|
|
541
|
+
to_bci -1
|
|
542
|
+
predecessors "B0"
|
|
543
|
+
successors
|
|
544
|
+
xhandlers
|
|
545
|
+
flags
|
|
546
|
+
probability 4607182418800017408
|
|
547
|
+
begin_IR
|
|
548
|
+
LIR
|
|
549
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
550
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
551
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
552
|
+
end_IR
|
|
553
|
+
end_block
|
|
554
|
+
begin_block
|
|
555
|
+
name "B2"
|
|
556
|
+
from_bci -1
|
|
557
|
+
to_bci -1
|
|
558
|
+
predecessors "B0"
|
|
559
|
+
successors
|
|
560
|
+
xhandlers
|
|
561
|
+
flags
|
|
562
|
+
probability 2355382605114769408
|
|
563
|
+
begin_IR
|
|
564
|
+
LIR
|
|
565
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
566
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
567
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
568
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
569
|
+
locals: v0|DWORD v1|DWORD
|
|
570
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
571
|
+
end_IR
|
|
572
|
+
end_block
|
|
573
|
+
end_cfg
|
|
574
|
+
begin_bytecodes
|
|
575
|
+
0: iload_0
|
|
576
|
+
1: iload_1
|
|
577
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
578
|
+
5: ireturn
|
|
579
|
+
<|@
|
|
580
|
+
end_bytecodes
|
|
581
|
+
begin_cfg
|
|
582
|
+
name "After PreAllocationOptimizationStage"
|
|
583
|
+
begin_block
|
|
584
|
+
name "B0"
|
|
585
|
+
from_bci -1
|
|
586
|
+
to_bci -1
|
|
587
|
+
predecessors
|
|
588
|
+
successors "B1" "B2"
|
|
589
|
+
xhandlers
|
|
590
|
+
flags
|
|
591
|
+
probability 4607182418800017408
|
|
592
|
+
begin_IR
|
|
593
|
+
LIR
|
|
594
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
595
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
596
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
597
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
598
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
599
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
600
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
601
|
+
end_IR
|
|
602
|
+
end_block
|
|
603
|
+
begin_block
|
|
604
|
+
name "B1"
|
|
605
|
+
from_bci -1
|
|
606
|
+
to_bci -1
|
|
607
|
+
predecessors "B0"
|
|
608
|
+
successors
|
|
609
|
+
xhandlers
|
|
610
|
+
flags
|
|
611
|
+
probability 4607182418800017408
|
|
612
|
+
begin_IR
|
|
613
|
+
LIR
|
|
614
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
615
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
616
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
617
|
+
end_IR
|
|
618
|
+
end_block
|
|
619
|
+
begin_block
|
|
620
|
+
name "B2"
|
|
621
|
+
from_bci -1
|
|
622
|
+
to_bci -1
|
|
623
|
+
predecessors "B0"
|
|
624
|
+
successors
|
|
625
|
+
xhandlers
|
|
626
|
+
flags
|
|
627
|
+
probability 2355382605114769408
|
|
628
|
+
begin_IR
|
|
629
|
+
LIR
|
|
630
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
631
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
632
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
633
|
+
nr -1 <|@ st <@st|@JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
634
|
+
locals: v0|DWORD v1|DWORD
|
|
635
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
636
|
+
end_IR
|
|
637
|
+
end_block
|
|
638
|
+
end_cfg
|
|
639
|
+
begin_bytecodes
|
|
640
|
+
0: iload_0
|
|
641
|
+
1: iload_1
|
|
642
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
643
|
+
5: ireturn
|
|
644
|
+
<|@
|
|
645
|
+
end_bytecodes
|
|
646
|
+
begin_cfg
|
|
647
|
+
name "After MarkBasePointers"
|
|
648
|
+
begin_block
|
|
649
|
+
name "B0"
|
|
650
|
+
from_bci -1
|
|
651
|
+
to_bci -1
|
|
652
|
+
predecessors
|
|
653
|
+
successors "B1" "B2"
|
|
654
|
+
xhandlers
|
|
655
|
+
flags
|
|
656
|
+
probability 4607182418800017408
|
|
657
|
+
begin_IR
|
|
658
|
+
LIR
|
|
659
|
+
nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
660
|
+
nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
661
|
+
nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
662
|
+
nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
663
|
+
nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
664
|
+
nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
665
|
+
nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
666
|
+
end_IR
|
|
667
|
+
end_block
|
|
668
|
+
begin_block
|
|
669
|
+
name "B1"
|
|
670
|
+
from_bci -1
|
|
671
|
+
to_bci -1
|
|
672
|
+
predecessors "B0"
|
|
673
|
+
successors
|
|
674
|
+
xhandlers
|
|
675
|
+
flags
|
|
676
|
+
probability 4607182418800017408
|
|
677
|
+
begin_IR
|
|
678
|
+
LIR
|
|
679
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
680
|
+
nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
681
|
+
nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
682
|
+
end_IR
|
|
683
|
+
end_block
|
|
684
|
+
begin_block
|
|
685
|
+
name "B2"
|
|
686
|
+
from_bci -1
|
|
687
|
+
to_bci -1
|
|
688
|
+
predecessors "B0"
|
|
689
|
+
successors
|
|
690
|
+
xhandlers
|
|
691
|
+
flags
|
|
692
|
+
probability 2355382605114769408
|
|
693
|
+
begin_IR
|
|
694
|
+
LIR
|
|
695
|
+
nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
696
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
697
|
+
nr -1 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
698
|
+
nr -1 <|@ st <@st|@live-base-pointers: []
|
|
699
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
700
|
+
locals: v0|DWORD v1|DWORD
|
|
701
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
702
|
+
end_IR
|
|
703
|
+
end_block
|
|
704
|
+
end_cfg
|
|
705
|
+
begin_bytecodes
|
|
706
|
+
0: iload_0
|
|
707
|
+
1: iload_1
|
|
708
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
709
|
+
5: ireturn
|
|
710
|
+
<|@
|
|
711
|
+
end_bytecodes
|
|
712
|
+
begin_cfg
|
|
713
|
+
name "Before register allocation"
|
|
714
|
+
begin_block
|
|
715
|
+
name "B0"
|
|
716
|
+
from_bci -1
|
|
717
|
+
to_bci -1
|
|
718
|
+
predecessors
|
|
719
|
+
successors "B1" "B2"
|
|
720
|
+
xhandlers
|
|
721
|
+
flags
|
|
722
|
+
probability 4607182418800017408
|
|
723
|
+
begin_IR
|
|
724
|
+
LIR
|
|
725
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
726
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
727
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
728
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
729
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
730
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
731
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
732
|
+
end_IR
|
|
733
|
+
end_block
|
|
734
|
+
begin_block
|
|
735
|
+
name "B1"
|
|
736
|
+
from_bci -1
|
|
737
|
+
to_bci -1
|
|
738
|
+
predecessors "B0"
|
|
739
|
+
successors
|
|
740
|
+
xhandlers
|
|
741
|
+
flags
|
|
742
|
+
probability 4607182418800017408
|
|
743
|
+
begin_IR
|
|
744
|
+
LIR
|
|
745
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
746
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
747
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
748
|
+
end_IR
|
|
749
|
+
end_block
|
|
750
|
+
begin_block
|
|
751
|
+
name "B2"
|
|
752
|
+
from_bci -1
|
|
753
|
+
to_bci -1
|
|
754
|
+
predecessors "B0"
|
|
755
|
+
successors
|
|
756
|
+
xhandlers
|
|
757
|
+
flags
|
|
758
|
+
probability 2355382605114769408
|
|
759
|
+
begin_IR
|
|
760
|
+
LIR
|
|
761
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
762
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
763
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
764
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
765
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
766
|
+
locals: v0|DWORD v1|DWORD
|
|
767
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
768
|
+
end_IR
|
|
769
|
+
end_block
|
|
770
|
+
end_cfg
|
|
771
|
+
begin_bytecodes
|
|
772
|
+
0: iload_0
|
|
773
|
+
1: iload_1
|
|
774
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
775
|
+
5: ireturn
|
|
776
|
+
<|@
|
|
777
|
+
end_bytecodes
|
|
778
|
+
begin_cfg
|
|
779
|
+
name "After SSALinearScanLifetimeAnalysis"
|
|
780
|
+
begin_block
|
|
781
|
+
name "B0"
|
|
782
|
+
from_bci -1
|
|
783
|
+
to_bci -1
|
|
784
|
+
predecessors
|
|
785
|
+
successors "B1" "B2"
|
|
786
|
+
xhandlers
|
|
787
|
+
flags
|
|
788
|
+
probability 4607182418800017408
|
|
789
|
+
begin_IR
|
|
790
|
+
LIR
|
|
791
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
792
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
793
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
794
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
795
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
796
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
797
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
798
|
+
end_IR
|
|
799
|
+
end_block
|
|
800
|
+
begin_block
|
|
801
|
+
name "B1"
|
|
802
|
+
from_bci -1
|
|
803
|
+
to_bci -1
|
|
804
|
+
predecessors "B0"
|
|
805
|
+
successors
|
|
806
|
+
xhandlers
|
|
807
|
+
flags
|
|
808
|
+
probability 4607182418800017408
|
|
809
|
+
begin_IR
|
|
810
|
+
LIR
|
|
811
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
812
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
813
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
814
|
+
end_IR
|
|
815
|
+
end_block
|
|
816
|
+
begin_block
|
|
817
|
+
name "B2"
|
|
818
|
+
from_bci -1
|
|
819
|
+
to_bci -1
|
|
820
|
+
predecessors "B0"
|
|
821
|
+
successors
|
|
822
|
+
xhandlers
|
|
823
|
+
flags
|
|
824
|
+
probability 2355382605114769408
|
|
825
|
+
begin_IR
|
|
826
|
+
LIR
|
|
827
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
828
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
829
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
830
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
831
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
832
|
+
locals: v0|DWORD v1|DWORD
|
|
833
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
834
|
+
end_IR
|
|
835
|
+
end_block
|
|
836
|
+
end_cfg
|
|
837
|
+
begin_bytecodes
|
|
838
|
+
0: iload_0
|
|
839
|
+
1: iload_1
|
|
840
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
841
|
+
5: ireturn
|
|
842
|
+
<|@
|
|
843
|
+
end_bytecodes
|
|
844
|
+
begin_intervals
|
|
845
|
+
name "Before register allocation"
|
|
846
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[16, 18[ "NoSpillStore"
|
|
847
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
848
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
849
|
+
rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
|
|
850
|
+
v0|d DWORD "[v0|d]" v0|d rsi|d [6, 14[[20, 27[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
851
|
+
v1|d DWORD "[v1|d]" v1|d rdx|d [8, 14[[20, 27[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
852
|
+
v2|d DWORD "[v2|d]" v2|d v0|d [10, 16[10 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
|
|
853
|
+
end_intervals
|
|
854
|
+
begin_intervals
|
|
855
|
+
name "After register allocation"
|
|
856
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[16, 18[ "NoSpillStore"
|
|
857
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
858
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
859
|
+
rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
|
|
860
|
+
v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[[20, 27[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
861
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 14[[20, 27[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
862
|
+
v2|d DWORD "[rax|d]" v2|d v0|d [10, 16[10 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
|
|
863
|
+
end_intervals
|
|
864
|
+
begin_cfg
|
|
865
|
+
name "After LinearScanRegisterAllocation"
|
|
866
|
+
begin_block
|
|
867
|
+
name "B0"
|
|
868
|
+
from_bci -1
|
|
869
|
+
to_bci -1
|
|
870
|
+
predecessors
|
|
871
|
+
successors "B1" "B2"
|
|
872
|
+
xhandlers
|
|
873
|
+
flags
|
|
874
|
+
probability 4607182418800017408
|
|
875
|
+
begin_IR
|
|
876
|
+
LIR
|
|
877
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
878
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
879
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
880
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
881
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
882
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
883
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
884
|
+
end_IR
|
|
885
|
+
end_block
|
|
886
|
+
begin_block
|
|
887
|
+
name "B1"
|
|
888
|
+
from_bci -1
|
|
889
|
+
to_bci -1
|
|
890
|
+
predecessors "B0"
|
|
891
|
+
successors
|
|
892
|
+
xhandlers
|
|
893
|
+
flags
|
|
894
|
+
probability 4607182418800017408
|
|
895
|
+
begin_IR
|
|
896
|
+
LIR
|
|
897
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
898
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
899
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
900
|
+
end_IR
|
|
901
|
+
end_block
|
|
902
|
+
begin_block
|
|
903
|
+
name "B2"
|
|
904
|
+
from_bci -1
|
|
905
|
+
to_bci -1
|
|
906
|
+
predecessors "B0"
|
|
907
|
+
successors
|
|
908
|
+
xhandlers
|
|
909
|
+
flags
|
|
910
|
+
probability 2355382605114769408
|
|
911
|
+
begin_IR
|
|
912
|
+
LIR
|
|
913
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
914
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
915
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
916
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
917
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
918
|
+
locals: v0|DWORD v1|DWORD
|
|
919
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
920
|
+
end_IR
|
|
921
|
+
end_block
|
|
922
|
+
end_cfg
|
|
923
|
+
begin_bytecodes
|
|
924
|
+
0: iload_0
|
|
925
|
+
1: iload_1
|
|
926
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
927
|
+
5: ireturn
|
|
928
|
+
<|@
|
|
929
|
+
end_bytecodes
|
|
930
|
+
begin_intervals
|
|
931
|
+
name "After optimize spill position"
|
|
932
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[16, 18[ "NoSpillStore"
|
|
933
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
934
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
935
|
+
rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
|
|
936
|
+
v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[[20, 27[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
937
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 14[[20, 27[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
938
|
+
v2|d DWORD "[rax|d]" v2|d v0|d [10, 16[10 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
|
|
939
|
+
end_intervals
|
|
940
|
+
begin_cfg
|
|
941
|
+
name "After LinearScanOptimizeSpillPosition"
|
|
942
|
+
begin_block
|
|
943
|
+
name "B0"
|
|
944
|
+
from_bci -1
|
|
945
|
+
to_bci -1
|
|
946
|
+
predecessors
|
|
947
|
+
successors "B1" "B2"
|
|
948
|
+
xhandlers
|
|
949
|
+
flags
|
|
950
|
+
probability 4607182418800017408
|
|
951
|
+
begin_IR
|
|
952
|
+
LIR
|
|
953
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
954
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
955
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
956
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
957
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
958
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
959
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
960
|
+
end_IR
|
|
961
|
+
end_block
|
|
962
|
+
begin_block
|
|
963
|
+
name "B1"
|
|
964
|
+
from_bci -1
|
|
965
|
+
to_bci -1
|
|
966
|
+
predecessors "B0"
|
|
967
|
+
successors
|
|
968
|
+
xhandlers
|
|
969
|
+
flags
|
|
970
|
+
probability 4607182418800017408
|
|
971
|
+
begin_IR
|
|
972
|
+
LIR
|
|
973
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
974
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
975
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
976
|
+
end_IR
|
|
977
|
+
end_block
|
|
978
|
+
begin_block
|
|
979
|
+
name "B2"
|
|
980
|
+
from_bci -1
|
|
981
|
+
to_bci -1
|
|
982
|
+
predecessors "B0"
|
|
983
|
+
successors
|
|
984
|
+
xhandlers
|
|
985
|
+
flags
|
|
986
|
+
probability 2355382605114769408
|
|
987
|
+
begin_IR
|
|
988
|
+
LIR
|
|
989
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
990
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
991
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
992
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
993
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
994
|
+
locals: v0|DWORD v1|DWORD
|
|
995
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
996
|
+
end_IR
|
|
997
|
+
end_block
|
|
998
|
+
end_cfg
|
|
999
|
+
begin_bytecodes
|
|
1000
|
+
0: iload_0
|
|
1001
|
+
1: iload_1
|
|
1002
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1003
|
+
5: ireturn
|
|
1004
|
+
<|@
|
|
1005
|
+
end_bytecodes
|
|
1006
|
+
begin_intervals
|
|
1007
|
+
name "After resolve data flow"
|
|
1008
|
+
rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[16, 18[ "NoSpillStore"
|
|
1009
|
+
rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
|
|
1010
|
+
rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
|
|
1011
|
+
rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
|
|
1012
|
+
v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 14[[20, 27[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
1013
|
+
v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 14[[20, 27[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
|
|
1014
|
+
v2|d DWORD "[rax|d]" v2|d v0|d [10, 16[10 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
|
|
1015
|
+
end_intervals
|
|
1016
|
+
begin_cfg
|
|
1017
|
+
name "After SSALinearScanResolveDataFlow"
|
|
1018
|
+
begin_block
|
|
1019
|
+
name "B0"
|
|
1020
|
+
from_bci -1
|
|
1021
|
+
to_bci -1
|
|
1022
|
+
predecessors
|
|
1023
|
+
successors "B1" "B2"
|
|
1024
|
+
xhandlers
|
|
1025
|
+
flags
|
|
1026
|
+
probability 4607182418800017408
|
|
1027
|
+
begin_IR
|
|
1028
|
+
LIR
|
|
1029
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1030
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1031
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1032
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
1033
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1034
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
1035
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1036
|
+
end_IR
|
|
1037
|
+
end_block
|
|
1038
|
+
begin_block
|
|
1039
|
+
name "B1"
|
|
1040
|
+
from_bci -1
|
|
1041
|
+
to_bci -1
|
|
1042
|
+
predecessors "B0"
|
|
1043
|
+
successors
|
|
1044
|
+
xhandlers
|
|
1045
|
+
flags
|
|
1046
|
+
probability 4607182418800017408
|
|
1047
|
+
begin_IR
|
|
1048
|
+
LIR
|
|
1049
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1050
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1051
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1052
|
+
end_IR
|
|
1053
|
+
end_block
|
|
1054
|
+
begin_block
|
|
1055
|
+
name "B2"
|
|
1056
|
+
from_bci -1
|
|
1057
|
+
to_bci -1
|
|
1058
|
+
predecessors "B0"
|
|
1059
|
+
successors
|
|
1060
|
+
xhandlers
|
|
1061
|
+
flags
|
|
1062
|
+
probability 2355382605114769408
|
|
1063
|
+
begin_IR
|
|
1064
|
+
LIR
|
|
1065
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1066
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1067
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1068
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
1069
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1070
|
+
locals: v0|DWORD v1|DWORD
|
|
1071
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1072
|
+
end_IR
|
|
1073
|
+
end_block
|
|
1074
|
+
end_cfg
|
|
1075
|
+
begin_bytecodes
|
|
1076
|
+
0: iload_0
|
|
1077
|
+
1: iload_1
|
|
1078
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1079
|
+
5: ireturn
|
|
1080
|
+
<|@
|
|
1081
|
+
end_bytecodes
|
|
1082
|
+
begin_cfg
|
|
1083
|
+
name "After SSALinearScanEliminateSpillMove"
|
|
1084
|
+
begin_block
|
|
1085
|
+
name "B0"
|
|
1086
|
+
from_bci -1
|
|
1087
|
+
to_bci -1
|
|
1088
|
+
predecessors
|
|
1089
|
+
successors "B1" "B2"
|
|
1090
|
+
xhandlers
|
|
1091
|
+
flags
|
|
1092
|
+
probability 4607182418800017408
|
|
1093
|
+
begin_IR
|
|
1094
|
+
LIR
|
|
1095
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1096
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1097
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1098
|
+
nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
|
|
1099
|
+
nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
|
|
1100
|
+
nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
|
|
1101
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1102
|
+
end_IR
|
|
1103
|
+
end_block
|
|
1104
|
+
begin_block
|
|
1105
|
+
name "B1"
|
|
1106
|
+
from_bci -1
|
|
1107
|
+
to_bci -1
|
|
1108
|
+
predecessors "B0"
|
|
1109
|
+
successors
|
|
1110
|
+
xhandlers
|
|
1111
|
+
flags
|
|
1112
|
+
probability 4607182418800017408
|
|
1113
|
+
begin_IR
|
|
1114
|
+
LIR
|
|
1115
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1116
|
+
nr 16 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
|
|
1117
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1118
|
+
end_IR
|
|
1119
|
+
end_block
|
|
1120
|
+
begin_block
|
|
1121
|
+
name "B2"
|
|
1122
|
+
from_bci -1
|
|
1123
|
+
to_bci -1
|
|
1124
|
+
predecessors "B0"
|
|
1125
|
+
successors
|
|
1126
|
+
xhandlers
|
|
1127
|
+
flags
|
|
1128
|
+
probability 2355382605114769408
|
|
1129
|
+
begin_IR
|
|
1130
|
+
LIR
|
|
1131
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1132
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1133
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1134
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
1135
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1136
|
+
locals: v0|DWORD v1|DWORD
|
|
1137
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1138
|
+
end_IR
|
|
1139
|
+
end_block
|
|
1140
|
+
end_cfg
|
|
1141
|
+
begin_bytecodes
|
|
1142
|
+
0: iload_0
|
|
1143
|
+
1: iload_1
|
|
1144
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1145
|
+
5: ireturn
|
|
1146
|
+
<|@
|
|
1147
|
+
end_bytecodes
|
|
1148
|
+
begin_cfg
|
|
1149
|
+
name "After LinearScanAssignLocations"
|
|
1150
|
+
begin_block
|
|
1151
|
+
name "B0"
|
|
1152
|
+
from_bci -1
|
|
1153
|
+
to_bci -1
|
|
1154
|
+
predecessors
|
|
1155
|
+
successors "B1" "B2"
|
|
1156
|
+
xhandlers
|
|
1157
|
+
flags
|
|
1158
|
+
probability 4607182418800017408
|
|
1159
|
+
begin_IR
|
|
1160
|
+
LIR
|
|
1161
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1162
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1163
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1164
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1165
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1166
|
+
end_IR
|
|
1167
|
+
end_block
|
|
1168
|
+
begin_block
|
|
1169
|
+
name "B1"
|
|
1170
|
+
from_bci -1
|
|
1171
|
+
to_bci -1
|
|
1172
|
+
predecessors "B0"
|
|
1173
|
+
successors
|
|
1174
|
+
xhandlers
|
|
1175
|
+
flags
|
|
1176
|
+
probability 4607182418800017408
|
|
1177
|
+
begin_IR
|
|
1178
|
+
LIR
|
|
1179
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1180
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1181
|
+
end_IR
|
|
1182
|
+
end_block
|
|
1183
|
+
begin_block
|
|
1184
|
+
name "B2"
|
|
1185
|
+
from_bci -1
|
|
1186
|
+
to_bci -1
|
|
1187
|
+
predecessors "B0"
|
|
1188
|
+
successors
|
|
1189
|
+
xhandlers
|
|
1190
|
+
flags
|
|
1191
|
+
probability 2355382605114769408
|
|
1192
|
+
begin_IR
|
|
1193
|
+
LIR
|
|
1194
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1195
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1196
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1197
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
1198
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1199
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1200
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1201
|
+
end_IR
|
|
1202
|
+
end_block
|
|
1203
|
+
end_cfg
|
|
1204
|
+
begin_bytecodes
|
|
1205
|
+
0: iload_0
|
|
1206
|
+
1: iload_1
|
|
1207
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1208
|
+
5: ireturn
|
|
1209
|
+
<|@
|
|
1210
|
+
end_bytecodes
|
|
1211
|
+
begin_cfg
|
|
1212
|
+
name "After LinearScan"
|
|
1213
|
+
begin_block
|
|
1214
|
+
name "B0"
|
|
1215
|
+
from_bci -1
|
|
1216
|
+
to_bci -1
|
|
1217
|
+
predecessors
|
|
1218
|
+
successors "B1" "B2"
|
|
1219
|
+
xhandlers
|
|
1220
|
+
flags
|
|
1221
|
+
probability 4607182418800017408
|
|
1222
|
+
begin_IR
|
|
1223
|
+
LIR
|
|
1224
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1225
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1226
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1227
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1228
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
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 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1244
|
+
end_IR
|
|
1245
|
+
end_block
|
|
1246
|
+
begin_block
|
|
1247
|
+
name "B2"
|
|
1248
|
+
from_bci -1
|
|
1249
|
+
to_bci -1
|
|
1250
|
+
predecessors "B0"
|
|
1251
|
+
successors
|
|
1252
|
+
xhandlers
|
|
1253
|
+
flags
|
|
1254
|
+
probability 2355382605114769408
|
|
1255
|
+
begin_IR
|
|
1256
|
+
LIR
|
|
1257
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1258
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1259
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1260
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
1261
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1262
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1263
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1264
|
+
end_IR
|
|
1265
|
+
end_block
|
|
1266
|
+
end_cfg
|
|
1267
|
+
begin_bytecodes
|
|
1268
|
+
0: iload_0
|
|
1269
|
+
1: iload_1
|
|
1270
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1271
|
+
5: ireturn
|
|
1272
|
+
<|@
|
|
1273
|
+
end_bytecodes
|
|
1274
|
+
begin_cfg
|
|
1275
|
+
name "After LSStackSlotAllocator"
|
|
1276
|
+
begin_block
|
|
1277
|
+
name "B0"
|
|
1278
|
+
from_bci -1
|
|
1279
|
+
to_bci -1
|
|
1280
|
+
predecessors
|
|
1281
|
+
successors "B1" "B2"
|
|
1282
|
+
xhandlers
|
|
1283
|
+
flags
|
|
1284
|
+
probability 4607182418800017408
|
|
1285
|
+
begin_IR
|
|
1286
|
+
LIR
|
|
1287
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1288
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1289
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1290
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1291
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1292
|
+
end_IR
|
|
1293
|
+
end_block
|
|
1294
|
+
begin_block
|
|
1295
|
+
name "B1"
|
|
1296
|
+
from_bci -1
|
|
1297
|
+
to_bci -1
|
|
1298
|
+
predecessors "B0"
|
|
1299
|
+
successors
|
|
1300
|
+
xhandlers
|
|
1301
|
+
flags
|
|
1302
|
+
probability 4607182418800017408
|
|
1303
|
+
begin_IR
|
|
1304
|
+
LIR
|
|
1305
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1306
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1307
|
+
end_IR
|
|
1308
|
+
end_block
|
|
1309
|
+
begin_block
|
|
1310
|
+
name "B2"
|
|
1311
|
+
from_bci -1
|
|
1312
|
+
to_bci -1
|
|
1313
|
+
predecessors "B0"
|
|
1314
|
+
successors
|
|
1315
|
+
xhandlers
|
|
1316
|
+
flags
|
|
1317
|
+
probability 2355382605114769408
|
|
1318
|
+
begin_IR
|
|
1319
|
+
LIR
|
|
1320
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1321
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1322
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1323
|
+
nr 26 <|@ st <@st|@live-base-pointers: []
|
|
1324
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1325
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1326
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1327
|
+
end_IR
|
|
1328
|
+
end_block
|
|
1329
|
+
end_cfg
|
|
1330
|
+
begin_bytecodes
|
|
1331
|
+
0: iload_0
|
|
1332
|
+
1: iload_1
|
|
1333
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1334
|
+
5: ireturn
|
|
1335
|
+
<|@
|
|
1336
|
+
end_bytecodes
|
|
1337
|
+
begin_cfg
|
|
1338
|
+
name "After LocationMarker"
|
|
1339
|
+
begin_block
|
|
1340
|
+
name "B0"
|
|
1341
|
+
from_bci -1
|
|
1342
|
+
to_bci -1
|
|
1343
|
+
predecessors
|
|
1344
|
+
successors "B1" "B2"
|
|
1345
|
+
xhandlers
|
|
1346
|
+
flags
|
|
1347
|
+
probability 4607182418800017408
|
|
1348
|
+
begin_IR
|
|
1349
|
+
LIR
|
|
1350
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1351
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1352
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1353
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1354
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1355
|
+
end_IR
|
|
1356
|
+
end_block
|
|
1357
|
+
begin_block
|
|
1358
|
+
name "B1"
|
|
1359
|
+
from_bci -1
|
|
1360
|
+
to_bci -1
|
|
1361
|
+
predecessors "B0"
|
|
1362
|
+
successors
|
|
1363
|
+
xhandlers
|
|
1364
|
+
flags
|
|
1365
|
+
probability 4607182418800017408
|
|
1366
|
+
begin_IR
|
|
1367
|
+
LIR
|
|
1368
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1369
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1370
|
+
end_IR
|
|
1371
|
+
end_block
|
|
1372
|
+
begin_block
|
|
1373
|
+
name "B2"
|
|
1374
|
+
from_bci -1
|
|
1375
|
+
to_bci -1
|
|
1376
|
+
predecessors "B0"
|
|
1377
|
+
successors
|
|
1378
|
+
xhandlers
|
|
1379
|
+
flags
|
|
1380
|
+
probability 2355382605114769408
|
|
1381
|
+
begin_IR
|
|
1382
|
+
LIR
|
|
1383
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1384
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1385
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1386
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1387
|
+
live-base-pointers: []
|
|
1388
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1389
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1390
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1391
|
+
end_IR
|
|
1392
|
+
end_block
|
|
1393
|
+
end_cfg
|
|
1394
|
+
begin_bytecodes
|
|
1395
|
+
0: iload_0
|
|
1396
|
+
1: iload_1
|
|
1397
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1398
|
+
5: ireturn
|
|
1399
|
+
<|@
|
|
1400
|
+
end_bytecodes
|
|
1401
|
+
begin_cfg
|
|
1402
|
+
name "After AllocationStage"
|
|
1403
|
+
begin_block
|
|
1404
|
+
name "B0"
|
|
1405
|
+
from_bci -1
|
|
1406
|
+
to_bci -1
|
|
1407
|
+
predecessors
|
|
1408
|
+
successors "B1" "B2"
|
|
1409
|
+
xhandlers
|
|
1410
|
+
flags
|
|
1411
|
+
probability 4607182418800017408
|
|
1412
|
+
begin_IR
|
|
1413
|
+
LIR
|
|
1414
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1415
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1416
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1417
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1418
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1419
|
+
end_IR
|
|
1420
|
+
end_block
|
|
1421
|
+
begin_block
|
|
1422
|
+
name "B1"
|
|
1423
|
+
from_bci -1
|
|
1424
|
+
to_bci -1
|
|
1425
|
+
predecessors "B0"
|
|
1426
|
+
successors
|
|
1427
|
+
xhandlers
|
|
1428
|
+
flags
|
|
1429
|
+
probability 4607182418800017408
|
|
1430
|
+
begin_IR
|
|
1431
|
+
LIR
|
|
1432
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1433
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1434
|
+
end_IR
|
|
1435
|
+
end_block
|
|
1436
|
+
begin_block
|
|
1437
|
+
name "B2"
|
|
1438
|
+
from_bci -1
|
|
1439
|
+
to_bci -1
|
|
1440
|
+
predecessors "B0"
|
|
1441
|
+
successors
|
|
1442
|
+
xhandlers
|
|
1443
|
+
flags
|
|
1444
|
+
probability 2355382605114769408
|
|
1445
|
+
begin_IR
|
|
1446
|
+
LIR
|
|
1447
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1448
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1449
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1450
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1451
|
+
live-base-pointers: []
|
|
1452
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1453
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1454
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1455
|
+
end_IR
|
|
1456
|
+
end_block
|
|
1457
|
+
end_cfg
|
|
1458
|
+
begin_bytecodes
|
|
1459
|
+
0: iload_0
|
|
1460
|
+
1: iload_1
|
|
1461
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1462
|
+
5: ireturn
|
|
1463
|
+
<|@
|
|
1464
|
+
end_bytecodes
|
|
1465
|
+
begin_cfg
|
|
1466
|
+
name "After EdgeMoveOptimizer"
|
|
1467
|
+
begin_block
|
|
1468
|
+
name "B0"
|
|
1469
|
+
from_bci -1
|
|
1470
|
+
to_bci -1
|
|
1471
|
+
predecessors
|
|
1472
|
+
successors "B1" "B2"
|
|
1473
|
+
xhandlers
|
|
1474
|
+
flags
|
|
1475
|
+
probability 4607182418800017408
|
|
1476
|
+
begin_IR
|
|
1477
|
+
LIR
|
|
1478
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1479
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1480
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1481
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1482
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1483
|
+
end_IR
|
|
1484
|
+
end_block
|
|
1485
|
+
begin_block
|
|
1486
|
+
name "B1"
|
|
1487
|
+
from_bci -1
|
|
1488
|
+
to_bci -1
|
|
1489
|
+
predecessors "B0"
|
|
1490
|
+
successors
|
|
1491
|
+
xhandlers
|
|
1492
|
+
flags
|
|
1493
|
+
probability 4607182418800017408
|
|
1494
|
+
begin_IR
|
|
1495
|
+
LIR
|
|
1496
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1497
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1498
|
+
end_IR
|
|
1499
|
+
end_block
|
|
1500
|
+
begin_block
|
|
1501
|
+
name "B2"
|
|
1502
|
+
from_bci -1
|
|
1503
|
+
to_bci -1
|
|
1504
|
+
predecessors "B0"
|
|
1505
|
+
successors
|
|
1506
|
+
xhandlers
|
|
1507
|
+
flags
|
|
1508
|
+
probability 2355382605114769408
|
|
1509
|
+
begin_IR
|
|
1510
|
+
LIR
|
|
1511
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1512
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1513
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1514
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1515
|
+
live-base-pointers: []
|
|
1516
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1517
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1518
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1519
|
+
end_IR
|
|
1520
|
+
end_block
|
|
1521
|
+
end_cfg
|
|
1522
|
+
begin_bytecodes
|
|
1523
|
+
0: iload_0
|
|
1524
|
+
1: iload_1
|
|
1525
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1526
|
+
5: ireturn
|
|
1527
|
+
<|@
|
|
1528
|
+
end_bytecodes
|
|
1529
|
+
begin_cfg
|
|
1530
|
+
name "After ControlFlowOptimizer"
|
|
1531
|
+
begin_block
|
|
1532
|
+
name "B0"
|
|
1533
|
+
from_bci -1
|
|
1534
|
+
to_bci -1
|
|
1535
|
+
predecessors
|
|
1536
|
+
successors "B1" "B2"
|
|
1537
|
+
xhandlers
|
|
1538
|
+
flags
|
|
1539
|
+
probability 4607182418800017408
|
|
1540
|
+
begin_IR
|
|
1541
|
+
LIR
|
|
1542
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1543
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1544
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1545
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1546
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1547
|
+
end_IR
|
|
1548
|
+
end_block
|
|
1549
|
+
begin_block
|
|
1550
|
+
name "B1"
|
|
1551
|
+
from_bci -1
|
|
1552
|
+
to_bci -1
|
|
1553
|
+
predecessors "B0"
|
|
1554
|
+
successors
|
|
1555
|
+
xhandlers
|
|
1556
|
+
flags
|
|
1557
|
+
probability 4607182418800017408
|
|
1558
|
+
begin_IR
|
|
1559
|
+
LIR
|
|
1560
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1561
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1562
|
+
end_IR
|
|
1563
|
+
end_block
|
|
1564
|
+
begin_block
|
|
1565
|
+
name "B2"
|
|
1566
|
+
from_bci -1
|
|
1567
|
+
to_bci -1
|
|
1568
|
+
predecessors "B0"
|
|
1569
|
+
successors
|
|
1570
|
+
xhandlers
|
|
1571
|
+
flags
|
|
1572
|
+
probability 2355382605114769408
|
|
1573
|
+
begin_IR
|
|
1574
|
+
LIR
|
|
1575
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1576
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1577
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1578
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1579
|
+
live-base-pointers: []
|
|
1580
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1581
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1582
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1583
|
+
end_IR
|
|
1584
|
+
end_block
|
|
1585
|
+
end_cfg
|
|
1586
|
+
begin_bytecodes
|
|
1587
|
+
0: iload_0
|
|
1588
|
+
1: iload_1
|
|
1589
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1590
|
+
5: ireturn
|
|
1591
|
+
<|@
|
|
1592
|
+
end_bytecodes
|
|
1593
|
+
begin_cfg
|
|
1594
|
+
name "After RedundantMoveElimination"
|
|
1595
|
+
begin_block
|
|
1596
|
+
name "B0"
|
|
1597
|
+
from_bci -1
|
|
1598
|
+
to_bci -1
|
|
1599
|
+
predecessors
|
|
1600
|
+
successors "B1" "B2"
|
|
1601
|
+
xhandlers
|
|
1602
|
+
flags
|
|
1603
|
+
probability 4607182418800017408
|
|
1604
|
+
begin_IR
|
|
1605
|
+
LIR
|
|
1606
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1607
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1608
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1609
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1610
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1611
|
+
end_IR
|
|
1612
|
+
end_block
|
|
1613
|
+
begin_block
|
|
1614
|
+
name "B1"
|
|
1615
|
+
from_bci -1
|
|
1616
|
+
to_bci -1
|
|
1617
|
+
predecessors "B0"
|
|
1618
|
+
successors
|
|
1619
|
+
xhandlers
|
|
1620
|
+
flags
|
|
1621
|
+
probability 4607182418800017408
|
|
1622
|
+
begin_IR
|
|
1623
|
+
LIR
|
|
1624
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1625
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1626
|
+
end_IR
|
|
1627
|
+
end_block
|
|
1628
|
+
begin_block
|
|
1629
|
+
name "B2"
|
|
1630
|
+
from_bci -1
|
|
1631
|
+
to_bci -1
|
|
1632
|
+
predecessors "B0"
|
|
1633
|
+
successors
|
|
1634
|
+
xhandlers
|
|
1635
|
+
flags
|
|
1636
|
+
probability 2355382605114769408
|
|
1637
|
+
begin_IR
|
|
1638
|
+
LIR
|
|
1639
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1640
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1641
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1642
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1643
|
+
live-base-pointers: []
|
|
1644
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1645
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1646
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1647
|
+
end_IR
|
|
1648
|
+
end_block
|
|
1649
|
+
end_cfg
|
|
1650
|
+
begin_bytecodes
|
|
1651
|
+
0: iload_0
|
|
1652
|
+
1: iload_1
|
|
1653
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1654
|
+
5: ireturn
|
|
1655
|
+
<|@
|
|
1656
|
+
end_bytecodes
|
|
1657
|
+
begin_cfg
|
|
1658
|
+
name "After NullCheckOptimizer"
|
|
1659
|
+
begin_block
|
|
1660
|
+
name "B0"
|
|
1661
|
+
from_bci -1
|
|
1662
|
+
to_bci -1
|
|
1663
|
+
predecessors
|
|
1664
|
+
successors "B1" "B2"
|
|
1665
|
+
xhandlers
|
|
1666
|
+
flags
|
|
1667
|
+
probability 4607182418800017408
|
|
1668
|
+
begin_IR
|
|
1669
|
+
LIR
|
|
1670
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1671
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1672
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1673
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1674
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1675
|
+
end_IR
|
|
1676
|
+
end_block
|
|
1677
|
+
begin_block
|
|
1678
|
+
name "B1"
|
|
1679
|
+
from_bci -1
|
|
1680
|
+
to_bci -1
|
|
1681
|
+
predecessors "B0"
|
|
1682
|
+
successors
|
|
1683
|
+
xhandlers
|
|
1684
|
+
flags
|
|
1685
|
+
probability 4607182418800017408
|
|
1686
|
+
begin_IR
|
|
1687
|
+
LIR
|
|
1688
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1689
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1690
|
+
end_IR
|
|
1691
|
+
end_block
|
|
1692
|
+
begin_block
|
|
1693
|
+
name "B2"
|
|
1694
|
+
from_bci -1
|
|
1695
|
+
to_bci -1
|
|
1696
|
+
predecessors "B0"
|
|
1697
|
+
successors
|
|
1698
|
+
xhandlers
|
|
1699
|
+
flags
|
|
1700
|
+
probability 2355382605114769408
|
|
1701
|
+
begin_IR
|
|
1702
|
+
LIR
|
|
1703
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1704
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1705
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1706
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1707
|
+
live-base-pointers: []
|
|
1708
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1709
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1710
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1711
|
+
end_IR
|
|
1712
|
+
end_block
|
|
1713
|
+
end_cfg
|
|
1714
|
+
begin_bytecodes
|
|
1715
|
+
0: iload_0
|
|
1716
|
+
1: iload_1
|
|
1717
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1718
|
+
5: ireturn
|
|
1719
|
+
<|@
|
|
1720
|
+
end_bytecodes
|
|
1721
|
+
begin_cfg
|
|
1722
|
+
name "After StackMoveOptimization"
|
|
1723
|
+
begin_block
|
|
1724
|
+
name "B0"
|
|
1725
|
+
from_bci -1
|
|
1726
|
+
to_bci -1
|
|
1727
|
+
predecessors
|
|
1728
|
+
successors "B1" "B2"
|
|
1729
|
+
xhandlers
|
|
1730
|
+
flags
|
|
1731
|
+
probability 4607182418800017408
|
|
1732
|
+
begin_IR
|
|
1733
|
+
LIR
|
|
1734
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1735
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1736
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1737
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1738
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1739
|
+
end_IR
|
|
1740
|
+
end_block
|
|
1741
|
+
begin_block
|
|
1742
|
+
name "B1"
|
|
1743
|
+
from_bci -1
|
|
1744
|
+
to_bci -1
|
|
1745
|
+
predecessors "B0"
|
|
1746
|
+
successors
|
|
1747
|
+
xhandlers
|
|
1748
|
+
flags
|
|
1749
|
+
probability 4607182418800017408
|
|
1750
|
+
begin_IR
|
|
1751
|
+
LIR
|
|
1752
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1753
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1754
|
+
end_IR
|
|
1755
|
+
end_block
|
|
1756
|
+
begin_block
|
|
1757
|
+
name "B2"
|
|
1758
|
+
from_bci -1
|
|
1759
|
+
to_bci -1
|
|
1760
|
+
predecessors "B0"
|
|
1761
|
+
successors
|
|
1762
|
+
xhandlers
|
|
1763
|
+
flags
|
|
1764
|
+
probability 2355382605114769408
|
|
1765
|
+
begin_IR
|
|
1766
|
+
LIR
|
|
1767
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1768
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1769
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1770
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1771
|
+
live-base-pointers: []
|
|
1772
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1773
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1774
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1775
|
+
end_IR
|
|
1776
|
+
end_block
|
|
1777
|
+
end_cfg
|
|
1778
|
+
begin_bytecodes
|
|
1779
|
+
0: iload_0
|
|
1780
|
+
1: iload_1
|
|
1781
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1782
|
+
5: ireturn
|
|
1783
|
+
<|@
|
|
1784
|
+
end_bytecodes
|
|
1785
|
+
begin_cfg
|
|
1786
|
+
name "After PostAllocationOptimizationStage"
|
|
1787
|
+
begin_block
|
|
1788
|
+
name "B0"
|
|
1789
|
+
from_bci -1
|
|
1790
|
+
to_bci -1
|
|
1791
|
+
predecessors
|
|
1792
|
+
successors "B1" "B2"
|
|
1793
|
+
xhandlers
|
|
1794
|
+
flags
|
|
1795
|
+
probability 4607182418800017408
|
|
1796
|
+
begin_IR
|
|
1797
|
+
LIR
|
|
1798
|
+
nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1799
|
+
nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
|
|
1800
|
+
nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <|@ <|@
|
|
1801
|
+
nr 10 <|@ instruction rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
|
|
1802
|
+
nr 12 <|@ instruction BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <|@ <|@
|
|
1803
|
+
end_IR
|
|
1804
|
+
end_block
|
|
1805
|
+
begin_block
|
|
1806
|
+
name "B1"
|
|
1807
|
+
from_bci -1
|
|
1808
|
+
to_bci -1
|
|
1809
|
+
predecessors "B0"
|
|
1810
|
+
successors
|
|
1811
|
+
xhandlers
|
|
1812
|
+
flags
|
|
1813
|
+
probability 4607182418800017408
|
|
1814
|
+
begin_IR
|
|
1815
|
+
LIR
|
|
1816
|
+
nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1817
|
+
nr 18 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
|
|
1818
|
+
end_IR
|
|
1819
|
+
end_block
|
|
1820
|
+
begin_block
|
|
1821
|
+
name "B2"
|
|
1822
|
+
from_bci -1
|
|
1823
|
+
to_bci -1
|
|
1824
|
+
predecessors "B0"
|
|
1825
|
+
successors
|
|
1826
|
+
xhandlers
|
|
1827
|
+
flags
|
|
1828
|
+
probability 2355382605114769408
|
|
1829
|
+
begin_IR
|
|
1830
|
+
LIR
|
|
1831
|
+
nr 20 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
|
|
1832
|
+
nr 22 <|@ instruction MOV [r15|QWORD + 644] y: -2156 size: DWORD <|@ <|@
|
|
1833
|
+
nr 24 <|@ instruction MOV [r15|QWORD + 656] y: 0 size: QWORD <|@ <|@
|
|
1834
|
+
nr 26 <|@ st <@st|@reference-map: []
|
|
1835
|
+
live-base-pointers: []
|
|
1836
|
+
JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0]
|
|
1837
|
+
locals: rsi|DWORD rdx|DWORD
|
|
1838
|
+
>@ <|@ instruction DEOPT info [bci:0] <|@ <|@
|
|
1839
|
+
end_IR
|
|
1840
|
+
end_block
|
|
1841
|
+
end_cfg
|
|
1842
|
+
begin_bytecodes
|
|
1843
|
+
0: iload_0
|
|
1844
|
+
1: iload_1
|
|
1845
|
+
2: invokestatic #49 // java.lang.Math.addExact:(int, int)int
|
|
1846
|
+
5: ireturn
|
|
1847
|
+
<|@
|
|
1848
|
+
end_bytecodes
|
|
1849
|
+
begin_cfg
|
|
1850
|
+
name "After code generation"
|
|
1851
|
+
end_cfg
|
|
1852
|
+
begin_nmethod
|
|
1853
|
+
<<<HexCodeFile
|
|
1854
|
+
Platform AMD64 64 <||@
|
|
1855
|
+
HexCode 0 89842400c0feff4883ec1848896c24108bc603c20f8013000000488b6c24104883c418850500000000c5f877c341c7878402000094f7ffff49c7879002000000000000e80000000090e80000000090e80000000090 <||@
|
|
1856
|
+
Comment 0 [stack overflow check] <||@
|
|
1857
|
+
Comment 0 3 <||@
|
|
1858
|
+
Comment 0 1 <||@
|
|
1859
|
+
Comment 11 block B0 null <||@
|
|
1860
|
+
Comment 11 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
1861
|
+
Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
|
|
1862
|
+
Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@144de6360 slotKind: QWORD <||@
|
|
1863
|
+
Comment 16 10 rax|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <||@
|
|
1864
|
+
Comment 20 12 BRANCH trueDestinationProbability: 0.0 condition: |of| trueDestination: B0 -> B2 falseDestination: B0 -> B1 <||@
|
|
1865
|
+
Comment 26 block B1 null <||@
|
|
1866
|
+
Comment 26 14 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
1867
|
+
Comment 26 18 RETURN (savedRbp: stack:16|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
|
|
1868
|
+
Comment 35 12 <||@
|
|
1869
|
+
Comment 45 block B2 null <||@
|
|
1870
|
+
Comment 45 20 [] = LABEL numbPhis: 0 align: false label: ? <||@
|
|
1871
|
+
Comment 45 22 MOV [r15|QWORD + 644] y: -2156 size: DWORD <||@
|
|
1872
|
+
Comment 56 24 MOV [r15|QWORD + 656] y: 0 size: QWORD <||@
|
|
1873
|
+
Comment 67 26 DEOPT info [bci:0] <||@
|
|
1874
|
+
Comment 67 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap, type=address, offset=0, address=0x1108bc130, value=4610474814]:0x112ce433e} <||@
|
|
1875
|
+
Comment 72 []at JavaExamples.exampleExactArith(JavaExamples.java:90) [bci: 0, duringCall: false, rethrow: false]
|
|
1876
|
+
|0 |1
|
|
1877
|
+
locals: |rsi|DWORD |rdx|DWORD <||@
|
|
1878
|
+
Comment 73 {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} <||@
|
|
1879
|
+
Comment 73 4 <||@
|
|
1880
|
+
Comment 79 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
|
|
1881
|
+
Comment 79 5 <||@
|
|
1882
|
+
HexCodeFile>>> <|@
|
|
1883
|
+
end_nmethod
|
|
1884
|
+
begin_compilation
|
|
1885
|
+
name " HotSpotCompilation-346[JavaExamples.exampleExactArith(int, int)]"
|
|
1886
|
+
method "HotSpotCompilation-346[JavaExamples.exampleExactArith(int, int)]"
|
|
1887
|
+
date 1583364091445
|
|
1888
|
+
end_compilation
|