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

Issue 1772423002: Don't do any special normalization if a boilerplate contains function literals. (Closed)

Created:
4 years, 9 months ago by Toon Verwaest
Modified:
4 years, 9 months ago
CC:
v8-reviews_googlegroups.com, adamk
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Don't do any special normalization if a boilerplate contains function literals. This mechanism was used to ensure that functions ended up as constants on the map of prototypes defined using object literals, e.g.,: function.prototype = { method: function() { ... } } Nowadays we treat prototypes specially, and make all their functions constants when an object turns prototype. Hence this special custom code isn't necessary anymore. This also affects boilerplates that do not become prototypes. Their functions will not be constants but fields instead. Calling their methods will slow down. However, multiple instances of the same boilerplate will stay monomorphic. We'll have to see what the impact is for such objects, but preliminary benchmarks do not show this as an important regression. BUG=chromium:593008 LOG=n Committed: https://crrev.com/fd405704191e419bd5be1559ef5c768b07a61161 Cr-Commit-Position: refs/heads/master@{#34602}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Total comments: 3

Patch Set 6 : Don't pretenure functions in top-level literals #

Patch Set 7 : #

Total comments: 1

Patch Set 8 : Remove ToFastProperties from FrameStateInputCount #

Patch Set 9 : mark osr-one/osr-two as skip on ignition/arm #

Unified diffs Side-by-side diffs Delta from patch set Stats (+51 lines, -452 lines) Patch
M src/ast/ast.h View 1 6 chunks +6 lines, -13 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 1 chunk +0 lines, -7 lines 0 comments Download
M src/compiler/linkage.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -1 line 0 comments Download
M src/crankshaft/arm/lithium-arm.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/arm/lithium-arm.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/arm/lithium-codegen-arm.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/arm64/lithium-codegen-arm64.cc View 1 2 1 chunk +0 lines, -8 lines 0 comments Download
M src/crankshaft/hydrogen.cc View 1 1 chunk +1 line, -11 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.h View 1 2 2 chunks +0 lines, -30 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.cc View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M src/crankshaft/ia32/lithium-codegen-ia32.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/mips/lithium-codegen-mips.cc View 1 2 1 chunk +0 lines, -8 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/mips64/lithium-codegen-mips64.cc View 1 2 1 chunk +0 lines, -8 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/ppc/lithium-codegen-ppc.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/ppc/lithium-ppc.h View 1 2 2 chunks +0 lines, -12 lines 0 comments Download
M src/crankshaft/ppc/lithium-ppc.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/s390/lithium-codegen-s390.cc View 1 2 1 chunk +0 lines, -6 lines 0 comments Download
M src/crankshaft/s390/lithium-s390.h View 1 2 2 chunks +0 lines, -11 lines 0 comments Download
M src/crankshaft/s390/lithium-s390.cc View 1 2 1 chunk +0 lines, -6 lines 0 comments Download
M src/crankshaft/x64/lithium-codegen-x64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/x87/lithium-codegen-x87.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/crankshaft/x87/lithium-x87.h View 1 2 2 chunks +0 lines, -14 lines 0 comments Download
M src/crankshaft/x87/lithium-x87.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/full-codegen.cc View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 2 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/ppc/full-codegen-ppc.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/s390/full-codegen-s390.cc View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/x87/full-codegen-x87.cc View 1 2 1 chunk +0 lines, -6 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 1 chunk +0 lines, -5 lines 0 comments Download
M src/parsing/parser.h View 1 2 3 4 5 1 chunk +0 lines, -10 lines 0 comments Download
M src/parsing/parser-base.h View 1 2 3 4 5 3 chunks +0 lines, -8 lines 0 comments Download
M src/parsing/preparser.h View 1 2 3 4 5 2 chunks +0 lines, -4 lines 0 comments Download
M src/runtime/runtime-literals.cc View 7 chunks +8 lines, -16 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CountOperators.golden View 1 2 3 4 4 chunks +4 lines, -4 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Delete.golden View 1 2 3 4 4 chunks +4 lines, -4 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ForIn.golden View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ForOf.golden View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden View 1 2 3 4 16 chunks +16 lines, -16 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden View 1 2 3 4 5 6 2 chunks +3 lines, -4 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/WithStatement.golden View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/mjsunit.status View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 40 (21 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/80001
4 years, 9 months ago (2016-03-08 19:39:13 UTC) #3
Toon Verwaest
ptal
4 years, 9 months ago (2016-03-08 19:45:31 UTC) #6
adamk
DBC: Just looked at the parser stuff because I'd been staring at nearby code a ...
4 years, 9 months ago (2016-03-08 19:56:50 UTC) #7
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-08 20:04:09 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/100001
4 years, 9 months ago (2016-03-08 20:08:58 UTC) #11
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/120001
4 years, 9 months ago (2016-03-08 20:09:58 UTC) #13
Toon Verwaest
Ok thanks for the hint. Lets try to remove it. https://codereview.chromium.org/1772423002/diff/80001/src/parsing/parser.h File src/parsing/parser.h (right): https://codereview.chromium.org/1772423002/diff/80001/src/parsing/parser.h#newcode412 ...
4 years, 9 months ago (2016-03-08 20:10:27 UTC) #14
adamk
lgtm for parser (of course wait for mstarzinger for everything else :)
4 years, 9 months ago (2016-03-08 20:14:56 UTC) #16
Michael Starzinger
LGTM on the compilers. I like it! Just one comment to address. Also I think ...
4 years, 9 months ago (2016-03-08 20:23:41 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/140001
4 years, 9 months ago (2016-03-08 20:32:17 UTC) #21
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel/builds/16549) v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, ...
4 years, 9 months ago (2016-03-08 20:34:28 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/140001
4 years, 9 months ago (2016-03-08 20:42:17 UTC) #25
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel/builds/14979)
4 years, 9 months ago (2016-03-08 20:55:47 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/140001
4 years, 9 months ago (2016-03-08 21:04:41 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel/builds/14980)
4 years, 9 months ago (2016-03-08 21:19:52 UTC) #31
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/140001
4 years, 9 months ago (2016-03-08 21:37:57 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1772423002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1772423002/160001
4 years, 9 months ago (2016-03-08 21:49:17 UTC) #36
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 9 months ago (2016-03-08 22:13:34 UTC) #38
commit-bot: I haz the power
4 years, 9 months ago (2016-03-08 22:14:03 UTC) #40
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/fd405704191e419bd5be1559ef5c768b07a61161
Cr-Commit-Position: refs/heads/master@{#34602}

Powered by Google App Engine
This is Rietveld 408576698