Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d5408df0618d2f1bfbba7b5bd3ab8f3f1d52d44c https://github.com/WebKit/WebKit/commit/d5408df0618d2f1bfbba7b5bd3ab8f3f1d52d44c Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2024-04-29 (Mon, 29 Apr 2024)
Changed paths: M Source/JavaScriptCore/bytecode/AccessCase.cpp M Source/JavaScriptCore/bytecode/AccessCase.h M Source/JavaScriptCore/bytecode/GetterSetterAccessCase.cpp M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp M Source/JavaScriptCore/bytecode/InlineCacheCompiler.h M Source/JavaScriptCore/bytecode/InstanceOfAccessCase.cpp M Source/JavaScriptCore/bytecode/IntrinsicGetterAccessCase.cpp M Source/JavaScriptCore/bytecode/ModuleNamespaceAccessCase.cpp M Source/JavaScriptCore/bytecode/ProxyObjectAccessCase.cpp M Source/JavaScriptCore/bytecode/ProxyableAccessCase.cpp Log Message: ----------- [JSC] Extract WatchpointSet collection from AccessCase https://bugs.webkit.org/show_bug.cgi?id=273392 rdar://127220534 Reviewed by Keith Miller. This patch changes how watchpoint set are registered in IC. 1. We will always clone AccessCase holding CallLinkInfo for simplicity. This is rare and this wipes AccessCase::State completely. 2. We stop registering watchpoint set at addCases. It only materializes watchpoint set for the future invalidation. We collect them when actually generating code. And we stop generating code for AccessCase which already holds invalid watchpoint set. By doing this approach, now we can list up all the watchpoint set we would like to see in InlineCacheCompiler's regenerate function. And AccessCase becomes much more just an immutable feedback data. This is important step towards Handler IC. Now we gather all watchpoint set registrations into InlineCacheCompiler::regenerate. Next step is redesign of these watchpoint set to put them into IC code instead of StructureStubInfo. And then, Handler IC will share the same set of watchpoint set when sharing code. * Source/JavaScriptCore/bytecode/AccessCase.cpp: (JSC::AccessCase::commit): Deleted. * Source/JavaScriptCore/bytecode/AccessCase.h: (JSC::AccessCase::polyProtoAccessChain const): * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::InlineCacheCompiler::generateWithGuard): (JSC::InlineCacheCompiler::generateImpl): (JSC::collectAdditionalWatchpoints): (JSC::InlineCacheCompiler::regenerate): (JSC::PolymorphicAccess::addCases): (JSC::InlineCacheCompiler::installWatchpoint): Deleted. (JSC::commit): Deleted. * Source/JavaScriptCore/bytecode/InlineCacheCompiler.h: Canonical link: https://commits.webkit.org/278113@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes