seafoam 0.2

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