Title: [225840] trunk/Source/_javascript_Core
Revision
225840
Author
utatane....@gmail.com
Date
2017-12-12 23:51:16 -0800 (Tue, 12 Dec 2017)

Log Message

[JSC] Optimize Object.assign by single transition acceleration
https://bugs.webkit.org/show_bug.cgi?id=180644

Reviewed by Saam Barati.

Handling single transition is critical. Since this get() function is only used
in Structure.cpp's 2 functions and it is quite small, we can annotate `inline`
to accelerate it.

This improves SixSpeed/object-assign.es6 by 2.8%.

                            baseline                  patched

object-assign.es6      382.3548+-8.0461          371.6496+-5.7439          might be 1.0288x faster

* runtime/Structure.cpp:
(JSC::StructureTransitionTable::get const):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (225839 => 225840)


--- trunk/Source/_javascript_Core/ChangeLog	2017-12-13 06:19:57 UTC (rev 225839)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-12-13 07:51:16 UTC (rev 225840)
@@ -1,3 +1,23 @@
+2017-12-12  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [JSC] Optimize Object.assign by single transition acceleration
+        https://bugs.webkit.org/show_bug.cgi?id=180644
+
+        Reviewed by Saam Barati.
+
+        Handling single transition is critical. Since this get() function is only used
+        in Structure.cpp's 2 functions and it is quite small, we can annotate `inline`
+        to accelerate it.
+
+        This improves SixSpeed/object-assign.es6 by 2.8%.
+
+                                    baseline                  patched
+
+        object-assign.es6      382.3548+-8.0461          371.6496+-5.7439          might be 1.0288x faster
+
+        * runtime/Structure.cpp:
+        (JSC::StructureTransitionTable::get const):
+
 2017-12-12  Filip Pizlo  <fpi...@apple.com>
 
         Structure, StructureRareData, and PropertyTable should be in IsoSubspaces

Modified: trunk/Source/_javascript_Core/runtime/Structure.cpp (225839 => 225840)


--- trunk/Source/_javascript_Core/runtime/Structure.cpp	2017-12-13 06:19:57 UTC (rev 225839)
+++ trunk/Source/_javascript_Core/runtime/Structure.cpp	2017-12-13 07:51:16 UTC (rev 225840)
@@ -99,7 +99,7 @@
     return map()->get(std::make_pair(rep, attributes));
 }
 
-Structure* StructureTransitionTable::get(UniquedStringImpl* rep, unsigned attributes) const
+inline Structure* StructureTransitionTable::get(UniquedStringImpl* rep, unsigned attributes) const
 {
     if (isUsingSingleSlot()) {
         Structure* transition = singleTransition();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to