seafoam 0.2

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