seafoam 0.4 → 0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/workflows.yml +39 -0
  3. data/.rubocop.yml +1 -1
  4. data/README.md +75 -2
  5. data/bin/bgv2isabelle +16 -45
  6. data/bin/bgv2json +18 -36
  7. data/bin/cfg2asm +24 -0
  8. data/bin/seafoam +1 -1
  9. data/demos/box-unbox-stats +65 -0
  10. data/docs/getting-graphs.md +4 -0
  11. data/examples/fib-java.bgv.gz +0 -0
  12. data/examples/fib.js +1 -1
  13. data/examples/java/JavaExamples.java +1 -1
  14. data/examples/ruby/clamps.rb +20 -0
  15. data/examples/ruby/graal.patch +15 -0
  16. data/examples/ruby/ruby_examples.rb +278 -0
  17. data/lib/seafoam.rb +5 -0
  18. data/lib/seafoam/annotators/graal.rb +1 -1
  19. data/lib/seafoam/cfg/cfg_parser.rb +93 -0
  20. data/lib/seafoam/cfg/disassembler.rb +70 -0
  21. data/lib/seafoam/commands.rb +185 -29
  22. data/lib/seafoam/graal/source.rb +23 -0
  23. data/lib/seafoam/isabelle_writer.rb +46 -0
  24. data/lib/seafoam/json_writer.rb +58 -0
  25. data/lib/seafoam/version.rb +1 -1
  26. data/seafoam.gemspec +2 -1
  27. data/spec/seafoam/annotators/graal_spec.rb +7 -7
  28. data/spec/seafoam/bgv/bgv_parser_spec.rb +2 -2
  29. data/spec/seafoam/cfg/cfg_parser_spec.rb +21 -0
  30. data/spec/seafoam/cfg/disassembler_spec.rb +32 -0
  31. data/spec/seafoam/command_spec.rb +78 -30
  32. data/spec/seafoam/json_writer_spec.rb +14 -0
  33. data/spec/seafoam/spec_helpers.rb +4 -0
  34. data/tools/render-all +2 -2
  35. metadata +36 -102
  36. data/.github/workflows/rubocop.yml +0 -10
  37. data/.github/workflows/specs.yml +0 -19
  38. data/examples/fib-java.bgv +0 -0
  39. data/examples/fib-js.bgv +0 -0
  40. data/examples/fib-ruby.bgv +0 -0
  41. data/examples/identity.bgv +0 -0
  42. data/examples/java/exampleArithOperator.bgv +0 -0
  43. data/examples/java/exampleArithOperator.cfg +0 -925
  44. data/examples/java/exampleArrayAllocation.bgv +0 -0
  45. data/examples/java/exampleArrayAllocation.cfg +0 -5268
  46. data/examples/java/exampleArrayRead.bgv +0 -0
  47. data/examples/java/exampleArrayRead.cfg +0 -2263
  48. data/examples/java/exampleArrayWrite.bgv +0 -0
  49. data/examples/java/exampleArrayWrite.cfg +0 -2315
  50. data/examples/java/exampleCatch.bgv +0 -0
  51. data/examples/java/exampleCatch.cfg +0 -4150
  52. data/examples/java/exampleCompareOperator.bgv +0 -0
  53. data/examples/java/exampleCompareOperator.cfg +0 -1109
  54. data/examples/java/exampleDoubleSynchronized.bgv +0 -0
  55. data/examples/java/exampleDoubleSynchronized.cfg +0 -26497
  56. data/examples/java/exampleExactArith.bgv +0 -0
  57. data/examples/java/exampleExactArith.cfg +0 -1888
  58. data/examples/java/exampleFieldRead.bgv +0 -0
  59. data/examples/java/exampleFieldRead.cfg +0 -1228
  60. data/examples/java/exampleFieldWrite.bgv +0 -0
  61. data/examples/java/exampleFieldWrite.cfg +0 -1102
  62. data/examples/java/exampleFor.bgv +0 -0
  63. data/examples/java/exampleFor.cfg +0 -3936
  64. data/examples/java/exampleFullEscape.bgv +0 -0
  65. data/examples/java/exampleFullEscape.cfg +0 -5893
  66. data/examples/java/exampleIf.bgv +0 -0
  67. data/examples/java/exampleIf.cfg +0 -2462
  68. data/examples/java/exampleIfNeverTaken.bgv +0 -0
  69. data/examples/java/exampleIfNeverTaken.cfg +0 -2476
  70. data/examples/java/exampleInstanceOfManyImpls.bgv +0 -0
  71. data/examples/java/exampleInstanceOfManyImpls.cfg +0 -6391
  72. data/examples/java/exampleInstanceOfOneImpl.bgv +0 -0
  73. data/examples/java/exampleInstanceOfOneImpl.cfg +0 -2604
  74. data/examples/java/exampleIntSwitch.bgv +0 -0
  75. data/examples/java/exampleIntSwitch.cfg +0 -3121
  76. data/examples/java/exampleInterfaceCallManyImpls.bgv +0 -0
  77. data/examples/java/exampleInterfaceCallManyImpls.cfg +0 -1358
  78. data/examples/java/exampleInterfaceCallOneImpl.bgv +0 -0
  79. data/examples/java/exampleInterfaceCallOneImpl.cfg +0 -3859
  80. data/examples/java/exampleLocalInstanceOf.bgv +0 -0
  81. data/examples/java/exampleLocalInstanceOf.cfg +0 -5276
  82. data/examples/java/exampleLocalSynchronized.bgv +0 -0
  83. data/examples/java/exampleLocalSynchronized.cfg +0 -1364
  84. data/examples/java/exampleLocalVariables.bgv +0 -0
  85. data/examples/java/exampleLocalVariables.cfg +0 -1195
  86. data/examples/java/exampleLocalVariablesState.bgv +0 -0
  87. data/examples/java/exampleLocalVariablesState.cfg +0 -1673
  88. data/examples/java/exampleNestedWhile.bgv +0 -0
  89. data/examples/java/exampleNestedWhile.cfg +0 -15499
  90. data/examples/java/exampleNestedWhileBreak.bgv +0 -0
  91. data/examples/java/exampleNestedWhileBreak.cfg +0 -11162
  92. data/examples/java/exampleNoEscape.bgv +0 -0
  93. data/examples/java/exampleNoEscape.cfg +0 -974
  94. data/examples/java/exampleObjectAllocation.bgv +0 -0
  95. data/examples/java/exampleObjectAllocation.cfg +0 -5287
  96. data/examples/java/examplePartialEscape.bgv +0 -0
  97. data/examples/java/examplePartialEscape.cfg +0 -7042
  98. data/examples/java/examplePhi.bgv +0 -0
  99. data/examples/java/examplePhi.cfg +0 -3227
  100. data/examples/java/exampleReducible.bgv +0 -0
  101. data/examples/java/exampleReducible.cfg +0 -5578
  102. data/examples/java/exampleSimpleCall.bgv +0 -0
  103. data/examples/java/exampleSimpleCall.cfg +0 -1435
  104. data/examples/java/exampleStamp.bgv +0 -0
  105. data/examples/java/exampleStamp.cfg +0 -913
  106. data/examples/java/exampleStaticCall.bgv +0 -0
  107. data/examples/java/exampleStaticCall.cfg +0 -1154
  108. data/examples/java/exampleStringSwitch.bgv +0 -0
  109. data/examples/java/exampleStringSwitch.cfg +0 -15377
  110. data/examples/java/exampleSynchronized.bgv +0 -0
  111. data/examples/java/exampleSynchronized.cfg +0 -26027
  112. data/examples/java/exampleThrow.bgv +0 -0
  113. data/examples/java/exampleThrow.cfg +0 -780
  114. data/examples/java/exampleThrowCatch.bgv +0 -0
  115. data/examples/java/exampleThrowCatch.cfg +0 -744
  116. data/examples/java/exampleUnsafeRead.bgv +0 -0
  117. data/examples/java/exampleUnsafeRead.cfg +0 -912
  118. data/examples/java/exampleUnsafeWrite.bgv +0 -0
  119. data/examples/java/exampleUnsafeWrite.cfg +0 -962
  120. data/examples/java/exampleWhile.bgv +0 -0
  121. data/examples/java/exampleWhile.cfg +0 -3936
  122. data/examples/java/exampleWhileBreak.bgv +0 -0
  123. data/examples/java/exampleWhileBreak.cfg +0 -5963
  124. data/examples/matmult-java.bgv +0 -0
  125. data/examples/matmult-ruby.bgv +0 -0
  126. data/examples/overflow.bgv +0 -0
  127. data/spec/seafoam/bgv/fixtures/not.bgv +0 -1
  128. data/spec/seafoam/bgv/fixtures/unsupported.bgv +0 -1
@@ -1,1109 +0,0 @@
1
- begin_compilation
2
- name " HotSpotCompilation-345[JavaExamples.exampleCompareOperator(int, int)]"
3
- method "HotSpotCompilation-345[JavaExamples.exampleCompareOperator(int, int)]"
4
- date 1583364091398
5
- end_compilation
6
- begin_cfg
7
- name "Final HIR schedule"
8
- begin_block
9
- name "B0"
10
- from_bci -1
11
- to_bci -1
12
- predecessors
13
- successors
14
- xhandlers
15
- flags
16
- probability 4607182418800017408
17
- begin_IR
18
- HIR
19
- f <@#|@fixed with next>@ <|@
20
- tid v0 <|@
21
- d <@d|@=== Debug Properties ===
22
- stamp: void
23
- withSpeculationFence: false
24
- === Inputs ===
25
- stateAfter: -
26
- === Succesors ===
27
- next: v8
28
- === Usages ===
29
- === Predecessor ===
30
- - >@ <|@
31
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v8 <|@ <|@
32
- f <@~|@floating>@ <|@
33
- tid i2 <|@
34
- d <@d|@=== Debug Properties ===
35
- index: 1
36
- stamp: i32
37
- uncheckedStamp: [null]
38
- === Inputs ===
39
- === Succesors ===
40
- === Usages ===
41
- v4
42
- === Predecessor ===
43
- - >@ <|@
44
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
45
- f <@~|@floating>@ <|@
46
- tid i1 <|@
47
- d <@d|@=== Debug Properties ===
48
- index: 0
49
- stamp: i32
50
- uncheckedStamp: [null]
51
- === Inputs ===
52
- === Succesors ===
53
- === Usages ===
54
- v4
55
- === Predecessor ===
56
- - >@ <|@
57
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
58
- f <@~|@floating>@ <|@
59
- tid v4 <|@
60
- d <@d|@=== Debug Properties ===
61
- condition: LT
62
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
63
- op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
64
- stamp: void
65
- unorderedIsTrue: false
66
- === Inputs ===
67
- x: i2
68
- y: i1
69
- === Succesors ===
70
- === Usages ===
71
- i7
72
- === Predecessor ===
73
- - >@ <|@
74
- instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i2 y: i1 <|@ <|@
75
- f <@~|@floating>@ <|@
76
- tid i5 <|@
77
- d <@d|@=== Debug Properties ===
78
- isDefaultStable: false
79
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
80
- rawvalue: 0
81
- stableDimension: 0
82
- stamp: i32 [0] ⇈0000000000000000
83
- stampKind: i32
84
- value: int[0|0x0]
85
- === Inputs ===
86
- === Succesors ===
87
- === Usages ===
88
- i7
89
- === Predecessor ===
90
- - >@ <|@
91
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
92
- f <@~|@floating>@ <|@
93
- tid i6 <|@
94
- d <@d|@=== Debug Properties ===
95
- isDefaultStable: false
96
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
97
- rawvalue: 1
98
- stableDimension: 0
99
- stamp: i32 [1] ⇊0000000000000001 ⇈0000000000000001
100
- stampKind: i32
101
- value: int[1|0x1]
102
- === Inputs ===
103
- === Succesors ===
104
- === Usages ===
105
- i7
106
- === Predecessor ===
107
- - >@ <|@
108
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
109
- f <@~|@floating>@ <|@
110
- tid i7 <|@
111
- d <@d|@=== Debug Properties ===
112
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
113
- stamp: i32 [0 - 1] ⇈0000000000000001
114
- === Inputs ===
115
- condition: v4
116
- trueValue: i5
117
- falseValue: i6
118
- === Succesors ===
119
- === Usages ===
120
- v8
121
- === Predecessor ===
122
- - >@ <|@
123
- instruction <@Conditional|@org.graalvm.compiler.nodes.calc.ConditionalNode>@ condition: v4 trueValue: i5 falseValue: i6 <|@ <|@
124
- f <@*|@fixed>@ <|@
125
- tid v8 <|@
126
- d <@d|@=== Debug Properties ===
127
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 10]
128
- stamp: void
129
- === Inputs ===
130
- result: i7
131
- memoryMap: -
132
- === Succesors ===
133
- === Usages ===
134
- === Predecessor ===
135
- v0 >@ <|@
136
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i7 memoryMap: - <|@ <|@
137
- end_IR
138
- end_block
139
- end_cfg
140
- begin_cfg
141
- name "After LIRGeneration"
142
- begin_block
143
- name "B0"
144
- from_bci -1
145
- to_bci -1
146
- predecessors
147
- successors
148
- xhandlers
149
- flags
150
- probability 4607182418800017408
151
- begin_IR
152
- LIR
153
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
154
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
155
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
156
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
157
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
158
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
159
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
160
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
161
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
162
- end_IR
163
- end_block
164
- end_cfg
165
- begin_bytecodes
166
- 0: iload_0
167
- 1: iload_1
168
- 2: if_icmpgt 9
169
- 5: iconst_1
170
- 6: goto 10
171
- 9: iconst_0
172
- 10: ireturn
173
- <|@
174
- end_bytecodes
175
- begin_cfg
176
- name "After LIR generation"
177
- begin_block
178
- name "B0"
179
- from_bci -1
180
- to_bci -1
181
- predecessors
182
- successors
183
- xhandlers
184
- flags
185
- probability 4607182418800017408
186
- begin_IR
187
- HIR
188
- f <@#|@fixed with next>@ <|@
189
- tid v0 <|@
190
- d <@d|@=== Debug Properties ===
191
- stamp: void
192
- withSpeculationFence: false
193
- === Inputs ===
194
- stateAfter: -
195
- === Succesors ===
196
- next: v8
197
- === Usages ===
198
- === Predecessor ===
199
- - >@ <|@
200
- instruction <@StartNode|@org.graalvm.compiler.nodes.StartNode>@ stateAfter: - #next: v8 <|@ <|@
201
- f <@~|@floating>@ <|@
202
- tid i2 <|@
203
- result v1|DWORD <|@
204
- d <@d|@=== Debug Properties ===
205
- index: 1
206
- stamp: i32
207
- uncheckedStamp: [null]
208
- === Inputs ===
209
- === Succesors ===
210
- === Usages ===
211
- v4
212
- === Predecessor ===
213
- - >@ <|@
214
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
215
- f <@~|@floating>@ <|@
216
- tid i1 <|@
217
- result v0|DWORD <|@
218
- d <@d|@=== Debug Properties ===
219
- index: 0
220
- stamp: i32
221
- uncheckedStamp: [null]
222
- === Inputs ===
223
- === Succesors ===
224
- === Usages ===
225
- v4
226
- === Predecessor ===
227
- - >@ <|@
228
- instruction <@Parameter|@org.graalvm.compiler.nodes.ParameterNode>@ <|@ <|@
229
- f <@~|@floating>@ <|@
230
- tid v4 <|@
231
- d <@d|@=== Debug Properties ===
232
- condition: LT
233
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
234
- op: org.graalvm.compiler.nodes.calc.IntegerLessThanNode$LessThanOp@136e38370
235
- stamp: void
236
- unorderedIsTrue: false
237
- === Inputs ===
238
- x: i2
239
- y: i1
240
- === Succesors ===
241
- === Usages ===
242
- i7
243
- === Predecessor ===
244
- - >@ <|@
245
- instruction <@<|@org.graalvm.compiler.nodes.calc.IntegerLessThanNode>@ x: i2 y: i1 <|@ <|@
246
- f <@~|@floating>@ <|@
247
- tid i5 <|@
248
- result int[0|0x0] <|@
249
- d <@d|@=== Debug Properties ===
250
- isDefaultStable: false
251
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
252
- rawvalue: 0
253
- stableDimension: 0
254
- stamp: i32 [0] ⇈0000000000000000
255
- stampKind: i32
256
- value: int[0|0x0]
257
- === Inputs ===
258
- === Succesors ===
259
- === Usages ===
260
- i7
261
- === Predecessor ===
262
- - >@ <|@
263
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
264
- f <@~|@floating>@ <|@
265
- tid i6 <|@
266
- result int[1|0x1] <|@
267
- d <@d|@=== Debug Properties ===
268
- isDefaultStable: false
269
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
270
- rawvalue: 1
271
- stableDimension: 0
272
- stamp: i32 [1] ⇊0000000000000001 ⇈0000000000000001
273
- stampKind: i32
274
- value: int[1|0x1]
275
- === Inputs ===
276
- === Succesors ===
277
- === Usages ===
278
- i7
279
- === Predecessor ===
280
- - >@ <|@
281
- instruction <@Constant|@org.graalvm.compiler.nodes.ConstantNode>@ <|@ <|@
282
- f <@~|@floating>@ <|@
283
- tid i7 <|@
284
- result v2|DWORD <|@
285
- d <@d|@=== Debug Properties ===
286
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 2]
287
- stamp: i32 [0 - 1] ⇈0000000000000001
288
- === Inputs ===
289
- condition: v4
290
- trueValue: i5
291
- falseValue: i6
292
- === Succesors ===
293
- === Usages ===
294
- v8
295
- === Predecessor ===
296
- - >@ <|@
297
- instruction <@Conditional|@org.graalvm.compiler.nodes.calc.ConditionalNode>@ condition: v4 trueValue: i5 falseValue: i6 <|@ <|@
298
- f <@*|@fixed>@ <|@
299
- tid v8 <|@
300
- d <@d|@=== Debug Properties ===
301
- nodeSourcePosition: at JavaExamples.exampleCompareOperator(JavaExamples.java:86) [bci: 10]
302
- stamp: void
303
- === Inputs ===
304
- result: i7
305
- memoryMap: -
306
- === Succesors ===
307
- === Usages ===
308
- === Predecessor ===
309
- v0 >@ <|@
310
- instruction <@Return|@org.graalvm.compiler.nodes.ReturnNode>@ result: i7 memoryMap: - <|@ <|@
311
- end_IR
312
- begin_IR
313
- LIR
314
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
315
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
316
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
317
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
318
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
319
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
320
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
321
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
322
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
323
- end_IR
324
- end_block
325
- end_cfg
326
- begin_cfg
327
- name "After ConstantLoadOptimization"
328
- begin_block
329
- name "B0"
330
- from_bci -1
331
- to_bci -1
332
- predecessors
333
- successors
334
- xhandlers
335
- flags
336
- probability 4607182418800017408
337
- begin_IR
338
- LIR
339
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
340
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
341
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
342
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
343
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
344
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
345
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
346
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
347
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
348
- end_IR
349
- end_block
350
- end_cfg
351
- begin_bytecodes
352
- 0: iload_0
353
- 1: iload_1
354
- 2: if_icmpgt 9
355
- 5: iconst_1
356
- 6: goto 10
357
- 9: iconst_0
358
- 10: ireturn
359
- <|@
360
- end_bytecodes
361
- begin_cfg
362
- name "After SaveCalleeSaveRegisters"
363
- begin_block
364
- name "B0"
365
- from_bci -1
366
- to_bci -1
367
- predecessors
368
- successors
369
- xhandlers
370
- flags
371
- probability 4607182418800017408
372
- begin_IR
373
- LIR
374
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
375
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
376
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
377
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
378
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
379
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
380
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
381
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
382
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
383
- end_IR
384
- end_block
385
- end_cfg
386
- begin_bytecodes
387
- 0: iload_0
388
- 1: iload_1
389
- 2: if_icmpgt 9
390
- 5: iconst_1
391
- 6: goto 10
392
- 9: iconst_0
393
- 10: ireturn
394
- <|@
395
- end_bytecodes
396
- begin_cfg
397
- name "After PreAllocationOptimizationStage"
398
- begin_block
399
- name "B0"
400
- from_bci -1
401
- to_bci -1
402
- predecessors
403
- successors
404
- xhandlers
405
- flags
406
- probability 4607182418800017408
407
- begin_IR
408
- LIR
409
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
410
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
411
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
412
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
413
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
414
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
415
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
416
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
417
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
418
- end_IR
419
- end_block
420
- end_cfg
421
- begin_bytecodes
422
- 0: iload_0
423
- 1: iload_1
424
- 2: if_icmpgt 9
425
- 5: iconst_1
426
- 6: goto 10
427
- 9: iconst_0
428
- 10: ireturn
429
- <|@
430
- end_bytecodes
431
- begin_cfg
432
- name "After MarkBasePointers"
433
- begin_block
434
- name "B0"
435
- from_bci -1
436
- to_bci -1
437
- predecessors
438
- successors
439
- xhandlers
440
- flags
441
- probability 4607182418800017408
442
- begin_IR
443
- LIR
444
- nr -1 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
445
- nr -1 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
446
- nr -1 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
447
- nr -1 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
448
- nr -1 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
449
- nr -1 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
450
- nr -1 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
451
- nr -1 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
452
- nr -1 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
453
- end_IR
454
- end_block
455
- end_cfg
456
- begin_bytecodes
457
- 0: iload_0
458
- 1: iload_1
459
- 2: if_icmpgt 9
460
- 5: iconst_1
461
- 6: goto 10
462
- 9: iconst_0
463
- 10: ireturn
464
- <|@
465
- end_bytecodes
466
- begin_cfg
467
- name "Before register allocation"
468
- begin_block
469
- name "B0"
470
- from_bci -1
471
- to_bci -1
472
- predecessors
473
- successors
474
- xhandlers
475
- flags
476
- probability 4607182418800017408
477
- begin_IR
478
- LIR
479
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
480
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
481
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
482
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
483
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
484
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
485
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
486
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
487
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
488
- end_IR
489
- end_block
490
- end_cfg
491
- begin_bytecodes
492
- 0: iload_0
493
- 1: iload_1
494
- 2: if_icmpgt 9
495
- 5: iconst_1
496
- 6: goto 10
497
- 9: iconst_0
498
- 10: ireturn
499
- <|@
500
- end_bytecodes
501
- begin_cfg
502
- name "After SSALinearScanLifetimeAnalysis"
503
- begin_block
504
- name "B0"
505
- from_bci -1
506
- to_bci -1
507
- predecessors
508
- successors
509
- xhandlers
510
- flags
511
- probability 4607182418800017408
512
- begin_IR
513
- LIR
514
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
515
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
516
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
517
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
518
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
519
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
520
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
521
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
522
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
523
- end_IR
524
- end_block
525
- end_cfg
526
- begin_bytecodes
527
- 0: iload_0
528
- 1: iload_1
529
- 2: if_icmpgt 9
530
- 5: iconst_1
531
- 6: goto 10
532
- 9: iconst_0
533
- 10: ireturn
534
- <|@
535
- end_bytecodes
536
- begin_intervals
537
- name "Before register allocation"
538
- rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[14, 16[ "NoSpillStore"
539
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
540
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
541
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
542
- v0|d DWORD "[v0|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
543
- v1|d DWORD "[v1|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
544
- v2|d DWORD "[v2|d]" v2|d -1 [12, 14[12 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
545
- v3|q QWORD "[v3|q]" v3|q rbp|q [2, 16[2 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
546
- end_intervals
547
- begin_intervals
548
- name "After register allocation"
549
- rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[14, 16[ "NoSpillStore"
550
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
551
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
552
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
553
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
554
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
555
- v2|d DWORD "[rax|d]" v2|d -1 [12, 14[12 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
556
- v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 16[2 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
557
- end_intervals
558
- begin_cfg
559
- name "After LinearScanRegisterAllocation"
560
- begin_block
561
- name "B0"
562
- from_bci -1
563
- to_bci -1
564
- predecessors
565
- successors
566
- xhandlers
567
- flags
568
- probability 4607182418800017408
569
- begin_IR
570
- LIR
571
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
572
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
573
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
574
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
575
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
576
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
577
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
578
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
579
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
580
- end_IR
581
- end_block
582
- end_cfg
583
- begin_bytecodes
584
- 0: iload_0
585
- 1: iload_1
586
- 2: if_icmpgt 9
587
- 5: iconst_1
588
- 6: goto 10
589
- 9: iconst_0
590
- 10: ireturn
591
- <|@
592
- end_bytecodes
593
- begin_intervals
594
- name "After optimize spill position"
595
- rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[14, 16[ "NoSpillStore"
596
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
597
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
598
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
599
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
600
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
601
- v2|d DWORD "[rax|d]" v2|d -1 [12, 14[12 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
602
- v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 16[2 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
603
- end_intervals
604
- begin_cfg
605
- name "After LinearScanOptimizeSpillPosition"
606
- begin_block
607
- name "B0"
608
- from_bci -1
609
- to_bci -1
610
- predecessors
611
- successors
612
- xhandlers
613
- flags
614
- probability 4607182418800017408
615
- begin_IR
616
- LIR
617
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
618
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
619
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
620
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
621
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
622
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
623
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
624
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
625
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
626
- end_IR
627
- end_block
628
- end_cfg
629
- begin_bytecodes
630
- 0: iload_0
631
- 1: iload_1
632
- 2: if_icmpgt 9
633
- 5: iconst_1
634
- 6: goto 10
635
- 9: iconst_0
636
- 10: ireturn
637
- <|@
638
- end_bytecodes
639
- begin_intervals
640
- name "After resolve data flow"
641
- rax|d fixed "[rax|d]" rax|d v2|d [0, 1[[14, 16[ "NoSpillStore"
642
- rdx|d fixed "[rdx|d]" rdx|d -1 [0, 8[ "NoSpillStore"
643
- rbp|q fixed "[rbp|q]" rbp|q -1 [0, 2[ "NoSpillStore"
644
- rsi|d fixed "[rsi|d]" rsi|d -1 [0, 6[ "NoSpillStore"
645
- v0|d DWORD "[rsi|d]" v0|d rsi|d [6, 10[6 MustHaveRegister 10 MustHaveRegister "NoSpillStore"
646
- v1|d DWORD "[rdx|d]" v1|d rdx|d [8, 10[8 MustHaveRegister 10 ShouldHaveRegister "NoSpillStore"
647
- v2|d DWORD "[rax|d]" v2|d -1 [12, 14[12 MustHaveRegister 14 ShouldHaveRegister "NoSpillStore"
648
- v3|q QWORD "[rbp|q]" v3|q rbp|q [2, 16[2 MustHaveRegister 16 ShouldHaveRegister "NoSpillStore"
649
- end_intervals
650
- begin_cfg
651
- name "After SSALinearScanResolveDataFlow"
652
- begin_block
653
- name "B0"
654
- from_bci -1
655
- to_bci -1
656
- predecessors
657
- successors
658
- xhandlers
659
- flags
660
- probability 4607182418800017408
661
- begin_IR
662
- LIR
663
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
664
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
665
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
666
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
667
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
668
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
669
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
670
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
671
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
672
- end_IR
673
- end_block
674
- end_cfg
675
- begin_bytecodes
676
- 0: iload_0
677
- 1: iload_1
678
- 2: if_icmpgt 9
679
- 5: iconst_1
680
- 6: goto 10
681
- 9: iconst_0
682
- 10: ireturn
683
- <|@
684
- end_bytecodes
685
- begin_cfg
686
- name "After SSALinearScanEliminateSpillMove"
687
- begin_block
688
- name "B0"
689
- from_bci -1
690
- to_bci -1
691
- predecessors
692
- successors
693
- xhandlers
694
- flags
695
- probability 4607182418800017408
696
- begin_IR
697
- LIR
698
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
699
- nr 2 <|@ instruction v3|QWORD = MOVE rbp|QWORD moveKind: QWORD <|@ <|@
700
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
701
- nr 6 <|@ instruction v0|DWORD = MOVE rsi|DWORD moveKind: DWORD <|@ <|@
702
- nr 8 <|@ instruction v1|DWORD = MOVE rdx|DWORD moveKind: DWORD <|@ <|@
703
- nr 10 <|@ instruction CMP (x: v0|DWORD, y: v1|DWORD) size: DWORD <|@ <|@
704
- nr 12 <|@ instruction v2|DWORD = SETCC condition: <= <|@ <|@
705
- nr 14 <|@ instruction rax|DWORD = MOVE v2|DWORD moveKind: DWORD <|@ <|@
706
- nr 16 <|@ instruction RETURN (savedRbp: v3|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
707
- end_IR
708
- end_block
709
- end_cfg
710
- begin_bytecodes
711
- 0: iload_0
712
- 1: iload_1
713
- 2: if_icmpgt 9
714
- 5: iconst_1
715
- 6: goto 10
716
- 9: iconst_0
717
- 10: ireturn
718
- <|@
719
- end_bytecodes
720
- begin_cfg
721
- name "After LinearScanAssignLocations"
722
- begin_block
723
- name "B0"
724
- from_bci -1
725
- to_bci -1
726
- predecessors
727
- successors
728
- xhandlers
729
- flags
730
- probability 4607182418800017408
731
- begin_IR
732
- LIR
733
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
734
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
735
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
736
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
737
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
738
- end_IR
739
- end_block
740
- end_cfg
741
- begin_bytecodes
742
- 0: iload_0
743
- 1: iload_1
744
- 2: if_icmpgt 9
745
- 5: iconst_1
746
- 6: goto 10
747
- 9: iconst_0
748
- 10: ireturn
749
- <|@
750
- end_bytecodes
751
- begin_cfg
752
- name "After LinearScan"
753
- begin_block
754
- name "B0"
755
- from_bci -1
756
- to_bci -1
757
- predecessors
758
- successors
759
- xhandlers
760
- flags
761
- probability 4607182418800017408
762
- begin_IR
763
- LIR
764
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
765
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
766
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
767
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
768
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
769
- end_IR
770
- end_block
771
- end_cfg
772
- begin_bytecodes
773
- 0: iload_0
774
- 1: iload_1
775
- 2: if_icmpgt 9
776
- 5: iconst_1
777
- 6: goto 10
778
- 9: iconst_0
779
- 10: ireturn
780
- <|@
781
- end_bytecodes
782
- begin_cfg
783
- name "After LSStackSlotAllocator"
784
- begin_block
785
- name "B0"
786
- from_bci -1
787
- to_bci -1
788
- predecessors
789
- successors
790
- xhandlers
791
- flags
792
- probability 4607182418800017408
793
- begin_IR
794
- LIR
795
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
796
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
797
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
798
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
799
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
800
- end_IR
801
- end_block
802
- end_cfg
803
- begin_bytecodes
804
- 0: iload_0
805
- 1: iload_1
806
- 2: if_icmpgt 9
807
- 5: iconst_1
808
- 6: goto 10
809
- 9: iconst_0
810
- 10: ireturn
811
- <|@
812
- end_bytecodes
813
- begin_cfg
814
- name "After LocationMarker"
815
- begin_block
816
- name "B0"
817
- from_bci -1
818
- to_bci -1
819
- predecessors
820
- successors
821
- xhandlers
822
- flags
823
- probability 4607182418800017408
824
- begin_IR
825
- LIR
826
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
827
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
828
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
829
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
830
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
831
- end_IR
832
- end_block
833
- end_cfg
834
- begin_bytecodes
835
- 0: iload_0
836
- 1: iload_1
837
- 2: if_icmpgt 9
838
- 5: iconst_1
839
- 6: goto 10
840
- 9: iconst_0
841
- 10: ireturn
842
- <|@
843
- end_bytecodes
844
- begin_cfg
845
- name "After AllocationStage"
846
- begin_block
847
- name "B0"
848
- from_bci -1
849
- to_bci -1
850
- predecessors
851
- successors
852
- xhandlers
853
- flags
854
- probability 4607182418800017408
855
- begin_IR
856
- LIR
857
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
858
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
859
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
860
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
861
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
862
- end_IR
863
- end_block
864
- end_cfg
865
- begin_bytecodes
866
- 0: iload_0
867
- 1: iload_1
868
- 2: if_icmpgt 9
869
- 5: iconst_1
870
- 6: goto 10
871
- 9: iconst_0
872
- 10: ireturn
873
- <|@
874
- end_bytecodes
875
- begin_cfg
876
- name "After EdgeMoveOptimizer"
877
- begin_block
878
- name "B0"
879
- from_bci -1
880
- to_bci -1
881
- predecessors
882
- successors
883
- xhandlers
884
- flags
885
- probability 4607182418800017408
886
- begin_IR
887
- LIR
888
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
889
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
890
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
891
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
892
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
893
- end_IR
894
- end_block
895
- end_cfg
896
- begin_bytecodes
897
- 0: iload_0
898
- 1: iload_1
899
- 2: if_icmpgt 9
900
- 5: iconst_1
901
- 6: goto 10
902
- 9: iconst_0
903
- 10: ireturn
904
- <|@
905
- end_bytecodes
906
- begin_cfg
907
- name "After ControlFlowOptimizer"
908
- begin_block
909
- name "B0"
910
- from_bci -1
911
- to_bci -1
912
- predecessors
913
- successors
914
- xhandlers
915
- flags
916
- probability 4607182418800017408
917
- begin_IR
918
- LIR
919
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
920
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
921
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
922
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
923
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
924
- end_IR
925
- end_block
926
- end_cfg
927
- begin_bytecodes
928
- 0: iload_0
929
- 1: iload_1
930
- 2: if_icmpgt 9
931
- 5: iconst_1
932
- 6: goto 10
933
- 9: iconst_0
934
- 10: ireturn
935
- <|@
936
- end_bytecodes
937
- begin_cfg
938
- name "After RedundantMoveElimination"
939
- begin_block
940
- name "B0"
941
- from_bci -1
942
- to_bci -1
943
- predecessors
944
- successors
945
- xhandlers
946
- flags
947
- probability 4607182418800017408
948
- begin_IR
949
- LIR
950
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
951
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
952
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
953
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
954
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
955
- end_IR
956
- end_block
957
- end_cfg
958
- begin_bytecodes
959
- 0: iload_0
960
- 1: iload_1
961
- 2: if_icmpgt 9
962
- 5: iconst_1
963
- 6: goto 10
964
- 9: iconst_0
965
- 10: ireturn
966
- <|@
967
- end_bytecodes
968
- begin_cfg
969
- name "After NullCheckOptimizer"
970
- begin_block
971
- name "B0"
972
- from_bci -1
973
- to_bci -1
974
- predecessors
975
- successors
976
- xhandlers
977
- flags
978
- probability 4607182418800017408
979
- begin_IR
980
- LIR
981
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
982
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
983
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
984
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
985
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
986
- end_IR
987
- end_block
988
- end_cfg
989
- begin_bytecodes
990
- 0: iload_0
991
- 1: iload_1
992
- 2: if_icmpgt 9
993
- 5: iconst_1
994
- 6: goto 10
995
- 9: iconst_0
996
- 10: ireturn
997
- <|@
998
- end_bytecodes
999
- begin_cfg
1000
- name "After StackMoveOptimization"
1001
- begin_block
1002
- name "B0"
1003
- from_bci -1
1004
- to_bci -1
1005
- predecessors
1006
- successors
1007
- xhandlers
1008
- flags
1009
- probability 4607182418800017408
1010
- begin_IR
1011
- LIR
1012
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1013
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
1014
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
1015
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
1016
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1017
- end_IR
1018
- end_block
1019
- end_cfg
1020
- begin_bytecodes
1021
- 0: iload_0
1022
- 1: iload_1
1023
- 2: if_icmpgt 9
1024
- 5: iconst_1
1025
- 6: goto 10
1026
- 9: iconst_0
1027
- 10: ireturn
1028
- <|@
1029
- end_bytecodes
1030
- begin_cfg
1031
- name "After PostAllocationOptimizationStage"
1032
- begin_block
1033
- name "B0"
1034
- from_bci -1
1035
- to_bci -1
1036
- predecessors
1037
- successors
1038
- xhandlers
1039
- flags
1040
- probability 4607182418800017408
1041
- begin_IR
1042
- LIR
1043
- nr 0 <|@ instruction [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <|@ <|@
1044
- nr 4 <|@ instruction [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <|@ <|@
1045
- nr 10 <|@ instruction CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <|@ <|@
1046
- nr 12 <|@ instruction rax|DWORD = SETCC condition: <= <|@ <|@
1047
- nr 16 <|@ instruction RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <|@ <|@
1048
- end_IR
1049
- end_block
1050
- end_cfg
1051
- begin_bytecodes
1052
- 0: iload_0
1053
- 1: iload_1
1054
- 2: if_icmpgt 9
1055
- 5: iconst_1
1056
- 6: goto 10
1057
- 9: iconst_0
1058
- 10: ireturn
1059
- <|@
1060
- end_bytecodes
1061
- begin_cfg
1062
- name "After code generation"
1063
- end_cfg
1064
- begin_nmethod
1065
- <<<HexCodeFile
1066
- Platform AMD64 64 <||@
1067
- HexCode 0 0f1f4400003bf20f9ec00fb6c0850500000000c5f877c3e80000000090e80000000090 <||@
1068
- Comment 0 3 <||@
1069
- Comment 0 1 <||@
1070
- Comment 5 block B0 null <||@
1071
- Comment 5 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1072
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <||@
1073
- Comment 5 10 CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <||@
1074
- Comment 7 12 rax|DWORD = SETCC condition: <= <||@
1075
- Comment 13 16 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
1076
- Comment 13 12 <||@
1077
- Comment 23 {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} <||@
1078
- Comment 23 4 <||@
1079
- Comment 29 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1080
- Comment 29 5 <||@
1081
- HexCodeFile>>> <|@
1082
- end_nmethod
1083
- begin_compilation
1084
- name " HotSpotCompilation-345[JavaExamples.exampleCompareOperator(int, int)]"
1085
- method "HotSpotCompilation-345[JavaExamples.exampleCompareOperator(int, int)]"
1086
- date 1583364091413
1087
- end_compilation
1088
- begin_cfg
1089
- name "After code installation"
1090
- end_cfg
1091
- begin_nmethod
1092
- <<<HexCodeFile
1093
- Platform AMD64 64 <||@
1094
- HexCode 112e30220 0f1f4400003bf20f9ec00fb6c08505d3ad93fbc5f877c3e8e440ffff90e8fe3febff90f4f4f4f4f4 <||@
1095
- Comment 0 3 <||@
1096
- Comment 0 1 <||@
1097
- Comment 5 block B0 null <||@
1098
- Comment 5 0 [rsi|DWORD, rdx|DWORD, rbp|QWORD] = LABEL numbPhis: 0 align: false label: ? <||@
1099
- Comment 5 4 [] = HOTSPOTLOCKSTACK frameMapBuilder: org.graalvm.compiler.lir.amd64.AMD64FrameMapBuilder@1442d4da8 slotKind: QWORD <||@
1100
- Comment 5 10 CMP (x: rsi|DWORD, y: rdx|DWORD) size: DWORD <||@
1101
- Comment 7 12 rax|DWORD = SETCC condition: <= <||@
1102
- Comment 13 16 RETURN (savedRbp: rbp|QWORD, value: rax|DWORD) isStub: false requiresReservedStackAccessCheck: false thread: r15 scratchForSafepointOnReturn: rcx config: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig@137f187d8 <||@
1103
- Comment 13 12 <||@
1104
- Comment 23 {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} <||@
1105
- Comment 23 4 <||@
1106
- Comment 29 {Field[name=CompilerToVM::Data::SharedRuntime_deopt_blob_unpack, type=address, offset=0, address=0x1108bc128, value=4610474560]:0x112ce4240} <||@
1107
- Comment 29 5 <||@
1108
- HexCodeFile>>> <|@
1109
- end_nmethod