Warp: don't create ScriptCounts in Baseline
Categories
(Core :: JavaScript Engine: JIT, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox81 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(1 file)
Warp currently doesn't use ScriptCounts but instead relies on the Baseline IC counters. That means we can make Baseline a bit faster by not allocating and maintaining ScriptCounts there.
Comment 1•5 years ago
|
||
Note that ScriptCounts are used by Branch Pruning, which is later empower Scalar Replacement to optimize for-of loops.
Using IC should be fine, but then the equivalent count should be added back such that branch pruning can remove the branches which are adding Phi causing Scalar Replacement incapabilities of making optimizations.
Assignee | ||
Comment 2•5 years ago
|
||
(In reply to Nicolas B. Pierron [:nbp] from comment #1)
Note that ScriptCounts are used by Branch Pruning, which is later empower Scalar Replacement to optimize for-of loops.
Using IC should be fine, but then the equivalent count should be added back such that branch pruning can remove the branches which are adding Phi causing Scalar Replacement incapabilities of making optimizations.
Yeah, we already add bailouts for Baseline ICs with hit count 0 so if we teach branch pruning about those always-bailing-out blocks that would still work I expect.
Comment 3•5 years ago
|
||
Branch pruning uses some heuristics based on the generated instructions to decide to remove or not a branch with a zero hit-count.
Making all branches with 0 hit-count always bailout was a performance hit when I was tuning it.
Assignee | ||
Comment 4•5 years ago
|
||
Comment 6•5 years ago
|
||
bugherder |
Description
•