Monorail Project: v8 Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 5495 Implement constant field tracking
Starred by 5 users Project Member Reported by ishell@chromium.org, Oct 7 Back to list
Status: Assigned
Owner:
Cc:
Components:
HW: All
OS: All
Priority: Medium
Type: Bug


Sign in to add a comment
This is a tracking bug for new constant field tracking.

The design doc is here: https://docs.google.com/document/d/1VEeXn6BfKmVkYpfMuxNs3otLLNPIxIVA1cLoSwGMIxI

 
Project Member Comment 1 by ishell@chromium.org, Oct 7
Blocking: 5456
Project Member Comment 2 by bmeu...@chromium.org, Oct 8
Blocking: 2935
Project Member Comment 4 by bugdroid1@chromium.org, Jan 10
Project Member Comment 6 by bugdroid1@chromium.org, Jan 12 (6 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d3d57ebaf6cd7084892aae37c3e54293c07b65b8

commit d3d57ebaf6cd7084892aae37c3e54293c07b65b8
Author: ishell <ishell@chromium.org>
Date: Thu Jan 12 16:37:12 2017

[runtime] Use PropertyKind/PropertyLocation instead of PropertyType.

This is a necessary cleanup before introducing PropertyConstness bit.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2624903003
Cr-Commit-Position: refs/heads/master@{#42277}

[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/bootstrapper.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/compiler/access-info.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/compiler/js-create-lowering.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/crankshaft/hydrogen.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/crankshaft/hydrogen.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/elements.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/factory.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/ic/handler-compiler.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/ic/ic.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/json-stringifier.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/keys.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/layout-descriptor-inl.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/lookup.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/map-updater.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/objects-debug.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/objects-inl.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/objects-printer.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/objects.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/objects.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/property-descriptor.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/property-details.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/property.h
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/runtime/runtime-object.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/string-stream.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/transitions.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/src/value-serializer.cc
[modify] https://crrev.com/d3d57ebaf6cd7084892aae37c3e54293c07b65b8/test/cctest/test-unboxed-doubles.cc

Project Member Comment 7 by bugdroid1@chromium.org, Jan 12 (6 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/aee244b0e115f4c3aef56055b739777dde94c3ac

commit aee244b0e115f4c3aef56055b739777dde94c3ac
Author: ishell <ishell@chromium.org>
Date: Thu Jan 12 21:40:04 2017

[modules] Define @@toStringTag on namespace object as a field.

The constant field tracking implies data constants to be stored
in fields instead of descriptor arrays. This CL does necessary
modifications to the JSModuleNamespace map setup.

BUG=v8:1569, v8:5495

Review-Url: https://codereview.chromium.org/2625093005
Cr-Commit-Position: refs/heads/master@{#42294}

[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/bootstrapper.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/factory.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects-inl.h
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects-printer.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects.h

Project Member Comment 10 by bugdroid1@chromium.org, Jan 16 (3 days ago)
Project Member Comment 11 by bugdroid1@chromium.org, Jan 16 (3 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8f0bf07b504e8bb27ef3703388c4c0699670331f

commit 8f0bf07b504e8bb27ef3703388c4c0699670331f
Author: ishell <ishell@chromium.org>
Date: Mon Jan 16 11:59:18 2017

[runtime] Remove PropertyType definition and use PropertyKind/PropertyLocation instead.

Now we can add a constness bit to the PropertyDetails.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2629423002
Cr-Commit-Position: refs/heads/master@{#42366}

[modify] https://crrev.com/8f0bf07b504e8bb27ef3703388c4c0699670331f/src/objects.cc
[modify] https://crrev.com/8f0bf07b504e8bb27ef3703388c4c0699670331f/src/property-details.h
[modify] https://crrev.com/8f0bf07b504e8bb27ef3703388c4c0699670331f/test/cctest/test-field-type-tracking.cc
[modify] https://crrev.com/8f0bf07b504e8bb27ef3703388c4c0699670331f/test/cctest/test-transitions.cc

Project Member Comment 12 by bugdroid1@chromium.org, Jan 16 (3 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/46134ff4b0ac6ff413e28748788cdc1294fbf69d

commit 46134ff4b0ac6ff413e28748788cdc1294fbf69d
Author: ishell <ishell@chromium.org>
Date: Mon Jan 16 12:26:07 2017

[crankshaft][runtime] Initialize uninitialized double fields with hole NaN value instead of 0.0.

... and ensure that we do a full store when we overwrite uninitialized values.

This cleanup is necessary for checking that constant field tracking works as expected (once landed).

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2631123002
Cr-Commit-Position: refs/heads/master@{#42369}

[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/crankshaft/hydrogen.cc
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/crankshaft/hydrogen.h
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/factory.h
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/json-parser.cc
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/objects-inl.h
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/objects.cc
[modify] https://crrev.com/46134ff4b0ac6ff413e28748788cdc1294fbf69d/src/value-serializer.cc

Project Member Comment 13 by bugdroid1@chromium.org, Jan 17 (2 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/19c3c667a6eaf2d8163f69b44a50587d6237026a

commit 19c3c667a6eaf2d8163f69b44a50587d6237026a
Author: ishell <ishell@chromium.org>
Date: Tue Jan 17 12:16:31 2017

[ic] Decode offset from the handler word later in store IC dispatcher.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2637073002
Cr-Commit-Position: refs/heads/master@{#42401}

[modify] https://crrev.com/19c3c667a6eaf2d8163f69b44a50587d6237026a/src/ic/accessor-assembler-impl.h
[modify] https://crrev.com/19c3c667a6eaf2d8163f69b44a50587d6237026a/src/ic/accessor-assembler.cc

Sign in to add a comment