seafoam 0.2 → 0.7

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