seafoam 0.3 → 0.8

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