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 1563213002: Type Feedback Vector lives in the closure (Closed)

Created:
4 years, 11 months ago by mvstanton
Modified:
4 years, 11 months ago
CC:
v8-reviews_googlegroups.com, Hannes Payer (out of office), ulan, Yang, v8-mips-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Type Feedback Vector lives in the closure We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The vector actually lives in the first slot of the literals array (indeed there is great commonality between those arrays, they can be thought of as the same thing). So we make greater effort to ensure there is a valid literals array after compilation. This meant, for performance reasons, that we needed to extend FastNewClosureStub to support creating closures with literals. And ultimately, it drove us to move the optimized code map lookup out of FastNewClosureStub and into the compile lazy builtin. The heap change is trivial so I TBR Hannes for it... TBR=hpayer@chromium.org BUG= Committed: https://crrev.com/a5200f7ed4d11c6b882fa667da7a1864226544b4 Cr-Commit-Position: refs/heads/master@{#33518}

Patch Set 1 #

Patch Set 2 : Eliminated the sole deopt point in FastNewClosureStub. #

Patch Set 3 : Vector in closure. #

Patch Set 4 : REBASE. #

Patch Set 5 : Updated Opt. code map at lazy compile time. #

Patch Set 6 : Ports. #

Total comments: 1

Patch Set 7 : Removed silly comments. #

Patch Set 8 : REBASE and ports. #

Patch Set 9 : Failing ignition test disabled. #

Patch Set 10 : REBASE. #

Patch Set 11 : REBASE (again). #

Patch Set 12 : Exclude an ignition test. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1256 lines, -543 lines) Patch
M src/arm/builtins-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +145 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -3 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +129 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -3 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -5 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 3 chunks +10 lines, -203 lines 0 comments Download
M src/compiler.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -4 lines 0 comments Download
M src/compiler.cc View 1 2 3 4 5 6 7 8 9 10 15 chunks +36 lines, -26 lines 0 comments Download
M src/compiler/access-builder.h View 1 2 2 chunks +5 lines, -2 lines 0 comments Download
M src/compiler/access-builder.cc View 1 2 3 4 5 6 7 8 9 1 chunk +9 lines, -2 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -4 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -4 lines 0 comments Download
M src/compiler/interpreter-assembler.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -3 lines 0 comments Download
M src/compiler/js-inlining.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/js-typed-lowering.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -2 lines 0 comments Download
M src/crankshaft/hydrogen.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -1 line 0 comments Download
M src/crankshaft/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -2 lines 0 comments Download
M src/crankshaft/typing.cc View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -2 lines 0 comments Download
M src/debug/debug.cc View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -4 lines 0 comments Download
M src/debug/liveedit.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/debug/liveedit.cc View 1 2 3 4 5 6 7 8 9 7 chunks +23 lines, -15 lines 0 comments Download
M src/deoptimizer.h View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/factory.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/factory.cc View 1 2 3 4 5 6 7 8 9 4 chunks +8 lines, -10 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/full-codegen/full-codegen.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -5 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -1 line 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 7 8 9 1 chunk +8 lines, -0 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 2 2 chunks +4 lines, -3 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +138 lines, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M src/mips/builtins-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +140 lines, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -3 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +140 lines, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -3 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 11 chunks +32 lines, -15 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 5 chunks +41 lines, -9 lines 0 comments Download
M src/objects-debug.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 5 chunks +37 lines, -2 lines 0 comments Download
M src/objects-printer.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -2 lines 0 comments Download
M src/profiler/heap-snapshot-generator.cc View 1 2 3 4 5 6 7 1 chunk +3 lines, -3 lines 0 comments Download
M src/runtime-profiler.cc View 1 2 3 4 5 6 7 8 9 5 chunks +9 lines, -11 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 3 chunks +1 line, -2 lines 0 comments Download
M src/runtime/runtime-compiler.cc View 1 2 3 4 5 6 7 8 9 2 chunks +17 lines, -0 lines 0 comments Download
M src/runtime/runtime-function.cc View 1 2 3 2 chunks +4 lines, -3 lines 0 comments Download
M src/runtime/runtime-scopes.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/runtime/runtime-test.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/snapshot/serialize.cc View 1 2 3 4 5 6 7 1 chunk +9 lines, -2 lines 0 comments Download
M src/type-feedback-vector.h View 2 chunks +4 lines, -2 lines 0 comments Download
M src/type-feedback-vector.cc View 1 2 3 4 5 6 7 8 9 3 chunks +37 lines, -3 lines 0 comments Download
M src/type-feedback-vector-inl.h View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -5 lines 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +126 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M test/cctest/cctest.status View 1 2 3 4 5 6 7 8 9 10 1 chunk +4 lines, -0 lines 0 comments Download
M test/cctest/compiler/function-tester.h View 2 chunks +2 lines, -0 lines 0 comments Download
M test/cctest/compiler/test-run-jscalls.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M test/cctest/heap/test-heap.cc View 1 2 3 4 5 6 7 8 9 15 chunks +18 lines, -97 lines 0 comments Download
M test/cctest/interpreter/test-interpreter.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/test-compiler.cc View 1 2 3 4 5 6 7 8 9 8 chunks +13 lines, -19 lines 0 comments Download
M test/cctest/test-feedback-vector.cc View 1 2 10 chunks +10 lines, -10 lines 0 comments Download
M test/mjsunit/mjsunit.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -0 lines 0 comments Download
M test/unittests/compiler/interpreter-assembler-unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +8 lines, -10 lines 0 comments Download

Messages

Total messages: 37 (20 generated)
mvstanton
Hi Benedikt, here is the vector closure CL that has been such fun :). Thanks! ...
4 years, 11 months ago (2016-01-15 10:40:59 UTC) #5
mvstanton
And Friends-of-MIPs, could you guys look into the MIPS and MIPS64 port? Thanks for the ...
4 years, 11 months ago (2016-01-15 10:42:49 UTC) #6
akos.palfi.imgtec
On 2016/01/15 10:42:49, mvstanton wrote: > And Friends-of-MIPs, could you guys look into the MIPS ...
4 years, 11 months ago (2016-01-15 11:10:19 UTC) #7
Benedikt Meurer
Nice. LGTM with comment. https://codereview.chromium.org/1563213002/diff/140001/src/crankshaft/hydrogen.cc File src/crankshaft/hydrogen.cc (right): https://codereview.chromium.org/1563213002/diff/140001/src/crankshaft/hydrogen.cc#newcode8436 src/crankshaft/hydrogen.cc:8436: JSFunction::EnsureLiterals(target); Can we check this ...
4 years, 11 months ago (2016-01-15 11:36:43 UTC) #9
akos.palfi.imgtec
Hi Michael, Please find the mips ports here: https://codereview.chromium.org/1587073009/
4 years, 11 months ago (2016-01-15 13:15:55 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1563213002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1563213002/180001
4 years, 11 months ago (2016-01-18 16:02:47 UTC) #15
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/14107)
4 years, 11 months ago (2016-01-18 16:39:22 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1563213002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1563213002/200001
4 years, 11 months ago (2016-01-20 14:07:14 UTC) #20
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/14201)
4 years, 11 months ago (2016-01-20 14:40:10 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1563213002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1563213002/240001
4 years, 11 months ago (2016-01-26 12:32:56 UTC) #25
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/14444)
4 years, 11 months ago (2016-01-26 12:44:59 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1563213002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1563213002/260001
4 years, 11 months ago (2016-01-26 14:18:22 UTC) #30
commit-bot: I haz the power
Committed patchset #12 (id:260001)
4 years, 11 months ago (2016-01-26 14:20:17 UTC) #32
commit-bot: I haz the power
Patchset 12 (id:??) landed as https://crrev.com/a5200f7ed4d11c6b882fa667da7a1864226544b4 Cr-Commit-Position: refs/heads/master@{#33518}
4 years, 11 months ago (2016-01-26 14:21:16 UTC) #34
mvstanton
A revert of this CL (patchset #12 id:260001) has been created in https://codereview.chromium.org/1632993003/ by mvstanton@chromium.org. ...
4 years, 11 months ago (2016-01-26 15:00:53 UTC) #35
Michael Achenbach
Also seem to introduce this flake: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20avx2/builds/4915
4 years, 11 months ago (2016-01-26 15:02:33 UTC) #36
Michael Achenbach
4 years, 11 months ago (2016-01-26 15:03:08 UTC) #37
Message was sent while issue was closed.
On 2016/01/26 15:02:33, Michael Achenbach wrote:
> Also seem to introduce this flake:
>
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%...

And fails here:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap

Powered by Google App Engine
This is Rietveld 408576698