-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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] Extend megamorphic store cache with invalidating replacement watchpoint set #14001
Conversation
EWS run on previous version of this PR (hash 0c2ac06) |
0c2ac06
to
de701f7
Compare
EWS run on previous version of this PR (hash de701f7) |
de701f7
to
0af1a3f
Compare
EWS run on previous version of this PR (hash 0af1a3f) |
0af1a3f
to
386f3af
Compare
EWS run on current version of this PR (hash 386f3af) |
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
didReplacePropertySlow(offset); | ||
} | ||
|
||
inline void Structure::didCachePropertyReplacement(VM& vm, PropertyOffset offset) |
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.
How does this differ from didReplacePropertySlow?
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.
Not annotated with EXPORT macro so that it can be only called from JSC framework and LTO inlines it.
β¦tchpoint set https://bugs.webkit.org/show_bug.cgi?id=256943 rdar://109493502 Reviewed by Justin Michaud. This patch recovers regression in JetStream2/typescript after introducing megamorphic store cache. The reason is that the previous cache was a bit too conservative, and we are using slow path for Structure::isWatchingReplacement case, but JetStream2/typescript includes legit use of this kind of Structure with megamorphic cache. This patch allows Structure::isWatchingReplacement case, and invalidate replacement watchpoint when caching replace structure. This recovers and rather improves JetStream2/typescript. * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::InlineCacheCompiler::regenerate): * Source/JavaScriptCore/jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::storeMegamorphicProperty): * Source/JavaScriptCore/jit/JITOperations.cpp: (JSC::putByIdMegamorphic): Canonical link: https://commits.webkit.org/264212@main
386f3af
to
b4d99e6
Compare
Committed 264212@main (b4d99e6): https://commits.webkit.org/264212@main Reviewed commits have been landed. Closing PR #14001 and removing active labels. |
b4d99e6
386f3af