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

Issue 1029093002: v8:3539 - hold constructor feedback in weak cells (Closed)

Created:
5 years, 9 months ago by mvstanton
Modified:
5 years, 7 months ago
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

v8:3539 - hold constructor feedback in weak cells BUG=v8:3539 R=verwaest@chromium.org LOG=N Committed: https://crrev.com/b134ae74b5fe4750588cef81a06b6fabd2507409 Cr-Commit-Position: refs/heads/master@{#27581}

Patch Set 1 : Patch one. #

Patch Set 2 : Fix in test-heap.cc #

Total comments: 4

Patch Set 3 : REBASE and updates. #

Patch Set 4 : REBASE. #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+343 lines, -157 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 3 chunks +39 lines, -25 lines 6 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 chunks +51 lines, -42 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 chunks +41 lines, -37 lines 0 comments Download
M src/objects.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M src/type-feedback-vector.h View 1 2 2 chunks +21 lines, -1 line 0 comments Download
M src/type-feedback-vector.cc View 1 2 2 chunks +9 lines, -9 lines 0 comments Download
M src/type-info.cc View 1 2 1 chunk +12 lines, -0 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 chunks +47 lines, -40 lines 0 comments Download
M test/cctest/test-feedback-vector.cc View 1 chunk +8 lines, -2 lines 0 comments Download
M test/cctest/test-heap.cc View 1 2 3 2 chunks +114 lines, -0 lines 0 comments Download

Messages

Total messages: 15 (7 generated)
mvstanton
Hi Toon, Here is the introduction of weak cells to feedback slots. Thanks for the ...
5 years, 9 months ago (2015-03-25 10:04:24 UTC) #5
Toon Verwaest
lgtm with minor comments https://codereview.chromium.org/1029093002/diff/100001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/1029093002/diff/100001/src/arm/code-stubs-arm.cc#newcode2426 src/arm/code-stubs-arm.cc:2426: __ CompareRoot(r4, Heap::kmegamorphic_symbolRootIndex); Checking this ...
5 years, 9 months ago (2015-03-25 15:25:52 UTC) #6
mvstanton
Thanks Toon, I've addressed comments and also added static asserts around the assumption that I ...
5 years, 9 months ago (2015-03-26 15:28:53 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1029093002/140001
5 years, 8 months ago (2015-04-02 09:15:10 UTC) #10
commit-bot: I haz the power
Committed patchset #4 (id:140001)
5 years, 8 months ago (2015-04-02 09:39:37 UTC) #11
commit-bot: I haz the power
Patchset 4 (id:??) landed as https://crrev.com/b134ae74b5fe4750588cef81a06b6fabd2507409 Cr-Commit-Position: refs/heads/master@{#27581}
5 years, 8 months ago (2015-04-02 09:39:46 UTC) #12
Erik Corry
I'm a bit late here, but: https://codereview.chromium.org/1029093002/diff/140001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/1029093002/diff/140001/src/arm/code-stubs-arm.cc#newcode2377 src/arm/code-stubs-arm.cc:2377: // Arguments register ...
5 years, 8 months ago (2015-04-02 12:54:11 UTC) #14
mvstanton
5 years, 8 months ago (2015-04-02 14:00:38 UTC) #15
Message was sent while issue was closed.
Hi Erik, I'll address the issues you raised with a follow-on CL for you to
review, thanks for the close look. But I'll go ahead and reply to the most
serious issue inline now, thanks again,
--Michael

https://codereview.chromium.org/1029093002/diff/140001/src/arm/code-stubs-arm.cc
File src/arm/code-stubs-arm.cc (right):

https://codereview.chromium.org/1029093002/diff/140001/src/arm/code-stubs-arm...
src/arm/code-stubs-arm.cc:2415: __ CompareRoot(r4,
Heap::kmegamorphic_symbolRootIndex);
On 2015/04/02 12:54:11, Erik Corry wrote:
> We just treated r4 as a weak cell (3 lines up), now we are comparing it with a
> symbol. Does that mean we just loaded some random field from a symbol and
> compared it with a function?

Correct, but it's not random. It's a performance optimization to tolerate
ambiguity in what we've loaded and only discover whether it's a WeakCell or
Symbol later. It's safe to examine field offset +kPointerSize, and the continued
safety of this optimization is protected with static asserts in
type-feedback-vector.h (also in this CL).

Powered by Google App Engine
This is Rietveld 408576698