[JSC] Optimize layout of AccessCase / ProxyableAccessCase to reduce size of Proxyable...
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 17:08:17 +0000 (17:08 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 17:08:17 +0000 (17:08 +0000)
commit1e466dfbeba059de9c5aa8c80ed451fd9827b4af
tree1da1d397e12e880eb0ee877ef3f05a7502add9a5
parentba993839d62a20b481bd46d62e957f49506f32f2
[JSC] Optimize layout of AccessCase / ProxyableAccessCase to reduce size of ProxyableAccessCase
https://bugs.webkit.org/show_bug.cgi?id=187465

Reviewed by Keith Miller.

ProxyableAccessCase is allocated so frequently and it is persisted so long. Reducing the size
of ProxyableAccessCase can reduce the footprint of many web sites including nytimes.com.

This patch uses a bit complicated layout to reduce ProxyableAccessCase. We add unused bool member
in AccessCase's padding, and use it in ProxyableAccessCase. By doing so, we can reduce the size
of ProxyableAccessCase from 56 to 48. And it also reduces the size of GetterSetterAccessCase
from 104 to 96 since it inherits ProxyableAccessCase.

* bytecode/AccessCase.h:
(JSC::AccessCase::viaProxy const):
(JSC::AccessCase::AccessCase):
* bytecode/ProxyableAccessCase.cpp:
(JSC::ProxyableAccessCase::ProxyableAccessCase):
* bytecode/ProxyableAccessCase.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bytecode/AccessCase.h
Source/JavaScriptCore/bytecode/ProxyableAccessCase.cpp
Source/JavaScriptCore/bytecode/ProxyableAccessCase.h