Bug 253481
| Summary: | Fold CallFrameClosure into CachedCall. | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Mark Lam <mark.lam> |
| Component: | JavaScriptCore | Assignee: | Mark Lam <mark.lam> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Mark Lam
CallFrameClosure is always embedded into and used with a CachedCall. This patch makes the following changes:
1. By folding it into CachedCall, we can remove many redundancies e.g. a protoCallFrame pointer, a JSFunction pointer, a VM pointer, and argumentCountIncludingThis.
2. CallFrameClosure::parameterCountIncludingThis was also never used. So, remove it.
3. Remove CachedCall::m_interpreter because it is always as an offset from CachedCall::m_vm.
4. Added an optimization to compute VM& from Interpreter*. This eliminates the need to pass globalObject to a few Interpreter::executeXXX functions where the sole purpose of the globalObject is for computing VM&.
5. Add an optimization in Interpreter::executeCachedCall where we can skip the call to ScriptExecutable::prepareForExecution if the addressForCall is unchanged.
6. Remove the now unneeded CallFrameClosure.
7. Rename Interpreter::prepareForRepeatCall to prepareForCachedCall to match what it's actually preparing for.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/106341933>
Mark Lam
Pull request: https://github.com/WebKit/WebKit/pull/11147
EWS
Committed 261311@main (dd4b91af70c5): <https://commits.webkit.org/261311@main>
Reviewed commits have been landed. Closing PR #11147 and removing active labels.