seafoam 0.2

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