-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JSC] Make megamorphic IC stateless #28714
[JSC] Make megamorphic IC stateless #28714
Conversation
2def74d
to
3c0e06e
Compare
EWS run on previous version of this PR (hash 3c0e06e)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me.
|
||
static Ref<InlineCacheHandler> createSlowPath(VM&, AccessType); | ||
|
||
CodePtr<JITStubRoutinePtrTag> m_callTarget; | ||
CodePtr<JITStubRoutinePtrTag> m_jumpTarget; | ||
UniquedStringImpl* m_uid { nullptr }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice if we could use CheckedPtr<UniquedStringImpl>
here but I guess StringImpl isn't CanMakeCheckedPtr
3c0e06e
to
a231c2e
Compare
EWS run on current version of this PR (hash a231c2e)
|
https://bugs.webkit.org/show_bug.cgi?id=274316 rdar://128277946 Reviewed by Keith Miller. We store expected UniquedStringImpl into InlineCacheHandler (must not keep it as Ref! lifetime is managed by StructureStubInfo) in megamorphic IC when Handler IC is enabled. And we retrieve it from GPRInfo::handlerGPR. So we can share one code for all of megamorphic IC, thus it becomes stateless. * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::isStateless): (JSC::InlineCacheHandler::InlineCacheHandler): (JSC::InlineCacheCompiler::generateWithGuard): (JSC::InlineCacheCompiler::regenerate): * Source/JavaScriptCore/bytecode/InlineCacheCompiler.h: Canonical link: https://commits.webkit.org/278946@main
a231c2e
to
6e5a36b
Compare
Committed 278946@main (6e5a36b): https://commits.webkit.org/278946@main Reviewed commits have been landed. Closing PR #28714 and removing active labels. |
6e5a36b
a231c2e
π§ͺ wpe-wk2π§ͺ ios-wk2-wptπ π§ͺ jscπ watch