[webkit-changes] [WebKit/WebKit] 1ece8d: [JSC] Fire WatchpointSet directly in StructureTran...

Yusuke Suzuki noreply at github.com
Sat May 18 10:30:41 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ece8d08db4db2af3bee8ffe4d7e16e281d03525
      https://github.com/WebKit/WebKit/commit/1ece8d08db4db2af3bee8ffe4d7e16e281d03525
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-05-18 (Sat, 18 May 2024)

  Changed paths:
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp
    M Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp
    M Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h
    M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp
    M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h

  Log Message:
  -----------
  [JSC] Fire WatchpointSet directly in StructureTransitionStructureStubClearingWatchpoint / AdaptiveValueStructureStubClearingWatchpoint
https://bugs.webkit.org/show_bug.cgi?id=274323
rdar://128283244

Reviewed by Keith Miller.

This is a preparation of separating this WatchpointSet from code. In Handler IC, it is possible that we would like to invalidate the code, or just invalidating handler.
To support both cases, StructureTransitionStructureStubClearingWatchpoint / AdaptiveValueStructureStubClearingWatchpoint will directly fire WatchpointSet instead of
holding PolymorphicAccessJITStubRoutine. So we can use WatchpointSet placed in Handler later.

* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::addWatchpoint):
(JSC::ensureReferenceAndInstallWatchpoint):
(JSC::ensureReferenceAndAddWatchpoint):
(JSC::InlineCacheCompiler::regenerate):
* Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp:
(JSC::StructureTransitionStructureStubClearingWatchpoint::fireInternal):
(JSC::AdaptiveValueStructureStubClearingWatchpoint::handleFire):
(JSC::WatchpointsOnStructureStubInfo::addWatchpoint): Deleted.
(JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndInstallWatchpoint): Deleted.
(JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndAddWatchpoint): Deleted.
* Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h:
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:
(JSC::PolymorphicAccessJITStubRoutine::observeZeroRefCountImpl):
(JSC::PolymorphicAccessJITStubRoutine::setWatchpoints): Deleted.
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h:
(JSC::PolymorphicAccessJITStubRoutine::watchpoints):
(JSC::PolymorphicAccessJITStubRoutine::watchpoints const): Deleted.

Canonical link: https://commits.webkit.org/278958@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list