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