Call Ion RegExp stubs also from Baseline ICs
Categories
(Core :: JavaScript Engine: JIT, task, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox115 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
(Whiteboard: [sp3])
Attachments
(4 files)
This improves a number of Speedometer 3 sub tests by a few % so seems worth doing:
Assignee | ||
Comment 1•4 months ago
|
||
We need those to call the stubs from Baseline IC code.
Assignee | ||
Comment 2•4 months ago
|
||
The realm stubs are currently stored as weak references so the IC stub will need
to hold a strong reference to keep it alive.
Depends on D178328
Assignee | ||
Comment 3•4 months ago
|
||
Depends on D178329
Assignee | ||
Comment 4•4 months ago
|
||
This is faster, especially for the Matcher
and ExecMatch
stubs, because allocating
the match result array is faster from JIT code than from C++.
Speedometer 3 shows some medium/high confidence improvements for various sub tests.
Moving the input registers into place was one of the tricky parts. After trying a few
approaches, using MoveResolver
was simplest so that's what this patch implements.
Because the regexp stubs are held weakly by JitRealm
, this patch stores a strong
reference to the stub's JitCode
in the IC stub. It isn't actually used for the call,
because there are some edge cases (that we shouldn't hit in practice) where we discard
JIT code including the regexp stubs, but this doesn't work for scripts active on the stack.
To make sure we always call the correct regexp stub code, we load it from JitRealm
.
Depends on D178330
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f8cddc45f713 part 1 - Move some RegExp stub constants to a header file. r=iain https://hg.mozilla.org/integration/autoland/rev/096f776a3f68 part 2 - Add support for JitCode stub fields. r=iain https://hg.mozilla.org/integration/autoland/rev/2e0fc6642fb8 part 3 - Minor Realm and JitRealm changes. r=iain https://hg.mozilla.org/integration/autoland/rev/c19f93169200 part 4 - Call RegExp stubs also from Baseline ICs. r=iain
Comment 6•4 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f8cddc45f713
https://hg.mozilla.org/mozilla-central/rev/096f776a3f68
https://hg.mozilla.org/mozilla-central/rev/2e0fc6642fb8
https://hg.mozilla.org/mozilla-central/rev/c19f93169200
Updated•4 months ago
|
Updated•4 months ago
|
Description
•