seafoam 0.3 → 0.8

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