Warp: Transpile call/construct of scripted functions
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: evilpies, Assigned: evilpies)
References
Details
Attachments
(3 files)
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D76557
Assignee | ||
Comment 3•5 years ago
|
||
Depends on D76558
Assignee | ||
Comment 4•5 years ago
|
||
The final patch still has some XXX comments that need a second look, but I think nothing that is really a big concern. jit-tests seem to pass now.
The first patch is mostly concerned with trying to make sure we don't access JSFunction flags off-main thread. For that purposes I introduced a new CacheIR opcode GuardSpecificFunction
, that we use to hold the nargs and flags besides the actual JSFunction pointer.
The actual code for scripted calls in WarpBuilderShared::makeCall
is mostly borrowed from IonBuilder::makeCallHelper
. We are still missing the code for optimizing |this| creation. There are also probably some minor optimization opportunities: Even if we don't have a monomorphic JSFunction target, we know if this is a native/scripted call. We could probabaly do disableArgCheck
considering we don't have types, maybe this already happens though.
Comment 6•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7ec7ea33770d
https://hg.mozilla.org/mozilla-central/rev/26347a69e6d5
https://hg.mozilla.org/mozilla-central/rev/8697046d90f6
Description
•