Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 63f11147b08a7bacd245550e84ef886cde29a333 https://github.com/WebKit/WebKit/commit/63f11147b08a7bacd245550e84ef886cde29a333 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2024-07-01 (Mon, 01 Jul 2024)
Changed paths: M Source/JavaScriptCore/bytecode/CallLinkInfo.cpp M Source/JavaScriptCore/bytecode/CallLinkInfo.h M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp M Source/JavaScriptCore/dfg/DFGJITCompiler.cpp M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp M Source/JavaScriptCore/ftl/FTLState.cpp M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm Log Message: ----------- [JSC] Use Data Call IC in FTL https://bugs.webkit.org/show_bug.cgi?id=276000 rdar://130766372 Reviewed by Yijia Huang. This patch makes FTL always use Data IC for CallLinkInfo. As a result, now all calls use Data IC (except for DirectCallLinkInfo). In addition to simplify the implementation, it also unlocks CallLinkInfo's upgradeIfPossible feature for all code. * Source/JavaScriptCore/bytecode/CallLinkInfo.cpp: (JSC::CallLinkInfo::unlinkOrUpgradeImpl): (JSC::CallLinkInfo::setMonomorphicCallee): (JSC::CallLinkInfo::clearCallee): (JSC::CallLinkInfo::revertCallToStub): (JSC::DataOnlyCallLinkInfo::initialize): (JSC::CallLinkInfo::setVirtualCall): (JSC::CallLinkInfo::setStub): (JSC::CallLinkInfo::emitFastPathImpl): (JSC::CallLinkInfo::emitDataICFastPath): (JSC::CallLinkInfo::emitTailCallDataICFastPath): (JSC::OptimizingCallLinkInfo::emitFastPath): (JSC::OptimizingCallLinkInfo::emitTailCallFastPath): * Source/JavaScriptCore/bytecode/CallLinkInfo.h: (JSC::CallLinkInfo::offsetOfCodeBlock): (JSC::CallLinkInfo::offsetOfMonomorphicCallDestination): (JSC::CallLinkInfo::CallLinkInfo): (JSC::CallLinkInfo::isDataIC const): Deleted. (JSC::CallLinkInfo::useDataIC const): Deleted. * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::InlineCacheCompiler::generateAccessCase): (JSC::InlineCacheCompiler::emitProxyObjectAccess): * Source/JavaScriptCore/dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::addCallLinkInfo): * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): * Source/JavaScriptCore/ftl/FTLState.cpp: (JSC::FTL::State::addCallLinkInfo): * Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp: (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine): (JSC::PolymorphicCallStubRoutine::upgradeIfPossible): * Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h: * Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm: * Source/JavaScriptCore/llint/LowLevelInterpreter64.asm: Canonical link: https://commits.webkit.org/280538@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