Meta-bug V8 Memory Reduction
There was an old bug for uncompiled SFI reduction after the first memory investigation with GMail
Overview Doc: https://docs.google.com/document/d/1Fa4km2MLq2N9Q1W0xx1d4p_oI3OIwFh3vq142lVN6ZE
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1f53e38100c76f170e54ebdfc32e1b3a86988e0e commit 1f53e38100c76f170e54ebdfc32e1b3a86988e0e Author: Camillo Bruni <cbruni@chromium.org> Date: Tue Mar 20 15:18:04 2018 [runtime] Shrink StringTable if it is very empty We currently never shrink the StringTable which causes excessive memory usage on certain websites. This CL tries to mitigate this by shrinking the StringTable if it is very empty (nof_elements * 16 < capacity) hopefully avoiding costly reallocations. Bug: chromium:818642, v8:5443 Change-Id: I4e6a95b3a6992b499fa6dd59ae159c51f089965a Reviewed-on: https://chromium-review.googlesource.com/970465 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52070} [modify] https://crrev.com/1f53e38100c76f170e54ebdfc32e1b3a86988e0e/src/heap/heap.h [modify] https://crrev.com/1f53e38100c76f170e54ebdfc32e1b3a86988e0e/src/objects.cc [modify] https://crrev.com/1f53e38100c76f170e54ebdfc32e1b3a86988e0e/src/objects/hash-table.h [modify] https://crrev.com/1f53e38100c76f170e54ebdfc32e1b3a86988e0e/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/868ed8eeccf08b1e175419c871fe123cb487e574 commit 868ed8eeccf08b1e175419c871fe123cb487e574 Author: Camillo Bruni <cbruni@chromium.org> Date: Thu Mar 22 13:03:42 2018 [runtime] Decrease StringTable shrink limit Given that we have not seen any regressions yet we're trying a more aggressive limit. Bug: chromium:818642, v8:5443 Change-Id: Ic45001ed6c042fc31cbba0d417d5060d2de8fb3a Reviewed-on: https://chromium-review.googlesource.com/975126 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52145} [modify] https://crrev.com/868ed8eeccf08b1e175419c871fe123cb487e574/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9debc06fbd45011d35e8c7f56f060158b25410e5 commit 9debc06fbd45011d35e8c7f56f060158b25410e5 Author: Michael Achenbach <machenbach@chromium.org> Date: Thu Mar 22 14:41:18 2018 Revert "[runtime] Decrease StringTable shrink limit" This reverts commit 868ed8eeccf08b1e175419c871fe123cb487e574. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/19753 Original change's description: > [runtime] Decrease StringTable shrink limit > > Given that we have not seen any regressions yet we're trying a more aggressive > limit. > > Bug: chromium:818642, v8:5443 > Change-Id: Ic45001ed6c042fc31cbba0d417d5060d2de8fb3a > Reviewed-on: https://chromium-review.googlesource.com/975126 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52145} TBR=mlippautz@chromium.org,cbruni@chromium.org Change-Id: Ic1f3ab2aa7683e5fc9118f196e5a31eb55a9a5a0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642, v8:5443 Reviewed-on: https://chromium-review.googlesource.com/975741 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52148} [modify] https://crrev.com/9debc06fbd45011d35e8c7f56f060158b25410e5/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/20d5fba30c33f7f02f96d7044d7471e0a4563303 commit 20d5fba30c33f7f02f96d7044d7471e0a4563303 Author: Camillo Bruni <cbruni@chromium.org> Date: Tue Mar 27 11:38:42 2018 Reland "[runtime] Decrease StringTable shrink limit" - Allow deserializer to add entries to the StringTable without causing a gc. This is a reland of 868ed8eeccf08b1e175419c871fe123cb487e574 Original change's description: > [runtime] Decrease StringTable shrink limit > > Given that we have not seen any regressions yet we're trying a more aggressive > limit. > > Bug: chromium:818642, v8:5443 > Change-Id: Ic45001ed6c042fc31cbba0d417d5060d2de8fb3a > Reviewed-on: https://chromium-review.googlesource.com/975126 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52145} Bug: chromium:818642, v8:5443 Change-Id: I051c6a79e59ec40cf87cab5bf06c4c449f8113d0 Reviewed-on: https://chromium-review.googlesource.com/975643 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52242} [modify] https://crrev.com/20d5fba30c33f7f02f96d7044d7471e0a4563303/src/objects.cc [modify] https://crrev.com/20d5fba30c33f7f02f96d7044d7471e0a4563303/src/objects/string-table.h [modify] https://crrev.com/20d5fba30c33f7f02f96d7044d7471e0a4563303/src/snapshot/object-deserializer.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6823c0a496a75161e3a82eefc759180b547077e2 commit 6823c0a496a75161e3a82eefc759180b547077e2 Author: Camillo Bruni <cbruni@chromium.org> Date: Thu Apr 05 14:52:40 2018 [runtime] Do some more StringTable shrinking This CL further lowers the kMaxEmptyFactor constant to more aggressively shrink the StringTable when it's empty. Bug: v8:5443, chromium:818642 Change-Id: I1c263a0afd7e6bed8a8bb857db032bf126c3ef4b Reviewed-on: https://chromium-review.googlesource.com/995473 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52401} [modify] https://crrev.com/6823c0a496a75161e3a82eefc759180b547077e2/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/54f2aac554473554576f2dceb21e7adec1fe0c33 commit 54f2aac554473554576f2dceb21e7adec1fe0c33 Author: Camillo Bruni <cbruni@chromium.org> Date: Thu Apr 05 21:18:52 2018 [runtime][parser] Store the inferred function name on the ScopeInfo This is another small step towards detaching the JSFunction from Contexts. In order to not break the debugger protocol we need the inferred name on the ScopeInfo chain. This CL might increase memory usage slightly, given that the inferred name field is duplicated on the ScopeInfo. Bug: v8:7066 , chromium:818642 Change-Id: I0dd9f18ae69791f774cf835669afa50491f7433b Reviewed-on: https://chromium-review.googlesource.com/995792 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52415} [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/ast/ast.cc [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/ast/ast.h [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/ast/scopes.h [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/objects-printer.cc [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/objects/scope-info.cc [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/objects/scope-info.h [modify] https://crrev.com/54f2aac554473554576f2dceb21e7adec1fe0c33/src/objects/shared-function-info-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/affbe85e922356697534df0f6b224efd07cf98fa commit affbe85e922356697534df0f6b224efd07cf98fa Author: Jakob Gruber <jgruber@chromium.org> Date: Tue Apr 10 10:18:21 2018 Revert "[runtime] Do some more StringTable shrinking" This reverts commit 6823c0a496a75161e3a82eefc759180b547077e2. Reason for revert: https://crbug.com/830499 Original change's description: > [runtime] Do some more StringTable shrinking > > This CL further lowers the kMaxEmptyFactor constant to more aggressively shrink > the StringTable when it's empty. > > Bug: v8:5443, chromium:818642 > Change-Id: I1c263a0afd7e6bed8a8bb857db032bf126c3ef4b > Reviewed-on: https://chromium-review.googlesource.com/995473 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52401} TBR=mlippautz@chromium.org,cbruni@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:5443, chromium:818642 Change-Id: Ibd009fe1e9fcd0b36f168ad425e1eb5e663a1ca8 Reviewed-on: https://chromium-review.googlesource.com/1004456 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52515} [modify] https://crrev.com/affbe85e922356697534df0f6b224efd07cf98fa/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6 commit 2df5e7a7b6d625a69b17d4e11380eed55da3d3e6 Author: Leszek Swirski <leszeks@chromium.org> Date: Tue May 01 15:38:19 2018 [parser] Slice the source string where possible When internalizing string literals (for quoted strings or property names), try to create a sliced string of the source string rather than allocating a copy of the bytes. This will not work for string literals that contain escapes (e.g. unicode escapes), and currently does not support two-byte strings. Bug: chromium:818642 Change-Id: I686e5ad36baecd1a84ce5e124118431249b6c980 Reviewed-on: https://chromium-review.googlesource.com/1010282 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52898} [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/ast/ast-value-factory.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/ast/ast-value-factory.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/ast/modules.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/ast/scopes.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/compiler.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/compiler/js-typed-lowering.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/compiler/types.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/debug/debug-scopes.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/flag-definitions.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/heap/factory.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/heap/factory.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/heap/heap.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/objects-debug.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/objects-printer.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/objects.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/objects.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/objects/string-inl.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/parsing/parser-base.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/parsing/parser.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/parsing/parser.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/parsing/scanner.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/parsing/scanner.h [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/pending-compilation-error-handler.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/src/runtime/runtime-internal.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/cctest/interpreter/test-interpreter.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/cctest/test-heap-profiler.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/cctest/test-parsing.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/cctest/test-serialize.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/cctest/test-strings.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/unittests/interpreter/bytecode-array-builder-unittest.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/unittests/interpreter/bytecode-array-iterator-unittest.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/test/unittests/interpreter/constant-array-builder-unittest.cc [modify] https://crrev.com/2df5e7a7b6d625a69b17d4e11380eed55da3d3e6/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/18bc2856218426bcdce5a68158a3b6a889ca81ad commit 18bc2856218426bcdce5a68158a3b6a889ca81ad Author: Leszek Swirski <leszeks@chromium.org> Date: Wed May 02 15:32:13 2018 Revert "[parser] Slice the source string where possible" This reverts commit 2df5e7a7b6d625a69b17d4e11380eed55da3d3e6. Reason for revert: Mystery crashes https://bugs.chromium.org/p/chromium/issues/detail?id=838805 Original change's description: > [parser] Slice the source string where possible > > When internalizing string literals (for quoted strings or property names), > try to create a sliced string of the source string rather than allocating > a copy of the bytes. > > This will not work for string literals that contain escapes (e.g. unicode > escapes), and currently does not support two-byte strings. > > Bug: chromium:818642 > Change-Id: I686e5ad36baecd1a84ce5e124118431249b6c980 > Reviewed-on: https://chromium-review.googlesource.com/1010282 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52898} TBR=marja@chromium.org,yangguo@chromium.org,jarin@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: I598b6668c43a3e843e2dd8e60852b2b2f3461954 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1039885 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52919} [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/ast/ast-value-factory.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/ast/ast-value-factory.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/ast/modules.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/ast/scopes.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/compiler.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/compiler/js-typed-lowering.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/compiler/types.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/debug/debug-scopes.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/flag-definitions.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/heap/factory.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/heap/factory.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/heap/heap.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/objects-debug.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/objects-printer.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/objects.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/objects.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/objects/string-inl.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/parsing/parser-base.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/parsing/parser.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/parsing/parser.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/parsing/scanner.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/parsing/scanner.h [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/pending-compilation-error-handler.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/src/runtime/runtime-internal.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/cctest/interpreter/test-interpreter.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/cctest/test-heap-profiler.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/cctest/test-parsing.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/cctest/test-serialize.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/cctest/test-strings.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/unittests/interpreter/bytecode-array-builder-unittest.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/unittests/interpreter/bytecode-array-iterator-unittest.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/test/unittests/interpreter/constant-array-builder-unittest.cc [modify] https://crrev.com/18bc2856218426bcdce5a68158a3b6a889ca81ad/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/dcbd52341ee542f4d2a380ed8cc6d9bd84a9f8bd commit dcbd52341ee542f4d2a380ed8cc6d9bd84a9f8bd Author: Camillo Bruni <cbruni@chromium.org> Date: Mon May 07 07:46:40 2018 [runtime] The return of the StringTable shrinking This CL fixes a bug where we would accidentally shrink to the same size of the StringTable causing repeated unecessary allocations. Bug: v8:5443, chromium:818642 Change-Id: I353b179616d5293f6d7143e7381ae6711343a835 Reviewed-on: https://chromium-review.googlesource.com/1044207 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#53012} [modify] https://crrev.com/dcbd52341ee542f4d2a380ed8cc6d9bd84a9f8bd/src/objects.cc [modify] https://crrev.com/dcbd52341ee542f4d2a380ed8cc6d9bd84a9f8bd/src/objects/string-table.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/53d4dfc3771dda011ba95d0f825fabb83219ff51 commit 53d4dfc3771dda011ba95d0f825fabb83219ff51 Author: Leszek Swirski <leszeks@chromium.org> Date: Wed May 30 16:35:50 2018 [sfi] Compress function arg counts to 16 bit Compress the parameter count (and function length) stored in SharedFunctionInfo to a uint16_t. This limits us to 2^16 - 1 parameters per function, minus one for the "don't adapt arguments" sentinel value, which is one fewer than Code::kMaxArguments was already. Anyway, 65534 arguments should be enough for anyone! This drops SFI size by 4 bytes. Bug: chromium:818642 Change-Id: I126bfb24453dcdc5087a104d3a12cf195a56fa9f Reviewed-on: https://chromium-review.googlesource.com/1076627 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53447} [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/arm/macro-assembler-arm.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/arm64/macro-assembler-arm64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/arm/builtins-arm.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/arm64/builtins-arm64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/builtins-arguments-gen.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/builtins-object-gen.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/ia32/builtins-ia32.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/mips/builtins-mips.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/mips64/builtins-mips64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/builtins/x64/builtins-x64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/arm/debug-arm.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/arm64/debug-arm64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/ia32/debug-ia32.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/mips/debug-mips.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/mips64/debug-mips64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/debug/x64/debug-x64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/ia32/macro-assembler-ia32.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/interpreter/interpreter-generator.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/macro-assembler.h [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/mips/macro-assembler-mips.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/mips64/macro-assembler-mips64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/objects/code.h [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/objects/object-macros.h [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/objects/shared-function-info-inl.h [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/objects/shared-function-info.h [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/src/x64/macro-assembler-x64.cc [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/test/mjsunit/apply.js [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/test/mjsunit/regress/regress-crbug-724153.js [modify] https://crrev.com/53d4dfc3771dda011ba95d0f825fabb83219ff51/tools/gen-postmortem-metadata.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ceb9c8127faa8fae7be310960080f7e0f1827326 commit ceb9c8127faa8fae7be310960080f7e0f1827326 Author: Leszek Swirski <leszeks@chromium.org> Date: Tue Jun 05 13:45:11 2018 [sfi] Remove SFI function literal id field SharedFunctionInfos store their original function literal's id. This is also their index in the Script's SFI list. Since the function literal id is only needed for lazy compilation and live edit, we can calculate it on-the-fly by linear search in the Script SFI list, and save a field on the SFI. If this regresses compile performance, we could alternatively store the function literal id on the preparsed scope data as future work. Bug: chromium:818642 Change-Id: I5468cea0e115921f1c864d94e567d749a4349882 Reviewed-on: https://chromium-review.googlesource.com/1082480 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#53523} [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/bootstrapper.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/debug/liveedit.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/debug/liveedit.h [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/debug/liveedit.js [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/heap/factory.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/objects.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/objects/shared-function-info-inl.h [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/objects/shared-function-info.h [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/parsing/parse-info.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/parsing/parse-info.h [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/runtime/runtime-function.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/runtime/runtime-liveedit.cc [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/src/runtime/runtime.h [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/test/debugger/debug/debug-liveedit-replace-code.js [modify] https://crrev.com/ceb9c8127faa8fae7be310960080f7e0f1827326/test/unittests/test-helpers.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b6888b63cad8f19e2d14c5d53af7376831d02bea commit b6888b63cad8f19e2d14c5d53af7376831d02bea Author: Leszek Swirski <leszeks@chromium.org> Date: Thu Jun 07 09:21:27 2018 Revert "[sfi] Remove SFI function literal id field" This reverts commit ceb9c8127faa8fae7be310960080f7e0f1827326. Reason for revert: Tanks compile time Original change's description: > [sfi] Remove SFI function literal id field > > SharedFunctionInfos store their original function literal's id. This is > also their index in the Script's SFI list. > > Since the function literal id is only needed for lazy compilation and live > edit, we can calculate it on-the-fly by linear search in the Script SFI list, > and save a field on the SFI. > > If this regresses compile performance, we could alternatively store the > function literal id on the preparsed scope data as future work. > > Bug: chromium:818642 > Change-Id: I5468cea0e115921f1c864d94e567d749a4349882 > Reviewed-on: https://chromium-review.googlesource.com/1082480 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53523} TBR=hpayer@chromium.org,leszeks@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:818642 Bug: chromium:850417 Change-Id: If2fd21331b7062532c04004a51e705f7e9d0a151 Reviewed-on: https://chromium-review.googlesource.com/1090494 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#53573} [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/bootstrapper.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/debug/liveedit.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/debug/liveedit.h [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/debug/liveedit.js [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/heap/factory.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/objects.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/objects/shared-function-info-inl.h [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/objects/shared-function-info.h [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/parsing/parse-info.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/parsing/parse-info.h [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/runtime/runtime-function.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/runtime/runtime-liveedit.cc [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/src/runtime/runtime.h [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/test/debugger/debug/debug-liveedit-replace-code.js [modify] https://crrev.com/b6888b63cad8f19e2d14c5d53af7376831d02bea/test/unittests/test-helpers.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6b6d0819358fa4ba678b7ca4f5607639d3641090 commit 6b6d0819358fa4ba678b7ca4f5607639d3641090 Author: Creddy <chandanreddy@google.com> Date: Tue Jun 26 12:36:14 2018 Make PretenureDataOffset and PretenureCreateCount as Int32 fields instead of IntPtr in AllocationSite Change-Id: I2efaa698c35b4c0212248b4b1c08e017c2ead708 Bug: v8:7787 , chromium:818642 Change-Id: I2efaa698c35b4c0212248b4b1c08e017c2ead708 Reviewed-on: https://chromium-review.googlesource.com/1103575 Commit-Queue: Chandan Reddy <chandanreddy@google.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54030} [modify] https://crrev.com/6b6d0819358fa4ba678b7ca4f5607639d3641090/src/code-stub-assembler.cc [modify] https://crrev.com/6b6d0819358fa4ba678b7ca4f5607639d3641090/src/objects-body-descriptors-inl.h [modify] https://crrev.com/6b6d0819358fa4ba678b7ca4f5607639d3641090/src/objects-inl.h [modify] https://crrev.com/6b6d0819358fa4ba678b7ca4f5607639d3641090/src/objects.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/71c077e896d98e9c3581c513c88e83be22527206 commit 71c077e896d98e9c3581c513c88e83be22527206 Author: Creddy <chandanreddy@google.com> Date: Tue Jun 26 12:37:19 2018 Create allocation sites only for array subliterals Change-Id: I2f10deac1fed96920938d820327f19e7867c409d Bug: v8:7787 , chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1114608 Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Chandan Reddy <chandanreddy@google.com> Cr-Commit-Position: refs/heads/master@{#54031} [modify] https://crrev.com/71c077e896d98e9c3581c513c88e83be22527206/src/runtime/runtime-literals.cc [modify] https://crrev.com/71c077e896d98e9c3581c513c88e83be22527206/test/cctest/heap/test-heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5 commit c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5 Author: Ross McIlroy <rmcilroy@chromium.org> Date: Thu Jun 28 10:08:52 2018 [sfi] Remove DebugInfo field in SharedFunctionInfo. Merges DebugInfo field into the function_identifier field, storing the function identifier in the DebugInfo. Also moves some debugging_hints bits to the SFI flags, and others to the DebugInfo. Finally, changes the logic to store debugger patched bytecode array on the SFI instead of the DebugInfo, simplifying the logic in the InterpreterEntryTrampoline. BUG=chromium:818642,chromium:783853 TBR=hpayer@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: If440080c0f08fac4fb96f5e18dcc0eb9b86d4821 Reviewed-on: https://chromium-review.googlesource.com/1115819 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54081} [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/api.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/arm/builtins-arm.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/arm64/builtins-arm64.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/builtins-internal-gen.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/ia32/builtins-ia32.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/mips/builtins-mips.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/mips64/builtins-mips64.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/ppc/builtins-ppc.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/s390/builtins-s390.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/builtins/x64/builtins-x64.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/debug/debug-evaluate.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/debug/debug-evaluate.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/debug/debug.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/debug/debug.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/debug/liveedit.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/heap/factory.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/heap/heap-inl.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/heap/setup-heap-internal.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects-debug.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects-printer.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects/debug-objects-inl.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects/debug-objects.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects/debug-objects.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects/shared-function-info-inl.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/objects/shared-function-info.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/runtime/runtime-debug.cc [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/runtime/runtime.h [modify] https://crrev.com/c51bcd17bb4da87e1b9bf067351f0fc5cce4bbd5/src/snapshot/code-serializer.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ec7249f274bd3540556a192242091ca167ddb9ef commit ec7249f274bd3540556a192242091ca167ddb9ef Author: Creddy <chandanreddy@google.com> Date: Mon Jul 02 12:34:41 2018 [runtime][parser] Make CompileTimeValue a struct for type safety. This promotes CompileTimeValue as a seperate struct instead of FixedArray. This reduces the heap object size by one word (size field of FixedArray) Change-Id: Id09d9e04c4c1a98aa9fa53b1a44ec17e8cd06f34 Bug: v8:7787 , chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1119918 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#54135} [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/BUILD.gn [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/ast/ast.cc [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/ast/ast.h [delete] https://crrev.com/4dbbe07831481d5360813d7642c848d322ed67f4/src/ast/compile-time-value.cc [delete] https://crrev.com/4dbbe07831481d5360813d7642c848d322ed67f4/src/ast/compile-time-value.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/heap/factory.cc [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/heap/factory.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/heap/object-stats.cc [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/interpreter/bytecode-generator.cc [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/objects-inl.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/objects.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/objects/literal-objects-inl.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/objects/literal-objects.h [modify] https://crrev.com/ec7249f274bd3540556a192242091ca167ddb9ef/src/runtime/runtime-literals.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ce409375b3d2a179508a5dfe4d50d9fdf052c803 commit ce409375b3d2a179508a5dfe4d50d9fdf052c803 Author: Ross McIlroy <rmcilroy@chromium.org> Date: Wed Jul 04 16:53:37 2018 [sfi] Reduce FunctionTokenPosition and ExpectedNofProperties to 16 bits. Changes SharedFunctionInfo to store a function_token_offset, relative to the start_position, instead of the full function_token_position. This enables us to reduce both FunctionTokenPosition and ExpectedNofProperties to 16 bits each, saving 32 bits per SFI. BUG=chromium:818642,chromium:783853 TBR=yangguo@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I45aefcec605c1da502053c23c73564ceaed6c9b5 Reviewed-on: https://chromium-review.googlesource.com/1122982 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#54220} [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/include/v8.h [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/src/debug/liveedit.cc [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/src/heap/factory.cc [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/src/objects.cc [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/src/objects/shared-function-info-inl.h [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/src/objects/shared-function-info.h [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/test/mjsunit/harmony/function-tostring.js [modify] https://crrev.com/ce409375b3d2a179508a5dfe4d50d9fdf052c803/tools/gen-postmortem-metadata.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43bda1d40256cdfec8635db216c1c79f58999b6d commit 43bda1d40256cdfec8635db216c1c79f58999b6d Author: Ross McIlroy <rmcilroy@chromium.org> Date: Thu Jul 05 12:30:14 2018 [UseCounter] Add V8FunctionTokenOffsetTooLongForToString Corresponding V8 use counter added in https://chromium-review.googlesource.com/c/v8/v8/+/1122982 BUG=chromium:818642,chromium:783853 Change-Id: Ib5a1b6f33bda9da7d585282db1123a41ea73e387 Reviewed-on: https://chromium-review.googlesource.com/1125727 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#572770} [modify] https://crrev.com/43bda1d40256cdfec8635db216c1c79f58999b6d/third_party/blink/public/platform/web_feature.mojom [modify] https://crrev.com/43bda1d40256cdfec8635db216c1c79f58999b6d/third_party/blink/renderer/bindings/core/v8/use_counter_callback.cc [modify] https://crrev.com/43bda1d40256cdfec8635db216c1c79f58999b6d/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f45045cca535e0ef4442e759f3bda15765bc38a8 commit f45045cca535e0ef4442e759f3bda15765bc38a8 Author: Leszek Swirski <leszeks@chromium.org> Date: Thu Jul 05 14:47:43 2018 [parser] Move some PPSD sanity checks to debug Move some of PreParsedScopeData's santity checks, such as the magic value separating skippable function data from scope data, to be debug only, to save memory. Start position of inner skippable functions is still kept, because it's too good at catching bugs, but we may want to remove it in the future as well. Bug: chromium:818642 Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf Reviewed-on: https://chromium-review.googlesource.com/1127046 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54263} [modify] https://crrev.com/f45045cca535e0ef4442e759f3bda15765bc38a8/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/f45045cca535e0ef4442e759f3bda15765bc38a8/src/parsing/preparsed-scope-data.h [modify] https://crrev.com/f45045cca535e0ef4442e759f3bda15765bc38a8/test/cctest/parsing/test-preparser.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bb0975878f3994eee09e95b5dbb3336105889cc0 commit bb0975878f3994eee09e95b5dbb3336105889cc0 Author: Creddy <chandanreddy@google.com> Date: Thu Jul 05 19:31:03 2018 [runtime][parser] Use ArrayBoilerplateDescription all the way * Rename BoilerplateDescription to ObjectBoilerplateDescription * Add literal_type flag to ObjectBoilerplateDescription, which is stored as zeroth element of Fixed array * Create ArrayBoilerplateDescription with elements_kind and constant_elements field * Replace CompileTimeValue and ConstantElementPair with ArrayBoilerplateDescription * Kill ConstantElementPair and CompileTimeValue Change-Id: Icb42dcfd575a27e2b64ffd5e2e61f9d703d5e986 Bug: v8:7787 , chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1122411 Commit-Queue: Chandan Reddy <chandanreddy@google.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54272} [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/ast/ast.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/ast/ast.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/builtins/builtins-constructor-gen.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/builtins/builtins-definitions.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/code-stub-assembler.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/compiler/bytecode-graph-builder.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/compiler/js-operator.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/compiler/js-operator.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/compiler/types.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/deoptimizer.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/factory.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/factory.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/heap.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/object-stats.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/object-stats.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/heap/setup-heap-internal.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/interpreter/bytecode-generator.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/interpreter/constant-array-builder.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/interpreter/interpreter-generator.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects-body-descriptors-inl.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects-debug.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects-definitions.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects-inl.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects-printer.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects/literal-objects-inl.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects/literal-objects.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/objects/literal-objects.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/profiler/heap-snapshot-generator.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/roots.h [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/src/runtime/runtime-literals.cc [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/CountOperators.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/Delete.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/ForIn.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/ForOf.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/GenerateTestUndetectable.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/Generators.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/test/cctest/interpreter/bytecode_expectations/WithStatement.golden [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/tools/grokdump.py [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/tools/heap-stats/categories.js [modify] https://crrev.com/bb0975878f3994eee09e95b5dbb3336105889cc0/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b672210f1ed13e9cd35e3f5edeff4d2d048dde7d commit b672210f1ed13e9cd35e3f5edeff4d2d048dde7d Author: Sigurd Schneider <sigurds@chromium.org> Date: Fri Jul 06 11:06:02 2018 Revert "[parser] Move some PPSD sanity checks to debug" This reverts commit f45045cca535e0ef4442e759f3bda15765bc38a8. Reason for revert: <INSERT REASONING HERE> Original change's description: > [parser] Move some PPSD sanity checks to debug > > Move some of PreParsedScopeData's santity checks, such as the magic > value separating skippable function data from scope data, to be debug > only, to save memory. > > Start position of inner skippable functions is still kept, because it's > too good at catching bugs, but we may want to remove it in the future > as well. > > Bug: chromium:818642 > Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf > Reviewed-on: https://chromium-review.googlesource.com/1127046 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54263} TBR=marja@chromium.org,leszeks@chromium.org Change-Id: I15ceedd66d9ecb66cf65f5834d09975b41d3ed27 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1127859 Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54290} [modify] https://crrev.com/b672210f1ed13e9cd35e3f5edeff4d2d048dde7d/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/b672210f1ed13e9cd35e3f5edeff4d2d048dde7d/src/parsing/preparsed-scope-data.h [modify] https://crrev.com/b672210f1ed13e9cd35e3f5edeff4d2d048dde7d/test/cctest/parsing/test-preparser.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/39e2d97bc4d6b35be40294f06873f03b0368ce5c commit 39e2d97bc4d6b35be40294f06873f03b0368ce5c Author: Leszek Swirski <leszeks@chromium.org> Date: Mon Jul 09 10:49:27 2018 [sfi] Replace start/end position with UncompiledData Add new types for function data for SharedFunctionInfo, for uncompiled functions. UncompiledData holds start/end positions, allowing us to remove these fields from SFI. Uncompiled functions with pre-parsed scope data now hold an UncompiledDataWithScope that has a pointer to PreParsedScopeData -- this allows us to also remove the start/end pos from PreParsedScopeData. Bug: chromium:818642 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I56f3c4e62cbf38929babac734a332709f12a8202 Reviewed-on: https://chromium-review.googlesource.com/1126381 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54319} [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/api.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/bootstrapper.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/code-stub-assembler.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/code-stub-assembler.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/compiler.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/compiler/types.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/debug/liveedit.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/heap/factory.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/heap/factory.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/heap/heap.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/heap/objects-visiting.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/heap/setup-heap-internal.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects-body-descriptors-inl.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects-debug.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects-definitions.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects-inl.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects-printer.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects/map.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects/shared-function-info-inl.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/objects/shared-function-info.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/roots.h [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/runtime/runtime-compiler.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/src/runtime/runtime-function.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/test/cctest/heap/test-heap.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/test/cctest/parsing/test-preparser.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/test/unittests/test-helpers.cc [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/tools/gen-postmortem-metadata.py [modify] https://crrev.com/39e2d97bc4d6b35be40294f06873f03b0368ce5c/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a9fed96c00238167e44b11a72546f788df0696b8 commit a9fed96c00238167e44b11a72546f788df0696b8 Author: Leszek Swirski <leszeks@chromium.org> Date: Tue Jul 10 11:16:30 2018 [parser] Make PreParsedScopeData array-like Make PreParsedScopeData a new array-like instance type, which holds its child data inline, rather than indirecting to a FixedArray. Should save one map word per PreParsedScopeData. TBR=jarin@chromium.org Bug: chromium:818642 Change-Id: I72dc21160ed9781ad12b18559468f6cce56886fa Reviewed-on: https://chromium-review.googlesource.com/1127055 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54349} [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/code-stub-assembler.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/compiler/types.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/heap/factory.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/heap/factory.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/heap/heap.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/heap/objects-visiting.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/heap/setup-heap-internal.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects-body-descriptors-inl.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects-debug.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects-definitions.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects-inl.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects-printer.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects/map.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects/shared-function-info-inl.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/objects/shared-function-info.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/src/roots.h [modify] https://crrev.com/a9fed96c00238167e44b11a72546f788df0696b8/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7184ce393450e050c6adfe3e362b814e2ad19254 commit 7184ce393450e050c6adfe3e362b814e2ad19254 Author: Leszek Swirski <leszeks@chromium.org> Date: Tue Jul 10 12:47:14 2018 Revert "[parser] Make PreParsedScopeData array-like" This reverts commit a9fed96c00238167e44b11a72546f788df0696b8. Reason for revert: Serializer test msan failures Original change's description: > [parser] Make PreParsedScopeData array-like > > Make PreParsedScopeData a new array-like instance type, which holds its > child data inline, rather than indirecting to a FixedArray. Should save > one map word per PreParsedScopeData. > > TBR=jarin@chromium.org > > Bug: chromium:818642 > Change-Id: I72dc21160ed9781ad12b18559468f6cce56886fa > Reviewed-on: https://chromium-review.googlesource.com/1127055 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54349} TBR=ulan@chromium.org,marja@chromium.org,jarin@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: If2f39379bb0bdfca7d36ec1a3ec738519481aa4e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1131234 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54354} [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/code-stub-assembler.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/compiler/types.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/heap/factory.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/heap/factory.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/heap/heap.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/heap/objects-visiting.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/heap/setup-heap-internal.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects-body-descriptors-inl.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects-debug.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects-definitions.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects-inl.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects-printer.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects/map.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects/shared-function-info-inl.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/objects/shared-function-info.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/src/roots.h [modify] https://crrev.com/7184ce393450e050c6adfe3e362b814e2ad19254/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1458c0882e9d1d7824eb0496f07ce816c177bd81 commit 1458c0882e9d1d7824eb0496f07ce816c177bd81 Author: Leszek Swirski <leszeks@chromium.org> Date: Wed Jul 11 08:28:37 2018 [parser] Make PreParsedScopeData array-like (reland) Make PreParsedScopeData a new array-like instance type, which holds its child data inline, rather than indirecting to a FixedArray. Should save one map word per PreParsedScopeData. Reland of https://chromium-review.googlesource.com/1127055, adding padding clearing to keep MSAN happy. TBR=jarin@chromium.org,marja@chromium.org,ulan@chromium.org Bug: chromium:818642 Change-Id: I536db452047959e75d5116ddded4f511d05a04d9 Reviewed-on: https://chromium-review.googlesource.com/1131512 Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54374} [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/code-stub-assembler.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/compiler/types.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/heap/factory.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/heap/factory.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/heap/heap.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/heap/objects-visiting.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/heap/setup-heap-internal.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects-body-descriptors-inl.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects-debug.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects-definitions.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects-inl.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects-printer.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects/map.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects/shared-function-info-inl.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/objects/shared-function-info.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/src/roots.h [modify] https://crrev.com/1458c0882e9d1d7824eb0496f07ce816c177bd81/tools/v8heapconst.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/559dc18336c1dc7f20629906f090f6de2ed0c82a commit 559dc18336c1dc7f20629906f090f6de2ed0c82a Author: Leszek Swirski <leszeks@chromium.org> Date: Wed Jul 11 13:50:23 2018 [parser] Move some PPSD sanity checks to debug (reland) Move some of PreParsedScopeData's santity checks, such as the magic value separating skippable function data from scope data, to be debug only, to save memory. Start position of inner skippable functions is still kept, because it's too good at catching bugs, but we may want to remove it in the future as well. Relanding unchanged after the (unrelated) flake it exposed is fixed in: https://chromium-review.googlesource.com/1131503 Bug: chromium:818642 Change-Id: Id1d9fe757875cd05ea9a92b41e7256c3ee86fc8e Reviewed-on: https://chromium-review.googlesource.com/1131505 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54380} [modify] https://crrev.com/559dc18336c1dc7f20629906f090f6de2ed0c82a/src/parsing/preparsed-scope-data.cc [modify] https://crrev.com/559dc18336c1dc7f20629906f090f6de2ed0c82a/src/parsing/preparsed-scope-data.h [modify] https://crrev.com/559dc18336c1dc7f20629906f090f6de2ed0c82a/test/cctest/parsing/test-preparser.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1d4a1172f5e99259f73a5e650b00a3ee8b34e806 commit 1d4a1172f5e99259f73a5e650b00a3ee8b34e806 Author: Leszek Swirski <leszeks@chromium.org> Date: Mon Jul 16 13:49:20 2018 [sfi] Remove SFI function literal id field SharedFunctionInfos store their original function literal's id. This is also their index in the Script's SFI list. The function literal id is only needed for lazy compilation and live edit, and access only has to be fast in the former. So, we can move the SFI function literal id field to UncompiledData, and if patching with live edit, or discarding compiled code, we can perform a slower linear search through the Script's SFI list. This is a reland of https://chromium-review.googlesource.com/c/v8/v8/+/1082480 but caching the literal id on UncompiledData rather than always linearly searching the SFI list. Also, removes the unused runtime-liveedit.cc file instead of fixing it to support this change. Bug: chromium:818642 Change-Id: I977bcca0dc72903ca476a7079d156cc8bbe88fde Reviewed-on: https://chromium-review.googlesource.com/1128854 Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54464} [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/bootstrapper.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/debug/liveedit.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/heap/factory.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/heap/factory.h [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/objects.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/objects/shared-function-info-inl.h [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/objects/shared-function-info.h [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/parsing/parse-info.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/src/runtime/runtime-function.cc [delete] https://crrev.com/feb20872c35ca1802a5d8554dd780e6a898b2380/src/runtime/runtime-liveedit.cc [modify] https://crrev.com/1d4a1172f5e99259f73a5e650b00a3ee8b34e806/test/unittests/test-helpers.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/58578584d6753daa30e05ec4848844c07671cdcd commit 58578584d6753daa30e05ec4848844c07671cdcd Author: Sigurd Schneider <sigurds@chromium.org> Date: Mon Jul 16 14:24:27 2018 Revert "[sfi] Remove SFI function literal id field" This reverts commit 1d4a1172f5e99259f73a5e650b00a3ee8b34e806. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/21989 Original change's description: > [sfi] Remove SFI function literal id field > > SharedFunctionInfos store their original function literal's id. This is > also their index in the Script's SFI list. > > The function literal id is only needed for lazy compilation and live edit, > and access only has to be fast in the former. So, we can move the SFI > function literal id field to UncompiledData, and if patching with live > edit, or discarding compiled code, we can perform a slower linear search > through the Script's SFI list. > > This is a reland of > https://chromium-review.googlesource.com/c/v8/v8/+/1082480 > but caching the literal id on UncompiledData rather than always linearly > searching the SFI list. Also, removes the unused runtime-liveedit.cc file > instead of fixing it to support this change. > > Bug: chromium:818642 > Change-Id: I977bcca0dc72903ca476a7079d156cc8bbe88fde > Reviewed-on: https://chromium-review.googlesource.com/1128854 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54464} TBR=ulan@chromium.org,marja@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,cbruni@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: Icee5ee3ab7688b93e2963f91debed65a58164534 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1138276 Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54466} [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/bootstrapper.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/debug/liveedit.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/heap/factory.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/heap/factory.h [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/objects.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/objects/shared-function-info-inl.h [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/objects/shared-function-info.h [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/parsing/parse-info.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/runtime/runtime-function.cc [add] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/src/runtime/runtime-liveedit.cc [modify] https://crrev.com/58578584d6753daa30e05ec4848844c07671cdcd/test/unittests/test-helpers.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/5dee5ade75890e9fde642dbfa345b7c00aac4109 commit 5dee5ade75890e9fde642dbfa345b7c00aac4109 Author: Leszek Swirski <leszeks@chromium.org> Date: Mon Jul 16 16:38:28 2018 [sfi] Remove SFI function literal id field (reland^2) SharedFunctionInfos store their original function literal's id. This is also their index in the Script's SFI list. The function literal id is only needed for lazy compilation and live edit, and access only has to be fast in the former. So, we can move the SFI function literal id field to UncompiledData, and if patching with live edit, or discarding compiled code, we can perform a slower linear search through the Script's SFI list. This is a reland of 1) https://chromium-review.googlesource.com/1082480 and 2) https://chromium-review.googlesource.com/1128854 the differences being: 1) caching the literal id on UncompiledData rather than always linearly searching the SFI list, and removing the unused runtime-liveedit.cc file instead of fixing it to support this change. 2) clearing padding on UncompiledData now that it has 3 int32 fields, making its end unaligned on x64. TBR=yangguo@chromium.org,marja@chromium.org,ulan@chromium.org,cbruni@chromium.org Bug: chromium:818642 Change-Id: I58dcb12a2a60a680f662568da428e01189c62638 Reviewed-on: https://chromium-review.googlesource.com/1138325 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54473} [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/bootstrapper.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/compiler-dispatcher/unoptimized-compile-job.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/debug/liveedit.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/heap/factory.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/heap/factory.h [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/objects.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/objects/shared-function-info-inl.h [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/objects/shared-function-info.h [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/parsing/parse-info.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/src/runtime/runtime-function.cc [delete] https://crrev.com/414b841b5442fd13cb109d9a0905bd75d631da0d/src/runtime/runtime-liveedit.cc [modify] https://crrev.com/5dee5ade75890e9fde642dbfa345b7c00aac4109/test/unittests/test-helpers.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c941f11abddf57844e9807503df1877f6f60c94a commit c941f11abddf57844e9807503df1877f6f60c94a Author: Leszek Swirski <leszeks@chromium.org> Date: Thu Jul 19 09:07:11 2018 [sfi] Remove SFI function identifier field Remove the function identifier field from SharedFunctionInfo. This field would store one of a) the function's inferred name, b) the "builtin function id", or c) debug info. We remove these in turn: a) The function's inferred name is available on the ScopeInfo, so like the start/end position we read it off either the ScopeInfo (for compiled functions) or the UncompiledData (for uncompiled functions). As a side-effect, now both UncompiledData and its subclass, UncompiledDataWithPreparsedScope, contain a pointer field. To keep BodyDescriptors manageable, we introduce a SubclassBodyDescriptor which effectively appends two BodyDescriptors together. b) The builtin function id is < 255, so we can steal a byte from expected no. of properies (also <255) and store these together. Eventually we want to get rid of this field and use the builtin ID, but this is pending JS builtin removal. As a side-effect, BuiltinFunctionId becomes an enum class (for better storage size guarantees). c) The debug info can hang off anything (since it stores the field it replaces), so we can attach it to the script field instead. This saves a word on compiled function (uncompiled functions unfortunately still have to store it in UncompiledData). Bug: chromium:818642 Change-Id: I8b4b3a070f0fe328aafcaeac58842d144d12d996 Reviewed-on: https://chromium-review.googlesource.com/1138328 Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54543} [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/bootstrapper.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/builtins/builtins-internal-gen.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/compiler/typer.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/debug/debug.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/heap/factory.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/heap/factory.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/heap/objects-visiting.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects-body-descriptors-inl.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects-body-descriptors.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects-debug.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects-printer.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/debug-objects-inl.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/debug-objects.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/map.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/object-macros.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/shared-function-info-inl.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/objects/shared-function-info.h [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/snapshot/code-serializer.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/src/snapshot/startup-serializer.cc [modify] https://crrev.com/c941f11abddf57844e9807503df1877f6f60c94a/test/unittests/test-helpers.cc
This bug had an unsupported status. Updating to Untriaged so someone will reevaluate.
Comment 1 by leszeks@chromium.org
, Mar 5 2018