seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,913 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-124[JavaExamples.exampleStamp(int)]"
3
+ method "HotSpotCompilation-124[JavaExamples.exampleStamp(int)]"
4
+ date 1583796302242
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
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: v5
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v5 <|@ <|@
32
+ f <@~|@floating>@ <|@
33
+ tid i1 <|@
34
+ d <@d|@=== Debug Properties ===
35
+ index: 0
36
+ stamp: i32
37
+ uncheckedStamp: [null]
38
+ === Inputs ===
39
+ === Succesors ===
40
+ === Usages ===
41
+ i4
42
+ === Predecessor ===
43
+ - >@ <|@
44
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
+ f <@~|@floating>@ <|@
46
+ tid i3 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ isDefaultStable: false
49
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 1]
50
+ rawvalue: 4660
51
+ stableDimension: 0
52
+ stamp: i32 [4660] ⇊0000000000001234 ⇈0000000000001234
53
+ stampKind: i32
54
+ value: int[4660|0x1234]
55
+ === Inputs ===
56
+ === Succesors ===
57
+ === Usages ===
58
+ i4
59
+ === Predecessor ===
60
+ - >@ <|@
61
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
62
+ f <@~|@floating>@ <|@
63
+ tid i4 <|@
64
+ d <@d|@=== Debug Properties ===
65
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 4]
66
+ stamp: i32 [0 - 4660] ⇈0000000000001234
67
+ === Inputs ===
68
+ x: i1
69
+ y: i3
70
+ === Succesors ===
71
+ === Usages ===
72
+ v5
73
+ === Predecessor ===
74
+ - >@ <|@
75
+ instruction <@&|@org.graalvm.compiler.nodes.calc.AndNode>@ x: i1 y: i3 <|@ <|@
76
+ f <@*|@fixed>@ <|@
77
+ tid v5 <|@
78
+ d <@d|@=== Debug Properties ===
79
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 5]
80
+ stamp: void
81
+ === Inputs ===
82
+ result: i4
83
+ memoryMap: -
84
+ === Succesors ===
85
+ === Usages ===
86
+ === Predecessor ===
87
+ v0 >@ <|@
88
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
89
+ end_IR
90
+ end_block
91
+ end_cfg
92
+ begin_cfg
93
+ name "After LIRGeneration"
94
+ begin_block
95
+ name "B0"
96
+ from_bci -1
97
+ to_bci -1
98
+ predecessors
99
+ successors
100
+ xhandlers
101
+ flags
102
+ probability 4607182418800017408
103
+ begin_IR
104
+ LIR
105
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
106
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
107
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
108
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
109
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
110
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
111
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
112
+ end_IR
113
+ end_block
114
+ end_cfg
115
+ begin_bytecodes
116
+ 0: iload_0
117
+ 1: sipush 4660
118
+ 4: iand
119
+ 5: ireturn
120
+ <|@
121
+ end_bytecodes
122
+ begin_cfg
123
+ name "After LIR generation"
124
+ begin_block
125
+ name "B0"
126
+ from_bci -1
127
+ to_bci -1
128
+ predecessors
129
+ successors
130
+ xhandlers
131
+ flags
132
+ probability 4607182418800017408
133
+ begin_IR
134
+ HIR
135
+ f <@#|@fixed with next>@ <|@
136
+ tid v0 <|@
137
+ d <@d|@=== Debug Properties ===
138
+ stamp: void
139
+ withSpeculationFence: false
140
+ === Inputs ===
141
+ stateAfter: -
142
+ === Succesors ===
143
+ next: v5
144
+ === Usages ===
145
+ === Predecessor ===
146
+ - >@ <|@
147
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v5 <|@ <|@
148
+ f <@~|@floating>@ <|@
149
+ tid i1 <|@
150
+ result v0|DWORD <|@
151
+ d <@d|@=== Debug Properties ===
152
+ index: 0
153
+ stamp: i32
154
+ uncheckedStamp: [null]
155
+ === Inputs ===
156
+ === Succesors ===
157
+ === Usages ===
158
+ i4
159
+ === Predecessor ===
160
+ - >@ <|@
161
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
162
+ f <@~|@floating>@ <|@
163
+ tid i3 <|@
164
+ result int[4660|0x1234] <|@
165
+ d <@d|@=== Debug Properties ===
166
+ isDefaultStable: false
167
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 1]
168
+ rawvalue: 4660
169
+ stableDimension: 0
170
+ stamp: i32 [4660] ⇊0000000000001234 ⇈0000000000001234
171
+ stampKind: i32
172
+ value: int[4660|0x1234]
173
+ === Inputs ===
174
+ === Succesors ===
175
+ === Usages ===
176
+ i4
177
+ === Predecessor ===
178
+ - >@ <|@
179
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
180
+ f <@~|@floating>@ <|@
181
+ tid i4 <|@
182
+ result v1|DWORD <|@
183
+ d <@d|@=== Debug Properties ===
184
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 4]
185
+ stamp: i32 [0 - 4660] ⇈0000000000001234
186
+ === Inputs ===
187
+ x: i1
188
+ y: i3
189
+ === Succesors ===
190
+ === Usages ===
191
+ v5
192
+ === Predecessor ===
193
+ - >@ <|@
194
+ instruction <@&|@org.graalvm.compiler.nodes.calc.AndNode>@ x: i1 y: i3 <|@ <|@
195
+ f <@*|@fixed>@ <|@
196
+ tid v5 <|@
197
+ d <@d|@=== Debug Properties ===
198
+ nodeSourcePosition: at JavaExamples.exampleStamp(JavaExamples.java:114) [bci: 5]
199
+ stamp: void
200
+ === Inputs ===
201
+ result: i4
202
+ memoryMap: -
203
+ === Succesors ===
204
+ === Usages ===
205
+ === Predecessor ===
206
+ v0 >@ <|@
207
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
208
+ end_IR
209
+ begin_IR
210
+ LIR
211
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
212
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
213
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
214
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
215
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
216
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
217
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
218
+ end_IR
219
+ end_block
220
+ end_cfg
221
+ begin_cfg
222
+ name "After ConstantLoadOptimization"
223
+ begin_block
224
+ name "B0"
225
+ from_bci -1
226
+ to_bci -1
227
+ predecessors
228
+ successors
229
+ xhandlers
230
+ flags
231
+ probability 4607182418800017408
232
+ begin_IR
233
+ LIR
234
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
235
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
236
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
237
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
238
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
239
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
240
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
241
+ end_IR
242
+ end_block
243
+ end_cfg
244
+ begin_bytecodes
245
+ 0: iload_0
246
+ 1: sipush 4660
247
+ 4: iand
248
+ 5: ireturn
249
+ <|@
250
+ end_bytecodes
251
+ begin_cfg
252
+ name "After SaveCalleeSaveRegisters"
253
+ begin_block
254
+ name "B0"
255
+ from_bci -1
256
+ to_bci -1
257
+ predecessors
258
+ successors
259
+ xhandlers
260
+ flags
261
+ probability 4607182418800017408
262
+ begin_IR
263
+ LIR
264
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
265
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
266
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
267
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
268
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
269
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
270
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
271
+ end_IR
272
+ end_block
273
+ end_cfg
274
+ begin_bytecodes
275
+ 0: iload_0
276
+ 1: sipush 4660
277
+ 4: iand
278
+ 5: ireturn
279
+ <|@
280
+ end_bytecodes
281
+ begin_cfg
282
+ name "After PreAllocationOptimizationStage"
283
+ begin_block
284
+ name "B0"
285
+ from_bci -1
286
+ to_bci -1
287
+ predecessors
288
+ successors
289
+ xhandlers
290
+ flags
291
+ probability 4607182418800017408
292
+ begin_IR
293
+ LIR
294
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
295
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
296
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
297
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
298
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
299
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
300
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
301
+ end_IR
302
+ end_block
303
+ end_cfg
304
+ begin_bytecodes
305
+ 0: iload_0
306
+ 1: sipush 4660
307
+ 4: iand
308
+ 5: ireturn
309
+ <|@
310
+ end_bytecodes
311
+ begin_cfg
312
+ name "After MarkBasePointers"
313
+ begin_block
314
+ name "B0"
315
+ from_bci -1
316
+ to_bci -1
317
+ predecessors
318
+ successors
319
+ xhandlers
320
+ flags
321
+ probability 4607182418800017408
322
+ begin_IR
323
+ LIR
324
+ nr -1 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
325
+ nr -1 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
326
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
327
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
328
+ nr -1 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
329
+ nr -1 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
330
+ nr -1 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
331
+ end_IR
332
+ end_block
333
+ end_cfg
334
+ begin_bytecodes
335
+ 0: iload_0
336
+ 1: sipush 4660
337
+ 4: iand
338
+ 5: ireturn
339
+ <|@
340
+ end_bytecodes
341
+ begin_cfg
342
+ name "Before register allocation"
343
+ begin_block
344
+ name "B0"
345
+ from_bci -1
346
+ to_bci -1
347
+ predecessors
348
+ successors
349
+ xhandlers
350
+ flags
351
+ probability 4607182418800017408
352
+ begin_IR
353
+ LIR
354
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
355
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
356
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
357
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
358
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
359
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
360
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
361
+ end_IR
362
+ end_block
363
+ end_cfg
364
+ begin_bytecodes
365
+ 0: iload_0
366
+ 1: sipush 4660
367
+ 4: iand
368
+ 5: ireturn
369
+ <|@
370
+ end_bytecodes
371
+ begin_cfg
372
+ name "After SSALinearScanLifetimeAnalysis"
373
+ begin_block
374
+ name "B0"
375
+ from_bci -1
376
+ to_bci -1
377
+ predecessors
378
+ successors
379
+ xhandlers
380
+ flags
381
+ probability 4607182418800017408
382
+ begin_IR
383
+ LIR
384
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
385
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
386
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
387
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
388
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
389
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
390
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
391
+ end_IR
392
+ end_block
393
+ end_cfg
394
+ begin_bytecodes
395
+ 0: iload_0
396
+ 1: sipush 4660
397
+ 4: iand
398
+ 5: ireturn
399
+ <|@
400
+ end_bytecodes
401
+ begin_intervals
402
+ name "Before register allocation"
403
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[10, 12[ "NoSpillStore"
404
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
405
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
406
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 MustHaveRegister "NoSpillStore"
407
+ v1|d DWORD "[v1|d]" v1|d v0|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
408
+ v2|q QWORD "[v2|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
409
+ end_intervals
410
+ begin_intervals
411
+ name "After register allocation"
412
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[10, 12[ "NoSpillStore"
413
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
414
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
415
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 MustHaveRegister "NoSpillStore"
416
+ v1|d DWORD "[rsi|d]" v1|d v0|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
417
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
418
+ end_intervals
419
+ begin_cfg
420
+ name "After LinearScanRegisterAllocation"
421
+ begin_block
422
+ name "B0"
423
+ from_bci -1
424
+ to_bci -1
425
+ predecessors
426
+ successors
427
+ xhandlers
428
+ flags
429
+ probability 4607182418800017408
430
+ begin_IR
431
+ LIR
432
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
433
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
434
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
435
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
436
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
437
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
438
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
439
+ end_IR
440
+ end_block
441
+ end_cfg
442
+ begin_bytecodes
443
+ 0: iload_0
444
+ 1: sipush 4660
445
+ 4: iand
446
+ 5: ireturn
447
+ <|@
448
+ end_bytecodes
449
+ begin_intervals
450
+ name "After optimize spill position"
451
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[10, 12[ "NoSpillStore"
452
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
453
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
454
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 MustHaveRegister "NoSpillStore"
455
+ v1|d DWORD "[rsi|d]" v1|d v0|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
456
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
457
+ end_intervals
458
+ begin_cfg
459
+ name "After LinearScanOptimizeSpillPosition"
460
+ begin_block
461
+ name "B0"
462
+ from_bci -1
463
+ to_bci -1
464
+ predecessors
465
+ successors
466
+ xhandlers
467
+ flags
468
+ probability 4607182418800017408
469
+ begin_IR
470
+ LIR
471
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
472
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
473
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
474
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
475
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
476
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
477
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
478
+ end_IR
479
+ end_block
480
+ end_cfg
481
+ begin_bytecodes
482
+ 0: iload_0
483
+ 1: sipush 4660
484
+ 4: iand
485
+ 5: ireturn
486
+ <|@
487
+ end_bytecodes
488
+ begin_intervals
489
+ name "After resolve data flow"
490
+ rax|d fixed "[rax|d]" rax|d v1|d [0, 1[[10, 12[ "NoSpillStore"
491
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
492
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
493
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 8[6 MustHaveRegister 8 MustHaveRegister "NoSpillStore"
494
+ v1|d DWORD "[rsi|d]" v1|d v0|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
495
+ v2|q QWORD "[rbp|q]" v2|q rbp|q [2, 12[2 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
496
+ end_intervals
497
+ begin_cfg
498
+ name "After SSALinearScanResolveDataFlow"
499
+ begin_block
500
+ name "B0"
501
+ from_bci -1
502
+ to_bci -1
503
+ predecessors
504
+ successors
505
+ xhandlers
506
+ flags
507
+ probability 4607182418800017408
508
+ begin_IR
509
+ LIR
510
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
511
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
512
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
513
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
514
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
515
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
516
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
517
+ end_IR
518
+ end_block
519
+ end_cfg
520
+ begin_bytecodes
521
+ 0: iload_0
522
+ 1: sipush 4660
523
+ 4: iand
524
+ 5: ireturn
525
+ <|@
526
+ end_bytecodes
527
+ begin_cfg
528
+ name "After SSALinearScanEliminateSpillMove"
529
+ begin_block
530
+ name "B0"
531
+ from_bci -1
532
+ to_bci -1
533
+ predecessors
534
+ successors
535
+ xhandlers
536
+ flags
537
+ probability 4607182418800017408
538
+ begin_IR
539
+ LIR
540
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
541
+ nr 2 <|@ instruction v2|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
542
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
543
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
544
+ nr 8 <|@ instruction v1|DWORD = AND v0|DWORD y: 4660 size: DWORD <|@ <|@
545
+ nr 10 <|@ instruction rax|DWORD = MOVE v1|DWORD moveKind: DWORD <|@ <|@
546
+ nr 12 <|@ instruction RETURN (savedRbp: v2|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
547
+ end_IR
548
+ end_block
549
+ end_cfg
550
+ begin_bytecodes
551
+ 0: iload_0
552
+ 1: sipush 4660
553
+ 4: iand
554
+ 5: ireturn
555
+ <|@
556
+ end_bytecodes
557
+ begin_cfg
558
+ name "After LinearScanAssignLocations"
559
+ begin_block
560
+ name "B0"
561
+ from_bci -1
562
+ to_bci -1
563
+ predecessors
564
+ successors
565
+ xhandlers
566
+ flags
567
+ probability 4607182418800017408
568
+ begin_IR
569
+ LIR
570
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
571
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
572
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
573
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
574
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
575
+ end_IR
576
+ end_block
577
+ end_cfg
578
+ begin_bytecodes
579
+ 0: iload_0
580
+ 1: sipush 4660
581
+ 4: iand
582
+ 5: ireturn
583
+ <|@
584
+ end_bytecodes
585
+ begin_cfg
586
+ name "After LinearScan"
587
+ begin_block
588
+ name "B0"
589
+ from_bci -1
590
+ to_bci -1
591
+ predecessors
592
+ successors
593
+ xhandlers
594
+ flags
595
+ probability 4607182418800017408
596
+ begin_IR
597
+ LIR
598
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
599
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
600
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
601
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
602
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
603
+ end_IR
604
+ end_block
605
+ end_cfg
606
+ begin_bytecodes
607
+ 0: iload_0
608
+ 1: sipush 4660
609
+ 4: iand
610
+ 5: ireturn
611
+ <|@
612
+ end_bytecodes
613
+ begin_cfg
614
+ name "After LSStackSlotAllocator"
615
+ begin_block
616
+ name "B0"
617
+ from_bci -1
618
+ to_bci -1
619
+ predecessors
620
+ successors
621
+ xhandlers
622
+ flags
623
+ probability 4607182418800017408
624
+ begin_IR
625
+ LIR
626
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
627
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
628
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
629
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
630
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
631
+ end_IR
632
+ end_block
633
+ end_cfg
634
+ begin_bytecodes
635
+ 0: iload_0
636
+ 1: sipush 4660
637
+ 4: iand
638
+ 5: ireturn
639
+ <|@
640
+ end_bytecodes
641
+ begin_cfg
642
+ name "After LocationMarker"
643
+ begin_block
644
+ name "B0"
645
+ from_bci -1
646
+ to_bci -1
647
+ predecessors
648
+ successors
649
+ xhandlers
650
+ flags
651
+ probability 4607182418800017408
652
+ begin_IR
653
+ LIR
654
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
655
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
656
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
657
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
658
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
659
+ end_IR
660
+ end_block
661
+ end_cfg
662
+ begin_bytecodes
663
+ 0: iload_0
664
+ 1: sipush 4660
665
+ 4: iand
666
+ 5: ireturn
667
+ <|@
668
+ end_bytecodes
669
+ begin_cfg
670
+ name "After AllocationStage"
671
+ begin_block
672
+ name "B0"
673
+ from_bci -1
674
+ to_bci -1
675
+ predecessors
676
+ successors
677
+ xhandlers
678
+ flags
679
+ probability 4607182418800017408
680
+ begin_IR
681
+ LIR
682
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
683
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
684
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
685
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
686
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
687
+ end_IR
688
+ end_block
689
+ end_cfg
690
+ begin_bytecodes
691
+ 0: iload_0
692
+ 1: sipush 4660
693
+ 4: iand
694
+ 5: ireturn
695
+ <|@
696
+ end_bytecodes
697
+ begin_cfg
698
+ name "After EdgeMoveOptimizer"
699
+ begin_block
700
+ name "B0"
701
+ from_bci -1
702
+ to_bci -1
703
+ predecessors
704
+ successors
705
+ xhandlers
706
+ flags
707
+ probability 4607182418800017408
708
+ begin_IR
709
+ LIR
710
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
711
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
712
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
713
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
714
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
715
+ end_IR
716
+ end_block
717
+ end_cfg
718
+ begin_bytecodes
719
+ 0: iload_0
720
+ 1: sipush 4660
721
+ 4: iand
722
+ 5: ireturn
723
+ <|@
724
+ end_bytecodes
725
+ begin_cfg
726
+ name "After ControlFlowOptimizer"
727
+ begin_block
728
+ name "B0"
729
+ from_bci -1
730
+ to_bci -1
731
+ predecessors
732
+ successors
733
+ xhandlers
734
+ flags
735
+ probability 4607182418800017408
736
+ begin_IR
737
+ LIR
738
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
739
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
740
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
741
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
742
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
743
+ end_IR
744
+ end_block
745
+ end_cfg
746
+ begin_bytecodes
747
+ 0: iload_0
748
+ 1: sipush 4660
749
+ 4: iand
750
+ 5: ireturn
751
+ <|@
752
+ end_bytecodes
753
+ begin_cfg
754
+ name "After RedundantMoveElimination"
755
+ begin_block
756
+ name "B0"
757
+ from_bci -1
758
+ to_bci -1
759
+ predecessors
760
+ successors
761
+ xhandlers
762
+ flags
763
+ probability 4607182418800017408
764
+ begin_IR
765
+ LIR
766
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
767
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
768
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
769
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
770
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
771
+ end_IR
772
+ end_block
773
+ end_cfg
774
+ begin_bytecodes
775
+ 0: iload_0
776
+ 1: sipush 4660
777
+ 4: iand
778
+ 5: ireturn
779
+ <|@
780
+ end_bytecodes
781
+ begin_cfg
782
+ name "After NullCheckOptimizer"
783
+ begin_block
784
+ name "B0"
785
+ from_bci -1
786
+ to_bci -1
787
+ predecessors
788
+ successors
789
+ xhandlers
790
+ flags
791
+ probability 4607182418800017408
792
+ begin_IR
793
+ LIR
794
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
795
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
796
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
797
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
798
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
799
+ end_IR
800
+ end_block
801
+ end_cfg
802
+ begin_bytecodes
803
+ 0: iload_0
804
+ 1: sipush 4660
805
+ 4: iand
806
+ 5: ireturn
807
+ <|@
808
+ end_bytecodes
809
+ begin_cfg
810
+ name "After StackMoveOptimization"
811
+ begin_block
812
+ name "B0"
813
+ from_bci -1
814
+ to_bci -1
815
+ predecessors
816
+ successors
817
+ xhandlers
818
+ flags
819
+ probability 4607182418800017408
820
+ begin_IR
821
+ LIR
822
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
823
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
824
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
825
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
826
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
827
+ end_IR
828
+ end_block
829
+ end_cfg
830
+ begin_bytecodes
831
+ 0: iload_0
832
+ 1: sipush 4660
833
+ 4: iand
834
+ 5: ireturn
835
+ <|@
836
+ end_bytecodes
837
+ begin_cfg
838
+ name "After PostAllocationOptimizationStage"
839
+ begin_block
840
+ name "B0"
841
+ from_bci -1
842
+ to_bci -1
843
+ predecessors
844
+ successors
845
+ xhandlers
846
+ flags
847
+ probability 4607182418800017408
848
+ begin_IR
849
+ LIR
850
+ nr 0 <|@ instruction [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
851
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <|@ <|@
852
+ nr 8 <|@ instruction rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <|@ <|@
853
+ nr 10 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
854
+ nr 12 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <|@ <|@
855
+ end_IR
856
+ end_block
857
+ end_cfg
858
+ begin_bytecodes
859
+ 0: iload_0
860
+ 1: sipush 4660
861
+ 4: iand
862
+ 5: ireturn
863
+ <|@
864
+ end_bytecodes
865
+ begin_cfg
866
+ name "After code generation"
867
+ end_cfg
868
+ begin_nmethod
869
+ <<<HexCodeFile
870
+ Platform AMD64 64 <||@
871
+ HexCode 0 0f1f44000081e6341200008bc6850500000000c5f877c3e80000000090e80000000090 <||@
872
+ Comment 0 3 <||@
873
+ Comment 0 1 <||@
874
+ Comment 5 block B0 null <||@
875
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
876
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <||@
877
+ Comment 5 8 rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <||@
878
+ Comment 11 10 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
879
+ Comment 13 12 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <||@
880
+ Comment 13 12 <||@
881
+ Comment 23 {Stub<ExceptionHandlerStub.exceptionHandler>@0x114d35a60: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} <||@
882
+ Comment 23 4 <||@
883
+ Comment 29 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x10a6bc128, value=4643054144]:0x114bf6240} <||@
884
+ Comment 29 5 <||@
885
+ HexCodeFile>>> <|@
886
+ end_nmethod
887
+ begin_compilation
888
+ name " HotSpotCompilation-124[JavaExamples.exampleStamp(int)]"
889
+ method "HotSpotCompilation-124[JavaExamples.exampleStamp(int)]"
890
+ date 1583796302252
891
+ end_compilation
892
+ begin_cfg
893
+ name "After code installation"
894
+ end_cfg
895
+ begin_nmethod
896
+ <<<HexCodeFile
897
+ Platform AMD64 64 <||@
898
+ HexCode 114d41360 0f1f44000081e6341200008bc6850593ac83f3c5f877c3e8e446ffff90e8be4eebff90f4f4f4f4f4 <||@
899
+ Comment 0 3 <||@
900
+ Comment 0 1 <||@
901
+ Comment 5 block B0 null <||@
902
+ Comment 5 0 [rsi|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
903
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13fa82c50 slotKind: QWORD <||@
904
+ Comment 5 8 rsi|DWORD = AND rsi|DWORD y: 4660 size: DWORD <||@
905
+ Comment 11 10 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
906
+ Comment 13 12 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@112a022d8 <||@
907
+ Comment 13 12 <||@
908
+ Comment 23 {Stub<ExceptionHandlerStub.exceptionHandler>@0x114d35a60: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} <||@
909
+ Comment 23 4 <||@
910
+ Comment 29 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x10a6bc128, value=4643054144]:0x114bf6240} <||@
911
+ Comment 29 5 <||@
912
+ HexCodeFile>>> <|@
913
+ end_nmethod