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

Issue 1469793002: [builtins] Sanitize the machinery around Construct calls. (Closed)

Created:
5 years, 1 month ago by Benedikt Meurer
Modified:
5 years, 1 month ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[builtins] Sanitize the machinery around Construct calls. There's no point in collecting feedback for super constructor calls, because in all (interesting) cases we can gather (better) feedback from other sources (i.e. via inlining or via using a LOAD_IC to get to the [[Prototype]] of the target). So CallConstructStub is now only used for new Foo(...args) sites where we want to collect feedback in the baseline compiler. The optimizing compilers, Reflect.construct and super constructor calls use the Construct builtin directly, which allows us to remove some weird code from the CallConstructStub (and opens the possibility for more code sharing with the CallICStub, maybe even going for a ConstructICStub). Also remove the 100% redundant HCallNew instruction, which is just a wrapper for the Construct builtin anyway (indirectly via the CallConstructStub). Drive-by-fix: Drop unused has_function_cache bit on Code objects. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4413, v8:4430 LOG=n Committed: https://crrev.com/374b6ea210f0ce669cdec3bafd4a72dbba5fe2ad Cr-Commit-Position: refs/heads/master@{#32172}

Patch Set 1 #

Patch Set 2 : mips64 fix. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+311 lines, -721 lines) Patch
M src/arm/builtins-arm.cc View 2 chunks +10 lines, -9 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 5 chunks +16 lines, -32 lines 0 comments Download
M src/arm/interface-descriptors-arm.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 2 chunks +9 lines, -8 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 6 chunks +20 lines, -38 lines 0 comments Download
M src/arm64/interface-descriptors-arm64.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M src/code-factory.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/code-factory.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M src/code-stubs.h View 1 chunk +3 lines, -24 lines 0 comments Download
M src/code-stubs.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 chunk +12 lines, -14 lines 0 comments Download
M src/crankshaft/arm/lithium-arm.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/arm/lithium-arm.cc View 2 chunks +0 lines, -15 lines 0 comments Download
M src/crankshaft/arm/lithium-codegen-arm.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.cc View 2 chunks +0 lines, -16 lines 0 comments Download
M src/crankshaft/arm64/lithium-codegen-arm64.cc View 1 chunk +0 lines, -17 lines 0 comments Download
M src/crankshaft/hydrogen.cc View 1 chunk +10 lines, -7 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.h View 2 chunks +0 lines, -16 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/crankshaft/ia32/lithium-codegen-ia32.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.cc View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/mips/lithium-codegen-mips.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.cc View 2 chunks +0 lines, -15 lines 0 comments Download
M src/crankshaft/mips64/lithium-codegen-mips64.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.cc View 2 chunks +0 lines, -15 lines 0 comments Download
M src/crankshaft/x64/lithium-codegen-x64.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.h View 2 chunks +0 lines, -20 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.cc View 2 chunks +0 lines, -15 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M src/globals.h View 1 chunk +0 lines, -13 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 2 chunks +9 lines, -8 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 7 chunks +17 lines, -46 lines 0 comments Download
M src/ia32/interface-descriptors-ia32.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M src/interface-descriptors.h View 2 chunks +8 lines, -0 lines 0 comments Download
M src/interface-descriptors.cc View 1 chunk +13 lines, -0 lines 0 comments Download
M src/mips/builtins-mips.cc View 2 chunks +10 lines, -8 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 6 chunks +21 lines, -32 lines 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 2 chunks +10 lines, -8 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 6 chunks +21 lines, -32 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M src/objects.h View 3 chunks +2 lines, -11 lines 0 comments Download
M src/objects-inl.h View 1 chunk +0 lines, -15 lines 0 comments Download
M src/x64/builtins-x64.cc View 2 chunks +10 lines, -9 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 6 chunks +17 lines, -33 lines 0 comments Download
M src/x64/interface-descriptors-x64.cc View 2 chunks +11 lines, -2 lines 0 comments Download

Messages

Total messages: 12 (3 generated)
Benedikt Meurer
5 years, 1 month ago (2015-11-23 09:26:03 UTC) #1
Benedikt Meurer
Less code is best code... Michi: PTAL at compiler Yang: PTAL at rest
5 years, 1 month ago (2015-11-23 09:26:50 UTC) #2
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1469793002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1469793002/20001
5 years, 1 month ago (2015-11-23 09:54:41 UTC) #4
Michael Starzinger
LGTM on "compiler", didn't look at the rest.
5 years, 1 month ago (2015-11-23 09:54:50 UTC) #5
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 1 month ago (2015-11-23 10:14:02 UTC) #7
Yang
On 2015/11/23 10:14:02, commit-bot: I haz the power wrote: > Dry run: This issue passed ...
5 years, 1 month ago (2015-11-23 10:30:58 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1469793002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1469793002/20001
5 years, 1 month ago (2015-11-23 10:32:19 UTC) #10
commit-bot: I haz the power
Committed patchset #2 (id:20001)
5 years, 1 month ago (2015-11-23 10:34:09 UTC) #11
commit-bot: I haz the power
5 years, 1 month ago (2015-11-23 10:34:50 UTC) #12
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/374b6ea210f0ce669cdec3bafd4a72dbba5fe2ad
Cr-Commit-Position: refs/heads/master@{#32172}

Powered by Google App Engine
This is Rietveld 408576698