Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/heapRegion.cpp @ 1705:2d160770d2e5
6814437: G1: remove the _new_refs array
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.
Reviewed-by: iveresov, jmasa, tonyp
author | johnc |
---|---|
date | Mon, 02 Aug 2010 12:51:43 -0700 |
parents | 5cbac8938c4c |
children | bb847e31b836 |
comparison
equal
deleted
inserted
replaced
1704:63f4675ac87d | 1705:2d160770d2e5 |
---|---|
681 // safely know if this region is young. | 681 // safely know if this region is young. |
682 if (is_young() && filter_young) { | 682 if (is_young() && filter_young) { |
683 return NULL; | 683 return NULL; |
684 } | 684 } |
685 | 685 |
686 assert(!is_young(), "check value of filter_young"); | |
687 | |
686 // We used to use "block_start_careful" here. But we're actually happy | 688 // We used to use "block_start_careful" here. But we're actually happy |
687 // to update the BOT while we do this... | 689 // to update the BOT while we do this... |
688 HeapWord* cur = block_start(mr.start()); | 690 HeapWord* cur = block_start(mr.start()); |
689 assert(cur <= mr.start(), "Postcondition"); | 691 assert(cur <= mr.start(), "Postcondition"); |
690 | 692 |