Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Issue 2625873009: [ast] Remove heap accesses from AST numbering (Closed)

Created:
3 years, 11 months ago by Leszek Swirski
Modified:
3 years, 11 months ago
CC:
v8-reviews_googlegroups.com, v8-mips-ports_googlegroups.com, v8-x87-ports_googlegroups.com, rmcilroy, v8-ppc-ports_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[ast] Remove heap accesses from AST numbering Moves constant element/property array building to be deferred for igition and on-demand for the other compilers, and splits off the object/array literal depth/flag initialisation from the array building. BUG=v8:5832 Review-Url: https://codereview.chromium.org/2625873009 Cr-Commit-Position: refs/heads/master@{#42362} Committed: https://chromium.googlesource.com/v8/v8/+/b5b56e920aaaf3cc155926e0483ebcdbf8301b36

Patch Set 1 #

Patch Set 2 : Fix GCMole failure #

Total comments: 17

Patch Set 3 : Address Ross's comments #

Patch Set 4 : Fix condition to not be stupid #

Total comments: 3

Patch Set 5 : Fix, hopefully for the last time, the refactored ToUint32 #

Patch Set 6 : Change climit to real_climit #

Total comments: 4

Patch Set 7 : Address nits #

Unified diffs Side-by-side diffs Delta from patch set Stats (+325 lines, -166 lines) Patch
M src/ast/ast.h View 1 2 3 4 5 6 21 chunks +45 lines, -16 lines 0 comments Download
M src/ast/ast.cc View 1 2 3 4 5 6 23 chunks +118 lines, -60 lines 0 comments Download
M src/ast/ast-numbering.h View 1 2 2 chunks +3 lines, -1 line 0 comments Download
M src/ast/ast-numbering.cc View 6 chunks +12 lines, -11 lines 0 comments Download
M src/ast/ast-value-factory.h View 1 2 3 4 3 chunks +20 lines, -9 lines 0 comments Download
M src/compiler.cc View 1 2 3 4 5 6 1 chunk +3 lines, -2 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M src/conversions.h View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download
M src/conversions-inl.h View 1 2 3 4 1 chunk +11 lines, -0 lines 0 comments Download
M src/crankshaft/hydrogen.cc View 1 2 3 4 5 6 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/ppc/full-codegen-ppc.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/s390/full-codegen-s390.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/full-codegen/x87/full-codegen-x87.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M src/interpreter/bytecode-array-builder.h View 1 2 4 chunks +10 lines, -11 lines 0 comments Download
M src/interpreter/bytecode-array-builder.cc View 1 2 2 chunks +5 lines, -8 lines 0 comments Download
M src/interpreter/bytecode-generator.h View 2 chunks +3 lines, -1 line 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 3 4 5 6 5 chunks +40 lines, -10 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 1 chunk +1 line, -6 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-builder-unittest.cc View 2 chunks +5 lines, -9 lines 0 comments Download

Messages

Total messages: 42 (30 generated)
Leszek Swirski
Hey Ross, here's the first pass on this, passes tests locally.
3 years, 11 months ago (2017-01-12 13:01:05 UTC) #4
rmcilroy
LGTM after comments addressed. Adding Toon for ast/ https://codereview.chromium.org/2625873009/diff/20001/src/ast/ast-numbering.h File src/ast/ast-numbering.h (right): https://codereview.chromium.org/2625873009/diff/20001/src/ast/ast-numbering.h#newcode8 src/ast/ast-numbering.h:8: #include ...
3 years, 11 months ago (2017-01-13 09:53:58 UTC) #13
Leszek Swirski
Hi Michi and Toon, Could I get your approvals here for compiler/ and ast/, respectively? ...
3 years, 11 months ago (2017-01-13 10:58:10 UTC) #17
Michael Starzinger
https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc#newcode441 src/compiler.cc:441: if (!AstNumbering::Renumber(parse_info->isolate()->stack_guard()->climit(), I think we want s/climit/real_climit/ here. IIUC ...
3 years, 11 months ago (2017-01-13 13:11:43 UTC) #24
rmcilroy
https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc#newcode441 src/compiler.cc:441: if (!AstNumbering::Renumber(parse_info->isolate()->stack_guard()->climit(), On 2017/01/13 13:11:43, Michael Starzinger wrote: > ...
3 years, 11 months ago (2017-01-13 16:00:32 UTC) #27
Leszek Swirski
https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/2625873009/diff/60001/src/compiler.cc#newcode441 src/compiler.cc:441: if (!AstNumbering::Renumber(parse_info->isolate()->stack_guard()->climit(), On 2017/01/13 16:00:32, rmcilroy wrote: > On ...
3 years, 11 months ago (2017-01-13 16:13:09 UTC) #30
Michael Starzinger
LGTM on the compiler plumbing. https://codereview.chromium.org/2625873009/diff/100001/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (left): https://codereview.chromium.org/2625873009/diff/100001/src/interpreter/bytecode-generator.cc#oldcode1614 src/interpreter/bytecode-generator.cc:1614: // If constant properties ...
3 years, 11 months ago (2017-01-16 09:08:05 UTC) #33
Toon Verwaest
ast lgtm https://codereview.chromium.org/2625873009/diff/100001/src/ast/ast.cc File src/ast/ast.cc (right): https://codereview.chromium.org/2625873009/diff/100001/src/ast/ast.cc#newcode773 src/ast/ast.cc:773: DCHECK(depth() >= 1); // Depth should be ...
3 years, 11 months ago (2017-01-16 09:30:54 UTC) #34
rmcilroy
LGTM, thanks.
3 years, 11 months ago (2017-01-16 09:37:21 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2625873009/120001
3 years, 11 months ago (2017-01-16 10:54:59 UTC) #38
commit-bot: I haz the power
Committed patchset #7 (id:120001) as https://chromium.googlesource.com/v8/v8/+/b5b56e920aaaf3cc155926e0483ebcdbf8301b36
3 years, 11 months ago (2017-01-16 11:25:12 UTC) #41
Leszek Swirski
3 years, 11 months ago (2017-01-16 12:01:11 UTC) #42
Message was sent while issue was closed.
Thanks all!

https://codereview.chromium.org/2625873009/diff/100001/src/ast/ast.cc
File src/ast/ast.cc (right):

https://codereview.chromium.org/2625873009/diff/100001/src/ast/ast.cc#newcode773
src/ast/ast.cc:773: DCHECK(depth() >= 1);  // Depth should be initialized.
On 2017/01/16 09:30:54, Toon Verwaest wrote:
> DCHECK_LE(1, depth());

Done.

https://codereview.chromium.org/2625873009/diff/100001/src/interpreter/byteco...
File src/interpreter/bytecode-generator.cc (left):

https://codereview.chromium.org/2625873009/diff/100001/src/interpreter/byteco...
src/interpreter/bytecode-generator.cc:1614: // If constant properties is an
empty fixed array, use our cached
On 2017/01/16 09:08:05, Michael Starzinger wrote:
> nit: We could preserve this comment explaining why we special-case the
> {properties_count == 0} case.

Done.

Powered by Google App Engine
This is Rietveld 408576698