|
[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}
|
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
|
Total messages: 12 (3 generated)
|