Irregexp: Compile regexps
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox77 | --- | fixed |
People
(Reporter: iain, Assigned: iain)
References
Details
Attachments
(2 files)
Bug 1628835 added support for interpreting regexps. This bug adds support for compiling them to native code.
Assignee | ||
Comment 1•4 years ago
|
||
The current ForceByteCodeEnum is a glorified boolean. This patch replaces it with a three-value bytecode/jitcode/either enum, which will make our tiering-up logic slightly nicer in the next patch.
Assignee | ||
Comment 2•4 years ago
|
||
The interpreter calls TierUpTick
whenever we interpret a regexp. Once we hit the tick threshold, compileIfNecessary will compile native code for the regexp.
Currently the tick threshold is hard-coded to 10. V8's tick threshold is 1, which seems unreasonably low. We can tune this later.
Depends on D70951
Pushed by iireland@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6de75c45c46c Change ForceByteCode to CodeKind r=mgaudet https://hg.mozilla.org/integration/autoland/rev/e3c3f27d586a Tier up to compiled regexps r=mgaudet
Comment 4•4 years ago
|
||
Backed out for crashes at [@ js::RegExpRunStatus js::irregexp::InterpretCode<unsigned char>(JSContext*, unsigned char const*, unsigned char const*, unsigned long, unsigned long, js::MatchPairs*, unsigned long*)]
backout: https://hg.mozilla.org/integration/autoland/rev/0be816646b65bef89a1fa981be7d18d51a24a396
Pushed by iireland@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a05f70d2f0cb Change ForceByteCode to CodeKind r=mgaudet https://hg.mozilla.org/integration/autoland/rev/65eade01c8c9 Tier up to compiled regexps r=mgaudet
Comment 6•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a05f70d2f0cb
https://hg.mozilla.org/mozilla-central/rev/65eade01c8c9
Description
•