seafoam 0.3 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +40 -0
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/Gemfile.lock +59 -0
  7. data/README.md +76 -3
  8. data/bin/bgv2isabelle +16 -45
  9. data/bin/bgv2json +18 -36
  10. data/bin/cfg2asm +24 -0
  11. data/bin/seafoam +1 -1
  12. data/demos/box-unbox-stats +65 -0
  13. data/docs/bgv.md +2 -1
  14. data/docs/getting-graphs.md +8 -0
  15. data/examples/Fib.java +1 -1
  16. data/examples/fib-java.bgv.gz +0 -0
  17. data/examples/fib.js +1 -1
  18. data/examples/java/JavaExamples.java +1 -1
  19. data/examples/ruby/clamps.rb +20 -0
  20. data/examples/ruby/graal.patch +15 -0
  21. data/examples/ruby/ruby_examples.rb +278 -0
  22. data/lib/seafoam.rb +5 -1
  23. data/lib/seafoam/annotators/graal.rb +1 -1
  24. data/lib/seafoam/bgv/bgv_parser.rb +10 -2
  25. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  26. data/lib/seafoam/cfg/disassembler.rb +70 -0
  27. data/lib/seafoam/commands.rb +190 -30
  28. data/lib/seafoam/graal/source.rb +23 -0
  29. data/lib/seafoam/graph.rb +25 -1
  30. data/lib/seafoam/graphviz_writer.rb +21 -2
  31. data/lib/seafoam/isabelle_writer.rb +46 -0
  32. data/lib/seafoam/json_writer.rb +58 -0
  33. data/lib/seafoam/version.rb +1 -1
  34. data/seafoam.gemspec +4 -2
  35. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  36. data/spec/seafoam/bgv/bgv_parser_spec.rb +13 -3
  37. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  38. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  39. data/spec/seafoam/command_spec.rb +86 -40
  40. data/spec/seafoam/json_writer_spec.rb +14 -0
  41. data/spec/seafoam/spec_helpers.rb +4 -0
  42. data/spec/seafoam/spotlight_spec.rb +1 -1
  43. data/tools/render-all +2 -2
  44. metadata +33 -96
  45. data/.github/workflows/rubocop.yml +0 -10
  46. data/.github/workflows/specs.yml +0 -19
  47. data/examples/fib-java.bgv +0 -0
  48. data/examples/fib-js.bgv +0 -0
  49. data/examples/fib-ruby.bgv +0 -0
  50. data/examples/identity.bgv +0 -0
  51. data/examples/java/exampleArithOperator.bgv +0 -0
  52. data/examples/java/exampleArithOperator.cfg +0 -925
  53. data/examples/java/exampleArrayAllocation.bgv +0 -0
  54. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  55. data/examples/java/exampleArrayRead.bgv +0 -0
  56. data/examples/java/exampleArrayRead.cfg +0 -2263
  57. data/examples/java/exampleArrayWrite.bgv +0 -0
  58. data/examples/java/exampleArrayWrite.cfg +0 -2315
  59. data/examples/java/exampleCatch.bgv +0 -0
  60. data/examples/java/exampleCatch.cfg +0 -4150
  61. data/examples/java/exampleCompareOperator.bgv +0 -0
  62. data/examples/java/exampleCompareOperator.cfg +0 -1109
  63. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  64. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  65. data/examples/java/exampleExactArith.bgv +0 -0
  66. data/examples/java/exampleExactArith.cfg +0 -1888
  67. data/examples/java/exampleFieldRead.bgv +0 -0
  68. data/examples/java/exampleFieldRead.cfg +0 -1228
  69. data/examples/java/exampleFieldWrite.bgv +0 -0
  70. data/examples/java/exampleFieldWrite.cfg +0 -1102
  71. data/examples/java/exampleFor.bgv +0 -0
  72. data/examples/java/exampleFor.cfg +0 -3936
  73. data/examples/java/exampleFullEscape.bgv +0 -0
  74. data/examples/java/exampleFullEscape.cfg +0 -5893
  75. data/examples/java/exampleIf.bgv +0 -0
  76. data/examples/java/exampleIf.cfg +0 -2462
  77. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  78. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  79. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  80. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  81. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  82. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  83. data/examples/java/exampleIntSwitch.bgv +0 -0
  84. data/examples/java/exampleIntSwitch.cfg +0 -3121
  85. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  86. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  87. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  88. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  89. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  90. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  91. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  92. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  93. data/examples/java/exampleLocalVariables.bgv +0 -0
  94. data/examples/java/exampleLocalVariables.cfg +0 -1195
  95. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  96. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  97. data/examples/java/exampleNestedWhile.bgv +0 -0
  98. data/examples/java/exampleNestedWhile.cfg +0 -15499
  99. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  100. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  101. data/examples/java/exampleNoEscape.bgv +0 -0
  102. data/examples/java/exampleNoEscape.cfg +0 -974
  103. data/examples/java/exampleObjectAllocation.bgv +0 -0
  104. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  105. data/examples/java/examplePartialEscape.bgv +0 -0
  106. data/examples/java/examplePartialEscape.cfg +0 -7042
  107. data/examples/java/examplePhi.bgv +0 -0
  108. data/examples/java/examplePhi.cfg +0 -3227
  109. data/examples/java/exampleReducible.bgv +0 -0
  110. data/examples/java/exampleReducible.cfg +0 -5578
  111. data/examples/java/exampleSimpleCall.bgv +0 -0
  112. data/examples/java/exampleSimpleCall.cfg +0 -1435
  113. data/examples/java/exampleStamp.bgv +0 -0
  114. data/examples/java/exampleStamp.cfg +0 -913
  115. data/examples/java/exampleStaticCall.bgv +0 -0
  116. data/examples/java/exampleStaticCall.cfg +0 -1154
  117. data/examples/java/exampleStringSwitch.bgv +0 -0
  118. data/examples/java/exampleStringSwitch.cfg +0 -15377
  119. data/examples/java/exampleSynchronized.bgv +0 -0
  120. data/examples/java/exampleSynchronized.cfg +0 -26027
  121. data/examples/java/exampleThrow.bgv +0 -0
  122. data/examples/java/exampleThrow.cfg +0 -780
  123. data/examples/java/exampleThrowCatch.bgv +0 -0
  124. data/examples/java/exampleThrowCatch.cfg +0 -744
  125. data/examples/java/exampleUnsafeRead.bgv +0 -0
  126. data/examples/java/exampleUnsafeRead.cfg +0 -912
  127. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  128. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  129. data/examples/java/exampleWhile.bgv +0 -0
  130. data/examples/java/exampleWhile.cfg +0 -3936
  131. data/examples/java/exampleWhileBreak.bgv +0 -0
  132. data/examples/java/exampleWhileBreak.cfg +0 -5963
  133. data/examples/matmult-java.bgv +0 -0
  134. data/examples/matmult-ruby.bgv +0 -0
  135. data/examples/overflow.bgv +0 -0
  136. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  137. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
Binary file
@@ -1,744 +0,0 @@
1
- begin_compilation
2
- name " HotSpotCompilation-126[JavaExamples.exampleThrowCatch()]"
3
- method "HotSpotCompilation-126[JavaExamples.exampleThrowCatch()]"
4
- date 1583364091773
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: v11
28
- === Usages ===
29
- === Predecessor ===
30
- - >@ <|@
31
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v11 <|@ <|@
32
- f <@*|@fixed>@ <|@
33
- tid v11 <|@
34
- d <@d|@=== Debug Properties ===
35
- nodeSourcePosition: at JavaExamples.exampleThrowCatch(JavaExamples.java:289) [bci: 5]
36
- stamp: void
37
- === Inputs ===
38
- result: -
39
- memoryMap: -
40
- === Succesors ===
41
- === Usages ===
42
- === Predecessor ===
43
- v0 >@ <|@
44
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
45
- end_IR
46
- end_block
47
- end_cfg
48
- begin_cfg
49
- name "After LIRGeneration"
50
- begin_block
51
- name "B0"
52
- from_bci -1
53
- to_bci -1
54
- predecessors
55
- successors
56
- xhandlers
57
- flags
58
- probability 4607182418800017408
59
- begin_IR
60
- LIR
61
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
62
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
63
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
64
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
65
- end_IR
66
- end_block
67
- end_cfg
68
- begin_bytecodes
69
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
70
- 3: athrow
71
- 4: astore_0
72
- 5: return
73
- <|@
74
- end_bytecodes
75
- begin_cfg
76
- name "After LIR generation"
77
- begin_block
78
- name "B0"
79
- from_bci -1
80
- to_bci -1
81
- predecessors
82
- successors
83
- xhandlers
84
- flags
85
- probability 4607182418800017408
86
- begin_IR
87
- HIR
88
- f <@#|@fixed with next>@ <|@
89
- tid v0 <|@
90
- d <@d|@=== Debug Properties ===
91
- stamp: void
92
- withSpeculationFence: false
93
- === Inputs ===
94
- stateAfter: -
95
- === Succesors ===
96
- next: v11
97
- === Usages ===
98
- === Predecessor ===
99
- - >@ <|@
100
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v11 <|@ <|@
101
- f <@*|@fixed>@ <|@
102
- tid v11 <|@
103
- d <@d|@=== Debug Properties ===
104
- nodeSourcePosition: at JavaExamples.exampleThrowCatch(JavaExamples.java:289) [bci: 5]
105
- stamp: void
106
- === Inputs ===
107
- result: -
108
- memoryMap: -
109
- === Succesors ===
110
- === Usages ===
111
- === Predecessor ===
112
- v0 >@ <|@
113
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
114
- end_IR
115
- begin_IR
116
- LIR
117
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
118
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
119
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
120
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
121
- end_IR
122
- end_block
123
- end_cfg
124
- begin_cfg
125
- name "After ConstantLoadOptimization"
126
- begin_block
127
- name "B0"
128
- from_bci -1
129
- to_bci -1
130
- predecessors
131
- successors
132
- xhandlers
133
- flags
134
- probability 4607182418800017408
135
- begin_IR
136
- LIR
137
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
138
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
139
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
140
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
141
- end_IR
142
- end_block
143
- end_cfg
144
- begin_bytecodes
145
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
146
- 3: athrow
147
- 4: astore_0
148
- 5: return
149
- <|@
150
- end_bytecodes
151
- begin_cfg
152
- name "After SaveCalleeSaveRegisters"
153
- begin_block
154
- name "B0"
155
- from_bci -1
156
- to_bci -1
157
- predecessors
158
- successors
159
- xhandlers
160
- flags
161
- probability 4607182418800017408
162
- begin_IR
163
- LIR
164
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
165
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
166
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
167
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
168
- end_IR
169
- end_block
170
- end_cfg
171
- begin_bytecodes
172
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
173
- 3: athrow
174
- 4: astore_0
175
- 5: return
176
- <|@
177
- end_bytecodes
178
- begin_cfg
179
- name "After PreAllocationOptimizationStage"
180
- begin_block
181
- name "B0"
182
- from_bci -1
183
- to_bci -1
184
- predecessors
185
- successors
186
- xhandlers
187
- flags
188
- probability 4607182418800017408
189
- begin_IR
190
- LIR
191
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
192
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
193
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
194
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
195
- end_IR
196
- end_block
197
- end_cfg
198
- begin_bytecodes
199
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
200
- 3: athrow
201
- 4: astore_0
202
- 5: return
203
- <|@
204
- end_bytecodes
205
- begin_cfg
206
- name "After MarkBasePointers"
207
- begin_block
208
- name "B0"
209
- from_bci -1
210
- to_bci -1
211
- predecessors
212
- successors
213
- xhandlers
214
- flags
215
- probability 4607182418800017408
216
- begin_IR
217
- LIR
218
- nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
219
- nr -1 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
220
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
221
- nr -1 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
222
- end_IR
223
- end_block
224
- end_cfg
225
- begin_bytecodes
226
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
227
- 3: athrow
228
- 4: astore_0
229
- 5: return
230
- <|@
231
- end_bytecodes
232
- begin_cfg
233
- name "Before register allocation"
234
- begin_block
235
- name "B0"
236
- from_bci -1
237
- to_bci -1
238
- predecessors
239
- successors
240
- xhandlers
241
- flags
242
- probability 4607182418800017408
243
- begin_IR
244
- LIR
245
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
246
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
247
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
248
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
249
- end_IR
250
- end_block
251
- end_cfg
252
- begin_bytecodes
253
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
254
- 3: athrow
255
- 4: astore_0
256
- 5: return
257
- <|@
258
- end_bytecodes
259
- begin_cfg
260
- name "After SSALinearScanLifetimeAnalysis"
261
- begin_block
262
- name "B0"
263
- from_bci -1
264
- to_bci -1
265
- predecessors
266
- successors
267
- xhandlers
268
- flags
269
- probability 4607182418800017408
270
- begin_IR
271
- LIR
272
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
273
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
274
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
275
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
276
- end_IR
277
- end_block
278
- end_cfg
279
- begin_bytecodes
280
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
281
- 3: athrow
282
- 4: astore_0
283
- 5: return
284
- <|@
285
- end_bytecodes
286
- begin_intervals
287
- name "Before register allocation"
288
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
289
- v0|q QWORD "[v0|q]" v0|q rbp|q [2, 6[2 MustHaveRegister 6 ShouldHaveRegister "NoSpillStore"
290
- end_intervals
291
- begin_intervals
292
- name "After register allocation"
293
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
294
- v0|q QWORD "[rbp|q]" v0|q rbp|q [2, 6[2 MustHaveRegister 6 ShouldHaveRegister "NoSpillStore"
295
- end_intervals
296
- begin_cfg
297
- name "After LinearScanRegisterAllocation"
298
- begin_block
299
- name "B0"
300
- from_bci -1
301
- to_bci -1
302
- predecessors
303
- successors
304
- xhandlers
305
- flags
306
- probability 4607182418800017408
307
- begin_IR
308
- LIR
309
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
310
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
311
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
312
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
313
- end_IR
314
- end_block
315
- end_cfg
316
- begin_bytecodes
317
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
318
- 3: athrow
319
- 4: astore_0
320
- 5: return
321
- <|@
322
- end_bytecodes
323
- begin_intervals
324
- name "After optimize spill position"
325
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
326
- v0|q QWORD "[rbp|q]" v0|q rbp|q [2, 6[2 MustHaveRegister 6 ShouldHaveRegister "NoSpillStore"
327
- end_intervals
328
- begin_cfg
329
- name "After LinearScanOptimizeSpillPosition"
330
- begin_block
331
- name "B0"
332
- from_bci -1
333
- to_bci -1
334
- predecessors
335
- successors
336
- xhandlers
337
- flags
338
- probability 4607182418800017408
339
- begin_IR
340
- LIR
341
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
342
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
343
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
344
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
345
- end_IR
346
- end_block
347
- end_cfg
348
- begin_bytecodes
349
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
350
- 3: athrow
351
- 4: astore_0
352
- 5: return
353
- <|@
354
- end_bytecodes
355
- begin_intervals
356
- name "After resolve data flow"
357
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
358
- v0|q QWORD "[rbp|q]" v0|q rbp|q [2, 6[2 MustHaveRegister 6 ShouldHaveRegister "NoSpillStore"
359
- end_intervals
360
- begin_cfg
361
- name "After SSALinearScanResolveDataFlow"
362
- begin_block
363
- name "B0"
364
- from_bci -1
365
- to_bci -1
366
- predecessors
367
- successors
368
- xhandlers
369
- flags
370
- probability 4607182418800017408
371
- begin_IR
372
- LIR
373
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
374
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
375
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
376
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
377
- end_IR
378
- end_block
379
- end_cfg
380
- begin_bytecodes
381
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
382
- 3: athrow
383
- 4: astore_0
384
- 5: return
385
- <|@
386
- end_bytecodes
387
- begin_cfg
388
- name "After SSALinearScanEliminateSpillMove"
389
- begin_block
390
- name "B0"
391
- from_bci -1
392
- to_bci -1
393
- predecessors
394
- successors
395
- xhandlers
396
- flags
397
- probability 4607182418800017408
398
- begin_IR
399
- LIR
400
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
401
- nr 2 <|@ instruction v0|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
402
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
403
- nr 6 <|@ instruction RETURN (savedRbp: v0|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
404
- end_IR
405
- end_block
406
- end_cfg
407
- begin_bytecodes
408
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
409
- 3: athrow
410
- 4: astore_0
411
- 5: return
412
- <|@
413
- end_bytecodes
414
- begin_cfg
415
- name "After LinearScanAssignLocations"
416
- begin_block
417
- name "B0"
418
- from_bci -1
419
- to_bci -1
420
- predecessors
421
- successors
422
- xhandlers
423
- flags
424
- probability 4607182418800017408
425
- begin_IR
426
- LIR
427
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
428
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
429
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
430
- end_IR
431
- end_block
432
- end_cfg
433
- begin_bytecodes
434
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
435
- 3: athrow
436
- 4: astore_0
437
- 5: return
438
- <|@
439
- end_bytecodes
440
- begin_cfg
441
- name "After LinearScan"
442
- begin_block
443
- name "B0"
444
- from_bci -1
445
- to_bci -1
446
- predecessors
447
- successors
448
- xhandlers
449
- flags
450
- probability 4607182418800017408
451
- begin_IR
452
- LIR
453
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
454
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
455
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
456
- end_IR
457
- end_block
458
- end_cfg
459
- begin_bytecodes
460
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
461
- 3: athrow
462
- 4: astore_0
463
- 5: return
464
- <|@
465
- end_bytecodes
466
- begin_cfg
467
- name "After LSStackSlotAllocator"
468
- begin_block
469
- name "B0"
470
- from_bci -1
471
- to_bci -1
472
- predecessors
473
- successors
474
- xhandlers
475
- flags
476
- probability 4607182418800017408
477
- begin_IR
478
- LIR
479
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
480
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
481
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
482
- end_IR
483
- end_block
484
- end_cfg
485
- begin_bytecodes
486
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
487
- 3: athrow
488
- 4: astore_0
489
- 5: return
490
- <|@
491
- end_bytecodes
492
- begin_cfg
493
- name "After LocationMarker"
494
- begin_block
495
- name "B0"
496
- from_bci -1
497
- to_bci -1
498
- predecessors
499
- successors
500
- xhandlers
501
- flags
502
- probability 4607182418800017408
503
- begin_IR
504
- LIR
505
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
506
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
507
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
508
- end_IR
509
- end_block
510
- end_cfg
511
- begin_bytecodes
512
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
513
- 3: athrow
514
- 4: astore_0
515
- 5: return
516
- <|@
517
- end_bytecodes
518
- begin_cfg
519
- name "After AllocationStage"
520
- begin_block
521
- name "B0"
522
- from_bci -1
523
- to_bci -1
524
- predecessors
525
- successors
526
- xhandlers
527
- flags
528
- probability 4607182418800017408
529
- begin_IR
530
- LIR
531
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
532
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
533
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
534
- end_IR
535
- end_block
536
- end_cfg
537
- begin_bytecodes
538
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
539
- 3: athrow
540
- 4: astore_0
541
- 5: return
542
- <|@
543
- end_bytecodes
544
- begin_cfg
545
- name "After EdgeMoveOptimizer"
546
- begin_block
547
- name "B0"
548
- from_bci -1
549
- to_bci -1
550
- predecessors
551
- successors
552
- xhandlers
553
- flags
554
- probability 4607182418800017408
555
- begin_IR
556
- LIR
557
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
558
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
559
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
560
- end_IR
561
- end_block
562
- end_cfg
563
- begin_bytecodes
564
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
565
- 3: athrow
566
- 4: astore_0
567
- 5: return
568
- <|@
569
- end_bytecodes
570
- begin_cfg
571
- name "After ControlFlowOptimizer"
572
- begin_block
573
- name "B0"
574
- from_bci -1
575
- to_bci -1
576
- predecessors
577
- successors
578
- xhandlers
579
- flags
580
- probability 4607182418800017408
581
- begin_IR
582
- LIR
583
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
584
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
585
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
586
- end_IR
587
- end_block
588
- end_cfg
589
- begin_bytecodes
590
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
591
- 3: athrow
592
- 4: astore_0
593
- 5: return
594
- <|@
595
- end_bytecodes
596
- begin_cfg
597
- name "After RedundantMoveElimination"
598
- begin_block
599
- name "B0"
600
- from_bci -1
601
- to_bci -1
602
- predecessors
603
- successors
604
- xhandlers
605
- flags
606
- probability 4607182418800017408
607
- begin_IR
608
- LIR
609
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
610
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
611
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
612
- end_IR
613
- end_block
614
- end_cfg
615
- begin_bytecodes
616
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
617
- 3: athrow
618
- 4: astore_0
619
- 5: return
620
- <|@
621
- end_bytecodes
622
- begin_cfg
623
- name "After NullCheckOptimizer"
624
- begin_block
625
- name "B0"
626
- from_bci -1
627
- to_bci -1
628
- predecessors
629
- successors
630
- xhandlers
631
- flags
632
- probability 4607182418800017408
633
- begin_IR
634
- LIR
635
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
636
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
637
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
638
- end_IR
639
- end_block
640
- end_cfg
641
- begin_bytecodes
642
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
643
- 3: athrow
644
- 4: astore_0
645
- 5: return
646
- <|@
647
- end_bytecodes
648
- begin_cfg
649
- name "After StackMoveOptimization"
650
- begin_block
651
- name "B0"
652
- from_bci -1
653
- to_bci -1
654
- predecessors
655
- successors
656
- xhandlers
657
- flags
658
- probability 4607182418800017408
659
- begin_IR
660
- LIR
661
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
662
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
663
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
664
- end_IR
665
- end_block
666
- end_cfg
667
- begin_bytecodes
668
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
669
- 3: athrow
670
- 4: astore_0
671
- 5: return
672
- <|@
673
- end_bytecodes
674
- begin_cfg
675
- name "After PostAllocationOptimizationStage"
676
- begin_block
677
- name "B0"
678
- from_bci -1
679
- to_bci -1
680
- predecessors
681
- successors
682
- xhandlers
683
- flags
684
- probability 4607182418800017408
685
- begin_IR
686
- LIR
687
- nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
688
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <|@ <|@
689
- nr 6 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <|@ <|@
690
- end_IR
691
- end_block
692
- end_cfg
693
- begin_bytecodes
694
- 0: getstatic #57 // RUNTIME_EXCEPTION:java.lang.RuntimeException
695
- 3: athrow
696
- 4: astore_0
697
- 5: return
698
- <|@
699
- end_bytecodes
700
- begin_cfg
701
- name "After code generation"
702
- end_cfg
703
- begin_nmethod
704
- <<<HexCodeFile
705
- Platform AMD64 64 <||@
706
- HexCode 0 0f1f440000850500000000c5f877c3e80000000090e80000000090 <||@
707
- Comment 0 3 <||@
708
- Comment 0 1 <||@
709
- Comment 5 block B0 null <||@
710
- Comment 5 0 [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
711
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <||@
712
- Comment 5 6 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
713
- Comment 5 12 <||@
714
- Comment 15 {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} <||@
715
- Comment 15 4 <||@
716
- Comment 21 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
717
- Comment 21 5 <||@
718
- HexCodeFile>>> <|@
719
- end_nmethod
720
- begin_compilation
721
- name " HotSpotCompilation-126[JavaExamples.exampleThrowCatch()]"
722
- method "HotSpotCompilation-126[JavaExamples.exampleThrowCatch()]"
723
- date 1583364091780
724
- end_compilation
725
- begin_cfg
726
- name "After code installation"
727
- end_cfg
728
- begin_nmethod
729
- <<<HexCodeFile
730
- Platform AMD64 64 <||@
731
- HexCode 112e33ba0 0f1f44000085055b7493fbc5f877c3e86c07ffff90e88606ebff90f4f4f4f4f4 <||@
732
- Comment 0 3 <||@
733
- Comment 0 1 <||@
734
- Comment 5 block B0 null <||@
735
- Comment 5 0 [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
736
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@13d45bc58 slotKind: QWORD <||@
737
- Comment 5 6 RETURN (savedRbp: rbp|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@147e07170 <||@
738
- Comment 5 12 <||@
739
- Comment 15 {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} <||@
740
- Comment 15 4 <||@
741
- Comment 21 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
742
- Comment 21 5 <||@
743
- HexCodeFile>>> <|@
744
- end_nmethod