seafoam 0.3 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +40 -0
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/Gemfile.lock +59 -0
  7. data/README.md +76 -3
  8. data/bin/bgv2isabelle +16 -45
  9. data/bin/bgv2json +18 -36
  10. data/bin/cfg2asm +24 -0
  11. data/bin/seafoam +1 -1
  12. data/demos/box-unbox-stats +65 -0
  13. data/docs/bgv.md +2 -1
  14. data/docs/getting-graphs.md +8 -0
  15. data/examples/Fib.java +1 -1
  16. data/examples/fib-java.bgv.gz +0 -0
  17. data/examples/fib.js +1 -1
  18. data/examples/java/JavaExamples.java +1 -1
  19. data/examples/ruby/clamps.rb +20 -0
  20. data/examples/ruby/graal.patch +15 -0
  21. data/examples/ruby/ruby_examples.rb +278 -0
  22. data/lib/seafoam.rb +5 -1
  23. data/lib/seafoam/annotators/graal.rb +1 -1
  24. data/lib/seafoam/bgv/bgv_parser.rb +10 -2
  25. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  26. data/lib/seafoam/cfg/disassembler.rb +70 -0
  27. data/lib/seafoam/commands.rb +190 -30
  28. data/lib/seafoam/graal/source.rb +23 -0
  29. data/lib/seafoam/graph.rb +25 -1
  30. data/lib/seafoam/graphviz_writer.rb +21 -2
  31. data/lib/seafoam/isabelle_writer.rb +46 -0
  32. data/lib/seafoam/json_writer.rb +58 -0
  33. data/lib/seafoam/version.rb +1 -1
  34. data/seafoam.gemspec +4 -2
  35. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  36. data/spec/seafoam/bgv/bgv_parser_spec.rb +13 -3
  37. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  38. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  39. data/spec/seafoam/command_spec.rb +86 -40
  40. data/spec/seafoam/json_writer_spec.rb +14 -0
  41. data/spec/seafoam/spec_helpers.rb +4 -0
  42. data/spec/seafoam/spotlight_spec.rb +1 -1
  43. data/tools/render-all +2 -2
  44. metadata +33 -96
  45. data/.github/workflows/rubocop.yml +0 -10
  46. data/.github/workflows/specs.yml +0 -19
  47. data/examples/fib-java.bgv +0 -0
  48. data/examples/fib-js.bgv +0 -0
  49. data/examples/fib-ruby.bgv +0 -0
  50. data/examples/identity.bgv +0 -0
  51. data/examples/java/exampleArithOperator.bgv +0 -0
  52. data/examples/java/exampleArithOperator.cfg +0 -925
  53. data/examples/java/exampleArrayAllocation.bgv +0 -0
  54. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  55. data/examples/java/exampleArrayRead.bgv +0 -0
  56. data/examples/java/exampleArrayRead.cfg +0 -2263
  57. data/examples/java/exampleArrayWrite.bgv +0 -0
  58. data/examples/java/exampleArrayWrite.cfg +0 -2315
  59. data/examples/java/exampleCatch.bgv +0 -0
  60. data/examples/java/exampleCatch.cfg +0 -4150
  61. data/examples/java/exampleCompareOperator.bgv +0 -0
  62. data/examples/java/exampleCompareOperator.cfg +0 -1109
  63. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  64. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  65. data/examples/java/exampleExactArith.bgv +0 -0
  66. data/examples/java/exampleExactArith.cfg +0 -1888
  67. data/examples/java/exampleFieldRead.bgv +0 -0
  68. data/examples/java/exampleFieldRead.cfg +0 -1228
  69. data/examples/java/exampleFieldWrite.bgv +0 -0
  70. data/examples/java/exampleFieldWrite.cfg +0 -1102
  71. data/examples/java/exampleFor.bgv +0 -0
  72. data/examples/java/exampleFor.cfg +0 -3936
  73. data/examples/java/exampleFullEscape.bgv +0 -0
  74. data/examples/java/exampleFullEscape.cfg +0 -5893
  75. data/examples/java/exampleIf.bgv +0 -0
  76. data/examples/java/exampleIf.cfg +0 -2462
  77. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  78. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  79. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  80. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  81. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  82. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  83. data/examples/java/exampleIntSwitch.bgv +0 -0
  84. data/examples/java/exampleIntSwitch.cfg +0 -3121
  85. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  86. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  87. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  88. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  89. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  90. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  91. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  92. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  93. data/examples/java/exampleLocalVariables.bgv +0 -0
  94. data/examples/java/exampleLocalVariables.cfg +0 -1195
  95. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  96. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  97. data/examples/java/exampleNestedWhile.bgv +0 -0
  98. data/examples/java/exampleNestedWhile.cfg +0 -15499
  99. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  100. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  101. data/examples/java/exampleNoEscape.bgv +0 -0
  102. data/examples/java/exampleNoEscape.cfg +0 -974
  103. data/examples/java/exampleObjectAllocation.bgv +0 -0
  104. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  105. data/examples/java/examplePartialEscape.bgv +0 -0
  106. data/examples/java/examplePartialEscape.cfg +0 -7042
  107. data/examples/java/examplePhi.bgv +0 -0
  108. data/examples/java/examplePhi.cfg +0 -3227
  109. data/examples/java/exampleReducible.bgv +0 -0
  110. data/examples/java/exampleReducible.cfg +0 -5578
  111. data/examples/java/exampleSimpleCall.bgv +0 -0
  112. data/examples/java/exampleSimpleCall.cfg +0 -1435
  113. data/examples/java/exampleStamp.bgv +0 -0
  114. data/examples/java/exampleStamp.cfg +0 -913
  115. data/examples/java/exampleStaticCall.bgv +0 -0
  116. data/examples/java/exampleStaticCall.cfg +0 -1154
  117. data/examples/java/exampleStringSwitch.bgv +0 -0
  118. data/examples/java/exampleStringSwitch.cfg +0 -15377
  119. data/examples/java/exampleSynchronized.bgv +0 -0
  120. data/examples/java/exampleSynchronized.cfg +0 -26027
  121. data/examples/java/exampleThrow.bgv +0 -0
  122. data/examples/java/exampleThrow.cfg +0 -780
  123. data/examples/java/exampleThrowCatch.bgv +0 -0
  124. data/examples/java/exampleThrowCatch.cfg +0 -744
  125. data/examples/java/exampleUnsafeRead.bgv +0 -0
  126. data/examples/java/exampleUnsafeRead.cfg +0 -912
  127. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  128. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  129. data/examples/java/exampleWhile.bgv +0 -0
  130. data/examples/java/exampleWhile.cfg +0 -3936
  131. data/examples/java/exampleWhileBreak.bgv +0 -0
  132. data/examples/java/exampleWhileBreak.cfg +0 -5963
  133. data/examples/matmult-java.bgv +0 -0
  134. data/examples/matmult-ruby.bgv +0 -0
  135. data/examples/overflow.bgv +0 -0
  136. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  137. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
Binary file
@@ -1,2476 +0,0 @@
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