Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d8d941f1893050954e64ab80125e28b1a38c6445
https://github.com/WebKit/WebKit/commit/d8d941f1893050954e64ab80125e28b1a38c6445
Author: Yusuke Suzuki <[email protected]>
Date: 2024-04-01 (Mon, 01 Apr 2024)
Changed paths:
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/Sources.txt
M Source/JavaScriptCore/bytecode/AccessCase.h
M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp
A Source/JavaScriptCore/bytecode/SharedJITStubSet.cpp
A Source/JavaScriptCore/bytecode/SharedJITStubSet.h
M Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
M Source/JavaScriptCore/bytecode/StructureStubInfo.h
M Source/JavaScriptCore/heap/Heap.cpp
M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp
M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
M Source/JavaScriptCore/runtime/CacheableIdentifier.h
M Source/JavaScriptCore/runtime/CacheableIdentifierInlines.h
M Source/JavaScriptCore/runtime/VM.cpp
Log Message:
-----------
[JSC] Start sharing megamorphic ById JIT code
https://bugs.webkit.org/show_bug.cgi?id=271942
rdar://125667161
Reviewed by Keith Miller.
This patch makes megamorphic ById JIT code shareable between multiple sites.
This is paving a way towards full handler IC, but for now, this is limited to
megamorphic ById JIT code.
SharedJITStubSet can do hashing via AccessCase vector and can store JIT code
for them. This is a key part
for Handler IC since we would like to use that later.
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/bytecode/AccessCase.h:
(JSC::AccessCase::updateIdentifier):
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::isMegamorphicById):
(JSC::InlineCacheCompiler::regenerate):
* Source/JavaScriptCore/bytecode/SharedJITStubSet.cpp: Added.
(JSC::SharedJITStubSet::getStatelessStub const):
(JSC::SharedJITStubSet::setStatelessStub):
(JSC::SharedJITStubSet::getSlowPathHandler const):
(JSC::SharedJITStubSet::setSlowPathHandler):
* Source/JavaScriptCore/bytecode/SharedJITStubSet.h: Added.
(JSC::SharedJITStubSet::stubInfoKey):
(JSC::SharedJITStubSet::Hash::Key::Key):
(JSC::SharedJITStubSet::Hash::Key::isHashTableDeletedValue const):
(JSC::SharedJITStubSet::Hash::hash):
(JSC::SharedJITStubSet::Hash::equal):
(JSC::SharedJITStubSet::Searcher::Translator::hash):
(JSC::SharedJITStubSet::Searcher::Translator::equal):
(JSC::SharedJITStubSet::PointerTranslator::hash):
(JSC::SharedJITStubSet::PointerTranslator::equal):
(JSC::SharedJITStubSet::add):
(JSC::SharedJITStubSet::remove):
(JSC::SharedJITStubSet::find):
* Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:
(JSC::SharedJITStubSet::getStatelessStub const): Deleted.
(JSC::SharedJITStubSet::setStatelessStub): Deleted.
(JSC::SharedJITStubSet::getSlowPathHandler const): Deleted.
(JSC::SharedJITStubSet::setSlowPathHandler): Deleted.
* Source/JavaScriptCore/bytecode/StructureStubInfo.h:
(JSC::SharedJITStubSet::Hash::Key::Key): Deleted.
(JSC::SharedJITStubSet::Hash::Key::isHashTableDeletedValue const): Deleted.
(JSC::SharedJITStubSet::Hash::hash): Deleted.
(JSC::SharedJITStubSet::Hash::equal): Deleted.
(JSC::SharedJITStubSet::Searcher::Translator::hash): Deleted.
(JSC::SharedJITStubSet::Searcher::Translator::equal): Deleted.
(JSC::SharedJITStubSet::PointerTranslator::hash): Deleted.
(JSC::SharedJITStubSet::PointerTranslator::equal): Deleted.
(JSC::SharedJITStubSet::add): Deleted.
(JSC::SharedJITStubSet::remove): Deleted.
(JSC::SharedJITStubSet::find): Deleted.
* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::runEndPhase):
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:
(JSC::PolymorphicAccessJITStubRoutine::observeZeroRefCountImpl):
(JSC::PolymorphicAccessJITStubRoutine::computeHash):
(JSC::PolymorphicAccessJITStubRoutine::addedToSharedJITStubSet):
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h:
(JSC::PolymorphicAccessJITStubRoutine::hash const):
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:
* Source/JavaScriptCore/runtime/CacheableIdentifier.h:
* Source/JavaScriptCore/runtime/CacheableIdentifierInlines.h:
(JSC::CacheableIdentifier::createFromSharedStub):
* Source/JavaScriptCore/runtime/VM.cpp:
Canonical link: https://commits.webkit.org/276916@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes