seafoam 0.2

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