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