Commit 08c87ab
Optimize spill placement in builtins
This change enables spill placement optimization for all values in
builtins, rather than only for loop-top phi values. There is no
correctness reason that this optimization is limited to loop-top phi
values; I just chose that heuristic because I didn't have much evidence
of benefits outside loops. See [1] for an overview of how spill
placement optimization works. This change is beneficial not only because
it saves a store instruction along some control-flow paths, but also
because it gives the frame elider more freedom to avoid creating stack
frames along those paths. I suspect that frame elision is more impactful
for builtins than for JIT-compiled code, because builtins tend to be
small functions called often, rather than large functions with loops. In
Edge, I see about 0.3% improvement on Speedometer with this change.
[1] https://docs.google.com/document/d/1n9ADWnDI-sw0OvdSmrthf61prmDqbDmQq-NSrQw2MVI/edit?usp=sharing
Change-Id: Ibea4d63dda522cd8b1b95bbf4c67e10a1b3186e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5002146
Commit-Queue: Seth Brenith <[email protected]>
Reviewed-by: Thibaud Michaud <[email protected]>
Cr-Commit-Position: refs/heads/main@{#90729}1 parent e35eccf commit 08c87ab
1 file changed
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2347 | 2347 | | |
2348 | 2348 | | |
2349 | 2349 | | |
| 2350 | + | |
2350 | 2351 | | |
2351 | 2352 | | |
2352 | 2353 | | |
| |||
0 commit comments