seafoam 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/.github/probots.yml +2 -0
  3. data/.github/workflows/rubocop.yml +10 -0
  4. data/.github/workflows/specs.yml +19 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +34 -0
  7. data/.ruby-version +1 -0
  8. data/.seafoam/config +1 -0
  9. data/CODE_OF_CONDUCT.md +128 -0
  10. data/CONTRIBUTING.md +5 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE.md +7 -0
  13. data/README.md +298 -0
  14. data/bin/bgv2isabelle +53 -0
  15. data/bin/bgv2json +42 -0
  16. data/bin/seafoam +24 -0
  17. data/docs/annotators.md +43 -0
  18. data/docs/bgv.md +284 -0
  19. data/docs/getting-graphs.md +47 -0
  20. data/examples/Fib.java +24 -0
  21. data/examples/MatMult.java +39 -0
  22. data/examples/fib-java.bgv +0 -0
  23. data/examples/fib-js.bgv +0 -0
  24. data/examples/fib-ruby.bgv +0 -0
  25. data/examples/fib.js +15 -0
  26. data/examples/fib.rb +15 -0
  27. data/examples/identity.bgv +0 -0
  28. data/examples/identity.rb +13 -0
  29. data/examples/java/Irreducible.j +35 -0
  30. data/examples/java/IrreducibleDecompiled.java +21 -0
  31. data/examples/java/JavaExamples.java +418 -0
  32. data/examples/java/exampleArithOperator.bgv +0 -0
  33. data/examples/java/exampleArithOperator.cfg +925 -0
  34. data/examples/java/exampleArrayAllocation.bgv +0 -0
  35. data/examples/java/exampleArrayAllocation.cfg +5268 -0
  36. data/examples/java/exampleArrayRead.bgv +0 -0
  37. data/examples/java/exampleArrayRead.cfg +2263 -0
  38. data/examples/java/exampleArrayWrite.bgv +0 -0
  39. data/examples/java/exampleArrayWrite.cfg +2315 -0
  40. data/examples/java/exampleCatch.bgv +0 -0
  41. data/examples/java/exampleCatch.cfg +4150 -0
  42. data/examples/java/exampleCompareOperator.bgv +0 -0
  43. data/examples/java/exampleCompareOperator.cfg +1109 -0
  44. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  45. data/examples/java/exampleDoubleSynchronized.cfg +26497 -0
  46. data/examples/java/exampleExactArith.bgv +0 -0
  47. data/examples/java/exampleExactArith.cfg +1888 -0
  48. data/examples/java/exampleFieldRead.bgv +0 -0
  49. data/examples/java/exampleFieldRead.cfg +1228 -0
  50. data/examples/java/exampleFieldWrite.bgv +0 -0
  51. data/examples/java/exampleFieldWrite.cfg +1102 -0
  52. data/examples/java/exampleFor.bgv +0 -0
  53. data/examples/java/exampleFor.cfg +3936 -0
  54. data/examples/java/exampleFullEscape.bgv +0 -0
  55. data/examples/java/exampleFullEscape.cfg +5893 -0
  56. data/examples/java/exampleIf.bgv +0 -0
  57. data/examples/java/exampleIf.cfg +2462 -0
  58. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  59. data/examples/java/exampleIfNeverTaken.cfg +2476 -0
  60. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  61. data/examples/java/exampleInstanceOfManyImpls.cfg +6391 -0
  62. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  63. data/examples/java/exampleInstanceOfOneImpl.cfg +2604 -0
  64. data/examples/java/exampleIntSwitch.bgv +0 -0
  65. data/examples/java/exampleIntSwitch.cfg +3121 -0
  66. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  67. data/examples/java/exampleInterfaceCallManyImpls.cfg +1358 -0
  68. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  69. data/examples/java/exampleInterfaceCallOneImpl.cfg +3859 -0
  70. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  71. data/examples/java/exampleLocalInstanceOf.cfg +5276 -0
  72. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  73. data/examples/java/exampleLocalSynchronized.cfg +1364 -0
  74. data/examples/java/exampleLocalVariables.bgv +0 -0
  75. data/examples/java/exampleLocalVariables.cfg +1195 -0
  76. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  77. data/examples/java/exampleLocalVariablesState.cfg +1673 -0
  78. data/examples/java/exampleNestedWhile.bgv +0 -0
  79. data/examples/java/exampleNestedWhile.cfg +15499 -0
  80. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  81. data/examples/java/exampleNestedWhileBreak.cfg +11162 -0
  82. data/examples/java/exampleNoEscape.bgv +0 -0
  83. data/examples/java/exampleNoEscape.cfg +974 -0
  84. data/examples/java/exampleObjectAllocation.bgv +0 -0
  85. data/examples/java/exampleObjectAllocation.cfg +5287 -0
  86. data/examples/java/examplePartialEscape.bgv +0 -0
  87. data/examples/java/examplePartialEscape.cfg +7042 -0
  88. data/examples/java/examplePhi.bgv +0 -0
  89. data/examples/java/examplePhi.cfg +3227 -0
  90. data/examples/java/exampleReducible.bgv +0 -0
  91. data/examples/java/exampleReducible.cfg +5578 -0
  92. data/examples/java/exampleSimpleCall.bgv +0 -0
  93. data/examples/java/exampleSimpleCall.cfg +1435 -0
  94. data/examples/java/exampleStamp.bgv +0 -0
  95. data/examples/java/exampleStamp.cfg +913 -0
  96. data/examples/java/exampleStaticCall.bgv +0 -0
  97. data/examples/java/exampleStaticCall.cfg +1154 -0
  98. data/examples/java/exampleStringSwitch.bgv +0 -0
  99. data/examples/java/exampleStringSwitch.cfg +15377 -0
  100. data/examples/java/exampleSynchronized.bgv +0 -0
  101. data/examples/java/exampleSynchronized.cfg +26027 -0
  102. data/examples/java/exampleThrow.bgv +0 -0
  103. data/examples/java/exampleThrow.cfg +780 -0
  104. data/examples/java/exampleThrowCatch.bgv +0 -0
  105. data/examples/java/exampleThrowCatch.cfg +744 -0
  106. data/examples/java/exampleUnsafeRead.bgv +0 -0
  107. data/examples/java/exampleUnsafeRead.cfg +912 -0
  108. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  109. data/examples/java/exampleUnsafeWrite.cfg +962 -0
  110. data/examples/java/exampleWhile.bgv +0 -0
  111. data/examples/java/exampleWhile.cfg +3936 -0
  112. data/examples/java/exampleWhileBreak.bgv +0 -0
  113. data/examples/java/exampleWhileBreak.cfg +5963 -0
  114. data/examples/matmult-java.bgv +0 -0
  115. data/examples/matmult-ruby.bgv +0 -0
  116. data/examples/matmult.rb +29 -0
  117. data/examples/overflow.bgv +0 -0
  118. data/examples/overflow.rb +13 -0
  119. data/lib/seafoam.rb +13 -0
  120. data/lib/seafoam/annotators.rb +54 -0
  121. data/lib/seafoam/annotators/fallback.rb +27 -0
  122. data/lib/seafoam/annotators/graal.rb +376 -0
  123. data/lib/seafoam/bgv/bgv_parser.rb +602 -0
  124. data/lib/seafoam/binary/binary_reader.rb +21 -0
  125. data/lib/seafoam/binary/io_binary_reader.rb +88 -0
  126. data/lib/seafoam/colors.rb +18 -0
  127. data/lib/seafoam/commands.rb +447 -0
  128. data/lib/seafoam/config.rb +34 -0
  129. data/lib/seafoam/graph.rb +91 -0
  130. data/lib/seafoam/graphviz_writer.rb +213 -0
  131. data/lib/seafoam/spotlight.rb +28 -0
  132. data/lib/seafoam/version.rb +5 -0
  133. data/seafoam.gemspec +20 -0
  134. data/spec/seafoam/annotators/fallback_spec.rb +69 -0
  135. data/spec/seafoam/annotators/graal_spec.rb +96 -0
  136. data/spec/seafoam/annotators_spec.rb +61 -0
  137. data/spec/seafoam/bgv/bgv_parser_spec.rb +144 -0
  138. data/spec/seafoam/bgv/fixtures/not.bgv +1 -0
  139. data/spec/seafoam/bgv/fixtures/unsupported.bgv +1 -0
  140. data/spec/seafoam/binary/io_binary_reader_spec.rb +176 -0
  141. data/spec/seafoam/command_spec.rb +252 -0
  142. data/spec/seafoam/graph_spec.rb +172 -0
  143. data/spec/seafoam/graphviz_writer_spec.rb +63 -0
  144. data/spec/seafoam/spec_helpers.rb +30 -0
  145. data/spec/seafoam/spotlight_spec.rb +38 -0
  146. data/tools/render-all +36 -0
  147. metadata +238 -0
@@ -0,0 +1,4150 @@
1
+ begin_compilation
2
+ name " HotSpotCompilation-358[JavaExamples.exampleCatch()]"
3
+ method "HotSpotCompilation-358[JavaExamples.exampleCatch()]"
4
+ date 1583364092000
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 "B1"
14
+ xhandlers"B2"
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: v6
28
+ === Usages ===
29
+ === Predecessor ===
30
+ - >@ <|@
31
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v6 <|@ <|@
32
+ tid ?76 <|@
33
+ d <@d|@=== Debug Properties ===
34
+ bci: 0
35
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleCatch()>
36
+ duringCall: true
37
+ localsSize: 1
38
+ locksSize: 0
39
+ rethrowException: false
40
+ sourceFile: JavaExamples.java
41
+ sourceLine: 278
42
+ stackSize: 0
43
+ === Inputs ===
44
+ outerFrameState: -
45
+ values: -
46
+ === Succesors ===
47
+ === Usages ===
48
+ v6
49
+ === Predecessor ===
50
+ - >@ <|@
51
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
52
+ tid v26 <|@
53
+ d <@d|@=== Debug Properties ===
54
+ callType: JavaCall
55
+ invokeKind: Static
56
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
57
+ returnStamp: void
58
+ signature: [Ljdk.vm.ci.meta.JavaType;@14800d688
59
+ stamp: void
60
+ targetMethod: HotSpotMethod<JavaExamples.exampleThrow()>
61
+ === Inputs ===
62
+ === Succesors ===
63
+ === Usages ===
64
+ v6
65
+ === Predecessor ===
66
+ - >@ <|@
67
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
68
+ f <@*|@fixed>@ <|@
69
+ tid v6 <|@
70
+ d <@d|@=== Debug Properties ===
71
+ bci: 0
72
+ exceptionProbability: 1.0E-5
73
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
74
+ polymorphic: false
75
+ stamp: void
76
+ targetMethod: Direct#JavaExamples.exampleThrow
77
+ useForInlining: true
78
+ === Inputs ===
79
+ classInit: -
80
+ callTarget: v26
81
+ stateDuring: ?76
82
+ stateAfter: -
83
+ === Succesors ===
84
+ next: v8
85
+ exceptionEdge: v32
86
+ === Usages ===
87
+ === Predecessor ===
88
+ v0 >@ <|@
89
+ instruction <@InvokeWithException|@org.graalvm.compiler.nodes.InvokeWithExceptionNode>@ classInit: - callTarget: v26 stateDuring: ?76 stateAfter: - #next: v8 #exceptionEdge: v32 <|@ <|@
90
+ end_IR
91
+ end_block
92
+ begin_block
93
+ name "B1"
94
+ from_bci -1
95
+ to_bci -1
96
+ predecessors "B0"
97
+ successors
98
+ xhandlers
99
+ flags
100
+ probability 4607182328728024861
101
+ begin_IR
102
+ HIR
103
+ f <@#|@fixed with next>@ <|@
104
+ tid v8 <|@
105
+ d <@d|@=== Debug Properties ===
106
+ locationIdentity: ANY_LOCATION
107
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
108
+ stamp: void
109
+ withSpeculationFence: false
110
+ === Inputs ===
111
+ === Succesors ===
112
+ next: v25
113
+ === Usages ===
114
+ === Predecessor ===
115
+ v6 >@ <|@
116
+ instruction <@KillingBegin|@org.graalvm.compiler.nodes.KillingBeginNode>@ #next: v25 <|@ <|@
117
+ f <@*|@fixed>@ <|@
118
+ tid v25 <|@
119
+ d <@d|@=== Debug Properties ===
120
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:282) [bci: 11]
121
+ stamp: void
122
+ === Inputs ===
123
+ result: -
124
+ memoryMap: -
125
+ === Succesors ===
126
+ === Usages ===
127
+ === Predecessor ===
128
+ v8 >@ <|@
129
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
130
+ end_IR
131
+ end_block
132
+ begin_block
133
+ name "B2"
134
+ from_bci -1
135
+ to_bci -1
136
+ predecessors "B0"
137
+ successors "B3" "B4"
138
+ xhandlers
139
+ flags "ex"
140
+ probability 4532020583610935537
141
+ begin_IR
142
+ HIR
143
+ f <@#|@fixed with next>@ <|@
144
+ tid v32 <|@
145
+ d <@d|@=== Debug Properties ===
146
+ locationIdentity: ANY_LOCATION
147
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
148
+ stamp: void
149
+ withSpeculationFence: false
150
+ === Inputs ===
151
+ === Succesors ===
152
+ next: j34
153
+ === Usages ===
154
+ === Predecessor ===
155
+ v6 >@ <|@
156
+ instruction <@KillingBegin|@org.graalvm.compiler.nodes.KillingBeginNode>@ #next: j34 <|@ <|@
157
+ f <@#|@fixed with next>@ <|@
158
+ tid j34 <|@
159
+ d <@d|@=== Debug Properties ===
160
+ directUse: true
161
+ incoming: false
162
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
163
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
164
+ register: r15
165
+ stamp: i64
166
+ === Inputs ===
167
+ === Succesors ===
168
+ next: a43
169
+ === Usages ===
170
+ v100 v101
171
+ === Predecessor ===
172
+ v32 >@ <|@
173
+ instruction <@ReadRegister|@org.graalvm.compiler.replacements.nodes.ReadRegisterNode>@ #next: a43 <|@ <|@
174
+ f <@~|@floating>@ <|@
175
+ tid v100 <|@
176
+ d <@d|@=== Debug Properties ===
177
+ displacement: 704
178
+ scale: Times1
179
+ stamp: void*
180
+ === Inputs ===
181
+ base: j34
182
+ index: -
183
+ === Succesors ===
184
+ === Usages ===
185
+ a43 v44
186
+ === Predecessor ===
187
+ - >@ <|@
188
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j34 index: - <|@ <|@
189
+ f <@#|@fixed with next>@ <|@
190
+ tid a43 <|@
191
+ d <@d|@=== Debug Properties ===
192
+ barrierType: NONE
193
+ forceFixed: true
194
+ location: ExceptionOop
195
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
196
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
197
+ nullCheck: false
198
+ stamp: a! Ljava/lang/Throwable;
199
+ === Inputs ===
200
+ stateBefore: -
201
+ guard: -
202
+ address: v100
203
+ lastLocationAccess: -
204
+ === Succesors ===
205
+ next: v44
206
+ === Usages ===
207
+ v103 v23 a28
208
+ === Predecessor ===
209
+ j34 >@ <|@
210
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v100 lastLocationAccess: - #next: v44 <|@ <|@
211
+ f <@~|@floating>@ <|@
212
+ tid a35 <|@
213
+ d <@d|@=== Debug Properties ===
214
+ isDefaultStable: false
215
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
216
+ rawvalue: null
217
+ stableDimension: 0
218
+ stamp: a - NULL
219
+ stampKind: a -
220
+ value: Object[null]
221
+ === Inputs ===
222
+ === Succesors ===
223
+ === Usages ===
224
+ v44
225
+ === Predecessor ===
226
+ - >@ <|@
227
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
228
+ f <@#|@fixed with next>@ <|@
229
+ tid v44 <|@
230
+ d <@d|@=== Debug Properties ===
231
+ barrierType: NONE
232
+ location: ExceptionOop
233
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
234
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
235
+ nullCheck: false
236
+ stamp: void
237
+ volatileAccess: false
238
+ === Inputs ===
239
+ stateBefore: -
240
+ guard: -
241
+ address: v100
242
+ value: a35
243
+ stateAfter: -
244
+ lastLocationAccess: -
245
+ === Succesors ===
246
+ next: v45
247
+ === Usages ===
248
+ === Predecessor ===
249
+ a43 >@ <|@
250
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v100 value: a35 stateAfter: - lastLocationAccess: - #next: v45 <|@ <|@
251
+ f <@~|@floating>@ <|@
252
+ tid v101 <|@
253
+ d <@d|@=== Debug Properties ===
254
+ displacement: 712
255
+ scale: Times1
256
+ stamp: void*
257
+ === Inputs ===
258
+ base: j34
259
+ index: -
260
+ === Succesors ===
261
+ === Usages ===
262
+ v45
263
+ === Predecessor ===
264
+ - >@ <|@
265
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j34 index: - <|@ <|@
266
+ f <@~|@floating>@ <|@
267
+ tid j40 <|@
268
+ d <@d|@=== Debug Properties ===
269
+ isDefaultStable: false
270
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
271
+ rawvalue: 0
272
+ stableDimension: 0
273
+ stamp: i64 [0] ⇈0000000000000000
274
+ stampKind: i64
275
+ value: long[0|0x0]
276
+ === Inputs ===
277
+ === Succesors ===
278
+ === Usages ===
279
+ v45
280
+ === Predecessor ===
281
+ - >@ <|@
282
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
283
+ f <@#|@fixed with next>@ <|@
284
+ tid v45 <|@
285
+ d <@d|@=== Debug Properties ===
286
+ barrierType: NONE
287
+ location: ExceptionPc
288
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
289
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
290
+ nullCheck: false
291
+ stamp: void
292
+ volatileAccess: false
293
+ === Inputs ===
294
+ stateBefore: -
295
+ guard: -
296
+ address: v101
297
+ value: j40
298
+ stateAfter: -
299
+ lastLocationAccess: -
300
+ === Succesors ===
301
+ next: v97
302
+ === Usages ===
303
+ === Predecessor ===
304
+ v44 >@ <|@
305
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v101 value: j40 stateAfter: - lastLocationAccess: - #next: v97 <|@ <|@
306
+ f <@~|@floating>@ <|@
307
+ tid v103 <|@
308
+ d <@d|@=== Debug Properties ===
309
+ displacement: 8
310
+ scale: Times1
311
+ stamp: void*
312
+ === Inputs ===
313
+ base: a43
314
+ index: -
315
+ === Succesors ===
316
+ === Usages ===
317
+ v97
318
+ === Predecessor ===
319
+ - >@ <|@
320
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a43 index: - <|@ <|@
321
+ f <@#|@fixed with next>@ <|@
322
+ tid v97 <|@
323
+ d <@d|@=== Debug Properties ===
324
+ barrierType: NONE
325
+ forceFixed: false
326
+ location: CompressedHub:final
327
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
328
+ nullCheck: false
329
+ stamp: Klass*!(compressed base: 0 shift: 3)
330
+ === Inputs ===
331
+ stateBefore: -
332
+ guard: -
333
+ address: v103
334
+ lastLocationAccess: -
335
+ === Succesors ===
336
+ next: v98
337
+ === Usages ===
338
+ v102
339
+ === Predecessor ===
340
+ v45 >@ <|@
341
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v103 lastLocationAccess: - #next: v98 <|@ <|@
342
+ f <@~|@floating>@ <|@
343
+ tid v102 <|@
344
+ d <@d|@=== Debug Properties ===
345
+ displacement: 64
346
+ scale: Times8
347
+ stamp: void*
348
+ === Inputs ===
349
+ base: -
350
+ index: v97
351
+ === Succesors ===
352
+ === Usages ===
353
+ v98
354
+ === Predecessor ===
355
+ - >@ <|@
356
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: - index: v97 <|@ <|@
357
+ f <@#|@fixed with next>@ <|@
358
+ tid v98 <|@
359
+ d <@d|@=== Debug Properties ===
360
+ barrierType: NONE
361
+ forceFixed: false
362
+ location: PrimarySupers:final
363
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.InstanceOfSnippets.instanceofPrimary(InstanceOfSnippets.java:154) [bci: 0]
364
+ at JavaExamples.exampleCatch() [bci: -4]
365
+ nullCheck: false
366
+ stamp: Klass*
367
+ === Inputs ===
368
+ stateBefore: -
369
+ guard: -
370
+ address: v102
371
+ lastLocationAccess: -
372
+ === Succesors ===
373
+ next: v14
374
+ === Usages ===
375
+ v60
376
+ === Predecessor ===
377
+ v97 >@ <|@
378
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v102 lastLocationAccess: - #next: v14 <|@ <|@
379
+ f <@~|@floating>@ <|@
380
+ tid v50 <|@
381
+ d <@d|@=== Debug Properties ===
382
+ isDefaultStable: false
383
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
384
+ rawvalue: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}
385
+ stableDimension: 0
386
+ stamp: Klass*!
387
+ stampKind: Klass*
388
+ value: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}
389
+ === Inputs ===
390
+ === Succesors ===
391
+ === Usages ===
392
+ v60
393
+ === Predecessor ===
394
+ - >@ <|@
395
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
396
+ f <@~|@floating>@ <|@
397
+ tid v60 <|@
398
+ d <@d|@=== Debug Properties ===
399
+ condition: EQ
400
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
401
+ stamp: void
402
+ unorderedIsTrue: false
403
+ === Inputs ===
404
+ x: v98
405
+ y: v50
406
+ === Succesors ===
407
+ === Usages ===
408
+ v14
409
+ === Predecessor ===
410
+ - >@ <|@
411
+ instruction <@==|@org.graalvm.compiler.nodes.calc.PointerEqualsNode>@ x: v98 y: v50 <|@ <|@
412
+ f <@*|@fixed>@ <|@
413
+ tid v14 <|@
414
+ d <@d|@=== Debug Properties ===
415
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
416
+ stamp: void
417
+ trueSuccessorProbability: 0.5
418
+ === Inputs ===
419
+ condition: v60
420
+ === Succesors ===
421
+ trueSuccessor: v9
422
+ falseSuccessor: v12
423
+ === Usages ===
424
+ === Predecessor ===
425
+ v98 >@ <|@
426
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v60 #trueSuccessor: v9 #falseSuccessor: v12 <|@ <|@
427
+ end_IR
428
+ end_block
429
+ begin_block
430
+ name "B3"
431
+ from_bci -1
432
+ to_bci -1
433
+ predecessors "B2"
434
+ successors
435
+ xhandlers
436
+ flags
437
+ probability 4527516983983565041
438
+ begin_IR
439
+ HIR
440
+ f <@#|@fixed with next>@ <|@
441
+ tid v9 <|@
442
+ d <@d|@=== Debug Properties ===
443
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
444
+ stamp: void
445
+ withSpeculationFence: false
446
+ === Inputs ===
447
+ === Succesors ===
448
+ next: v105
449
+ === Usages ===
450
+ === Predecessor ===
451
+ v14 >@ <|@
452
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v105 <|@ <|@
453
+ f <@#|@fixed with next>@ <|@
454
+ tid v105 <|@
455
+ d <@d|@=== Debug Properties ===
456
+ barriers: 10
457
+ location: ANY_LOCATION
458
+ stamp: void
459
+ === Inputs ===
460
+ === Succesors ===
461
+ next: v31
462
+ === Usages ===
463
+ === Predecessor ===
464
+ v9 >@ <|@
465
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v31 <|@ <|@
466
+ f <@~|@floating>@ <|@
467
+ tid a27 <|@
468
+ d <@d|@=== Debug Properties ===
469
+ isDefaultStable: false
470
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
471
+ rawvalue: Instance<java.lang.Class>
472
+ stableDimension: 0
473
+ stamp: a!# Ljava/lang/Class;
474
+ stampKind: a -
475
+ value: Object[Instance<java.lang.Class>]
476
+ === Inputs ===
477
+ === Succesors ===
478
+ === Usages ===
479
+ v99 j82
480
+ === Predecessor ===
481
+ - >@ <|@
482
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
483
+ f <@~|@floating>@ <|@
484
+ tid v99 <|@
485
+ d <@d|@=== Debug Properties ===
486
+ displacement: 116
487
+ scale: Times1
488
+ stamp: void*
489
+ === Inputs ===
490
+ base: a27
491
+ index: -
492
+ === Succesors ===
493
+ === Usages ===
494
+ v31
495
+ === Predecessor ===
496
+ - >@ <|@
497
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a27 index: - <|@ <|@
498
+ f <@~|@floating>@ <|@
499
+ tid a28 <|@
500
+ d <@d|@=== Debug Properties ===
501
+ encoding: base: 0 shift: 3
502
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
503
+ op: Compress
504
+ stamp: n! Ljava/lang/Throwable;
505
+ === Inputs ===
506
+ value: a43
507
+ === Succesors ===
508
+ === Usages ===
509
+ v31
510
+ === Predecessor ===
511
+ - >@ <|@
512
+ instruction <@HotSpotCompression|@org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode>@ value: a43 <|@ <|@
513
+ f <@#|@fixed with next>@ <|@
514
+ tid v31 <|@
515
+ d <@d|@=== Debug Properties ===
516
+ barrierType: FIELD
517
+ location: JavaExamples.objectField
518
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
519
+ nullCheck: false
520
+ stamp: void
521
+ volatileAccess: true
522
+ === Inputs ===
523
+ stateBefore: -
524
+ guard: -
525
+ address: v99
526
+ value: a28
527
+ stateAfter: -
528
+ lastLocationAccess: -
529
+ === Succesors ===
530
+ next: v106
531
+ === Usages ===
532
+ === Predecessor ===
533
+ v105 >@ <|@
534
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v99 value: a28 stateAfter: - lastLocationAccess: - #next: v106 <|@ <|@
535
+ f <@#|@fixed with next>@ <|@
536
+ tid v106 <|@
537
+ d <@d|@=== Debug Properties ===
538
+ barriers: 12
539
+ location: ANY_LOCATION
540
+ stamp: void
541
+ === Inputs ===
542
+ === Succesors ===
543
+ next: j82
544
+ === Usages ===
545
+ === Predecessor ===
546
+ v31 >@ <|@
547
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: j82 <|@ <|@
548
+ f <@#|@fixed with next>@ <|@
549
+ tid j82 <|@
550
+ d <@d|@=== Debug Properties ===
551
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
552
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
553
+ stamp: i64
554
+ trackedPointer: true
555
+ === Inputs ===
556
+ input: a27
557
+ === Succesors ===
558
+ next: v89
559
+ === Usages ===
560
+ j85
561
+ === Predecessor ===
562
+ v106 >@ <|@
563
+ instruction <@WordCast|@org.graalvm.compiler.word.WordCastNode>@ input: a27 #next: v89 <|@ <|@
564
+ f <@~|@floating>@ <|@
565
+ tid i84 <|@
566
+ d <@d|@=== Debug Properties ===
567
+ isDefaultStable: false
568
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
569
+ rawvalue: 9
570
+ stableDimension: 0
571
+ stamp: i32 [9] ⇊0000000000000009 ⇈0000000000000009
572
+ stampKind: i32
573
+ value: int[9|0x9]
574
+ === Inputs ===
575
+ === Succesors ===
576
+ === Usages ===
577
+ j85
578
+ === Predecessor ===
579
+ - >@ <|@
580
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
581
+ f <@~|@floating>@ <|@
582
+ tid j85 <|@
583
+ d <@d|@=== Debug Properties ===
584
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
585
+ stamp: i64 [0 - 36028797018963967] ⇈007fffffffffffff
586
+ === Inputs ===
587
+ x: j82
588
+ y: i84
589
+ === Succesors ===
590
+ === Usages ===
591
+ v104
592
+ === Predecessor ===
593
+ - >@ <|@
594
+ instruction <@>>>|@org.graalvm.compiler.nodes.calc.UnsignedRightShiftNode>@ x: j82 y: i84 <|@ <|@
595
+ f <@~|@floating>@ <|@
596
+ tid j93 <|@
597
+ d <@d|@=== Debug Properties ===
598
+ isDefaultStable: false
599
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
600
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
601
+ rawvalue: 4531113984
602
+ stableDimension: 0
603
+ stamp: i64 [4531113984] ⇊000000010e135000 ⇈000000010e135000
604
+ stampKind: i64
605
+ value: long[4531113984|0x10e135000]
606
+ === Inputs ===
607
+ === Succesors ===
608
+ === Usages ===
609
+ v104
610
+ === Predecessor ===
611
+ - >@ <|@
612
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
613
+ f <@~|@floating>@ <|@
614
+ tid v104 <|@
615
+ d <@d|@=== Debug Properties ===
616
+ displacement: 0
617
+ scale: Times1
618
+ stamp: void*
619
+ === Inputs ===
620
+ base: j85
621
+ index: j93
622
+ === Succesors ===
623
+ === Usages ===
624
+ v89
625
+ === Predecessor ===
626
+ - >@ <|@
627
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j85 index: j93 <|@ <|@
628
+ f <@~|@floating>@ <|@
629
+ tid i90 <|@
630
+ d <@d|@=== Debug Properties ===
631
+ isDefaultStable: false
632
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
633
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
634
+ rawvalue: 0
635
+ stableDimension: 0
636
+ stamp: i8 [0] ⇈0000000000000000
637
+ stampKind: i8
638
+ value: byte[0|0x0]
639
+ === Inputs ===
640
+ === Succesors ===
641
+ === Usages ===
642
+ v89
643
+ === Predecessor ===
644
+ - >@ <|@
645
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
646
+ f <@#|@fixed with next>@ <|@
647
+ tid v89 <|@
648
+ d <@d|@=== Debug Properties ===
649
+ barrierType: NONE
650
+ location: GC-Card
651
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
652
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
653
+ nullCheck: false
654
+ stamp: void
655
+ volatileAccess: false
656
+ === Inputs ===
657
+ stateBefore: -
658
+ guard: -
659
+ address: v104
660
+ value: i90
661
+ stateAfter: -
662
+ lastLocationAccess: -
663
+ === Succesors ===
664
+ next: v24
665
+ === Usages ===
666
+ === Predecessor ===
667
+ j82 >@ <|@
668
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v104 value: i90 stateAfter: - lastLocationAccess: - #next: v24 <|@ <|@
669
+ f <@*|@fixed>@ <|@
670
+ tid v24 <|@
671
+ d <@d|@=== Debug Properties ===
672
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:282) [bci: 11]
673
+ stamp: void
674
+ === Inputs ===
675
+ result: -
676
+ memoryMap: -
677
+ === Succesors ===
678
+ === Usages ===
679
+ === Predecessor ===
680
+ v89 >@ <|@
681
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
682
+ end_IR
683
+ end_block
684
+ begin_block
685
+ name "B4"
686
+ from_bci -1
687
+ to_bci -1
688
+ predecessors "B2"
689
+ successors
690
+ xhandlers
691
+ flags
692
+ probability 4527516983983565041
693
+ begin_IR
694
+ HIR
695
+ f <@#|@fixed with next>@ <|@
696
+ tid v12 <|@
697
+ d <@d|@=== Debug Properties ===
698
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
699
+ stamp: void
700
+ withSpeculationFence: false
701
+ === Inputs ===
702
+ === Succesors ===
703
+ next: v23
704
+ === Usages ===
705
+ === Predecessor ===
706
+ v14 >@ <|@
707
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v23 <|@ <|@
708
+ f <@*|@fixed>@ <|@
709
+ tid v23 <|@
710
+ d <@d|@=== Debug Properties ===
711
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -1]
712
+ stamp: void
713
+ === Inputs ===
714
+ exception: a43
715
+ === Succesors ===
716
+ === Usages ===
717
+ === Predecessor ===
718
+ v12 >@ <|@
719
+ instruction <@Unwind|@org.graalvm.compiler.nodes.UnwindNode>@ exception: a43 <|@ <|@
720
+ end_IR
721
+ end_block
722
+ end_cfg
723
+ begin_cfg
724
+ name "After LIRGeneration"
725
+ begin_block
726
+ name "B0"
727
+ from_bci -1
728
+ to_bci -1
729
+ predecessors
730
+ successors "B1"
731
+ xhandlers"B2"
732
+ flags
733
+ probability 4607182418800017408
734
+ begin_IR
735
+ LIR
736
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
737
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
738
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
739
+ nr -1 <|@ st <@st|@JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
740
+ locals: -
741
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
742
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
743
+ end_IR
744
+ end_block
745
+ begin_block
746
+ name "B1"
747
+ from_bci -1
748
+ to_bci -1
749
+ predecessors "B0"
750
+ successors
751
+ xhandlers
752
+ flags
753
+ probability 4607182328728024861
754
+ begin_IR
755
+ LIR
756
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
757
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
758
+ end_IR
759
+ end_block
760
+ begin_block
761
+ name "B2"
762
+ from_bci -1
763
+ to_bci -1
764
+ predecessors "B0"
765
+ successors "B3" "B4"
766
+ xhandlers
767
+ flags "ex"
768
+ probability 4532020583610935537
769
+ begin_IR
770
+ LIR
771
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
772
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
773
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
774
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
775
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
776
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
777
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
778
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
779
+ end_IR
780
+ end_block
781
+ begin_block
782
+ name "B4"
783
+ from_bci -1
784
+ to_bci -1
785
+ predecessors "B2"
786
+ successors
787
+ xhandlers
788
+ flags
789
+ probability 4527516983983565041
790
+ begin_IR
791
+ LIR
792
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
793
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
794
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
795
+ end_IR
796
+ end_block
797
+ begin_block
798
+ name "B3"
799
+ from_bci -1
800
+ to_bci -1
801
+ predecessors "B2"
802
+ successors
803
+ xhandlers
804
+ flags
805
+ probability 4527516983983565041
806
+ begin_IR
807
+ LIR
808
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
809
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
810
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
811
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
812
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
813
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
814
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
815
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
816
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
817
+ end_IR
818
+ end_block
819
+ end_cfg
820
+ begin_bytecodes
821
+ 0: invokestatic #30 // exampleThrow:()void
822
+ 3: goto 11
823
+ 6: astore_0
824
+ 7: aload_0
825
+ 8: putstatic #53 // objectField:java.lang.Object
826
+ 11: return
827
+ <|@
828
+ end_bytecodes
829
+ begin_cfg
830
+ name "After LIR generation"
831
+ begin_block
832
+ name "B0"
833
+ from_bci -1
834
+ to_bci -1
835
+ predecessors
836
+ successors "B1"
837
+ xhandlers"B2"
838
+ flags
839
+ probability 4607182418800017408
840
+ begin_IR
841
+ HIR
842
+ f <@#|@fixed with next>@ <|@
843
+ tid v0 <|@
844
+ d <@d|@=== Debug Properties ===
845
+ stamp: void
846
+ withSpeculationFence: false
847
+ === Inputs ===
848
+ stateAfter: -
849
+ === Succesors ===
850
+ next: v6
851
+ === Usages ===
852
+ === Predecessor ===
853
+ - >@ <|@
854
+ instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v6 <|@ <|@
855
+ tid ?76 <|@
856
+ d <@d|@=== Debug Properties ===
857
+ bci: 0
858
+ code: ResolvedJavaMethodBytecode<JavaExamples.exampleCatch()>
859
+ duringCall: true
860
+ localsSize: 1
861
+ locksSize: 0
862
+ rethrowException: false
863
+ sourceFile: JavaExamples.java
864
+ sourceLine: 278
865
+ stackSize: 0
866
+ === Inputs ===
867
+ outerFrameState: -
868
+ values: -
869
+ === Succesors ===
870
+ === Usages ===
871
+ v6
872
+ === Predecessor ===
873
+ - >@ <|@
874
+ instruction <@FrameState|@org.graalvm.compiler.nodes.FrameState>@ outerFrameState: - values: - <|@ <|@
875
+ tid v26 <|@
876
+ d <@d|@=== Debug Properties ===
877
+ callType: JavaCall
878
+ invokeKind: Static
879
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
880
+ returnStamp: void
881
+ signature: [Ljdk.vm.ci.meta.JavaType;@14800d688
882
+ stamp: void
883
+ targetMethod: HotSpotMethod<JavaExamples.exampleThrow()>
884
+ === Inputs ===
885
+ === Succesors ===
886
+ === Usages ===
887
+ v6
888
+ === Predecessor ===
889
+ - >@ <|@
890
+ instruction <@HotSpotDirectCallTarget|@org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode>@ <|@ <|@
891
+ f <@*|@fixed>@ <|@
892
+ tid v6 <|@
893
+ d <@d|@=== Debug Properties ===
894
+ bci: 0
895
+ exceptionProbability: 1.0E-5
896
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
897
+ polymorphic: false
898
+ stamp: void
899
+ targetMethod: Direct#JavaExamples.exampleThrow
900
+ useForInlining: true
901
+ === Inputs ===
902
+ classInit: -
903
+ callTarget: v26
904
+ stateDuring: ?76
905
+ stateAfter: -
906
+ === Succesors ===
907
+ next: v8
908
+ exceptionEdge: v32
909
+ === Usages ===
910
+ === Predecessor ===
911
+ v0 >@ <|@
912
+ instruction <@InvokeWithException|@org.graalvm.compiler.nodes.InvokeWithExceptionNode>@ classInit: - callTarget: v26 stateDuring: ?76 stateAfter: - #next: v8 #exceptionEdge: v32 <|@ <|@
913
+ end_IR
914
+ begin_IR
915
+ LIR
916
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
917
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
918
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
919
+ nr -1 <|@ st <@st|@JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
920
+ locals: -
921
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
922
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
923
+ end_IR
924
+ end_block
925
+ begin_block
926
+ name "B1"
927
+ from_bci -1
928
+ to_bci -1
929
+ predecessors "B0"
930
+ successors
931
+ xhandlers
932
+ flags
933
+ probability 4607182328728024861
934
+ begin_IR
935
+ HIR
936
+ f <@#|@fixed with next>@ <|@
937
+ tid v8 <|@
938
+ d <@d|@=== Debug Properties ===
939
+ locationIdentity: ANY_LOCATION
940
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
941
+ stamp: void
942
+ withSpeculationFence: false
943
+ === Inputs ===
944
+ === Succesors ===
945
+ next: v25
946
+ === Usages ===
947
+ === Predecessor ===
948
+ v6 >@ <|@
949
+ instruction <@KillingBegin|@org.graalvm.compiler.nodes.KillingBeginNode>@ #next: v25 <|@ <|@
950
+ f <@*|@fixed>@ <|@
951
+ tid v25 <|@
952
+ d <@d|@=== Debug Properties ===
953
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:282) [bci: 11]
954
+ stamp: void
955
+ === Inputs ===
956
+ result: -
957
+ memoryMap: -
958
+ === Succesors ===
959
+ === Usages ===
960
+ === Predecessor ===
961
+ v8 >@ <|@
962
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
963
+ end_IR
964
+ begin_IR
965
+ LIR
966
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
967
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
968
+ end_IR
969
+ end_block
970
+ begin_block
971
+ name "B2"
972
+ from_bci -1
973
+ to_bci -1
974
+ predecessors "B0"
975
+ successors "B3" "B4"
976
+ xhandlers
977
+ flags "ex"
978
+ probability 4532020583610935537
979
+ begin_IR
980
+ HIR
981
+ f <@#|@fixed with next>@ <|@
982
+ tid v32 <|@
983
+ d <@d|@=== Debug Properties ===
984
+ locationIdentity: ANY_LOCATION
985
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
986
+ stamp: void
987
+ withSpeculationFence: false
988
+ === Inputs ===
989
+ === Succesors ===
990
+ next: j34
991
+ === Usages ===
992
+ === Predecessor ===
993
+ v6 >@ <|@
994
+ instruction <@KillingBegin|@org.graalvm.compiler.nodes.KillingBeginNode>@ #next: j34 <|@ <|@
995
+ f <@#|@fixed with next>@ <|@
996
+ tid j34 <|@
997
+ result r15|QWORD <|@
998
+ d <@d|@=== Debug Properties ===
999
+ directUse: true
1000
+ incoming: false
1001
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
1002
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1003
+ register: r15
1004
+ stamp: i64
1005
+ === Inputs ===
1006
+ === Succesors ===
1007
+ next: a43
1008
+ === Usages ===
1009
+ v100 v101
1010
+ === Predecessor ===
1011
+ v32 >@ <|@
1012
+ instruction <@ReadRegister|@org.graalvm.compiler.replacements.nodes.ReadRegisterNode>@ #next: a43 <|@ <|@
1013
+ f <@~|@floating>@ <|@
1014
+ tid v100 <|@
1015
+ result [r15|QWORD + 704] <|@
1016
+ d <@d|@=== Debug Properties ===
1017
+ displacement: 704
1018
+ scale: Times1
1019
+ stamp: void*
1020
+ === Inputs ===
1021
+ base: j34
1022
+ index: -
1023
+ === Succesors ===
1024
+ === Usages ===
1025
+ a43 v44
1026
+ === Predecessor ===
1027
+ - >@ <|@
1028
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j34 index: - <|@ <|@
1029
+ f <@#|@fixed with next>@ <|@
1030
+ tid a43 <|@
1031
+ result v0|QWORD[.] <|@
1032
+ d <@d|@=== Debug Properties ===
1033
+ barrierType: NONE
1034
+ forceFixed: true
1035
+ location: ExceptionOop
1036
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
1037
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1038
+ nullCheck: false
1039
+ stamp: a! Ljava/lang/Throwable;
1040
+ === Inputs ===
1041
+ stateBefore: -
1042
+ guard: -
1043
+ address: v100
1044
+ lastLocationAccess: -
1045
+ === Succesors ===
1046
+ next: v44
1047
+ === Usages ===
1048
+ v103 v23 a28
1049
+ === Predecessor ===
1050
+ j34 >@ <|@
1051
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v100 lastLocationAccess: - #next: v44 <|@ <|@
1052
+ f <@~|@floating>@ <|@
1053
+ tid a35 <|@
1054
+ result Object[null] <|@
1055
+ d <@d|@=== Debug Properties ===
1056
+ isDefaultStable: false
1057
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1058
+ rawvalue: null
1059
+ stableDimension: 0
1060
+ stamp: a - NULL
1061
+ stampKind: a -
1062
+ value: Object[null]
1063
+ === Inputs ===
1064
+ === Succesors ===
1065
+ === Usages ===
1066
+ v44
1067
+ === Predecessor ===
1068
+ - >@ <|@
1069
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1070
+ f <@#|@fixed with next>@ <|@
1071
+ tid v44 <|@
1072
+ d <@d|@=== Debug Properties ===
1073
+ barrierType: NONE
1074
+ location: ExceptionOop
1075
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
1076
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1077
+ nullCheck: false
1078
+ stamp: void
1079
+ volatileAccess: false
1080
+ === Inputs ===
1081
+ stateBefore: -
1082
+ guard: -
1083
+ address: v100
1084
+ value: a35
1085
+ stateAfter: -
1086
+ lastLocationAccess: -
1087
+ === Succesors ===
1088
+ next: v45
1089
+ === Usages ===
1090
+ === Predecessor ===
1091
+ a43 >@ <|@
1092
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v100 value: a35 stateAfter: - lastLocationAccess: - #next: v45 <|@ <|@
1093
+ f <@~|@floating>@ <|@
1094
+ tid v101 <|@
1095
+ result [r15|QWORD + 712] <|@
1096
+ d <@d|@=== Debug Properties ===
1097
+ displacement: 712
1098
+ scale: Times1
1099
+ stamp: void*
1100
+ === Inputs ===
1101
+ base: j34
1102
+ index: -
1103
+ === Succesors ===
1104
+ === Usages ===
1105
+ v45
1106
+ === Predecessor ===
1107
+ - >@ <|@
1108
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j34 index: - <|@ <|@
1109
+ f <@~|@floating>@ <|@
1110
+ tid j40 <|@
1111
+ result long[0|0x0] <|@
1112
+ d <@d|@=== Debug Properties ===
1113
+ isDefaultStable: false
1114
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1115
+ rawvalue: 0
1116
+ stableDimension: 0
1117
+ stamp: i64 [0] ⇈0000000000000000
1118
+ stampKind: i64
1119
+ value: long[0|0x0]
1120
+ === Inputs ===
1121
+ === Succesors ===
1122
+ === Usages ===
1123
+ v45
1124
+ === Predecessor ===
1125
+ - >@ <|@
1126
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1127
+ f <@#|@fixed with next>@ <|@
1128
+ tid v45 <|@
1129
+ d <@d|@=== Debug Properties ===
1130
+ barrierType: NONE
1131
+ location: ExceptionPc
1132
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.LoadExceptionObjectSnippets.loadException(LoadExceptionObjectSnippets.java:76) [bci: 0]
1133
+ at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1134
+ nullCheck: false
1135
+ stamp: void
1136
+ volatileAccess: false
1137
+ === Inputs ===
1138
+ stateBefore: -
1139
+ guard: -
1140
+ address: v101
1141
+ value: j40
1142
+ stateAfter: -
1143
+ lastLocationAccess: -
1144
+ === Succesors ===
1145
+ next: v97
1146
+ === Usages ===
1147
+ === Predecessor ===
1148
+ v44 >@ <|@
1149
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v101 value: j40 stateAfter: - lastLocationAccess: - #next: v97 <|@ <|@
1150
+ f <@~|@floating>@ <|@
1151
+ tid v103 <|@
1152
+ result [v0|QWORD[.] + 8] <|@
1153
+ d <@d|@=== Debug Properties ===
1154
+ displacement: 8
1155
+ scale: Times1
1156
+ stamp: void*
1157
+ === Inputs ===
1158
+ base: a43
1159
+ index: -
1160
+ === Succesors ===
1161
+ === Usages ===
1162
+ v97
1163
+ === Predecessor ===
1164
+ - >@ <|@
1165
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a43 index: - <|@ <|@
1166
+ f <@#|@fixed with next>@ <|@
1167
+ tid v97 <|@
1168
+ result v1|DWORD <|@
1169
+ d <@d|@=== Debug Properties ===
1170
+ barrierType: NONE
1171
+ forceFixed: false
1172
+ location: CompressedHub:final
1173
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1174
+ nullCheck: false
1175
+ stamp: Klass*!(compressed base: 0 shift: 3)
1176
+ === Inputs ===
1177
+ stateBefore: -
1178
+ guard: -
1179
+ address: v103
1180
+ lastLocationAccess: -
1181
+ === Succesors ===
1182
+ next: v98
1183
+ === Usages ===
1184
+ v102
1185
+ === Predecessor ===
1186
+ v45 >@ <|@
1187
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v103 lastLocationAccess: - #next: v98 <|@ <|@
1188
+ f <@~|@floating>@ <|@
1189
+ tid v102 <|@
1190
+ result [v1|DWORD * 8 + 64] <|@
1191
+ d <@d|@=== Debug Properties ===
1192
+ displacement: 64
1193
+ scale: Times8
1194
+ stamp: void*
1195
+ === Inputs ===
1196
+ base: -
1197
+ index: v97
1198
+ === Succesors ===
1199
+ === Usages ===
1200
+ v98
1201
+ === Predecessor ===
1202
+ - >@ <|@
1203
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: - index: v97 <|@ <|@
1204
+ f <@#|@fixed with next>@ <|@
1205
+ tid v98 <|@
1206
+ result INTERIOR_MATCH <|@
1207
+ d <@d|@=== Debug Properties ===
1208
+ barrierType: NONE
1209
+ forceFixed: false
1210
+ location: PrimarySupers:final
1211
+ nodeSourcePosition: at org.graalvm.compiler.hotspot.replacements.InstanceOfSnippets.instanceofPrimary(InstanceOfSnippets.java:154) [bci: 0]
1212
+ at JavaExamples.exampleCatch() [bci: -4]
1213
+ nullCheck: false
1214
+ stamp: Klass*
1215
+ === Inputs ===
1216
+ stateBefore: -
1217
+ guard: -
1218
+ address: v102
1219
+ lastLocationAccess: -
1220
+ === Succesors ===
1221
+ next: v14
1222
+ === Usages ===
1223
+ v60
1224
+ === Predecessor ===
1225
+ v97 >@ <|@
1226
+ instruction <@Read|@org.graalvm.compiler.nodes.memory.ReadNode>@ stateBefore: - guard: - address: v102 lastLocationAccess: - #next: v14 <|@ <|@
1227
+ f <@~|@floating>@ <|@
1228
+ tid v50 <|@
1229
+ result v2|QWORD <|@
1230
+ d <@d|@=== Debug Properties ===
1231
+ isDefaultStable: false
1232
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1233
+ rawvalue: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}
1234
+ stableDimension: 0
1235
+ stamp: Klass*!
1236
+ stampKind: Klass*
1237
+ value: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}
1238
+ === Inputs ===
1239
+ === Succesors ===
1240
+ === Usages ===
1241
+ v60
1242
+ === Predecessor ===
1243
+ - >@ <|@
1244
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1245
+ f <@~|@floating>@ <|@
1246
+ tid v60 <|@
1247
+ result INTERIOR_MATCH <|@
1248
+ d <@d|@=== Debug Properties ===
1249
+ condition: EQ
1250
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1251
+ stamp: void
1252
+ unorderedIsTrue: false
1253
+ === Inputs ===
1254
+ x: v98
1255
+ y: v50
1256
+ === Succesors ===
1257
+ === Usages ===
1258
+ v14
1259
+ === Predecessor ===
1260
+ - >@ <|@
1261
+ instruction <@==|@org.graalvm.compiler.nodes.calc.PointerEqualsNode>@ x: v98 y: v50 <|@ <|@
1262
+ f <@*|@fixed>@ <|@
1263
+ tid v14 <|@
1264
+ result org.graalvm.compiler.core.match.ComplexMatchValue@138c68718 <|@
1265
+ d <@d|@=== Debug Properties ===
1266
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1267
+ stamp: void
1268
+ trueSuccessorProbability: 0.5
1269
+ === Inputs ===
1270
+ condition: v60
1271
+ === Succesors ===
1272
+ trueSuccessor: v9
1273
+ falseSuccessor: v12
1274
+ === Usages ===
1275
+ === Predecessor ===
1276
+ v98 >@ <|@
1277
+ instruction <@If|@org.graalvm.compiler.nodes.IfNode>@ condition: v60 #trueSuccessor: v9 #falseSuccessor: v12 <|@ <|@
1278
+ end_IR
1279
+ begin_IR
1280
+ LIR
1281
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1282
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
1283
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
1284
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
1285
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1286
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
1287
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
1288
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
1289
+ end_IR
1290
+ end_block
1291
+ begin_block
1292
+ name "B3"
1293
+ from_bci -1
1294
+ to_bci -1
1295
+ predecessors "B2"
1296
+ successors
1297
+ xhandlers
1298
+ flags
1299
+ probability 4527516983983565041
1300
+ begin_IR
1301
+ HIR
1302
+ f <@#|@fixed with next>@ <|@
1303
+ tid v9 <|@
1304
+ d <@d|@=== Debug Properties ===
1305
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1306
+ stamp: void
1307
+ withSpeculationFence: false
1308
+ === Inputs ===
1309
+ === Succesors ===
1310
+ next: v105
1311
+ === Usages ===
1312
+ === Predecessor ===
1313
+ v14 >@ <|@
1314
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v105 <|@ <|@
1315
+ f <@#|@fixed with next>@ <|@
1316
+ tid v105 <|@
1317
+ d <@d|@=== Debug Properties ===
1318
+ barriers: 10
1319
+ location: ANY_LOCATION
1320
+ stamp: void
1321
+ === Inputs ===
1322
+ === Succesors ===
1323
+ next: v31
1324
+ === Usages ===
1325
+ === Predecessor ===
1326
+ v9 >@ <|@
1327
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: v31 <|@ <|@
1328
+ f <@~|@floating>@ <|@
1329
+ tid a27 <|@
1330
+ result v3|QWORD[.] <|@
1331
+ d <@d|@=== Debug Properties ===
1332
+ isDefaultStable: false
1333
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1334
+ rawvalue: Instance<java.lang.Class>
1335
+ stableDimension: 0
1336
+ stamp: a!# Ljava/lang/Class;
1337
+ stampKind: a -
1338
+ value: Object[Instance<java.lang.Class>]
1339
+ === Inputs ===
1340
+ === Succesors ===
1341
+ === Usages ===
1342
+ v99 j82
1343
+ === Predecessor ===
1344
+ - >@ <|@
1345
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1346
+ f <@~|@floating>@ <|@
1347
+ tid v99 <|@
1348
+ result [v3|QWORD[.] + 116] <|@
1349
+ d <@d|@=== Debug Properties ===
1350
+ displacement: 116
1351
+ scale: Times1
1352
+ stamp: void*
1353
+ === Inputs ===
1354
+ base: a27
1355
+ index: -
1356
+ === Succesors ===
1357
+ === Usages ===
1358
+ v31
1359
+ === Predecessor ===
1360
+ - >@ <|@
1361
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: a27 index: - <|@ <|@
1362
+ f <@~|@floating>@ <|@
1363
+ tid a28 <|@
1364
+ result v4|DWORD[.] <|@
1365
+ d <@d|@=== Debug Properties ===
1366
+ encoding: base: 0 shift: 3
1367
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1368
+ op: Compress
1369
+ stamp: n! Ljava/lang/Throwable;
1370
+ === Inputs ===
1371
+ value: a43
1372
+ === Succesors ===
1373
+ === Usages ===
1374
+ v31
1375
+ === Predecessor ===
1376
+ - >@ <|@
1377
+ instruction <@HotSpotCompression|@org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode>@ value: a43 <|@ <|@
1378
+ f <@#|@fixed with next>@ <|@
1379
+ tid v31 <|@
1380
+ d <@d|@=== Debug Properties ===
1381
+ barrierType: FIELD
1382
+ location: JavaExamples.objectField
1383
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1384
+ nullCheck: false
1385
+ stamp: void
1386
+ volatileAccess: true
1387
+ === Inputs ===
1388
+ stateBefore: -
1389
+ guard: -
1390
+ address: v99
1391
+ value: a28
1392
+ stateAfter: -
1393
+ lastLocationAccess: -
1394
+ === Succesors ===
1395
+ next: v106
1396
+ === Usages ===
1397
+ === Predecessor ===
1398
+ v105 >@ <|@
1399
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v99 value: a28 stateAfter: - lastLocationAccess: - #next: v106 <|@ <|@
1400
+ f <@#|@fixed with next>@ <|@
1401
+ tid v106 <|@
1402
+ d <@d|@=== Debug Properties ===
1403
+ barriers: 12
1404
+ location: ANY_LOCATION
1405
+ stamp: void
1406
+ === Inputs ===
1407
+ === Succesors ===
1408
+ next: j82
1409
+ === Usages ===
1410
+ === Predecessor ===
1411
+ v31 >@ <|@
1412
+ instruction <@Membar|@org.graalvm.compiler.nodes.extended.MembarNode>@ #next: j82 <|@ <|@
1413
+ f <@#|@fixed with next>@ <|@
1414
+ tid j82 <|@
1415
+ result v3|QWORD[.] <|@
1416
+ d <@d|@=== Debug Properties ===
1417
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
1418
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1419
+ stamp: i64
1420
+ trackedPointer: true
1421
+ === Inputs ===
1422
+ input: a27
1423
+ === Succesors ===
1424
+ next: v89
1425
+ === Usages ===
1426
+ j85
1427
+ === Predecessor ===
1428
+ v106 >@ <|@
1429
+ instruction <@WordCast|@org.graalvm.compiler.word.WordCastNode>@ input: a27 #next: v89 <|@ <|@
1430
+ f <@~|@floating>@ <|@
1431
+ tid i84 <|@
1432
+ result int[9|0x9] <|@
1433
+ d <@d|@=== Debug Properties ===
1434
+ isDefaultStable: false
1435
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1436
+ rawvalue: 9
1437
+ stableDimension: 0
1438
+ stamp: i32 [9] ⇊0000000000000009 ⇈0000000000000009
1439
+ stampKind: i32
1440
+ value: int[9|0x9]
1441
+ === Inputs ===
1442
+ === Succesors ===
1443
+ === Usages ===
1444
+ j85
1445
+ === Predecessor ===
1446
+ - >@ <|@
1447
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1448
+ f <@~|@floating>@ <|@
1449
+ tid j85 <|@
1450
+ result v5|QWORD[*] <|@
1451
+ d <@d|@=== Debug Properties ===
1452
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1453
+ stamp: i64 [0 - 36028797018963967] ⇈007fffffffffffff
1454
+ === Inputs ===
1455
+ x: j82
1456
+ y: i84
1457
+ === Succesors ===
1458
+ === Usages ===
1459
+ v104
1460
+ === Predecessor ===
1461
+ - >@ <|@
1462
+ instruction <@>>>|@org.graalvm.compiler.nodes.calc.UnsignedRightShiftNode>@ x: j82 y: i84 <|@ <|@
1463
+ f <@~|@floating>@ <|@
1464
+ tid j93 <|@
1465
+ result v6|QWORD <|@
1466
+ d <@d|@=== Debug Properties ===
1467
+ isDefaultStable: false
1468
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
1469
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1470
+ rawvalue: 4531113984
1471
+ stableDimension: 0
1472
+ stamp: i64 [4531113984] ⇊000000010e135000 ⇈000000010e135000
1473
+ stampKind: i64
1474
+ value: long[4531113984|0x10e135000]
1475
+ === Inputs ===
1476
+ === Succesors ===
1477
+ === Usages ===
1478
+ v104
1479
+ === Predecessor ===
1480
+ - >@ <|@
1481
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1482
+ f <@~|@floating>@ <|@
1483
+ tid v104 <|@
1484
+ result [v5|QWORD[*] + v6|QWORD * 1] <|@
1485
+ d <@d|@=== Debug Properties ===
1486
+ displacement: 0
1487
+ scale: Times1
1488
+ stamp: void*
1489
+ === Inputs ===
1490
+ base: j85
1491
+ index: j93
1492
+ === Succesors ===
1493
+ === Usages ===
1494
+ v89
1495
+ === Predecessor ===
1496
+ - >@ <|@
1497
+ instruction <@AMD64Address|@org.graalvm.compiler.core.amd64.AMD64AddressNode>@ base: j85 index: j93 <|@ <|@
1498
+ f <@~|@floating>@ <|@
1499
+ tid i90 <|@
1500
+ result byte[0|0x0] <|@
1501
+ d <@d|@=== Debug Properties ===
1502
+ isDefaultStable: false
1503
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
1504
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1505
+ rawvalue: 0
1506
+ stableDimension: 0
1507
+ stamp: i8 [0] ⇈0000000000000000
1508
+ stampKind: i8
1509
+ value: byte[0|0x0]
1510
+ === Inputs ===
1511
+ === Succesors ===
1512
+ === Usages ===
1513
+ v89
1514
+ === Predecessor ===
1515
+ - >@ <|@
1516
+ instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
1517
+ f <@#|@fixed with next>@ <|@
1518
+ tid v89 <|@
1519
+ d <@d|@=== Debug Properties ===
1520
+ barrierType: NONE
1521
+ location: GC-Card
1522
+ nodeSourcePosition: at org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialImpreciseWriteBarrier(SerialWriteBarrierSnippets.java:60) [bci: 0]
1523
+ at JavaExamples.exampleCatch(JavaExamples.java:280) [bci: 8]
1524
+ nullCheck: false
1525
+ stamp: void
1526
+ volatileAccess: false
1527
+ === Inputs ===
1528
+ stateBefore: -
1529
+ guard: -
1530
+ address: v104
1531
+ value: i90
1532
+ stateAfter: -
1533
+ lastLocationAccess: -
1534
+ === Succesors ===
1535
+ next: v24
1536
+ === Usages ===
1537
+ === Predecessor ===
1538
+ j82 >@ <|@
1539
+ instruction <@Write|@org.graalvm.compiler.nodes.memory.WriteNode>@ stateBefore: - guard: - address: v104 value: i90 stateAfter: - lastLocationAccess: - #next: v24 <|@ <|@
1540
+ f <@*|@fixed>@ <|@
1541
+ tid v24 <|@
1542
+ d <@d|@=== Debug Properties ===
1543
+ nodeSourcePosition: at JavaExamples.exampleCatch(JavaExamples.java:282) [bci: 11]
1544
+ stamp: void
1545
+ === Inputs ===
1546
+ result: -
1547
+ memoryMap: -
1548
+ === Succesors ===
1549
+ === Usages ===
1550
+ === Predecessor ===
1551
+ v89 >@ <|@
1552
+ instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: - memoryMap: - <|@ <|@
1553
+ end_IR
1554
+ begin_IR
1555
+ LIR
1556
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1557
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1558
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
1559
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
1560
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1561
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
1562
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
1563
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
1564
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1565
+ end_IR
1566
+ end_block
1567
+ begin_block
1568
+ name "B4"
1569
+ from_bci -1
1570
+ to_bci -1
1571
+ predecessors "B2"
1572
+ successors
1573
+ xhandlers
1574
+ flags
1575
+ probability 4527516983983565041
1576
+ begin_IR
1577
+ HIR
1578
+ f <@#|@fixed with next>@ <|@
1579
+ tid v12 <|@
1580
+ d <@d|@=== Debug Properties ===
1581
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -4]
1582
+ stamp: void
1583
+ withSpeculationFence: false
1584
+ === Inputs ===
1585
+ === Succesors ===
1586
+ next: v23
1587
+ === Usages ===
1588
+ === Predecessor ===
1589
+ v14 >@ <|@
1590
+ instruction <@Begin|@org.graalvm.compiler.nodes.BeginNode>@ #next: v23 <|@ <|@
1591
+ f <@*|@fixed>@ <|@
1592
+ tid v23 <|@
1593
+ d <@d|@=== Debug Properties ===
1594
+ nodeSourcePosition: at JavaExamples.exampleCatch() [bci: -1]
1595
+ stamp: void
1596
+ === Inputs ===
1597
+ exception: a43
1598
+ === Succesors ===
1599
+ === Usages ===
1600
+ === Predecessor ===
1601
+ v12 >@ <|@
1602
+ instruction <@Unwind|@org.graalvm.compiler.nodes.UnwindNode>@ exception: a43 <|@ <|@
1603
+ end_IR
1604
+ begin_IR
1605
+ LIR
1606
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1607
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1608
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
1609
+ end_IR
1610
+ end_block
1611
+ end_cfg
1612
+ begin_cfg
1613
+ name "After ConstantLoadOptimization"
1614
+ begin_block
1615
+ name "B0"
1616
+ from_bci -1
1617
+ to_bci -1
1618
+ predecessors
1619
+ successors "B1"
1620
+ xhandlers"B2"
1621
+ flags
1622
+ probability 4607182418800017408
1623
+ begin_IR
1624
+ LIR
1625
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1626
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1627
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
1628
+ nr -1 <|@ st <@st|@JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1629
+ locals: -
1630
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
1631
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
1632
+ end_IR
1633
+ end_block
1634
+ begin_block
1635
+ name "B1"
1636
+ from_bci -1
1637
+ to_bci -1
1638
+ predecessors "B0"
1639
+ successors
1640
+ xhandlers
1641
+ flags
1642
+ probability 4607182328728024861
1643
+ begin_IR
1644
+ LIR
1645
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1646
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1647
+ end_IR
1648
+ end_block
1649
+ begin_block
1650
+ name "B2"
1651
+ from_bci -1
1652
+ to_bci -1
1653
+ predecessors "B0"
1654
+ successors "B3" "B4"
1655
+ xhandlers
1656
+ flags "ex"
1657
+ probability 4532020583610935537
1658
+ begin_IR
1659
+ LIR
1660
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1661
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
1662
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
1663
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
1664
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1665
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
1666
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
1667
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
1668
+ end_IR
1669
+ end_block
1670
+ begin_block
1671
+ name "B4"
1672
+ from_bci -1
1673
+ to_bci -1
1674
+ predecessors "B2"
1675
+ successors
1676
+ xhandlers
1677
+ flags
1678
+ probability 4527516983983565041
1679
+ begin_IR
1680
+ LIR
1681
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1682
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1683
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
1684
+ end_IR
1685
+ end_block
1686
+ begin_block
1687
+ name "B3"
1688
+ from_bci -1
1689
+ to_bci -1
1690
+ predecessors "B2"
1691
+ successors
1692
+ xhandlers
1693
+ flags
1694
+ probability 4527516983983565041
1695
+ begin_IR
1696
+ LIR
1697
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1698
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1699
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
1700
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
1701
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1702
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
1703
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
1704
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
1705
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1706
+ end_IR
1707
+ end_block
1708
+ end_cfg
1709
+ begin_bytecodes
1710
+ 0: invokestatic #30 // exampleThrow:()void
1711
+ 3: goto 11
1712
+ 6: astore_0
1713
+ 7: aload_0
1714
+ 8: putstatic #53 // objectField:java.lang.Object
1715
+ 11: return
1716
+ <|@
1717
+ end_bytecodes
1718
+ begin_cfg
1719
+ name "After SaveCalleeSaveRegisters"
1720
+ begin_block
1721
+ name "B0"
1722
+ from_bci -1
1723
+ to_bci -1
1724
+ predecessors
1725
+ successors "B1"
1726
+ xhandlers"B2"
1727
+ flags
1728
+ probability 4607182418800017408
1729
+ begin_IR
1730
+ LIR
1731
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1732
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1733
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
1734
+ nr -1 <|@ st <@st|@JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1735
+ locals: -
1736
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
1737
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
1738
+ end_IR
1739
+ end_block
1740
+ begin_block
1741
+ name "B1"
1742
+ from_bci -1
1743
+ to_bci -1
1744
+ predecessors "B0"
1745
+ successors
1746
+ xhandlers
1747
+ flags
1748
+ probability 4607182328728024861
1749
+ begin_IR
1750
+ LIR
1751
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1752
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1753
+ end_IR
1754
+ end_block
1755
+ begin_block
1756
+ name "B2"
1757
+ from_bci -1
1758
+ to_bci -1
1759
+ predecessors "B0"
1760
+ successors "B3" "B4"
1761
+ xhandlers
1762
+ flags "ex"
1763
+ probability 4532020583610935537
1764
+ begin_IR
1765
+ LIR
1766
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1767
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
1768
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
1769
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
1770
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1771
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
1772
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
1773
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
1774
+ end_IR
1775
+ end_block
1776
+ begin_block
1777
+ name "B4"
1778
+ from_bci -1
1779
+ to_bci -1
1780
+ predecessors "B2"
1781
+ successors
1782
+ xhandlers
1783
+ flags
1784
+ probability 4527516983983565041
1785
+ begin_IR
1786
+ LIR
1787
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1788
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1789
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
1790
+ end_IR
1791
+ end_block
1792
+ begin_block
1793
+ name "B3"
1794
+ from_bci -1
1795
+ to_bci -1
1796
+ predecessors "B2"
1797
+ successors
1798
+ xhandlers
1799
+ flags
1800
+ probability 4527516983983565041
1801
+ begin_IR
1802
+ LIR
1803
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1804
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1805
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
1806
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
1807
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1808
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
1809
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
1810
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
1811
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1812
+ end_IR
1813
+ end_block
1814
+ end_cfg
1815
+ begin_bytecodes
1816
+ 0: invokestatic #30 // exampleThrow:()void
1817
+ 3: goto 11
1818
+ 6: astore_0
1819
+ 7: aload_0
1820
+ 8: putstatic #53 // objectField:java.lang.Object
1821
+ 11: return
1822
+ <|@
1823
+ end_bytecodes
1824
+ begin_cfg
1825
+ name "After PreAllocationOptimizationStage"
1826
+ begin_block
1827
+ name "B0"
1828
+ from_bci -1
1829
+ to_bci -1
1830
+ predecessors
1831
+ successors "B1"
1832
+ xhandlers"B2"
1833
+ flags
1834
+ probability 4607182418800017408
1835
+ begin_IR
1836
+ LIR
1837
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1838
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1839
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
1840
+ nr -1 <|@ st <@st|@JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1841
+ locals: -
1842
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
1843
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
1844
+ end_IR
1845
+ end_block
1846
+ begin_block
1847
+ name "B1"
1848
+ from_bci -1
1849
+ to_bci -1
1850
+ predecessors "B0"
1851
+ successors
1852
+ xhandlers
1853
+ flags
1854
+ probability 4607182328728024861
1855
+ begin_IR
1856
+ LIR
1857
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1858
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1859
+ end_IR
1860
+ end_block
1861
+ begin_block
1862
+ name "B2"
1863
+ from_bci -1
1864
+ to_bci -1
1865
+ predecessors "B0"
1866
+ successors "B3" "B4"
1867
+ xhandlers
1868
+ flags "ex"
1869
+ probability 4532020583610935537
1870
+ begin_IR
1871
+ LIR
1872
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1873
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
1874
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
1875
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
1876
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1877
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
1878
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
1879
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
1880
+ end_IR
1881
+ end_block
1882
+ begin_block
1883
+ name "B4"
1884
+ from_bci -1
1885
+ to_bci -1
1886
+ predecessors "B2"
1887
+ successors
1888
+ xhandlers
1889
+ flags
1890
+ probability 4527516983983565041
1891
+ begin_IR
1892
+ LIR
1893
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1894
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
1895
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
1896
+ end_IR
1897
+ end_block
1898
+ begin_block
1899
+ name "B3"
1900
+ from_bci -1
1901
+ to_bci -1
1902
+ predecessors "B2"
1903
+ successors
1904
+ xhandlers
1905
+ flags
1906
+ probability 4527516983983565041
1907
+ begin_IR
1908
+ LIR
1909
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1910
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
1911
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
1912
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
1913
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
1914
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
1915
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
1916
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
1917
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1918
+ end_IR
1919
+ end_block
1920
+ end_cfg
1921
+ begin_bytecodes
1922
+ 0: invokestatic #30 // exampleThrow:()void
1923
+ 3: goto 11
1924
+ 6: astore_0
1925
+ 7: aload_0
1926
+ 8: putstatic #53 // objectField:java.lang.Object
1927
+ 11: return
1928
+ <|@
1929
+ end_bytecodes
1930
+ begin_cfg
1931
+ name "After MarkBasePointers"
1932
+ begin_block
1933
+ name "B0"
1934
+ from_bci -1
1935
+ to_bci -1
1936
+ predecessors
1937
+ successors "B1"
1938
+ xhandlers"B2"
1939
+ flags
1940
+ probability 4607182418800017408
1941
+ begin_IR
1942
+ LIR
1943
+ nr -1 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1944
+ nr -1 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
1945
+ nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
1946
+ nr -1 <|@ st <@st|@live-base-pointers: []
1947
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
1948
+ locals: -
1949
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
1950
+ nr -1 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
1951
+ end_IR
1952
+ end_block
1953
+ begin_block
1954
+ name "B1"
1955
+ from_bci -1
1956
+ to_bci -1
1957
+ predecessors "B0"
1958
+ successors
1959
+ xhandlers
1960
+ flags
1961
+ probability 4607182328728024861
1962
+ begin_IR
1963
+ LIR
1964
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1965
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
1966
+ end_IR
1967
+ end_block
1968
+ begin_block
1969
+ name "B2"
1970
+ from_bci -1
1971
+ to_bci -1
1972
+ predecessors "B0"
1973
+ successors "B3" "B4"
1974
+ xhandlers
1975
+ flags "ex"
1976
+ probability 4532020583610935537
1977
+ begin_IR
1978
+ LIR
1979
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1980
+ nr -1 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
1981
+ nr -1 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
1982
+ nr -1 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
1983
+ nr -1 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
1984
+ nr -1 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
1985
+ nr -1 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
1986
+ nr -1 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
1987
+ end_IR
1988
+ end_block
1989
+ begin_block
1990
+ name "B4"
1991
+ from_bci -1
1992
+ to_bci -1
1993
+ predecessors "B2"
1994
+ successors
1995
+ xhandlers
1996
+ flags
1997
+ probability 4527516983983565041
1998
+ begin_IR
1999
+ LIR
2000
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2001
+ nr -1 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2002
+ nr -1 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2003
+ end_IR
2004
+ end_block
2005
+ begin_block
2006
+ name "B3"
2007
+ from_bci -1
2008
+ to_bci -1
2009
+ predecessors "B2"
2010
+ successors
2011
+ xhandlers
2012
+ flags
2013
+ probability 4527516983983565041
2014
+ begin_IR
2015
+ LIR
2016
+ nr -1 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2017
+ nr -1 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2018
+ nr -1 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2019
+ nr -1 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2020
+ nr -1 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2021
+ nr -1 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2022
+ nr -1 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2023
+ nr -1 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2024
+ nr -1 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2025
+ end_IR
2026
+ end_block
2027
+ end_cfg
2028
+ begin_bytecodes
2029
+ 0: invokestatic #30 // exampleThrow:()void
2030
+ 3: goto 11
2031
+ 6: astore_0
2032
+ 7: aload_0
2033
+ 8: putstatic #53 // objectField:java.lang.Object
2034
+ 11: return
2035
+ <|@
2036
+ end_bytecodes
2037
+ begin_cfg
2038
+ name "Before register allocation"
2039
+ begin_block
2040
+ name "B0"
2041
+ from_bci -1
2042
+ to_bci -1
2043
+ predecessors
2044
+ successors "B1"
2045
+ xhandlers"B2"
2046
+ flags
2047
+ probability 4607182418800017408
2048
+ begin_IR
2049
+ LIR
2050
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2051
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2052
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2053
+ nr 6 <|@ st <@st|@live-base-pointers: []
2054
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2055
+ locals: -
2056
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2057
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2058
+ end_IR
2059
+ end_block
2060
+ begin_block
2061
+ name "B1"
2062
+ from_bci -1
2063
+ to_bci -1
2064
+ predecessors "B0"
2065
+ successors
2066
+ xhandlers
2067
+ flags
2068
+ probability 4607182328728024861
2069
+ begin_IR
2070
+ LIR
2071
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2072
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2073
+ end_IR
2074
+ end_block
2075
+ begin_block
2076
+ name "B2"
2077
+ from_bci -1
2078
+ to_bci -1
2079
+ predecessors "B0"
2080
+ successors "B3" "B4"
2081
+ xhandlers
2082
+ flags "ex"
2083
+ probability 4532020583610935537
2084
+ begin_IR
2085
+ LIR
2086
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2087
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2088
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2089
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2090
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2091
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2092
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2093
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2094
+ end_IR
2095
+ end_block
2096
+ begin_block
2097
+ name "B4"
2098
+ from_bci -1
2099
+ to_bci -1
2100
+ predecessors "B2"
2101
+ successors
2102
+ xhandlers
2103
+ flags
2104
+ probability 4527516983983565041
2105
+ begin_IR
2106
+ LIR
2107
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2108
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2109
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2110
+ end_IR
2111
+ end_block
2112
+ begin_block
2113
+ name "B3"
2114
+ from_bci -1
2115
+ to_bci -1
2116
+ predecessors "B2"
2117
+ successors
2118
+ xhandlers
2119
+ flags
2120
+ probability 4527516983983565041
2121
+ begin_IR
2122
+ LIR
2123
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2124
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2125
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2126
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2127
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2128
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2129
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2130
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2131
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2132
+ end_IR
2133
+ end_block
2134
+ end_cfg
2135
+ begin_bytecodes
2136
+ 0: invokestatic #30 // exampleThrow:()void
2137
+ 3: goto 11
2138
+ 6: astore_0
2139
+ 7: aload_0
2140
+ 8: putstatic #53 // objectField:java.lang.Object
2141
+ 11: return
2142
+ <|@
2143
+ end_bytecodes
2144
+ begin_cfg
2145
+ name "After SSALinearScanLifetimeAnalysis"
2146
+ begin_block
2147
+ name "B0"
2148
+ from_bci -1
2149
+ to_bci -1
2150
+ predecessors
2151
+ successors "B1"
2152
+ xhandlers"B2"
2153
+ flags
2154
+ probability 4607182418800017408
2155
+ begin_IR
2156
+ LIR
2157
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2158
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2159
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2160
+ nr 6 <|@ st <@st|@live-base-pointers: []
2161
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2162
+ locals: -
2163
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2164
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2165
+ end_IR
2166
+ end_block
2167
+ begin_block
2168
+ name "B1"
2169
+ from_bci -1
2170
+ to_bci -1
2171
+ predecessors "B0"
2172
+ successors
2173
+ xhandlers
2174
+ flags
2175
+ probability 4607182328728024861
2176
+ begin_IR
2177
+ LIR
2178
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2179
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2180
+ end_IR
2181
+ end_block
2182
+ begin_block
2183
+ name "B2"
2184
+ from_bci -1
2185
+ to_bci -1
2186
+ predecessors "B0"
2187
+ successors "B3" "B4"
2188
+ xhandlers
2189
+ flags "ex"
2190
+ probability 4532020583610935537
2191
+ begin_IR
2192
+ LIR
2193
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2194
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2195
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2196
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2197
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2198
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2199
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2200
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2201
+ end_IR
2202
+ end_block
2203
+ begin_block
2204
+ name "B4"
2205
+ from_bci -1
2206
+ to_bci -1
2207
+ predecessors "B2"
2208
+ successors
2209
+ xhandlers
2210
+ flags
2211
+ probability 4527516983983565041
2212
+ begin_IR
2213
+ LIR
2214
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2215
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2216
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2217
+ end_IR
2218
+ end_block
2219
+ begin_block
2220
+ name "B3"
2221
+ from_bci -1
2222
+ to_bci -1
2223
+ predecessors "B2"
2224
+ successors
2225
+ xhandlers
2226
+ flags
2227
+ probability 4527516983983565041
2228
+ begin_IR
2229
+ LIR
2230
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2231
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2232
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2233
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2234
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2235
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2236
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2237
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2238
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2239
+ end_IR
2240
+ end_block
2241
+ end_cfg
2242
+ begin_bytecodes
2243
+ 0: invokestatic #30 // exampleThrow:()void
2244
+ 3: goto 11
2245
+ 6: astore_0
2246
+ 7: aload_0
2247
+ 8: putstatic #53 // objectField:java.lang.Object
2248
+ 11: return
2249
+ <|@
2250
+ end_bytecodes
2251
+ begin_intervals
2252
+ name "Before register allocation"
2253
+ rax|- fixed "[rax|-]" rax|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2254
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2255
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2256
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2257
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[6, 7[ "NoSpillStore"
2258
+ rsi|q fixed "[rsi|q]" rsi|q v0|q [0, 1[[6, 7[[32, 34[ "NoSpillStore"
2259
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2260
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2261
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2262
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2263
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2264
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2265
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2266
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2267
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2268
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2269
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2270
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2271
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2272
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2273
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2274
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2275
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2276
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2277
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2278
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2279
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2280
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2281
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2282
+ v0|q QWORD "[v0|q]" v0|q -1 [16, 32[[36, 40[16 MustHaveRegister 22 MustHaveRegister 32 ShouldHaveRegister 40 MustHaveRegister "NoSpillStore"
2283
+ v1|d DWORD "[v1|d]" v1|d -1 [22, 26[22 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2284
+ v2|q QWORD "[v2|q]" v2|q -1 [24, 26[24 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2285
+ v3|q QWORD "[v3|q]" v3|q -1 [38, 46[38 MustHaveRegister 42 MustHaveRegister 46 MustHaveRegister "NoSpillStore"
2286
+ v4|d DWORD "[v4|d]" v4|d v0|q [40, 42[40 MustHaveRegister 42 MustHaveRegister "NoSpillStore"
2287
+ v5|q QWORD "[v5|q]" v5|q v3|q [46, 50[46 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2288
+ v6|q QWORD "[v6|q]" v6|q -1 [48, 50[48 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2289
+ end_intervals
2290
+ begin_intervals
2291
+ name "After register allocation"
2292
+ rax|- fixed "[rax|-]" rax|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2293
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2294
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2295
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2296
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[6, 7[ "NoSpillStore"
2297
+ rsi|q fixed "[rsi|q]" rsi|q v0|q [0, 1[[6, 7[[32, 34[ "NoSpillStore"
2298
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2299
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2300
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2301
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2302
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2303
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2304
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2305
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2306
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2307
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2308
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2309
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2310
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2311
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2312
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2313
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2314
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2315
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2316
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2317
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2318
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2319
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2320
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2321
+ v0|q QWORD "[r10|q]" v0|q -1 [16, 32[[36, 40[16 MustHaveRegister 22 MustHaveRegister 32 ShouldHaveRegister 40 MustHaveRegister "NoSpillStore"
2322
+ v1|d DWORD "[rsi|d]" v1|d -1 [22, 26[22 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2323
+ v2|q QWORD "[r11|q]" v2|q -1 [24, 26[24 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2324
+ v3|q QWORD "[r11|q]" v3|q -1 [38, 46[38 MustHaveRegister 42 MustHaveRegister 46 MustHaveRegister "NoSpillStore"
2325
+ v4|d DWORD "[r10|d]" v4|d v0|q [40, 42[40 MustHaveRegister 42 MustHaveRegister "NoSpillStore"
2326
+ v5|q QWORD "[r11|q]" v5|q v3|q [46, 50[46 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2327
+ v6|q QWORD "[r10|q]" v6|q -1 [48, 50[48 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2328
+ end_intervals
2329
+ begin_cfg
2330
+ name "After LinearScanRegisterAllocation"
2331
+ begin_block
2332
+ name "B0"
2333
+ from_bci -1
2334
+ to_bci -1
2335
+ predecessors
2336
+ successors "B1"
2337
+ xhandlers"B2"
2338
+ flags
2339
+ probability 4607182418800017408
2340
+ begin_IR
2341
+ LIR
2342
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2343
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2344
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2345
+ nr 6 <|@ st <@st|@live-base-pointers: []
2346
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2347
+ locals: -
2348
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2349
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2350
+ end_IR
2351
+ end_block
2352
+ begin_block
2353
+ name "B1"
2354
+ from_bci -1
2355
+ to_bci -1
2356
+ predecessors "B0"
2357
+ successors
2358
+ xhandlers
2359
+ flags
2360
+ probability 4607182328728024861
2361
+ begin_IR
2362
+ LIR
2363
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2364
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2365
+ end_IR
2366
+ end_block
2367
+ begin_block
2368
+ name "B2"
2369
+ from_bci -1
2370
+ to_bci -1
2371
+ predecessors "B0"
2372
+ successors "B3" "B4"
2373
+ xhandlers
2374
+ flags "ex"
2375
+ probability 4532020583610935537
2376
+ begin_IR
2377
+ LIR
2378
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2379
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2380
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2381
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2382
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2383
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2384
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2385
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2386
+ end_IR
2387
+ end_block
2388
+ begin_block
2389
+ name "B4"
2390
+ from_bci -1
2391
+ to_bci -1
2392
+ predecessors "B2"
2393
+ successors
2394
+ xhandlers
2395
+ flags
2396
+ probability 4527516983983565041
2397
+ begin_IR
2398
+ LIR
2399
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2400
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2401
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2402
+ end_IR
2403
+ end_block
2404
+ begin_block
2405
+ name "B3"
2406
+ from_bci -1
2407
+ to_bci -1
2408
+ predecessors "B2"
2409
+ successors
2410
+ xhandlers
2411
+ flags
2412
+ probability 4527516983983565041
2413
+ begin_IR
2414
+ LIR
2415
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2416
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2417
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2418
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2419
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2420
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2421
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2422
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2423
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2424
+ end_IR
2425
+ end_block
2426
+ end_cfg
2427
+ begin_bytecodes
2428
+ 0: invokestatic #30 // exampleThrow:()void
2429
+ 3: goto 11
2430
+ 6: astore_0
2431
+ 7: aload_0
2432
+ 8: putstatic #53 // objectField:java.lang.Object
2433
+ 11: return
2434
+ <|@
2435
+ end_bytecodes
2436
+ begin_intervals
2437
+ name "After optimize spill position"
2438
+ rax|- fixed "[rax|-]" rax|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2439
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2440
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2441
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2442
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[6, 7[ "NoSpillStore"
2443
+ rsi|q fixed "[rsi|q]" rsi|q v0|q [0, 1[[6, 7[[32, 34[ "NoSpillStore"
2444
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2445
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2446
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2447
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2448
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2449
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2450
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2451
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2452
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2453
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2454
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2455
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2456
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2457
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2458
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2459
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2460
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2461
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2462
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2463
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2464
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2465
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2466
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2467
+ v0|q QWORD "[r10|q]" v0|q -1 [16, 32[[36, 40[16 MustHaveRegister 22 MustHaveRegister 32 ShouldHaveRegister 40 MustHaveRegister "NoSpillStore"
2468
+ v1|d DWORD "[rsi|d]" v1|d -1 [22, 26[22 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2469
+ v2|q QWORD "[r11|q]" v2|q -1 [24, 26[24 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2470
+ v3|q QWORD "[r11|q]" v3|q -1 [38, 46[38 MustHaveRegister 42 MustHaveRegister 46 MustHaveRegister "NoSpillStore"
2471
+ v4|d DWORD "[r10|d]" v4|d v0|q [40, 42[40 MustHaveRegister 42 MustHaveRegister "NoSpillStore"
2472
+ v5|q QWORD "[r11|q]" v5|q v3|q [46, 50[46 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2473
+ v6|q QWORD "[r10|q]" v6|q -1 [48, 50[48 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2474
+ end_intervals
2475
+ begin_cfg
2476
+ name "After LinearScanOptimizeSpillPosition"
2477
+ begin_block
2478
+ name "B0"
2479
+ from_bci -1
2480
+ to_bci -1
2481
+ predecessors
2482
+ successors "B1"
2483
+ xhandlers"B2"
2484
+ flags
2485
+ probability 4607182418800017408
2486
+ begin_IR
2487
+ LIR
2488
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2489
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2490
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2491
+ nr 6 <|@ st <@st|@live-base-pointers: []
2492
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2493
+ locals: -
2494
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2495
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2496
+ end_IR
2497
+ end_block
2498
+ begin_block
2499
+ name "B1"
2500
+ from_bci -1
2501
+ to_bci -1
2502
+ predecessors "B0"
2503
+ successors
2504
+ xhandlers
2505
+ flags
2506
+ probability 4607182328728024861
2507
+ begin_IR
2508
+ LIR
2509
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2510
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2511
+ end_IR
2512
+ end_block
2513
+ begin_block
2514
+ name "B2"
2515
+ from_bci -1
2516
+ to_bci -1
2517
+ predecessors "B0"
2518
+ successors "B3" "B4"
2519
+ xhandlers
2520
+ flags "ex"
2521
+ probability 4532020583610935537
2522
+ begin_IR
2523
+ LIR
2524
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2525
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2526
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2527
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2528
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2529
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2530
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2531
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2532
+ end_IR
2533
+ end_block
2534
+ begin_block
2535
+ name "B4"
2536
+ from_bci -1
2537
+ to_bci -1
2538
+ predecessors "B2"
2539
+ successors
2540
+ xhandlers
2541
+ flags
2542
+ probability 4527516983983565041
2543
+ begin_IR
2544
+ LIR
2545
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2546
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2547
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2548
+ end_IR
2549
+ end_block
2550
+ begin_block
2551
+ name "B3"
2552
+ from_bci -1
2553
+ to_bci -1
2554
+ predecessors "B2"
2555
+ successors
2556
+ xhandlers
2557
+ flags
2558
+ probability 4527516983983565041
2559
+ begin_IR
2560
+ LIR
2561
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2562
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2563
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2564
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2565
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2566
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2567
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2568
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2569
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2570
+ end_IR
2571
+ end_block
2572
+ end_cfg
2573
+ begin_bytecodes
2574
+ 0: invokestatic #30 // exampleThrow:()void
2575
+ 3: goto 11
2576
+ 6: astore_0
2577
+ 7: aload_0
2578
+ 8: putstatic #53 // objectField:java.lang.Object
2579
+ 11: return
2580
+ <|@
2581
+ end_bytecodes
2582
+ begin_intervals
2583
+ name "After resolve data flow"
2584
+ rax|- fixed "[rax|-]" rax|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2585
+ rcx|- fixed "[rcx|-]" rcx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2586
+ rdx|- fixed "[rdx|-]" rdx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2587
+ rbx|- fixed "[rbx|-]" rbx|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2588
+ rbp|- fixed "[rbp|-]" rbp|- -1 [0, 2[[6, 7[ "NoSpillStore"
2589
+ rsi|q fixed "[rsi|q]" rsi|q v0|q [0, 1[[6, 7[[32, 34[ "NoSpillStore"
2590
+ rdi|- fixed "[rdi|-]" rdi|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2591
+ r8|- fixed "[r8|-]" r8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2592
+ r9|- fixed "[r9|-]" r9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2593
+ r10|- fixed "[r10|-]" r10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2594
+ r11|- fixed "[r11|-]" r11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2595
+ r13|- fixed "[r13|-]" r13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2596
+ r14|- fixed "[r14|-]" r14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2597
+ xmm0|- fixed "[xmm0|-]" xmm0|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2598
+ xmm1|- fixed "[xmm1|-]" xmm1|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2599
+ xmm2|- fixed "[xmm2|-]" xmm2|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2600
+ xmm3|- fixed "[xmm3|-]" xmm3|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2601
+ xmm4|- fixed "[xmm4|-]" xmm4|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2602
+ xmm5|- fixed "[xmm5|-]" xmm5|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2603
+ xmm6|- fixed "[xmm6|-]" xmm6|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2604
+ xmm7|- fixed "[xmm7|-]" xmm7|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2605
+ xmm8|- fixed "[xmm8|-]" xmm8|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2606
+ xmm9|- fixed "[xmm9|-]" xmm9|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2607
+ xmm10|- fixed "[xmm10|-]" xmm10|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2608
+ xmm11|- fixed "[xmm11|-]" xmm11|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2609
+ xmm12|- fixed "[xmm12|-]" xmm12|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2610
+ xmm13|- fixed "[xmm13|-]" xmm13|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2611
+ xmm14|- fixed "[xmm14|-]" xmm14|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2612
+ xmm15|- fixed "[xmm15|-]" xmm15|- -1 [0, 1[[6, 7[ "NoDefinitionFound"
2613
+ v0|q QWORD "[r10|q]" v0|q -1 [16, 32[[36, 40[16 MustHaveRegister 22 MustHaveRegister 32 ShouldHaveRegister 40 MustHaveRegister "NoSpillStore"
2614
+ v1|d DWORD "[rsi|d]" v1|d -1 [22, 26[22 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2615
+ v2|q QWORD "[r11|q]" v2|q -1 [24, 26[24 MustHaveRegister 26 MustHaveRegister "NoSpillStore"
2616
+ v3|q QWORD "[r11|q]" v3|q -1 [38, 46[38 MustHaveRegister 42 MustHaveRegister 46 MustHaveRegister "NoSpillStore"
2617
+ v4|d DWORD "[r10|d]" v4|d v0|q [40, 42[40 MustHaveRegister 42 MustHaveRegister "NoSpillStore"
2618
+ v5|q QWORD "[r11|q]" v5|q v3|q [46, 50[46 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2619
+ v6|q QWORD "[r10|q]" v6|q -1 [48, 50[48 MustHaveRegister 50 MustHaveRegister "NoSpillStore"
2620
+ end_intervals
2621
+ begin_cfg
2622
+ name "After SSALinearScanResolveDataFlow"
2623
+ begin_block
2624
+ name "B0"
2625
+ from_bci -1
2626
+ to_bci -1
2627
+ predecessors
2628
+ successors "B1"
2629
+ xhandlers"B2"
2630
+ flags
2631
+ probability 4607182418800017408
2632
+ begin_IR
2633
+ LIR
2634
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2635
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2636
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2637
+ nr 6 <|@ st <@st|@live-base-pointers: []
2638
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2639
+ locals: -
2640
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2641
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2642
+ end_IR
2643
+ end_block
2644
+ begin_block
2645
+ name "B1"
2646
+ from_bci -1
2647
+ to_bci -1
2648
+ predecessors "B0"
2649
+ successors
2650
+ xhandlers
2651
+ flags
2652
+ probability 4607182328728024861
2653
+ begin_IR
2654
+ LIR
2655
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2656
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2657
+ end_IR
2658
+ end_block
2659
+ begin_block
2660
+ name "B2"
2661
+ from_bci -1
2662
+ to_bci -1
2663
+ predecessors "B0"
2664
+ successors "B3" "B4"
2665
+ xhandlers
2666
+ flags "ex"
2667
+ probability 4532020583610935537
2668
+ begin_IR
2669
+ LIR
2670
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2671
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2672
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2673
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2674
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2675
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2676
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2677
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2678
+ end_IR
2679
+ end_block
2680
+ begin_block
2681
+ name "B4"
2682
+ from_bci -1
2683
+ to_bci -1
2684
+ predecessors "B2"
2685
+ successors
2686
+ xhandlers
2687
+ flags
2688
+ probability 4527516983983565041
2689
+ begin_IR
2690
+ LIR
2691
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2692
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2693
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2694
+ end_IR
2695
+ end_block
2696
+ begin_block
2697
+ name "B3"
2698
+ from_bci -1
2699
+ to_bci -1
2700
+ predecessors "B2"
2701
+ successors
2702
+ xhandlers
2703
+ flags
2704
+ probability 4527516983983565041
2705
+ begin_IR
2706
+ LIR
2707
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2708
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2709
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2710
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2711
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2712
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2713
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2714
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2715
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2716
+ end_IR
2717
+ end_block
2718
+ end_cfg
2719
+ begin_bytecodes
2720
+ 0: invokestatic #30 // exampleThrow:()void
2721
+ 3: goto 11
2722
+ 6: astore_0
2723
+ 7: aload_0
2724
+ 8: putstatic #53 // objectField:java.lang.Object
2725
+ 11: return
2726
+ <|@
2727
+ end_bytecodes
2728
+ begin_cfg
2729
+ name "After SSALinearScanEliminateSpillMove"
2730
+ begin_block
2731
+ name "B0"
2732
+ from_bci -1
2733
+ to_bci -1
2734
+ predecessors
2735
+ successors "B1"
2736
+ xhandlers"B2"
2737
+ flags
2738
+ probability 4607182418800017408
2739
+ begin_IR
2740
+ LIR
2741
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2742
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2743
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2744
+ nr 6 <|@ st <@st|@live-base-pointers: []
2745
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2746
+ locals: -
2747
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2748
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2749
+ end_IR
2750
+ end_block
2751
+ begin_block
2752
+ name "B1"
2753
+ from_bci -1
2754
+ to_bci -1
2755
+ predecessors "B0"
2756
+ successors
2757
+ xhandlers
2758
+ flags
2759
+ probability 4607182328728024861
2760
+ begin_IR
2761
+ LIR
2762
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2763
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2764
+ end_IR
2765
+ end_block
2766
+ begin_block
2767
+ name "B2"
2768
+ from_bci -1
2769
+ to_bci -1
2770
+ predecessors "B0"
2771
+ successors "B3" "B4"
2772
+ xhandlers
2773
+ flags "ex"
2774
+ probability 4532020583610935537
2775
+ begin_IR
2776
+ LIR
2777
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2778
+ nr 16 <|@ instruction v0|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2779
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2780
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2781
+ nr 22 <|@ instruction v1|DWORD = MOV [v0|QWORD[.] + 8] size: DWORD <|@ <|@
2782
+ nr 24 <|@ instruction v2|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2783
+ nr 26 <|@ instruction CMP (x: v2|QWORD, y: [v1|DWORD * 8 + 64]) size: QWORD <|@ <|@
2784
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2785
+ end_IR
2786
+ end_block
2787
+ begin_block
2788
+ name "B4"
2789
+ from_bci -1
2790
+ to_bci -1
2791
+ predecessors "B2"
2792
+ successors
2793
+ xhandlers
2794
+ flags
2795
+ probability 4527516983983565041
2796
+ begin_IR
2797
+ LIR
2798
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2799
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE v0|QWORD[.] moveKind: QWORD <|@ <|@
2800
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2801
+ end_IR
2802
+ end_block
2803
+ begin_block
2804
+ name "B3"
2805
+ from_bci -1
2806
+ to_bci -1
2807
+ predecessors "B2"
2808
+ successors
2809
+ xhandlers
2810
+ flags
2811
+ probability 4527516983983565041
2812
+ begin_IR
2813
+ LIR
2814
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2815
+ nr 38 <|@ instruction v3|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2816
+ nr 40 <|@ instruction v4|DWORD[.] = COMPRESSPOINTER (input: v0|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2817
+ nr 42 <|@ instruction MOV (x: [v3|QWORD[.] + 116], y: v4|DWORD[.]) size: DWORD <|@ <|@
2818
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2819
+ nr 46 <|@ instruction v5|QWORD[*] = SHR v3|QWORD[.] y: 9 size: QWORD <|@ <|@
2820
+ nr 48 <|@ instruction v6|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2821
+ nr 50 <|@ instruction MOVB [v5|QWORD[*] + v6|QWORD * 1] y: 0 size: BYTE <|@ <|@
2822
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2823
+ end_IR
2824
+ end_block
2825
+ end_cfg
2826
+ begin_bytecodes
2827
+ 0: invokestatic #30 // exampleThrow:()void
2828
+ 3: goto 11
2829
+ 6: astore_0
2830
+ 7: aload_0
2831
+ 8: putstatic #53 // objectField:java.lang.Object
2832
+ 11: return
2833
+ <|@
2834
+ end_bytecodes
2835
+ begin_cfg
2836
+ name "After LinearScanAssignLocations"
2837
+ begin_block
2838
+ name "B0"
2839
+ from_bci -1
2840
+ to_bci -1
2841
+ predecessors
2842
+ successors "B1"
2843
+ xhandlers"B2"
2844
+ flags
2845
+ probability 4607182418800017408
2846
+ begin_IR
2847
+ LIR
2848
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2849
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2850
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2851
+ nr 6 <|@ st <@st|@live-base-pointers: []
2852
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2853
+ locals: -
2854
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2855
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2856
+ end_IR
2857
+ end_block
2858
+ begin_block
2859
+ name "B1"
2860
+ from_bci -1
2861
+ to_bci -1
2862
+ predecessors "B0"
2863
+ successors
2864
+ xhandlers
2865
+ flags
2866
+ probability 4607182328728024861
2867
+ begin_IR
2868
+ LIR
2869
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2870
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2871
+ end_IR
2872
+ end_block
2873
+ begin_block
2874
+ name "B2"
2875
+ from_bci -1
2876
+ to_bci -1
2877
+ predecessors "B0"
2878
+ successors "B3" "B4"
2879
+ xhandlers
2880
+ flags "ex"
2881
+ probability 4532020583610935537
2882
+ begin_IR
2883
+ LIR
2884
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2885
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2886
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2887
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2888
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
2889
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2890
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
2891
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2892
+ end_IR
2893
+ end_block
2894
+ begin_block
2895
+ name "B4"
2896
+ from_bci -1
2897
+ to_bci -1
2898
+ predecessors "B2"
2899
+ successors
2900
+ xhandlers
2901
+ flags
2902
+ probability 4527516983983565041
2903
+ begin_IR
2904
+ LIR
2905
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2906
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
2907
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
2908
+ end_IR
2909
+ end_block
2910
+ begin_block
2911
+ name "B3"
2912
+ from_bci -1
2913
+ to_bci -1
2914
+ predecessors "B2"
2915
+ successors
2916
+ xhandlers
2917
+ flags
2918
+ probability 4527516983983565041
2919
+ begin_IR
2920
+ LIR
2921
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2922
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
2923
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
2924
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
2925
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
2926
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
2927
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
2928
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
2929
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2930
+ end_IR
2931
+ end_block
2932
+ end_cfg
2933
+ begin_bytecodes
2934
+ 0: invokestatic #30 // exampleThrow:()void
2935
+ 3: goto 11
2936
+ 6: astore_0
2937
+ 7: aload_0
2938
+ 8: putstatic #53 // objectField:java.lang.Object
2939
+ 11: return
2940
+ <|@
2941
+ end_bytecodes
2942
+ begin_cfg
2943
+ name "After LinearScan"
2944
+ begin_block
2945
+ name "B0"
2946
+ from_bci -1
2947
+ to_bci -1
2948
+ predecessors
2949
+ successors "B1"
2950
+ xhandlers"B2"
2951
+ flags
2952
+ probability 4607182418800017408
2953
+ begin_IR
2954
+ LIR
2955
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2956
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
2957
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
2958
+ nr 6 <|@ st <@st|@live-base-pointers: []
2959
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
2960
+ locals: -
2961
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
2962
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
2963
+ end_IR
2964
+ end_block
2965
+ begin_block
2966
+ name "B1"
2967
+ from_bci -1
2968
+ to_bci -1
2969
+ predecessors "B0"
2970
+ successors
2971
+ xhandlers
2972
+ flags
2973
+ probability 4607182328728024861
2974
+ begin_IR
2975
+ LIR
2976
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2977
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
2978
+ end_IR
2979
+ end_block
2980
+ begin_block
2981
+ name "B2"
2982
+ from_bci -1
2983
+ to_bci -1
2984
+ predecessors "B0"
2985
+ successors "B3" "B4"
2986
+ xhandlers
2987
+ flags "ex"
2988
+ probability 4532020583610935537
2989
+ begin_IR
2990
+ LIR
2991
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
2992
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
2993
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
2994
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
2995
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
2996
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
2997
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
2998
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
2999
+ end_IR
3000
+ end_block
3001
+ begin_block
3002
+ name "B4"
3003
+ from_bci -1
3004
+ to_bci -1
3005
+ predecessors "B2"
3006
+ successors
3007
+ xhandlers
3008
+ flags
3009
+ probability 4527516983983565041
3010
+ begin_IR
3011
+ LIR
3012
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3013
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3014
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3015
+ end_IR
3016
+ end_block
3017
+ begin_block
3018
+ name "B3"
3019
+ from_bci -1
3020
+ to_bci -1
3021
+ predecessors "B2"
3022
+ successors
3023
+ xhandlers
3024
+ flags
3025
+ probability 4527516983983565041
3026
+ begin_IR
3027
+ LIR
3028
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3029
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3030
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3031
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3032
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3033
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3034
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3035
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3036
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3037
+ end_IR
3038
+ end_block
3039
+ end_cfg
3040
+ begin_bytecodes
3041
+ 0: invokestatic #30 // exampleThrow:()void
3042
+ 3: goto 11
3043
+ 6: astore_0
3044
+ 7: aload_0
3045
+ 8: putstatic #53 // objectField:java.lang.Object
3046
+ 11: return
3047
+ <|@
3048
+ end_bytecodes
3049
+ begin_cfg
3050
+ name "After LSStackSlotAllocator"
3051
+ begin_block
3052
+ name "B0"
3053
+ from_bci -1
3054
+ to_bci -1
3055
+ predecessors
3056
+ successors "B1"
3057
+ xhandlers"B2"
3058
+ flags
3059
+ probability 4607182418800017408
3060
+ begin_IR
3061
+ LIR
3062
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3063
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3064
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3065
+ nr 6 <|@ st <@st|@live-base-pointers: []
3066
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3067
+ locals: -
3068
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3069
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3070
+ end_IR
3071
+ end_block
3072
+ begin_block
3073
+ name "B1"
3074
+ from_bci -1
3075
+ to_bci -1
3076
+ predecessors "B0"
3077
+ successors
3078
+ xhandlers
3079
+ flags
3080
+ probability 4607182328728024861
3081
+ begin_IR
3082
+ LIR
3083
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3084
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3085
+ end_IR
3086
+ end_block
3087
+ begin_block
3088
+ name "B2"
3089
+ from_bci -1
3090
+ to_bci -1
3091
+ predecessors "B0"
3092
+ successors "B3" "B4"
3093
+ xhandlers
3094
+ flags "ex"
3095
+ probability 4532020583610935537
3096
+ begin_IR
3097
+ LIR
3098
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3099
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3100
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3101
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3102
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3103
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3104
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3105
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3106
+ end_IR
3107
+ end_block
3108
+ begin_block
3109
+ name "B4"
3110
+ from_bci -1
3111
+ to_bci -1
3112
+ predecessors "B2"
3113
+ successors
3114
+ xhandlers
3115
+ flags
3116
+ probability 4527516983983565041
3117
+ begin_IR
3118
+ LIR
3119
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3120
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3121
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3122
+ end_IR
3123
+ end_block
3124
+ begin_block
3125
+ name "B3"
3126
+ from_bci -1
3127
+ to_bci -1
3128
+ predecessors "B2"
3129
+ successors
3130
+ xhandlers
3131
+ flags
3132
+ probability 4527516983983565041
3133
+ begin_IR
3134
+ LIR
3135
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3136
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3137
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3138
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3139
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3140
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3141
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3142
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3143
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3144
+ end_IR
3145
+ end_block
3146
+ end_cfg
3147
+ begin_bytecodes
3148
+ 0: invokestatic #30 // exampleThrow:()void
3149
+ 3: goto 11
3150
+ 6: astore_0
3151
+ 7: aload_0
3152
+ 8: putstatic #53 // objectField:java.lang.Object
3153
+ 11: return
3154
+ <|@
3155
+ end_bytecodes
3156
+ begin_cfg
3157
+ name "After LocationMarker"
3158
+ begin_block
3159
+ name "B0"
3160
+ from_bci -1
3161
+ to_bci -1
3162
+ predecessors
3163
+ successors "B1"
3164
+ xhandlers"B2"
3165
+ flags
3166
+ probability 4607182418800017408
3167
+ begin_IR
3168
+ LIR
3169
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3170
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3171
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3172
+ nr 6 <|@ st <@st|@reference-map: []
3173
+ live-base-pointers: []
3174
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3175
+ locals: -
3176
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3177
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3178
+ end_IR
3179
+ end_block
3180
+ begin_block
3181
+ name "B1"
3182
+ from_bci -1
3183
+ to_bci -1
3184
+ predecessors "B0"
3185
+ successors
3186
+ xhandlers
3187
+ flags
3188
+ probability 4607182328728024861
3189
+ begin_IR
3190
+ LIR
3191
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3192
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3193
+ end_IR
3194
+ end_block
3195
+ begin_block
3196
+ name "B2"
3197
+ from_bci -1
3198
+ to_bci -1
3199
+ predecessors "B0"
3200
+ successors "B3" "B4"
3201
+ xhandlers
3202
+ flags "ex"
3203
+ probability 4532020583610935537
3204
+ begin_IR
3205
+ LIR
3206
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3207
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3208
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3209
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3210
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3211
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3212
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3213
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3214
+ end_IR
3215
+ end_block
3216
+ begin_block
3217
+ name "B4"
3218
+ from_bci -1
3219
+ to_bci -1
3220
+ predecessors "B2"
3221
+ successors
3222
+ xhandlers
3223
+ flags
3224
+ probability 4527516983983565041
3225
+ begin_IR
3226
+ LIR
3227
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3228
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3229
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3230
+ end_IR
3231
+ end_block
3232
+ begin_block
3233
+ name "B3"
3234
+ from_bci -1
3235
+ to_bci -1
3236
+ predecessors "B2"
3237
+ successors
3238
+ xhandlers
3239
+ flags
3240
+ probability 4527516983983565041
3241
+ begin_IR
3242
+ LIR
3243
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3244
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3245
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3246
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3247
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3248
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3249
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3250
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3251
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3252
+ end_IR
3253
+ end_block
3254
+ end_cfg
3255
+ begin_bytecodes
3256
+ 0: invokestatic #30 // exampleThrow:()void
3257
+ 3: goto 11
3258
+ 6: astore_0
3259
+ 7: aload_0
3260
+ 8: putstatic #53 // objectField:java.lang.Object
3261
+ 11: return
3262
+ <|@
3263
+ end_bytecodes
3264
+ begin_cfg
3265
+ name "After AllocationStage"
3266
+ begin_block
3267
+ name "B0"
3268
+ from_bci -1
3269
+ to_bci -1
3270
+ predecessors
3271
+ successors "B1"
3272
+ xhandlers"B2"
3273
+ flags
3274
+ probability 4607182418800017408
3275
+ begin_IR
3276
+ LIR
3277
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3278
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3279
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3280
+ nr 6 <|@ st <@st|@reference-map: []
3281
+ live-base-pointers: []
3282
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3283
+ locals: -
3284
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3285
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3286
+ end_IR
3287
+ end_block
3288
+ begin_block
3289
+ name "B1"
3290
+ from_bci -1
3291
+ to_bci -1
3292
+ predecessors "B0"
3293
+ successors
3294
+ xhandlers
3295
+ flags
3296
+ probability 4607182328728024861
3297
+ begin_IR
3298
+ LIR
3299
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3300
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3301
+ end_IR
3302
+ end_block
3303
+ begin_block
3304
+ name "B2"
3305
+ from_bci -1
3306
+ to_bci -1
3307
+ predecessors "B0"
3308
+ successors "B3" "B4"
3309
+ xhandlers
3310
+ flags "ex"
3311
+ probability 4532020583610935537
3312
+ begin_IR
3313
+ LIR
3314
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3315
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3316
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3317
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3318
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3319
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3320
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3321
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3322
+ end_IR
3323
+ end_block
3324
+ begin_block
3325
+ name "B4"
3326
+ from_bci -1
3327
+ to_bci -1
3328
+ predecessors "B2"
3329
+ successors
3330
+ xhandlers
3331
+ flags
3332
+ probability 4527516983983565041
3333
+ begin_IR
3334
+ LIR
3335
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3336
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3337
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3338
+ end_IR
3339
+ end_block
3340
+ begin_block
3341
+ name "B3"
3342
+ from_bci -1
3343
+ to_bci -1
3344
+ predecessors "B2"
3345
+ successors
3346
+ xhandlers
3347
+ flags
3348
+ probability 4527516983983565041
3349
+ begin_IR
3350
+ LIR
3351
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3352
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3353
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3354
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3355
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3356
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3357
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3358
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3359
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3360
+ end_IR
3361
+ end_block
3362
+ end_cfg
3363
+ begin_bytecodes
3364
+ 0: invokestatic #30 // exampleThrow:()void
3365
+ 3: goto 11
3366
+ 6: astore_0
3367
+ 7: aload_0
3368
+ 8: putstatic #53 // objectField:java.lang.Object
3369
+ 11: return
3370
+ <|@
3371
+ end_bytecodes
3372
+ begin_cfg
3373
+ name "After EdgeMoveOptimizer"
3374
+ begin_block
3375
+ name "B0"
3376
+ from_bci -1
3377
+ to_bci -1
3378
+ predecessors
3379
+ successors "B1"
3380
+ xhandlers"B2"
3381
+ flags
3382
+ probability 4607182418800017408
3383
+ begin_IR
3384
+ LIR
3385
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3386
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3387
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3388
+ nr 6 <|@ st <@st|@reference-map: []
3389
+ live-base-pointers: []
3390
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3391
+ locals: -
3392
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3393
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3394
+ end_IR
3395
+ end_block
3396
+ begin_block
3397
+ name "B1"
3398
+ from_bci -1
3399
+ to_bci -1
3400
+ predecessors "B0"
3401
+ successors
3402
+ xhandlers
3403
+ flags
3404
+ probability 4607182328728024861
3405
+ begin_IR
3406
+ LIR
3407
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3408
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3409
+ end_IR
3410
+ end_block
3411
+ begin_block
3412
+ name "B2"
3413
+ from_bci -1
3414
+ to_bci -1
3415
+ predecessors "B0"
3416
+ successors "B3" "B4"
3417
+ xhandlers
3418
+ flags "ex"
3419
+ probability 4532020583610935537
3420
+ begin_IR
3421
+ LIR
3422
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3423
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3424
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3425
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3426
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3427
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3428
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3429
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3430
+ end_IR
3431
+ end_block
3432
+ begin_block
3433
+ name "B4"
3434
+ from_bci -1
3435
+ to_bci -1
3436
+ predecessors "B2"
3437
+ successors
3438
+ xhandlers
3439
+ flags
3440
+ probability 4527516983983565041
3441
+ begin_IR
3442
+ LIR
3443
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3444
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3445
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3446
+ end_IR
3447
+ end_block
3448
+ begin_block
3449
+ name "B3"
3450
+ from_bci -1
3451
+ to_bci -1
3452
+ predecessors "B2"
3453
+ successors
3454
+ xhandlers
3455
+ flags
3456
+ probability 4527516983983565041
3457
+ begin_IR
3458
+ LIR
3459
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3460
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3461
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3462
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3463
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3464
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3465
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3466
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3467
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3468
+ end_IR
3469
+ end_block
3470
+ end_cfg
3471
+ begin_bytecodes
3472
+ 0: invokestatic #30 // exampleThrow:()void
3473
+ 3: goto 11
3474
+ 6: astore_0
3475
+ 7: aload_0
3476
+ 8: putstatic #53 // objectField:java.lang.Object
3477
+ 11: return
3478
+ <|@
3479
+ end_bytecodes
3480
+ begin_cfg
3481
+ name "After ControlFlowOptimizer"
3482
+ begin_block
3483
+ name "B0"
3484
+ from_bci -1
3485
+ to_bci -1
3486
+ predecessors
3487
+ successors "B1"
3488
+ xhandlers"B2"
3489
+ flags
3490
+ probability 4607182418800017408
3491
+ begin_IR
3492
+ LIR
3493
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3494
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3495
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3496
+ nr 6 <|@ st <@st|@reference-map: []
3497
+ live-base-pointers: []
3498
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3499
+ locals: -
3500
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3501
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3502
+ end_IR
3503
+ end_block
3504
+ begin_block
3505
+ name "B1"
3506
+ from_bci -1
3507
+ to_bci -1
3508
+ predecessors "B0"
3509
+ successors
3510
+ xhandlers
3511
+ flags
3512
+ probability 4607182328728024861
3513
+ begin_IR
3514
+ LIR
3515
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3516
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3517
+ end_IR
3518
+ end_block
3519
+ begin_block
3520
+ name "B2"
3521
+ from_bci -1
3522
+ to_bci -1
3523
+ predecessors "B0"
3524
+ successors "B3" "B4"
3525
+ xhandlers
3526
+ flags "ex"
3527
+ probability 4532020583610935537
3528
+ begin_IR
3529
+ LIR
3530
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3531
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3532
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3533
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3534
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3535
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3536
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3537
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3538
+ end_IR
3539
+ end_block
3540
+ begin_block
3541
+ name "B4"
3542
+ from_bci -1
3543
+ to_bci -1
3544
+ predecessors "B2"
3545
+ successors
3546
+ xhandlers
3547
+ flags
3548
+ probability 4527516983983565041
3549
+ begin_IR
3550
+ LIR
3551
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3552
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3553
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3554
+ end_IR
3555
+ end_block
3556
+ begin_block
3557
+ name "B3"
3558
+ from_bci -1
3559
+ to_bci -1
3560
+ predecessors "B2"
3561
+ successors
3562
+ xhandlers
3563
+ flags
3564
+ probability 4527516983983565041
3565
+ begin_IR
3566
+ LIR
3567
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3568
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3569
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3570
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3571
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3572
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3573
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3574
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3575
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3576
+ end_IR
3577
+ end_block
3578
+ end_cfg
3579
+ begin_bytecodes
3580
+ 0: invokestatic #30 // exampleThrow:()void
3581
+ 3: goto 11
3582
+ 6: astore_0
3583
+ 7: aload_0
3584
+ 8: putstatic #53 // objectField:java.lang.Object
3585
+ 11: return
3586
+ <|@
3587
+ end_bytecodes
3588
+ begin_cfg
3589
+ name "After RedundantMoveElimination"
3590
+ begin_block
3591
+ name "B0"
3592
+ from_bci -1
3593
+ to_bci -1
3594
+ predecessors
3595
+ successors "B1"
3596
+ xhandlers"B2"
3597
+ flags
3598
+ probability 4607182418800017408
3599
+ begin_IR
3600
+ LIR
3601
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3602
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3603
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3604
+ nr 6 <|@ st <@st|@reference-map: []
3605
+ live-base-pointers: []
3606
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3607
+ locals: -
3608
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3609
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3610
+ end_IR
3611
+ end_block
3612
+ begin_block
3613
+ name "B1"
3614
+ from_bci -1
3615
+ to_bci -1
3616
+ predecessors "B0"
3617
+ successors
3618
+ xhandlers
3619
+ flags
3620
+ probability 4607182328728024861
3621
+ begin_IR
3622
+ LIR
3623
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3624
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3625
+ end_IR
3626
+ end_block
3627
+ begin_block
3628
+ name "B2"
3629
+ from_bci -1
3630
+ to_bci -1
3631
+ predecessors "B0"
3632
+ successors "B3" "B4"
3633
+ xhandlers
3634
+ flags "ex"
3635
+ probability 4532020583610935537
3636
+ begin_IR
3637
+ LIR
3638
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3639
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3640
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3641
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3642
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3643
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3644
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3645
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3646
+ end_IR
3647
+ end_block
3648
+ begin_block
3649
+ name "B4"
3650
+ from_bci -1
3651
+ to_bci -1
3652
+ predecessors "B2"
3653
+ successors
3654
+ xhandlers
3655
+ flags
3656
+ probability 4527516983983565041
3657
+ begin_IR
3658
+ LIR
3659
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3660
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3661
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3662
+ end_IR
3663
+ end_block
3664
+ begin_block
3665
+ name "B3"
3666
+ from_bci -1
3667
+ to_bci -1
3668
+ predecessors "B2"
3669
+ successors
3670
+ xhandlers
3671
+ flags
3672
+ probability 4527516983983565041
3673
+ begin_IR
3674
+ LIR
3675
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3676
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3677
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3678
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3679
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3680
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3681
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3682
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3683
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3684
+ end_IR
3685
+ end_block
3686
+ end_cfg
3687
+ begin_bytecodes
3688
+ 0: invokestatic #30 // exampleThrow:()void
3689
+ 3: goto 11
3690
+ 6: astore_0
3691
+ 7: aload_0
3692
+ 8: putstatic #53 // objectField:java.lang.Object
3693
+ 11: return
3694
+ <|@
3695
+ end_bytecodes
3696
+ begin_cfg
3697
+ name "After NullCheckOptimizer"
3698
+ begin_block
3699
+ name "B0"
3700
+ from_bci -1
3701
+ to_bci -1
3702
+ predecessors
3703
+ successors "B1"
3704
+ xhandlers"B2"
3705
+ flags
3706
+ probability 4607182418800017408
3707
+ begin_IR
3708
+ LIR
3709
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3710
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3711
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3712
+ nr 6 <|@ st <@st|@reference-map: []
3713
+ live-base-pointers: []
3714
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3715
+ locals: -
3716
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3717
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3718
+ end_IR
3719
+ end_block
3720
+ begin_block
3721
+ name "B1"
3722
+ from_bci -1
3723
+ to_bci -1
3724
+ predecessors "B0"
3725
+ successors
3726
+ xhandlers
3727
+ flags
3728
+ probability 4607182328728024861
3729
+ begin_IR
3730
+ LIR
3731
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3732
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3733
+ end_IR
3734
+ end_block
3735
+ begin_block
3736
+ name "B2"
3737
+ from_bci -1
3738
+ to_bci -1
3739
+ predecessors "B0"
3740
+ successors "B3" "B4"
3741
+ xhandlers
3742
+ flags "ex"
3743
+ probability 4532020583610935537
3744
+ begin_IR
3745
+ LIR
3746
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3747
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3748
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3749
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3750
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3751
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3752
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3753
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3754
+ end_IR
3755
+ end_block
3756
+ begin_block
3757
+ name "B4"
3758
+ from_bci -1
3759
+ to_bci -1
3760
+ predecessors "B2"
3761
+ successors
3762
+ xhandlers
3763
+ flags
3764
+ probability 4527516983983565041
3765
+ begin_IR
3766
+ LIR
3767
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3768
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3769
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3770
+ end_IR
3771
+ end_block
3772
+ begin_block
3773
+ name "B3"
3774
+ from_bci -1
3775
+ to_bci -1
3776
+ predecessors "B2"
3777
+ successors
3778
+ xhandlers
3779
+ flags
3780
+ probability 4527516983983565041
3781
+ begin_IR
3782
+ LIR
3783
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3784
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3785
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3786
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3787
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3788
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3789
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3790
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3791
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3792
+ end_IR
3793
+ end_block
3794
+ end_cfg
3795
+ begin_bytecodes
3796
+ 0: invokestatic #30 // exampleThrow:()void
3797
+ 3: goto 11
3798
+ 6: astore_0
3799
+ 7: aload_0
3800
+ 8: putstatic #53 // objectField:java.lang.Object
3801
+ 11: return
3802
+ <|@
3803
+ end_bytecodes
3804
+ begin_cfg
3805
+ name "After StackMoveOptimization"
3806
+ begin_block
3807
+ name "B0"
3808
+ from_bci -1
3809
+ to_bci -1
3810
+ predecessors
3811
+ successors "B1"
3812
+ xhandlers"B2"
3813
+ flags
3814
+ probability 4607182418800017408
3815
+ begin_IR
3816
+ LIR
3817
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3818
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3819
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3820
+ nr 6 <|@ st <@st|@reference-map: []
3821
+ live-base-pointers: []
3822
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3823
+ locals: -
3824
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3825
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3826
+ end_IR
3827
+ end_block
3828
+ begin_block
3829
+ name "B1"
3830
+ from_bci -1
3831
+ to_bci -1
3832
+ predecessors "B0"
3833
+ successors
3834
+ xhandlers
3835
+ flags
3836
+ probability 4607182328728024861
3837
+ begin_IR
3838
+ LIR
3839
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3840
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3841
+ end_IR
3842
+ end_block
3843
+ begin_block
3844
+ name "B2"
3845
+ from_bci -1
3846
+ to_bci -1
3847
+ predecessors "B0"
3848
+ successors "B3" "B4"
3849
+ xhandlers
3850
+ flags "ex"
3851
+ probability 4532020583610935537
3852
+ begin_IR
3853
+ LIR
3854
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3855
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3856
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3857
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3858
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3859
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3860
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3861
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3862
+ end_IR
3863
+ end_block
3864
+ begin_block
3865
+ name "B4"
3866
+ from_bci -1
3867
+ to_bci -1
3868
+ predecessors "B2"
3869
+ successors
3870
+ xhandlers
3871
+ flags
3872
+ probability 4527516983983565041
3873
+ begin_IR
3874
+ LIR
3875
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3876
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3877
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3878
+ end_IR
3879
+ end_block
3880
+ begin_block
3881
+ name "B3"
3882
+ from_bci -1
3883
+ to_bci -1
3884
+ predecessors "B2"
3885
+ successors
3886
+ xhandlers
3887
+ flags
3888
+ probability 4527516983983565041
3889
+ begin_IR
3890
+ LIR
3891
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3892
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
3893
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
3894
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
3895
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
3896
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
3897
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
3898
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
3899
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3900
+ end_IR
3901
+ end_block
3902
+ end_cfg
3903
+ begin_bytecodes
3904
+ 0: invokestatic #30 // exampleThrow:()void
3905
+ 3: goto 11
3906
+ 6: astore_0
3907
+ 7: aload_0
3908
+ 8: putstatic #53 // objectField:java.lang.Object
3909
+ 11: return
3910
+ <|@
3911
+ end_bytecodes
3912
+ begin_cfg
3913
+ name "After PostAllocationOptimizationStage"
3914
+ begin_block
3915
+ name "B0"
3916
+ from_bci -1
3917
+ to_bci -1
3918
+ predecessors
3919
+ successors "B1"
3920
+ xhandlers"B2"
3921
+ flags
3922
+ probability 4607182418800017408
3923
+ begin_IR
3924
+ LIR
3925
+ nr 0 <|@ instruction [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3926
+ nr 2 <|@ instruction stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
3927
+ nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <|@ <|@
3928
+ nr 6 <|@ st <@st|@reference-map: []
3929
+ live-base-pointers: []
3930
+ JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0]
3931
+ locals: -
3932
+ >@ <|@ instruction - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <|@ <|@
3933
+ nr 8 <|@ instruction JUMP ~[] destination: B0 -> B1 <|@ <|@
3934
+ end_IR
3935
+ end_block
3936
+ begin_block
3937
+ name "B1"
3938
+ from_bci -1
3939
+ to_bci -1
3940
+ predecessors "B0"
3941
+ successors
3942
+ xhandlers
3943
+ flags
3944
+ probability 4607182328728024861
3945
+ begin_IR
3946
+ LIR
3947
+ nr 10 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3948
+ nr 12 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
3949
+ end_IR
3950
+ end_block
3951
+ begin_block
3952
+ name "B2"
3953
+ from_bci -1
3954
+ to_bci -1
3955
+ predecessors "B0"
3956
+ successors "B3" "B4"
3957
+ xhandlers
3958
+ flags "ex"
3959
+ probability 4532020583610935537
3960
+ begin_IR
3961
+ LIR
3962
+ nr 14 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3963
+ nr 16 <|@ instruction r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <|@ <|@
3964
+ nr 18 <|@ instruction MOV [r15|QWORD + 704] y: 0 size: QWORD <|@ <|@
3965
+ nr 20 <|@ instruction MOV [r15|QWORD + 712] y: 0 size: QWORD <|@ <|@
3966
+ nr 22 <|@ instruction rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <|@ <|@
3967
+ nr 24 <|@ instruction r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <|@ <|@
3968
+ nr 26 <|@ instruction CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <|@ <|@
3969
+ nr 28 <|@ instruction BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <|@ <|@
3970
+ end_IR
3971
+ end_block
3972
+ begin_block
3973
+ name "B4"
3974
+ from_bci -1
3975
+ to_bci -1
3976
+ predecessors "B2"
3977
+ successors
3978
+ xhandlers
3979
+ flags
3980
+ probability 4527516983983565041
3981
+ begin_IR
3982
+ LIR
3983
+ nr 30 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
3984
+ nr 32 <|@ instruction rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <|@ <|@
3985
+ nr 34 <|@ instruction UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <|@ <|@
3986
+ end_IR
3987
+ end_block
3988
+ begin_block
3989
+ name "B3"
3990
+ from_bci -1
3991
+ to_bci -1
3992
+ predecessors "B2"
3993
+ successors
3994
+ xhandlers
3995
+ flags
3996
+ probability 4527516983983565041
3997
+ begin_IR
3998
+ LIR
3999
+ nr 36 <|@ instruction [] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
4000
+ nr 38 <|@ instruction r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <|@ <|@
4001
+ nr 40 <|@ instruction r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <|@ <|@
4002
+ nr 42 <|@ instruction MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <|@ <|@
4003
+ nr 44 <|@ instruction MEMBAR barriers: 4 <|@ <|@
4004
+ nr 46 <|@ instruction r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <|@ <|@
4005
+ nr 48 <|@ instruction r10|QWORD = MOVE input: long[4531113984|0x10e135000] <|@ <|@
4006
+ nr 50 <|@ instruction MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <|@ <|@
4007
+ nr 52 <|@ instruction RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <|@ <|@
4008
+ end_IR
4009
+ end_block
4010
+ end_cfg
4011
+ begin_bytecodes
4012
+ 0: invokestatic #30 // exampleThrow:()void
4013
+ 3: goto 11
4014
+ 6: astore_0
4015
+ 7: aload_0
4016
+ 8: putstatic #53 // objectField:java.lang.Object
4017
+ 11: return
4018
+ <|@
4019
+ end_bytecodes
4020
+ begin_cfg
4021
+ name "After code generation"
4022
+ end_cfg
4023
+ begin_nmethod
4024
+ <<<HexCodeFile
4025
+ Platform AMD64 64 <||@
4026
+ HexCode 0 89842400c0feff4883ec1848896c24100f1f8000000000e80000000090488b6c24104883c418850500000000c5f877c34d8b97c002000049c787c00200000000000049c787c802000000000000418b720849bbaddeaddeaddeadde4c3b1cf5400000000f8416000000498bf2488b6c24104883c418488b1424e982ffffff9049bbaddeaddeaddeadde49c1ea0345895374f08304240049c1eb0949ba0050130e0100000043c6041300488b6c24104883c418850500000000c5f877c3e80000000090e80000000090 <||@
4027
+ Comment 0 [stack overflow check] <||@
4028
+ Comment 0 ------ Exception Handlers ------
4029
+ 28 -> 48
4030
+ <||@
4031
+ Comment 0 3 <||@
4032
+ Comment 0 1 <||@
4033
+ Comment 11 block B0 null <||@
4034
+ Comment 11 0 [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
4035
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
4036
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <||@
4037
+ Comment 16 6 - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <||@
4038
+ Comment 16 8 <||@
4039
+ Comment 23 {HotSpotMethod<JavaExamples.exampleThrow()>} <||@
4040
+ Comment 28 [exception -> 48] <||@
4041
+ Comment 28 []at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0, duringCall: true, rethrow: false]
4042
+ |0
4043
+ locals: |- <||@
4044
+ Comment 29 8 JUMP ~[] destination: B0 -> B1 <||@
4045
+ Comment 29 block B1 null <||@
4046
+ Comment 29 10 [] = LABEL numbPhis: 0 align: false label: ? <||@
4047
+ Comment 29 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
4048
+ Comment 38 12 <||@
4049
+ Comment 48 block B2 null <||@
4050
+ Comment 48 14 [] = LABEL numbPhis: 0 align: false label: ? <||@
4051
+ Comment 48 16 r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <||@
4052
+ Comment 48 [exception handler for 28] <||@
4053
+ Comment 55 18 MOV [r15|QWORD + 704] y: 0 size: QWORD <||@
4054
+ Comment 66 20 MOV [r15|QWORD + 712] y: 0 size: QWORD <||@
4055
+ Comment 77 22 rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <||@
4056
+ Comment 81 24 r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <||@
4057
+ Comment 81 {meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}} <||@
4058
+ Comment 91 26 CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <||@
4059
+ Comment 99 28 BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <||@
4060
+ Comment 105 block B4 null <||@
4061
+ Comment 105 30 [] = LABEL numbPhis: 0 align: false label: ? <||@
4062
+ Comment 105 32 rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <||@
4063
+ Comment 108 34 UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <||@
4064
+ Comment 121 {Stub<UnwindExceptionToCallerStub.unwindExceptionToCaller>@0x112e24220:CallingConvention[rsi|QWORD[.], rdx|QWORD]:CallingConvention[rsi|QWORD[.], rdx|QWORD]; temps=rdi|ILLEGAL,rsi|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,r8|ILLEGAL,r9|ILLEGAL,r10|ILLEGAL,r11|ILLEGAL,rbp|ILLEGAL,rbx|ILLEGAL,r13|ILLEGAL,r14|ILLEGAL} <||@
4065
+ Comment 127 block B3 null <||@
4066
+ Comment 127 36 [] = LABEL numbPhis: 0 align: false label: ? <||@
4067
+ Comment 127 38 r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
4068
+ Comment 127 {Object[Instance<java.lang.Class>]} <||@
4069
+ Comment 137 40 r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <||@
4070
+ Comment 141 42 MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <||@
4071
+ Comment 145 44 MEMBAR barriers: 4 <||@
4072
+ Comment 150 46 r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <||@
4073
+ Comment 154 48 r10|QWORD = MOVE input: long[4531113984|0x10e135000] <||@
4074
+ Comment 164 50 MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <||@
4075
+ Comment 169 52 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
4076
+ Comment 178 12 <||@
4077
+ Comment 188 {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} <||@
4078
+ Comment 188 4 <||@
4079
+ Comment 194 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
4080
+ Comment 194 5 <||@
4081
+ HexCodeFile>>> <|@
4082
+ end_nmethod
4083
+ begin_compilation
4084
+ name " HotSpotCompilation-358[JavaExamples.exampleCatch()]"
4085
+ method "HotSpotCompilation-358[JavaExamples.exampleCatch()]"
4086
+ date 1583364092048
4087
+ end_compilation
4088
+ begin_cfg
4089
+ name "After code installation"
4090
+ end_cfg
4091
+ begin_nmethod
4092
+ <<<HexCodeFile
4093
+ Platform AMD64 64 <||@
4094
+ HexCode 112e36f60 89842400c0feff4883ec1848896c24100f1f8000000000e824b8ffff90488b6c24104883c41885057a4093fbc5f877c34d8b97c002000049c787c00200000000000049c787c802000000000000418b720849bb283100c0070000004c3b1cf5400000000f8416000000498bf2488b6c24104883c418488b1424e942d2feff9049bbb0275f150700000049c1ea0345895374f08304240049c1eb0949ba0050130e0100000043c6041300488b6c24104883c4188505ee3f93fbc5f877c3e8ffd2feff90e819d2eaff90f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f448bb0000000000000000e9fbfffffff4 <||@
4095
+ Comment 0 [stack overflow check] <||@
4096
+ Comment 0 ------ Exception Handlers ------
4097
+ 28 -> 48
4098
+ <||@
4099
+ Comment 0 3 <||@
4100
+ Comment 0 1 <||@
4101
+ Comment 11 block B0 null <||@
4102
+ Comment 11 0 [rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
4103
+ Comment 11 2 stack:16|QWORD = MOVE rbp|QWORD moveKind: QWORD <||@
4104
+ Comment 16 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@138c66a38 slotKind: QWORD <||@
4105
+ Comment 16 6 - = CALL_DIRECT [] [] callTarget: HotSpotMethod<JavaExamples.exampleThrow()> invokeKind: Static config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 state [bci:0] <||@
4106
+ Comment 16 8 <||@
4107
+ Comment 23 {HotSpotMethod<JavaExamples.exampleThrow()>} <||@
4108
+ Comment 28 [exception -> 48] <||@
4109
+ Comment 28 []at JavaExamples.exampleCatch(JavaExamples.java:278) [bci: 0, duringCall: true, rethrow: false]
4110
+ |0
4111
+ locals: |- <||@
4112
+ Comment 29 8 JUMP ~[] destination: B0 -> B1 <||@
4113
+ Comment 29 block B1 null <||@
4114
+ Comment 29 10 [] = LABEL numbPhis: 0 align: false label: ? <||@
4115
+ Comment 29 12 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
4116
+ Comment 38 12 <||@
4117
+ Comment 48 block B2 null <||@
4118
+ Comment 48 14 [] = LABEL numbPhis: 0 align: false label: ? <||@
4119
+ Comment 48 16 r10|QWORD[.] = MOV [r15|QWORD + 704] size: QWORD <||@
4120
+ Comment 48 [exception handler for 28] <||@
4121
+ Comment 55 18 MOV [r15|QWORD + 704] y: 0 size: QWORD <||@
4122
+ Comment 66 20 MOV [r15|QWORD + 712] y: 0 size: QWORD <||@
4123
+ Comment 77 22 rsi|DWORD = MOV [r10|QWORD[.] + 8] size: DWORD <||@
4124
+ Comment 81 24 r11|QWORD = HOTSPOTLOADMETASPACECONSTANT input: meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>} <||@
4125
+ Comment 81 {meta{HotSpotType<Ljava/lang/RuntimeException;, resolved>}} <||@
4126
+ Comment 91 26 CMP (x: r11|QWORD, y: [rsi|DWORD * 8 + 64]) size: QWORD <||@
4127
+ Comment 99 28 BRANCH trueDestinationProbability: 0.5 condition: = trueDestination: B2 -> B3 falseDestination: B2 -> B4 <||@
4128
+ Comment 105 block B4 null <||@
4129
+ Comment 105 30 [] = LABEL numbPhis: 0 align: false label: ? <||@
4130
+ Comment 105 32 rsi|QWORD[.] = MOVE r10|QWORD[.] moveKind: QWORD <||@
4131
+ Comment 108 34 UNWIND (savedRbp: stack:16|QWORD, exception: rsi|QWORD[.]) <||@
4132
+ Comment 121 {Stub<UnwindExceptionToCallerStub.unwindExceptionToCaller>@0x112e24220:CallingConvention[rsi|QWORD[.], rdx|QWORD]:CallingConvention[rsi|QWORD[.], rdx|QWORD]; temps=rdi|ILLEGAL,rsi|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,r8|ILLEGAL,r9|ILLEGAL,r10|ILLEGAL,r11|ILLEGAL,rbp|ILLEGAL,rbx|ILLEGAL,r13|ILLEGAL,r14|ILLEGAL} <||@
4133
+ Comment 127 block B3 null <||@
4134
+ Comment 127 36 [] = LABEL numbPhis: 0 align: false label: ? <||@
4135
+ Comment 127 38 r11|QWORD[.] = HOTSPOTLOADOBJECTCONSTANT input: Object[Instance<java.lang.Class>] <||@
4136
+ Comment 127 {Object[Instance<java.lang.Class>]} <||@
4137
+ Comment 137 40 r10|DWORD[.] = COMPRESSPOINTER (input: r10|QWORD[.], ~baseRegister: r12|ILLEGAL) nonNull: true lirKindTool: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLIRKindTool@138c66c68 encoding: base: 0 shift: 3 <||@
4138
+ Comment 141 42 MOV (x: [r11|QWORD[.] + 116], y: r10|DWORD[.]) size: DWORD <||@
4139
+ Comment 145 44 MEMBAR barriers: 4 <||@
4140
+ Comment 150 46 r11|QWORD[*] = SHR r11|QWORD[.] y: 9 size: QWORD <||@
4141
+ Comment 154 48 r10|QWORD = MOVE input: long[4531113984|0x10e135000] <||@
4142
+ Comment 164 50 MOVB [r11|QWORD[*] + r10|QWORD * 1] y: 0 size: BYTE <||@
4143
+ Comment 169 52 RETURN (savedRbp: stack:16|QWORD, value: -) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@13ae06790 <||@
4144
+ Comment 178 12 <||@
4145
+ Comment 188 {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} <||@
4146
+ Comment 188 4 <||@
4147
+ Comment 194 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
4148
+ Comment 194 5 <||@
4149
+ HexCodeFile>>> <|@
4150
+ end_nmethod