seafoam 0.3 → 0.8

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