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,925 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-116[JavaExamples.exampleArithOperator(int, int)]"
3
+ method "HotSpotCompilation-116[JavaExamples.exampleArithOperator(int, int)]"
4
+ date 1583364091368
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 i2 <|@
47
+ d <@d|@=== Debug Properties ===
48
+ index: 1
49
+ stamp: i32
50
+ uncheckedStamp: [null]
51
+ === Inputs ===
52
+ === Succesors ===
53
+ === Usages ===
54
+ i4
55
+ === Predecessor ===
56
+ - >@ <|@
57
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
58
+ f <@~|@floating>@ <|@
59
+ tid i4 <|@
60
+ d <@d|@=== Debug Properties ===
61
+ nodeSourcePosition: at JavaExamples.exampleArithOperator(JavaExamples.java:82) [bci: 2]
62
+ stamp: i32
63
+ === Inputs ===
64
+ x: i1
65
+ y: i2
66
+ === Succesors ===
67
+ === Usages ===
68
+ v5
69
+ === Predecessor ===
70
+ - >@ <|@
71
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i1 y: i2 <|@ <|@
72
+ f <@*|@fixed>@ <|@
73
+ tid v5 <|@
74
+ d <@d|@=== Debug Properties ===
75
+ nodeSourcePosition: at JavaExamples.exampleArithOperator(JavaExamples.java:82) [bci: 3]
76
+ stamp: void
77
+ === Inputs ===
78
+ result: i4
79
+ memoryMap: -
80
+ === Succesors ===
81
+ === Usages ===
82
+ === Predecessor ===
83
+ v0 >@ <|@
84
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
85
+ end_IR
86
+ end_block
87
+ end_cfg
88
+ begin_cfg
89
+ name "After LIRGeneration"
90
+ begin_block
91
+ name "B0"
92
+ from_bci -1
93
+ to_bci -1
94
+ predecessors
95
+ successors
96
+ xhandlers
97
+ flags
98
+ probability 4607182418800017408
99
+ begin_IR
100
+ LIR
101
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
102
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
103
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
104
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
105
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
106
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
107
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
108
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
109
+ end_IR
110
+ end_block
111
+ end_cfg
112
+ begin_bytecodes
113
+ 0: iload_0
114
+ 1: iload_1
115
+ 2: iadd
116
+ 3: ireturn
117
+ <|@
118
+ end_bytecodes
119
+ begin_cfg
120
+ name "After LIR generation"
121
+ begin_block
122
+ name "B0"
123
+ from_bci -1
124
+ to_bci -1
125
+ predecessors
126
+ successors
127
+ xhandlers
128
+ flags
129
+ probability 4607182418800017408
130
+ begin_IR
131
+ HIR
132
+ f <@#|@fixed with next>@ <|@
133
+ tid v0 <|@
134
+ d <@d|@=== Debug Properties ===
135
+ stamp: void
136
+ withSpeculationFence: false
137
+ === Inputs ===
138
+ stateAfter: -
139
+ === Succesors ===
140
+ next: v5
141
+ === Usages ===
142
+ === Predecessor ===
143
+ - >@ <|@
144
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v5 <|@ <|@
145
+ f <@~|@floating>@ <|@
146
+ tid i1 <|@
147
+ result v0|DWORD <|@
148
+ d <@d|@=== Debug Properties ===
149
+ index: 0
150
+ stamp: i32
151
+ uncheckedStamp: [null]
152
+ === Inputs ===
153
+ === Succesors ===
154
+ === Usages ===
155
+ i4
156
+ === Predecessor ===
157
+ - >@ <|@
158
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
159
+ f <@~|@floating>@ <|@
160
+ tid i2 <|@
161
+ result v1|DWORD <|@
162
+ d <@d|@=== Debug Properties ===
163
+ index: 1
164
+ stamp: i32
165
+ uncheckedStamp: [null]
166
+ === Inputs ===
167
+ === Succesors ===
168
+ === Usages ===
169
+ i4
170
+ === Predecessor ===
171
+ - >@ <|@
172
+ instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
173
+ f <@~|@floating>@ <|@
174
+ tid i4 <|@
175
+ result v2|DWORD <|@
176
+ d <@d|@=== Debug Properties ===
177
+ nodeSourcePosition: at JavaExamples.exampleArithOperator(JavaExamples.java:82) [bci: 2]
178
+ stamp: i32
179
+ === Inputs ===
180
+ x: i1
181
+ y: i2
182
+ === Succesors ===
183
+ === Usages ===
184
+ v5
185
+ === Predecessor ===
186
+ - >@ <|@
187
+ instruction <@+|@org.graalvm.compiler.nodes.calc.AddNode>@ x: i1 y: i2 <|@ <|@
188
+ f <@*|@fixed>@ <|@
189
+ tid v5 <|@
190
+ d <@d|@=== Debug Properties ===
191
+ nodeSourcePosition: at JavaExamples.exampleArithOperator(JavaExamples.java:82) [bci: 3]
192
+ stamp: void
193
+ === Inputs ===
194
+ result: i4
195
+ memoryMap: -
196
+ === Succesors ===
197
+ === Usages ===
198
+ === Predecessor ===
199
+ v0 >@ <|@
200
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i4 memoryMap: - <|@ <|@
201
+ end_IR
202
+ begin_IR
203
+ LIR
204
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
205
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
206
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
207
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
208
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
209
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
210
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
211
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
212
+ end_IR
213
+ end_block
214
+ end_cfg
215
+ begin_cfg
216
+ name "After ConstantLoadOptimization"
217
+ begin_block
218
+ name "B0"
219
+ from_bci -1
220
+ to_bci -1
221
+ predecessors
222
+ successors
223
+ xhandlers
224
+ flags
225
+ probability 4607182418800017408
226
+ begin_IR
227
+ LIR
228
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
229
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
230
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
231
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
232
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
233
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
234
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
235
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
236
+ end_IR
237
+ end_block
238
+ end_cfg
239
+ begin_bytecodes
240
+ 0: iload_0
241
+ 1: iload_1
242
+ 2: iadd
243
+ 3: ireturn
244
+ <|@
245
+ end_bytecodes
246
+ begin_cfg
247
+ name "After SaveCalleeSaveRegisters"
248
+ begin_block
249
+ name "B0"
250
+ from_bci -1
251
+ to_bci -1
252
+ predecessors
253
+ successors
254
+ xhandlers
255
+ flags
256
+ probability 4607182418800017408
257
+ begin_IR
258
+ LIR
259
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
260
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
261
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
262
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
263
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
264
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
265
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
266
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
267
+ end_IR
268
+ end_block
269
+ end_cfg
270
+ begin_bytecodes
271
+ 0: iload_0
272
+ 1: iload_1
273
+ 2: iadd
274
+ 3: ireturn
275
+ <|@
276
+ end_bytecodes
277
+ begin_cfg
278
+ name "After PreAllocationOptimizationStage"
279
+ begin_block
280
+ name "B0"
281
+ from_bci -1
282
+ to_bci -1
283
+ predecessors
284
+ successors
285
+ xhandlers
286
+ flags
287
+ probability 4607182418800017408
288
+ begin_IR
289
+ LIR
290
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
291
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
292
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
293
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
294
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
295
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
296
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
297
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
298
+ end_IR
299
+ end_block
300
+ end_cfg
301
+ begin_bytecodes
302
+ 0: iload_0
303
+ 1: iload_1
304
+ 2: iadd
305
+ 3: ireturn
306
+ <|@
307
+ end_bytecodes
308
+ begin_cfg
309
+ name "After MarkBasePointers"
310
+ begin_block
311
+ name "B0"
312
+ from_bci -1
313
+ to_bci -1
314
+ predecessors
315
+ successors
316
+ xhandlers
317
+ flags
318
+ probability 4607182418800017408
319
+ begin_IR
320
+ LIR
321
+ nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
322
+ nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
323
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
324
+ nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
325
+ nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
326
+ nr -1 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
327
+ nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
328
+ nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
329
+ end_IR
330
+ end_block
331
+ end_cfg
332
+ begin_bytecodes
333
+ 0: iload_0
334
+ 1: iload_1
335
+ 2: iadd
336
+ 3: ireturn
337
+ <|@
338
+ end_bytecodes
339
+ begin_cfg
340
+ name "Before register allocation"
341
+ begin_block
342
+ name "B0"
343
+ from_bci -1
344
+ to_bci -1
345
+ predecessors
346
+ successors
347
+ xhandlers
348
+ flags
349
+ probability 4607182418800017408
350
+ begin_IR
351
+ LIR
352
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
353
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
354
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
355
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
356
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
357
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
358
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
359
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
360
+ end_IR
361
+ end_block
362
+ end_cfg
363
+ begin_bytecodes
364
+ 0: iload_0
365
+ 1: iload_1
366
+ 2: iadd
367
+ 3: ireturn
368
+ <|@
369
+ end_bytecodes
370
+ begin_cfg
371
+ name "After SSALinearScanLifetimeAnalysis"
372
+ begin_block
373
+ name "B0"
374
+ from_bci -1
375
+ to_bci -1
376
+ predecessors
377
+ successors
378
+ xhandlers
379
+ flags
380
+ probability 4607182418800017408
381
+ begin_IR
382
+ LIR
383
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
384
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
385
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
386
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
387
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
388
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
389
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
390
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
391
+ end_IR
392
+ end_block
393
+ end_cfg
394
+ begin_bytecodes
395
+ 0: iload_0
396
+ 1: iload_1
397
+ 2: iadd
398
+ 3: ireturn
399
+ <|@
400
+ end_bytecodes
401
+ begin_intervals
402
+ name "Before register allocation"
403
+ rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[12, 14[ "NoSpillStore"
404
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
405
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
406
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
407
+ v0|d DWORD "[v0|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
408
+ v1|d DWORD "[v1|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
409
+ v2|d DWORD "[v2|d]" v2|d v0|d [10, 12[10 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
410
+ v3|q QWORD "[v3|q]" v3|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
411
+ end_intervals
412
+ begin_intervals
413
+ name "After register allocation"
414
+ rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[12, 14[ "NoSpillStore"
415
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
416
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
417
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
418
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
419
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
420
+ v2|d DWORD "[rsi|d]" v2|d v0|d [10, 12[10 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
421
+ v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
422
+ end_intervals
423
+ begin_cfg
424
+ name "After LinearScanRegisterAllocation"
425
+ begin_block
426
+ name "B0"
427
+ from_bci -1
428
+ to_bci -1
429
+ predecessors
430
+ successors
431
+ xhandlers
432
+ flags
433
+ probability 4607182418800017408
434
+ begin_IR
435
+ LIR
436
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
437
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
438
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
439
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
440
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
441
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
442
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
443
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
444
+ end_IR
445
+ end_block
446
+ end_cfg
447
+ begin_bytecodes
448
+ 0: iload_0
449
+ 1: iload_1
450
+ 2: iadd
451
+ 3: ireturn
452
+ <|@
453
+ end_bytecodes
454
+ begin_intervals
455
+ name "After optimize spill position"
456
+ rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[12, 14[ "NoSpillStore"
457
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
458
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
459
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
460
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
461
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
462
+ v2|d DWORD "[rsi|d]" v2|d v0|d [10, 12[10 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
463
+ v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
464
+ end_intervals
465
+ begin_cfg
466
+ name "After LinearScanOptimizeSpillPosition"
467
+ begin_block
468
+ name "B0"
469
+ from_bci -1
470
+ to_bci -1
471
+ predecessors
472
+ successors
473
+ xhandlers
474
+ flags
475
+ probability 4607182418800017408
476
+ begin_IR
477
+ LIR
478
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
479
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
480
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
481
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
482
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
483
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
484
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
485
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
486
+ end_IR
487
+ end_block
488
+ end_cfg
489
+ begin_bytecodes
490
+ 0: iload_0
491
+ 1: iload_1
492
+ 2: iadd
493
+ 3: ireturn
494
+ <|@
495
+ end_bytecodes
496
+ begin_intervals
497
+ name "After resolve data flow"
498
+ rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[12, 14[ "NoSpillStore"
499
+ rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
500
+ rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
501
+ rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
502
+ v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
503
+ v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
504
+ v2|d DWORD "[rsi|d]" v2|d v0|d [10, 12[10 MustHaveRegister 12 ShouldHaveRegister "NoSpillStore"
505
+ v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 14[2 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
506
+ end_intervals
507
+ begin_cfg
508
+ name "After SSALinearScanResolveDataFlow"
509
+ begin_block
510
+ name "B0"
511
+ from_bci -1
512
+ to_bci -1
513
+ predecessors
514
+ successors
515
+ xhandlers
516
+ flags
517
+ probability 4607182418800017408
518
+ begin_IR
519
+ LIR
520
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
521
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
522
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
523
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
524
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
525
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
526
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
527
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
528
+ end_IR
529
+ end_block
530
+ end_cfg
531
+ begin_bytecodes
532
+ 0: iload_0
533
+ 1: iload_1
534
+ 2: iadd
535
+ 3: ireturn
536
+ <|@
537
+ end_bytecodes
538
+ begin_cfg
539
+ name "After SSALinearScanEliminateSpillMove"
540
+ begin_block
541
+ name "B0"
542
+ from_bci -1
543
+ to_bci -1
544
+ predecessors
545
+ successors
546
+ xhandlers
547
+ flags
548
+ probability 4607182418800017408
549
+ begin_IR
550
+ LIR
551
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
552
+ nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
553
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
554
+ nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
555
+ nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
556
+ nr 10 <|@ instruction v2|DWORD = ADD (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
557
+ nr 12 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
558
+ nr 14 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
559
+ end_IR
560
+ end_block
561
+ end_cfg
562
+ begin_bytecodes
563
+ 0: iload_0
564
+ 1: iload_1
565
+ 2: iadd
566
+ 3: ireturn
567
+ <|@
568
+ end_bytecodes
569
+ begin_cfg
570
+ name "After LinearScanAssignLocations"
571
+ begin_block
572
+ name "B0"
573
+ from_bci -1
574
+ to_bci -1
575
+ predecessors
576
+ successors
577
+ xhandlers
578
+ flags
579
+ probability 4607182418800017408
580
+ begin_IR
581
+ LIR
582
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
583
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
584
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
585
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
586
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
587
+ end_IR
588
+ end_block
589
+ end_cfg
590
+ begin_bytecodes
591
+ 0: iload_0
592
+ 1: iload_1
593
+ 2: iadd
594
+ 3: ireturn
595
+ <|@
596
+ end_bytecodes
597
+ begin_cfg
598
+ name "After LinearScan"
599
+ begin_block
600
+ name "B0"
601
+ from_bci -1
602
+ to_bci -1
603
+ predecessors
604
+ successors
605
+ xhandlers
606
+ flags
607
+ probability 4607182418800017408
608
+ begin_IR
609
+ LIR
610
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
611
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
612
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
613
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
614
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
615
+ end_IR
616
+ end_block
617
+ end_cfg
618
+ begin_bytecodes
619
+ 0: iload_0
620
+ 1: iload_1
621
+ 2: iadd
622
+ 3: ireturn
623
+ <|@
624
+ end_bytecodes
625
+ begin_cfg
626
+ name "After LSStackSlotAllocator"
627
+ begin_block
628
+ name "B0"
629
+ from_bci -1
630
+ to_bci -1
631
+ predecessors
632
+ successors
633
+ xhandlers
634
+ flags
635
+ probability 4607182418800017408
636
+ begin_IR
637
+ LIR
638
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
639
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
640
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
641
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
642
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
643
+ end_IR
644
+ end_block
645
+ end_cfg
646
+ begin_bytecodes
647
+ 0: iload_0
648
+ 1: iload_1
649
+ 2: iadd
650
+ 3: ireturn
651
+ <|@
652
+ end_bytecodes
653
+ begin_cfg
654
+ name "After LocationMarker"
655
+ begin_block
656
+ name "B0"
657
+ from_bci -1
658
+ to_bci -1
659
+ predecessors
660
+ successors
661
+ xhandlers
662
+ flags
663
+ probability 4607182418800017408
664
+ begin_IR
665
+ LIR
666
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
667
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
668
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
669
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
670
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
671
+ end_IR
672
+ end_block
673
+ end_cfg
674
+ begin_bytecodes
675
+ 0: iload_0
676
+ 1: iload_1
677
+ 2: iadd
678
+ 3: ireturn
679
+ <|@
680
+ end_bytecodes
681
+ begin_cfg
682
+ name "After AllocationStage"
683
+ begin_block
684
+ name "B0"
685
+ from_bci -1
686
+ to_bci -1
687
+ predecessors
688
+ successors
689
+ xhandlers
690
+ flags
691
+ probability 4607182418800017408
692
+ begin_IR
693
+ LIR
694
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
695
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
696
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
697
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
698
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
699
+ end_IR
700
+ end_block
701
+ end_cfg
702
+ begin_bytecodes
703
+ 0: iload_0
704
+ 1: iload_1
705
+ 2: iadd
706
+ 3: ireturn
707
+ <|@
708
+ end_bytecodes
709
+ begin_cfg
710
+ name "After EdgeMoveOptimizer"
711
+ begin_block
712
+ name "B0"
713
+ from_bci -1
714
+ to_bci -1
715
+ predecessors
716
+ successors
717
+ xhandlers
718
+ flags
719
+ probability 4607182418800017408
720
+ begin_IR
721
+ LIR
722
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
723
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
724
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
725
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
726
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
727
+ end_IR
728
+ end_block
729
+ end_cfg
730
+ begin_bytecodes
731
+ 0: iload_0
732
+ 1: iload_1
733
+ 2: iadd
734
+ 3: ireturn
735
+ <|@
736
+ end_bytecodes
737
+ begin_cfg
738
+ name "After ControlFlowOptimizer"
739
+ begin_block
740
+ name "B0"
741
+ from_bci -1
742
+ to_bci -1
743
+ predecessors
744
+ successors
745
+ xhandlers
746
+ flags
747
+ probability 4607182418800017408
748
+ begin_IR
749
+ LIR
750
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
751
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
752
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
753
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
754
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
755
+ end_IR
756
+ end_block
757
+ end_cfg
758
+ begin_bytecodes
759
+ 0: iload_0
760
+ 1: iload_1
761
+ 2: iadd
762
+ 3: ireturn
763
+ <|@
764
+ end_bytecodes
765
+ begin_cfg
766
+ name "After RedundantMoveElimination"
767
+ begin_block
768
+ name "B0"
769
+ from_bci -1
770
+ to_bci -1
771
+ predecessors
772
+ successors
773
+ xhandlers
774
+ flags
775
+ probability 4607182418800017408
776
+ begin_IR
777
+ LIR
778
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
779
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
780
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
781
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
782
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
783
+ end_IR
784
+ end_block
785
+ end_cfg
786
+ begin_bytecodes
787
+ 0: iload_0
788
+ 1: iload_1
789
+ 2: iadd
790
+ 3: ireturn
791
+ <|@
792
+ end_bytecodes
793
+ begin_cfg
794
+ name "After NullCheckOptimizer"
795
+ begin_block
796
+ name "B0"
797
+ from_bci -1
798
+ to_bci -1
799
+ predecessors
800
+ successors
801
+ xhandlers
802
+ flags
803
+ probability 4607182418800017408
804
+ begin_IR
805
+ LIR
806
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
807
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
808
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
809
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
810
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
811
+ end_IR
812
+ end_block
813
+ end_cfg
814
+ begin_bytecodes
815
+ 0: iload_0
816
+ 1: iload_1
817
+ 2: iadd
818
+ 3: ireturn
819
+ <|@
820
+ end_bytecodes
821
+ begin_cfg
822
+ name "After StackMoveOptimization"
823
+ begin_block
824
+ name "B0"
825
+ from_bci -1
826
+ to_bci -1
827
+ predecessors
828
+ successors
829
+ xhandlers
830
+ flags
831
+ probability 4607182418800017408
832
+ begin_IR
833
+ LIR
834
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
835
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
836
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
837
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
838
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
839
+ end_IR
840
+ end_block
841
+ end_cfg
842
+ begin_bytecodes
843
+ 0: iload_0
844
+ 1: iload_1
845
+ 2: iadd
846
+ 3: ireturn
847
+ <|@
848
+ end_bytecodes
849
+ begin_cfg
850
+ name "After PostAllocationOptimizationStage"
851
+ begin_block
852
+ name "B0"
853
+ from_bci -1
854
+ to_bci -1
855
+ predecessors
856
+ successors
857
+ xhandlers
858
+ flags
859
+ probability 4607182418800017408
860
+ begin_IR
861
+ LIR
862
+ nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
863
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <|@ <|@
864
+ nr 10 <|@ instruction rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
865
+ nr 12 <|@ instruction rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
866
+ nr 14 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
867
+ end_IR
868
+ end_block
869
+ end_cfg
870
+ begin_bytecodes
871
+ 0: iload_0
872
+ 1: iload_1
873
+ 2: iadd
874
+ 3: ireturn
875
+ <|@
876
+ end_bytecodes
877
+ begin_cfg
878
+ name "After code generation"
879
+ end_cfg
880
+ begin_nmethod
881
+ <<<HexCodeFile
882
+ Platform AMD64 64 <||@
883
+ HexCode 0 0f1f44000003f28bc6850500000000c5f877c3e80000000090e80000000090 <||@
884
+ Comment 0 3 <||@
885
+ Comment 0 1 <||@
886
+ Comment 5 block B0 null <||@
887
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
888
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <||@
889
+ Comment 5 10 rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <||@
890
+ Comment 7 12 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
891
+ Comment 9 14 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
892
+ Comment 9 12 <||@
893
+ Comment 19 {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} <||@
894
+ Comment 19 4 <||@
895
+ Comment 25 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
896
+ Comment 25 5 <||@
897
+ HexCodeFile>>> <|@
898
+ end_nmethod
899
+ begin_compilation
900
+ name " HotSpotCompilation-116[JavaExamples.exampleArithOperator(int, int)]"
901
+ method "HotSpotCompilation-116[JavaExamples.exampleArithOperator(int, int)]"
902
+ date 1583364091378
903
+ end_compilation
904
+ begin_cfg
905
+ name "After code installation"
906
+ end_cfg
907
+ begin_nmethod
908
+ <<<HexCodeFile
909
+ Platform AMD64 64 <||@
910
+ HexCode 112e2f660 0f1f44000003f28bc6850597b993fbc5f877c3e8a84cffff90e8c24bebff90f4 <||@
911
+ Comment 0 3 <||@
912
+ Comment 0 1 <||@
913
+ Comment 5 block B0 null <||@
914
+ Comment 5 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
915
+ Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@143082de0 slotKind: QWORD <||@
916
+ Comment 5 10 rsi|DWORD = ADD (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <||@
917
+ Comment 7 12 rax|DWORD = MOVE rsi|DWORD moveKind: DWORD <||@
918
+ Comment 9 14 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
919
+ Comment 9 12 <||@
920
+ Comment 19 {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} <||@
921
+ Comment 19 4 <||@
922
+ Comment 25 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
923
+ Comment 25 5 <||@
924
+ HexCodeFile>>> <|@
925
+ end_nmethod