Skip to content

Commit fe6aec1

Browse files
author
William Kemper
committed
8338479: GenShen: Detemplatize ShenandoahScanRemembered
Backport-of: 78277f9f6e61ecc61eddd3fa72d963f08d7e754f
1 parent eaffb30 commit fe6aec1

10 files changed

+591
-671
lines changed

src/hotspot/share/gc/shenandoah/shenandoahGeneration.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ class ShenandoahResetBitmapTask : public ShenandoahHeapRegionClosure {
8989
// write-copy.
9090
class ShenandoahMergeWriteTable: public ShenandoahHeapRegionClosure {
9191
private:
92-
RememberedScanner* _scanner;
92+
ShenandoahScanRemembered* _scanner;
9393
public:
94-
ShenandoahMergeWriteTable(RememberedScanner* scanner) : _scanner(scanner) {}
94+
ShenandoahMergeWriteTable(ShenandoahScanRemembered* scanner) : _scanner(scanner) {}
9595

9696
void heap_region_do(ShenandoahHeapRegion* r) override {
9797
assert(r->is_old(), "Don't waste time doing this for non-old regions");
@@ -105,9 +105,9 @@ class ShenandoahMergeWriteTable: public ShenandoahHeapRegionClosure {
105105

106106
class ShenandoahCopyWriteCardTableToRead: public ShenandoahHeapRegionClosure {
107107
private:
108-
RememberedScanner* _scanner;
108+
ShenandoahScanRemembered* _scanner;
109109
public:
110-
ShenandoahCopyWriteCardTableToRead(RememberedScanner* scanner) : _scanner(scanner) {}
110+
ShenandoahCopyWriteCardTableToRead(ShenandoahScanRemembered* scanner) : _scanner(scanner) {}
111111

112112
void heap_region_do(ShenandoahHeapRegion* region) override {
113113
assert(region->is_old(), "Don't waste time doing this for non-old regions");
@@ -850,7 +850,7 @@ void ShenandoahGeneration::scan_remembered_set(bool is_concurrent) {
850850
heap->assert_gc_workers(nworkers);
851851
heap->workers()->run_task(&task);
852852
if (ShenandoahEnableCardStats) {
853-
RememberedScanner* scanner = heap->old_generation()->card_scan();
853+
ShenandoahScanRemembered* scanner = heap->old_generation()->card_scan();
854854
assert(scanner != nullptr, "Not generational");
855855
scanner->log_card_stats(nworkers, CARD_STAT_SCAN_RS);
856856
}

src/hotspot/share/gc/shenandoah/shenandoahGenerationalEvacuationTask.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ void ShenandoahGenerationalEvacuationTask::promote_in_place(ShenandoahHeapRegion
150150
//
151151
// Rebuilding the remembered set consists of clearing all object registrations (reset_object_range()) here,
152152
// then registering every live object and every coalesced range of free objects in the loop that follows.
153-
RememberedScanner* const scanner = old_gen->card_scan();
153+
ShenandoahScanRemembered* const scanner = old_gen->card_scan();
154154
scanner->reset_object_range(region->bottom(), region->end());
155155
scanner->mark_range_as_dirty(region->bottom(), region->get_top_before_promote() - region->bottom());
156156

@@ -270,7 +270,7 @@ void ShenandoahGenerationalEvacuationTask::promote_humongous(ShenandoahHeapRegio
270270

271271
// Since this region may have served previously as OLD, it may hold obsolete object range info.
272272
HeapWord* const humongous_bottom = region->bottom();
273-
RememberedScanner* const scanner = old_gen->card_scan();
273+
ShenandoahScanRemembered* const scanner = old_gen->card_scan();
274274
scanner->reset_object_range(humongous_bottom, humongous_bottom + spanned_regions * ShenandoahHeapRegion::region_size_words());
275275
// Since the humongous region holds only one object, no lock is necessary for this register_object() invocation.
276276
scanner->register_object_without_lock(humongous_bottom);

src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ class ShenandoahGenerationalUpdateHeapRefsTask : public WorkerTask {
857857
// The remembered set workload is better balanced between threads, so threads that are "behind" can catch up with other
858858
// threads during this phase, allowing all threads to work more effectively in parallel.
859859
struct ShenandoahRegionChunk assignment;
860-
RememberedScanner* scanner = _heap->old_generation()->card_scan();
860+
ShenandoahScanRemembered* scanner = _heap->old_generation()->card_scan();
861861

862862
while (!_heap->check_cancelled_gc_and_yield(CONCURRENT) && _work_chunks->next(&assignment)) {
863863
// Keep grabbing next work chunk to process until finished, or asked to yield
@@ -950,7 +950,7 @@ class ShenandoahGenerationalUpdateHeapRefsTask : public WorkerTask {
950950
// This is a young evac..
951951
if (start_of_range < end_of_range) {
952952
size_t cluster_size =
953-
CardTable::card_size_in_words() * ShenandoahCardCluster<ShenandoahDirectCardMarkRememberedSet>::CardsPerCluster;
953+
CardTable::card_size_in_words() * ShenandoahCardCluster::CardsPerCluster;
954954
size_t clusters = assignment._chunk_size / cluster_size;
955955
assert(clusters * cluster_size == assignment._chunk_size, "Chunk assignment must align on cluster boundaries");
956956
scanner->process_region_slice(r, assignment._chunk_offset, clusters, end_of_range, &cl, true, worker_id);
@@ -979,7 +979,7 @@ void ShenandoahGenerationalHeap::update_heap_references(bool concurrent) {
979979

980980
if (ShenandoahEnableCardStats) {
981981
// Only do this if we are collecting card stats
982-
RememberedScanner* card_scan = old_generation()->card_scan();
982+
ShenandoahScanRemembered* card_scan = old_generation()->card_scan();
983983
assert(card_scan != nullptr, "Card table must exist when card stats are enabled");
984984
card_scan->log_card_stats(nworkers, CARD_STAT_UPDATE_REFS);
985985
}

src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ void ShenandoahHeapRegion::oop_iterate_humongous_slice(OopIterateClosure* blk, b
523523
"slice must be integral number of cards");
524524

525525
oop obj = cast_to_oop(r->bottom());
526-
RememberedScanner* scanner = heap->old_generation()->card_scan();
526+
ShenandoahScanRemembered* scanner = heap->old_generation()->card_scan();
527527
size_t card_index = scanner->card_index_for_addr(start);
528528
size_t num_cards = words / CardTable::card_size_in_words();
529529

src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ ShenandoahOldGeneration::ShenandoahOldGeneration(uint max_queues, size_t max_cap
194194
ShenandoahCardTable* card_table = ShenandoahBarrierSet::barrier_set()->card_table();
195195
size_t card_count = card_table->cards_required(ShenandoahHeap::heap()->reserved_region().word_size());
196196
auto rs = new ShenandoahDirectCardMarkRememberedSet(card_table, card_count);
197-
_card_scan = new ShenandoahScanRemembered<ShenandoahDirectCardMarkRememberedSet>(rs);
197+
_card_scan = new ShenandoahScanRemembered(rs);
198198
}
199199
}
200200

src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,10 @@ class ShenandoahOldGeneration : public ShenandoahGeneration {
177177
void abandon_mixed_evacuations();
178178

179179
private:
180-
RememberedScanner* _card_scan;
180+
ShenandoahScanRemembered* _card_scan;
181181

182182
public:
183-
RememberedScanner* card_scan() { return _card_scan; }
183+
ShenandoahScanRemembered* card_scan() { return _card_scan; }
184184

185185
// Clear cards for given region
186186
void clear_cards_for(ShenandoahHeapRegion* region);

0 commit comments

Comments
 (0)