[webkit-changes] [WebKit/WebKit] 57c000: [JSC] Make StringConstructor call faster
Yusuke Suzuki
noreply at github.com
Fri Feb 10 22:41:52 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 57c000d9eaf5aa7fbc274c4a4f8518ada8875bd3
https://github.com/WebKit/WebKit/commit/57c000d9eaf5aa7fbc274c4a4f8518ada8875bd3
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-02-10 (Fri, 10 Feb 2023)
Changed paths:
A JSTests/microbenchmarks/string-on-string.js
M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
M Source/JavaScriptCore/jit/ThunkGenerators.cpp
M Source/JavaScriptCore/jit/ThunkGenerators.h
M Source/JavaScriptCore/runtime/Intrinsic.h
M Source/JavaScriptCore/runtime/StringConstructor.cpp
M Source/JavaScriptCore/runtime/StringConstructor.h
M Source/JavaScriptCore/runtime/VM.cpp
Log Message:
-----------
[JSC] Make StringConstructor call faster
https://bugs.webkit.org/show_bug.cgi?id=252099
rdar://105306684
Reviewed by Justin Michaud.
String constructor is used in a form of call (not construct) to apply ToString-like effect onto the input.
This patch makes String constructor JSFunction so that we can make this call faster than InternalFunction calls.
This is the same optimization done for Number constructor.
ToT Patched
string-on-string 8.6568+-0.0778 ^ 7.2580+-0.0923 ^ definitely 1.1927x faster
* JSTests/microbenchmarks/string-on-string.js: Added.
(shouldBe):
(test):
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::stringConstructorCallThunkGenerator):
* Source/JavaScriptCore/jit/ThunkGenerators.h:
* Source/JavaScriptCore/runtime/Intrinsic.h:
* Source/JavaScriptCore/runtime/StringConstructor.cpp:
(JSC::StringConstructor::StringConstructor):
(JSC::StringConstructor::finishCreation):
(JSC::StringConstructor::create):
* Source/JavaScriptCore/runtime/StringConstructor.h:
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):
Canonical link: https://commits.webkit.org/260146@main
More information about the webkit-changes
mailing list