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•2 years ago
|
||
We need those to call the stubs from Baseline IC code.
Assignee | ||
Comment 2•2 years 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•2 years ago
|
||
Depends on D178329
Assignee | ||
Comment 4•2 years 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
Comment 6•2 years 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•2 years ago
|
Updated•2 years ago
|
Description
•