Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e66d49b789e7c90ff6e8c18ed802fe04a0508d23
https://github.com/WebKit/WebKit/commit/e66d49b789e7c90ff6e8c18ed802fe04a0508d23
Author: Yusuke Suzuki <[email protected]>
Date: 2024-08-09 (Fri, 09 Aug 2024)
Changed paths:
M Source/JavaScriptCore/runtime/ArrayPrototype.cpp
M Source/JavaScriptCore/runtime/ButterflyInlines.h
M Source/JavaScriptCore/runtime/JSArray.cpp
M Source/JavaScriptCore/runtime/JSObject.cpp
M Source/JavaScriptCore/runtime/ObjectConstructorInlines.h
Log Message:
-----------
[JSC] Do not use gcSafeMemcpy etc. when it is not necessary
https://bugs.webkit.org/show_bug.cgi?id=277846
rdar://133516497
Reviewed by Keith Miller.
We found that gcSafeMemcpy etc. are costly than memcpy etc. And right now we
are using it too conservatively.
For example, if the butterfly is not tied to any JSObject yet, we do not need
to use gcSafeMemcpy since it
will not be scanned by GC. This patch fixes various conservative gcSafeMemcpy
with memcpy to leverage super
fast & compiler-aided implementation of memcpy.
* Source/JavaScriptCore/runtime/ArrayPrototype.cpp:
(JSC::copyElements):
* Source/JavaScriptCore/runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreate):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
(JSC::Butterfly::resizeArray):
* Source/JavaScriptCore/runtime/JSArray.cpp:
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
* Source/JavaScriptCore/runtime/JSObject.cpp:
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::shiftButterflyAfterFlattening):
* Source/JavaScriptCore/runtime/ObjectConstructorInlines.h:
(JSC::objectCloneFast):
(JSC::tryCreateObjectViaCloning):
Canonical link: https://commits.webkit.org/282051@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