DescriptionImmediately promote marked objects during scavenge
It happens that a scavenger runs during incremental marking. Currently scavenger does not care about MarkCompact's mark bits. When an object is alive and marked, and at least one scavenge happens during incremental marking, the object will be copied once to the other semispace in the new_space, and then once to the old_space. For surviving objects this is useless extra work.
In our current attempts (https://codereview.chromium.org/1988623002) to ensure marked objects are scavenged, all marked objects will survive therefore there will be many objects which will be uselessly copied.
This cl modifies our promotion logic so when incremental marking is in progress, and the object is marked, we promote it unconditionally.
BUG=
LOG=no
Committed: https://crrev.com/dc78e0d4d7f8e67d99165ee4fc5cc118e1be2a9f
Cr-Commit-Position: refs/heads/master@{#36643}
Patch Set 1 #Patch Set 2 : Polish #
Total comments: 1
Patch Set 3 : Rewrite using PromotionMode #
Total comments: 1
Patch Set 4 : Fix CheckAndScavengeObject, cleanup #Patch Set 5 : Do not compute current promotion mode on every iteration #
Total comments: 2
Patch Set 6 : Templatize PromotionMode #Patch Set 7 : Rebase master #
Total comments: 2
Patch Set 8 : Remove FORCE_PROMOTION #
Total comments: 4
Patch Set 9 : Detemplatize Scavenger::Scavenge and friends, add tests #
Total comments: 2
Patch Set 10 : Address comments #Patch Set 11 : Cleanup #Patch Set 12 : Whitespace fix #Patch Set 13 : Fix test #
Total comments: 3
Patch Set 14 : Should concentrate more #Patch Set 15 : Really should concentrate more #
Messages
Total messages: 29 (8 generated)
|