From 7e73c436ef5cc035304347bf64ae8e2b4ce45ab1 Mon Sep 17 00:00:00 2001 From: Albert Mingkun Yang Date: Tue, 10 Dec 2024 08:28:36 +0000 Subject: [PATCH] 8345217: Parallel: Refactor PSParallelCompact::next_src_region Reviewed-by: tschatzl, sjohanss, zgu --- src/hotspot/share/gc/parallel/psParallelCompact.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/hotspot/share/gc/parallel/psParallelCompact.cpp b/src/hotspot/share/gc/parallel/psParallelCompact.cpp index f4e3af4407d..4fbf6cee4df 100644 --- a/src/hotspot/share/gc/parallel/psParallelCompact.cpp +++ b/src/hotspot/share/gc/parallel/psParallelCompact.cpp @@ -2137,13 +2137,9 @@ size_t PSParallelCompact::next_src_region(MoveAndUpdateClosure& closure, } if (src_region_ptr < top_region_ptr) { - // The next source region is in the current space. Update src_region_idx - // and the source address to match src_region_ptr. + // Found the first non-empty region in the same space. src_region_idx = sd.region(src_region_ptr); - HeapWord* const src_region_addr = sd.region_to_addr(src_region_idx); - if (src_region_addr > closure.source()) { - closure.set_source(src_region_addr); - } + closure.set_source(sd.region_to_addr(src_region_idx)); return src_region_idx; } @@ -2167,13 +2163,10 @@ size_t PSParallelCompact::next_src_region(MoveAndUpdateClosure& closure, RegionData* cur = sd.region(cur_region); if (cur->live_obj_size() > 0) { HeapWord* region_start_addr = sd.region_to_addr(cur_region); - HeapWord* region_end_addr = region_start_addr + ParallelCompactData::RegionSize; - HeapWord* first_live_word = mark_bitmap()->find_obj_beg(region_start_addr, region_end_addr); - assert(first_live_word < region_end_addr, "inv"); src_space_id = SpaceId(space_id); src_space_top = top; - closure.set_source(first_live_word); + closure.set_source(region_start_addr); return cur_region; } }