seafoam 0.4 → 0.5

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