Branch: refs/heads/safari-7616.1.27.211-branch Home: https://github.com/WebKit/WebKit Commit: ba27ec33b5e22b51ff423d4de0e83efd74fcd47a https://github.com/WebKit/WebKit/commit/ba27ec33b5e22b51ff423d4de0e83efd74fcd47a Author: Dan Robson <dtr_bugzi...@apple.com> Date: 2023-08-18 (Fri, 18 Aug 2023)
Changed paths: M Configurations/Version.xcconfig Log Message: ----------- Versioning. WebKit-7616.1.27.111.16 Identifier: 265870.343@safari-7616.1.27.111-branch Commit: a4bb3596d60a871abb78b0347ac0f6433b3a835e https://github.com/WebKit/WebKit/commit/a4bb3596d60a871abb78b0347ac0f6433b3a835e Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2023-08-18 (Fri, 18 Aug 2023) Changed paths: M Source/JavaScriptCore/bytecode/SpeculatedType.cpp M Source/JavaScriptCore/bytecode/SpeculatedType.h M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h M Source/JavaScriptCore/dfg/DFGAbstractValue.cpp M Source/JavaScriptCore/dfg/DFGAbstractValue.h M Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp M Source/JavaScriptCore/dfg/DFGInsertionSet.cpp M Source/JavaScriptCore/dfg/DFGInsertionSet.h M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm M Source/JavaScriptCore/runtime/JSType.h Log Message: ----------- Cherry-pick ea191c94955d. rdar://114103295 [JSC] Make speculationFromValue cheap https://bugs.webkit.org/show_bug.cgi?id=259633 rdar://113098188 Reviewed by Mark Lam. This patch makes speculationFromValue extremely cheap by using JSType based SpeculatedType lookup. This function can be called from operationOptimize & GC End phase. And this sometimes takes very long time due to huge size of functions. Thus making this function extremely cheap is particularly important to make startup time faster. In particular, we observed massive sampling points for speculationFromValue in startup times in Speedometer2.1, Speedometer3.0, JetStream2.1, and JetStream3.0. 1. This patch removes SpecFunctionWithDefaultHasInstance and SpecFunctionWithNonDefaultHasInstance. We can just use existing Structure iteration and that can cover almost all possible cases. These type makes speculationFromValue costly for JSFunction and derived classes, so rather not so great. 2. This patch makes some functions JS_EXPORT_PRIVATE to make speculationFromValue non-JS_EXPORT_PRIVATE. So we can allow LTO / PGO to inline this if it is useful. 3. We define JSType via macro, and we list up corresponding SpeculatedType at that time. This allows us to construct a mapping between them easily, and this makes speculationFromValue just array lookup, which becomes extremely fast. * Source/JavaScriptCore/bytecode/SpeculatedType.cpp: (JSC::=): (JSC::speculationFromStructure): (JSC::speculationFromCell): * Source/JavaScriptCore/bytecode/SpeculatedType.h: * Source/JavaScriptCore/dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::validateOSREntryValue const): (JSC::DFG::AbstractValue::validateTypeAcceptingBoxedInt52 const): * Source/JavaScriptCore/dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::observeIndexingTypeTransition): (JSC::DFG::AbstractValue::validateOSREntryValue const): Deleted. (JSC::DFG::AbstractValue::validateTypeAcceptingBoxedInt52 const): Deleted. * Source/JavaScriptCore/dfg/DFGInsertionSet.cpp: (JSC::DFG::InsertionSet::insertConstant): * Source/JavaScriptCore/dfg/DFGInsertionSet.h: * Source/JavaScriptCore/llint/LowLevelInterpreter64.asm: * Source/JavaScriptCore/runtime/JSType.h: Canonical link: https://commits.webkit.org/266422@main Identifier: 265870.344@safari-7616.1.27.111-branch Commit: 9239f61644d286ec9113b9e839ec9f5ce73de721 https://github.com/WebKit/WebKit/commit/9239f61644d286ec9113b9e839ec9f5ce73de721 Author: Russell Epstein <repst...@apple.com> Date: 2023-09-14 (Thu, 14 Sep 2023) Changed paths: M Configurations/Version.xcconfig Log Message: ----------- Versioning. WebKit-7616.1.27.211.1 Canonical link: https://commits.webkit.org/265870.345@safari-7616.1.27.211-branch Commit: 0e722583a4d695c7b25f384c61fbf5b59b4c3146 https://github.com/WebKit/WebKit/commit/0e722583a4d695c7b25f384c61fbf5b59b4c3146 Author: Keith Miller <keith_mil...@apple.com> Date: 2023-09-14 (Thu, 14 Sep 2023) Changed paths: A JSTests/stress/getbyoffset-cse-consistency.js A JSTests/stress/multigetbyoffset-cse-consistency.js M Source/JavaScriptCore/dfg/DFGCSEPhase.cpp M Source/JavaScriptCore/dfg/DFGClobberize.h M Source/JavaScriptCore/dfg/DFGHeapLocation.h Log Message: ----------- Cherry-pick 47e039ffd689. rdar://115399657 clobberize needs to be more precise with the *ByOffset nodes https://bugs.webkit.org/show_bug.cgi?id=261544 rdar://115399657 Reviewed by Yusuke Suzuki and Mark Lam. CSE phase uses clobberize to figure out if it's safe to merge two operations that def the same HeapLocation. Since HeapLocation does not currently have a way to track the offset used by the various *ByOffset nodes it can get confused and think that two ByOffset instructions produce the same value even if they don't use the same offset. This patch solves this by adding a new field to HeapLocation, which takes the metadata associated with the corresponding *ByOffset node. If two *ByOffset operations don't share the same metadata then they cannot be CSEed. * Source/JavaScriptCore/dfg/DFGCSEPhase.cpp: * Source/JavaScriptCore/dfg/DFGClobberize.h: (JSC::DFG::clobberize): * Source/JavaScriptCore/dfg/DFGHeapLocation.h: (JSC::DFG::HeapLocation::HeapLocation): (JSC::DFG::HeapLocation::extraState const): (JSC::DFG::HeapLocation::hash const): Canonical link: https://commits.webkit.org/265870.558@safari-7616-branch Canonical link: https://commits.webkit.org/265870.346@safari-7616.1.27.211-branch Compare: https://github.com/WebKit/WebKit/compare/ba27ec33b5e2%5E...0e722583a4d6 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes