RESOLVED FIXED 197833
[JSC] Shrink sizeof(UnlinkedFunctionExecutable) more
https://bugs.webkit.org/show_bug.cgi?id=197833
Summary [JSC] Shrink sizeof(UnlinkedFunctionExecutable) more
Yusuke Suzuki
Reported 2019-05-13 01:31:35 PDT
[JSC] Shrink sizeof(UnlinkedFunctionExecutable) more
Attachments
Patch (18.74 KB, patch)
2019-05-13 01:32 PDT, Yusuke Suzuki
no flags
Patch (18.71 KB, patch)
2019-05-13 01:33 PDT, Yusuke Suzuki
no flags
Archive of layout-test-results from ews103 for mac-highsierra (3.06 MB, application/zip)
2019-05-13 02:49 PDT, EWS Watchlist
no flags
Archive of layout-test-results from ews106 for mac-highsierra-wk2 (2.83 MB, application/zip)
2019-05-13 02:54 PDT, EWS Watchlist
no flags
Archive of layout-test-results from ews112 for mac-highsierra (3.01 MB, application/zip)
2019-05-13 03:24 PDT, EWS Watchlist
no flags
Patch (19.55 KB, patch)
2019-05-13 19:55 PDT, Yusuke Suzuki
no flags
Patch (27.55 KB, patch)
2019-05-13 22:16 PDT, Yusuke Suzuki
darin: review+
Yusuke Suzuki
Comment 1 2019-05-13 01:32:31 PDT
Yusuke Suzuki
Comment 2 2019-05-13 01:33:35 PDT
EWS Watchlist
Comment 3 2019-05-13 02:49:31 PDT
Comment on attachment 369712 [details] Patch Attachment 369712 [details] did not pass mac-ews (mac): Output: https://webkit-queues.webkit.org/results/12174771 New failing tests: inspector/debugger/js-stacktrace.html
EWS Watchlist
Comment 4 2019-05-13 02:49:33 PDT
Created attachment 369721 [details] Archive of layout-test-results from ews103 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-highsierra Platform: Mac OS X 10.13.6
EWS Watchlist
Comment 5 2019-05-13 02:54:17 PDT
Comment on attachment 369712 [details] Patch Attachment 369712 [details] did not pass mac-wk2-ews (mac-wk2): Output: https://webkit-queues.webkit.org/results/12174749 New failing tests: inspector/debugger/js-stacktrace.html
EWS Watchlist
Comment 6 2019-05-13 02:54:19 PDT
Created attachment 369722 [details] Archive of layout-test-results from ews106 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews106 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
EWS Watchlist
Comment 7 2019-05-13 03:24:19 PDT
Comment on attachment 369712 [details] Patch Attachment 369712 [details] did not pass mac-debug-ews (mac): Output: https://webkit-queues.webkit.org/results/12174857 New failing tests: inspector/debugger/js-stacktrace.html
EWS Watchlist
Comment 8 2019-05-13 03:24:21 PDT
Created attachment 369723 [details] Archive of layout-test-results from ews112 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews112 Port: mac-highsierra Platform: Mac OS X 10.13.6
Yusuke Suzuki
Comment 9 2019-05-13 19:55:38 PDT
Yusuke Suzuki
Comment 10 2019-05-13 22:16:40 PDT
Tadeu Zagallo
Comment 11 2019-05-14 02:09:45 PDT
Nice. It might be worth doing the same to CachedFunctionExecutable so we can also shrink the bytecode cache size (or at least adding a FIXME).
Darin Adler
Comment 12 2019-05-14 09:06:01 PDT
Comment on attachment 369821 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=369821&action=review > Source/JavaScriptCore/ChangeLog:16 > + 2. We drop m_inferredName and prefer m_ecmaName. The inferred name is used to offer better function name when the function expression lacks > + the name, but now ECMAScript has a specified semantics to name those functions with intuitive names. We should use ecmaName consistently, > + and should not eat 8 bytes for inferred names in UnlinkedFunctionExecutable. Seems like a great strategy, but longer term there has to be something more elegant than calling this "ECMA name".
Yusuke Suzuki
Comment 13 2019-05-14 10:05:01 PDT
Comment on attachment 369821 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=369821&action=review >> Source/JavaScriptCore/ChangeLog:16 >> + and should not eat 8 bytes for inferred names in UnlinkedFunctionExecutable. > > Seems like a great strategy, but longer term there has to be something more elegant than calling this "ECMA name". Right! Currently, we hold m_ecmaName and m_name separately, but I think we could remove m_name side since m_ecmaName should subsume the use case of m_name. Once it is done, we can just call it "m_name".
Yusuke Suzuki
Comment 14 2019-05-14 10:19:51 PDT
(In reply to Tadeu Zagallo from comment #11) > Nice. It might be worth doing the same to CachedFunctionExecutable so we can > also shrink the bytecode cache size (or at least adding a FIXME). Nice, done!
Yusuke Suzuki
Comment 15 2019-05-14 10:31:59 PDT
Radar WebKit Bug Importer
Comment 16 2019-05-14 10:32:32 PDT
Truitt Savell
Comment 17 2019-05-14 13:37:53 PDT
Rebaslined inspector/model/remote-object.html in: https://trac.webkit.org/changeset/245303/webkit After it was broken by https://trac.webkit.org/changeset/245288/webkit
Devin Rousso
Comment 18 2019-05-14 13:51:13 PDT
Comment on attachment 369821 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=369821&action=review > Source/JavaScriptCore/parser/ASTBuilder.h:-1506 > - static_cast<BaseFuncExprNode*>(expr)->metadata()->setInferredName(dot->identifier()); FWIW, this slightly alters the object previews shown in Web Inspector. <http://trac.webkit.org/r245303>
Note You need to log in before you can comment on or make changes to this bug.