Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d8d941f1893050954e64ab80125e28b1a38c6445 https://github.com/WebKit/WebKit/commit/d8d941f1893050954e64ab80125e28b1a38c6445 Author: Yusuke Suzuki <ysuz...@apple.com> 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 webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes