[JSC] Inline JSArray::pushInline and Structure::nonPropertyTransition
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Jun 2018 18:29:38 +0000 (18:29 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Jun 2018 18:29:38 +0000 (18:29 +0000)
commit64e07a5bb9703ad4ee240a2739d214ddf90faf06
treef9c9bbab4174506f7afea3ed9a2e4444976079e6
parent0036bd45e124fc3ef34a5508df09d1fe002597e9
[JSC] Inline JSArray::pushInline and Structure::nonPropertyTransition
https://bugs.webkit.org/show_bug.cgi?id=186723

Reviewed by Mark Lam.

Now, CoW -> non-CoW transition is heavy path. We inline the part of Structure::nonPropertyTransition
to catch the major path. And we also inline JSArray::pushInline well to spread this in operationArrayPushMultiple.

This patch improves SixSpeed/spread-literal.es5.

                             baseline                  patched

spread-literal.es5      114.4140+-4.5146     ^    104.5475+-3.6157        ^ definitely 1.0944x faster

* runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
* runtime/Structure.cpp:
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::nonPropertyTransition): Deleted.
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::nonPropertyTransition):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/JSArrayInlines.h
Source/JavaScriptCore/runtime/Structure.cpp
Source/JavaScriptCore/runtime/Structure.h
Source/JavaScriptCore/runtime/StructureInlines.h