Commit d7d2a74
ZJIT: Add side-exit attribution to HIR profiling
Side-exit code is emitted after the main function body but within the
same address range. Previously all side-exit samples were attributed to
the last HIR instruction (Return), inflating it to ~32%.
Add a synthetic "(side-exits)" line to the HIR source file and create
a debug entry for the side-exit code region. Also fix the aggregation
script to recognize side-exit lines and treat unmapped addresses as
side-exit code.
On lobsters, this reveals that 33% of JIT self-time is spent in
side-exit code (saving frame state and returning to interpreter).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 325fb5a commit d7d2a74
2 files changed
Lines changed: 29 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
106 | 108 | | |
107 | 109 | | |
108 | 110 | | |
| |||
237 | 239 | | |
238 | 240 | | |
239 | 241 | | |
240 | | - | |
| 242 | + | |
241 | 243 | | |
242 | 244 | | |
243 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
| 225 | + | |
225 | 226 | | |
226 | 227 | | |
227 | 228 | | |
| 229 | + | |
228 | 230 | | |
229 | 231 | | |
230 | 232 | | |
| |||
235 | 237 | | |
236 | 238 | | |
237 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
238 | 260 | | |
239 | 261 | | |
240 | 262 | | |
| |||
314 | 336 | | |
315 | 337 | | |
316 | 338 | | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
317 | 342 | | |
318 | 343 | | |
319 | 344 | | |
| |||
0 commit comments