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

Issue 2045263002: [heap] Avoid the use of cells to point from code to new-space objects. (Closed)

Created:
4 years, 6 months ago by ahaas
Modified:
4 years, 6 months ago
CC:
Hannes Payer (out of office), Michael Achenbach, Michael Starzinger, titzer, ulan, v8-mips-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, v8-reviews_googlegroups.com, v8-x87-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[heap] Avoid the use of cells to point from code to new-space objects. Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=ulan@chromium.org Committed: https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c Cr-Commit-Position: refs/heads/master@{#37134}

Patch Set 1 #

Total comments: 10

Patch Set 2 : Fixed some tests #

Patch Set 3 : #

Total comments: 16

Patch Set 4 : Add comments. #

Total comments: 1

Patch Set 5 : Change comments. #

Patch Set 6 : Add the comment for Ben. #

Patch Set 7 : rebase. #

Patch Set 8 : The IsSmi check in mov(HeapObject) lets some tests fail. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+270 lines, -177 lines) Patch
M src/arm/assembler-arm.cc View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M src/arm/assembler-arm-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -13 lines 0 comments Download
M src/arm64/assembler-arm64.cc View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M src/arm64/assembler-arm64-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 1 chunk +1 line, -8 lines 0 comments Download
M src/compiler.cc View 1 2 3 4 5 6 1 chunk +8 lines, -3 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 3 chunks +10 lines, -0 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 7 chunks +37 lines, -37 lines 0 comments Download
M src/heap/heap-inl.h View 1 2 3 4 5 6 1 chunk +6 lines, -0 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 6 9 chunks +50 lines, -20 lines 0 comments Download
M src/heap/remembered-set.h View 1 2 1 chunk +14 lines, -0 lines 0 comments Download
M src/heap/remembered-set.cc View 1 2 2 chunks +33 lines, -10 lines 0 comments Download
M src/ia32/assembler-ia32-inl.h View 1 2 3 chunks +1 line, -4 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 1 chunk +3 lines, -25 lines 0 comments Download
M src/mips/assembler-mips.cc View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M src/mips/assembler-mips-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -13 lines 0 comments Download
M src/mips64/assembler-mips64.cc View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M src/mips64/assembler-mips64-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -13 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 1 chunk +2 lines, -1 line 0 comments Download
M src/objects-debug.cc View 1 2 3 4 5 6 1 chunk +19 lines, -5 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 1 chunk +2 lines, -3 lines 0 comments Download
M src/x64/assembler-x64-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 1 chunk +1 line, -8 lines 0 comments Download
M src/x87/assembler-x87-inl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/heap/test-heap.cc View 1 2 3 4 5 6 1 chunk +61 lines, -0 lines 0 comments Download
M test/cctest/test-serialize.cc View 1 2 3 4 5 6 1 chunk +13 lines, -9 lines 0 comments Download

Messages

Total messages: 23 (5 generated)
ahaas
4 years, 6 months ago (2016-06-08 14:05:57 UTC) #1
ulan
Getting there :) Few comments. https://codereview.chromium.org/2045263002/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/2045263002/diff/1/src/compiler.cc#newcode290 src/compiler.cc:290: heap->RecordWeakCodeToNewSpaceReference(object, cell); Could you ...
4 years, 6 months ago (2016-06-08 14:37:00 UTC) #2
ahaas
https://codereview.chromium.org/2045263002/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/2045263002/diff/1/src/compiler.cc#newcode290 src/compiler.cc:290: heap->RecordWeakCodeToNewSpaceReference(object, cell); On 2016/06/08 at 14:37:00, ulan wrote: > ...
4 years, 6 months ago (2016-06-09 10:34:33 UTC) #3
Michael Achenbach
https://codereview.chromium.org/2045263002/diff/40001/test/mjsunit/es6/tail-call-megatest.js File test/mjsunit/es6/tail-call-megatest.js (right): https://codereview.chromium.org/2045263002/diff/40001/test/mjsunit/es6/tail-call-megatest.js#newcode369 test/mjsunit/es6/tail-call-megatest.js:369: // print("Running shard #" + shard); Thanks for the ...
4 years, 6 months ago (2016-06-09 11:08:24 UTC) #5
titzer
Looks mostly good https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc#newcode2472 src/heap/mark-compact.cc:2472: list->Set(counter, obj, SKIP_WRITE_BARRIER); I don't understand ...
4 years, 6 months ago (2016-06-09 11:10:22 UTC) #7
ahaas
On 2016/06/09 at 11:08:24, machenbach wrote: > https://codereview.chromium.org/2045263002/diff/40001/test/mjsunit/es6/tail-call-megatest.js > File test/mjsunit/es6/tail-call-megatest.js (right): > > https://codereview.chromium.org/2045263002/diff/40001/test/mjsunit/es6/tail-call-megatest.js#newcode369 ...
4 years, 6 months ago (2016-06-09 11:16:35 UTC) #8
ahaas
https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc#newcode2472 src/heap/mark-compact.cc:2472: list->Set(counter, obj, SKIP_WRITE_BARRIER); On 2016/06/09 at 11:10:21, titzer wrote: ...
4 years, 6 months ago (2016-06-09 11:20:40 UTC) #9
ulan
looking good https://codereview.chromium.org/2045263002/diff/40001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/2045263002/diff/40001/src/heap/heap.cc#newcode5735 src/heap/heap.cc:5735: if (rinfo->IsInConstantPool()) { Could you please extract ...
4 years, 6 months ago (2016-06-09 14:45:22 UTC) #10
ahaas
https://codereview.chromium.org/2045263002/diff/40001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/2045263002/diff/40001/src/heap/heap.cc#newcode5735 src/heap/heap.cc:5735: if (rinfo->IsInConstantPool()) { On 2016/06/09 at 14:45:22, ulan wrote: ...
4 years, 6 months ago (2016-06-10 11:00:34 UTC) #11
ulan
LGTM! What performance numbers look like? https://codereview.chromium.org/2045263002/diff/60001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/2045263002/diff/60001/src/heap/mark-compact.cc#newcode1565 src/heap/mark-compact.cc:1565: // target is ...
4 years, 6 months ago (2016-06-10 11:09:34 UTC) #12
titzer
https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/2045263002/diff/40001/src/heap/mark-compact.cc#newcode2472 src/heap/mark-compact.cc:2472: list->Set(counter, obj, SKIP_WRITE_BARRIER); On 2016/06/09 14:45:22, ulan wrote: > ...
4 years, 6 months ago (2016-06-10 13:27:06 UTC) #13
titzer
lgtm
4 years, 6 months ago (2016-06-13 09:06:04 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2045263002/120001
4 years, 6 months ago (2016-06-21 10:26:04 UTC) #17
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 6 months ago (2016-06-21 10:40:24 UTC) #18
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c Cr-Commit-Position: refs/heads/master@{#37134}
4 years, 6 months ago (2016-06-21 10:41:00 UTC) #20
Michael Achenbach
A revert of this CL (patchset #7 id:120001) has been created in https://codereview.chromium.org/2087463004/ by machenbach@chromium.org. ...
4 years, 6 months ago (2016-06-21 12:09:10 UTC) #21
ahaas
On 2016/06/21 at 12:09:10, machenbach wrote: > A revert of this CL (patchset #7 id:120001) ...
4 years, 6 months ago (2016-06-21 13:09:10 UTC) #22
Marija Antic
4 years, 6 months ago (2016-06-23 10:43:02 UTC) #23
On 2016/06/21 13:09:10, ahaas wrote:
> On 2016/06/21 at 12:09:10, machenbach wrote:
> > A revert of this CL (patchset #7 id:120001) has been created in
> https://codereview.chromium.org/2087463004/ by mailto:machenbach@chromium.org.
> > 
> > The reason for reverting is: [Sheriff] Breaks arm debug:
> >
>
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20....
> 
> @v8-mips-ports PTAL. Is it okay that I use the LiFlags parameter also when the
> value is not a smi? I want to get rid of the IsSmi check here because it
causes
> problems in some benchmarks.

lgtm

Powered by Google App Engine
This is Rietveld 408576698