seafoam 0.4 → 0.5

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