Inline (C++) GetByVal with numeric indices more aggressively.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Apr 2014 06:00:43 +0000 (06:00 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Apr 2014 06:00:43 +0000 (06:00 +0000)
commit8622710684405bffa753b77f762a5ce4b208ee50
treee4e2b820da962218e236bf1c58b82bb05b3f4391
parentc462f1e1f5291c6105b3bc92e0ed8443861e4ae8
Inline (C++) GetByVal with numeric indices more aggressively.
<https://webkit.org/b/132218>

We were already inlining the string indexed GetByVal path pretty well,
while the path for numeric indices got neglected. No more!

~9.5% improvement on Dromaeo/dom-traverse.html on my MBP:

    Before: 199.50 runs/s
     After: 218.58 runs/s

Reviewed by Phil Pizlo.

* dfg/DFGOperations.cpp:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::get):

    ALWAYS_INLINE all the things.

* runtime/JSObject.h:
(JSC::JSObject::getPropertySlot):

    Avoid fetching the Structure more than once. We have the same
    optimization in the string-indexed code path.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@167842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGOperations.cpp
Source/JavaScriptCore/runtime/JSCJSValueInlines.h
Source/JavaScriptCore/runtime/JSObject.h