From e22762c010e5cd4c313e5f2816b67d75862935a7 Mon Sep 17 00:00:00 2001 From: Albert Mingkun Yang Date: Tue, 29 Aug 2023 16:04:50 +0000 Subject: [PATCH] 8314932: G1: Fix -Wconversion warnings for simple cases inside g1 folder Reviewed-by: tschatzl, iwalulya --- src/hotspot/share/gc/g1/g1Analytics.cpp | 2 +- src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp | 2 +- src/hotspot/share/gc/g1/g1CardTable.cpp | 2 +- src/hotspot/share/gc/g1/g1ConcurrentMark.cpp | 8 ++++---- src/hotspot/share/gc/g1/g1ConcurrentMark.hpp | 2 +- .../share/gc/g1/g1ConcurrentMarkObjArrayProcessor.cpp | 2 +- src/hotspot/share/gc/g1/g1EdenRegions.hpp | 2 +- src/hotspot/share/gc/g1/g1FreeIdSet.cpp | 3 ++- src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp | 4 ---- src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp | 3 --- src/hotspot/share/gc/g1/g1RemSet.cpp | 2 +- src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp | 2 +- 12 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/hotspot/share/gc/g1/g1Analytics.cpp b/src/hotspot/share/gc/g1/g1Analytics.cpp index 5e29ecf95f0..6a7f4a5deed 100644 --- a/src/hotspot/share/gc/g1/g1Analytics.cpp +++ b/src/hotspot/share/gc/g1/g1Analytics.cpp @@ -94,7 +94,7 @@ G1Analytics::G1Analytics(const G1Predictions* predictor) : _recent_prev_end_times_for_all_gcs_sec.add(os::elapsedTime()); _prev_collection_pause_end_ms = os::elapsedTime() * 1000.0; - int index = MIN2(ParallelGCThreads - 1, 7u); + uint index = MIN2(ParallelGCThreads - 1, 7u); // Start with inverse of maximum STW cost. _concurrent_refine_rate_ms_seq.add(1/cost_per_logged_card_ms_defaults[0]); diff --git a/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp b/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp index 83b47286631..a29050c04b3 100644 --- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp +++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp @@ -46,7 +46,7 @@ inline HeapWord* G1BlockOffsetTablePart::block_start_reaching_into_card(const vo size_t index = _bot->index_for(addr); - uint offset = _bot->offset_array(index); + u_char offset = _bot->offset_array(index); while (offset >= BOTConstants::card_size_in_words()) { // The excess of the offset from N_words indicates a power of Base // to go back by. diff --git a/src/hotspot/share/gc/g1/g1CardTable.cpp b/src/hotspot/share/gc/g1/g1CardTable.cpp index 0dc845825d6..467ba6c56a9 100644 --- a/src/hotspot/share/gc/g1/g1CardTable.cpp +++ b/src/hotspot/share/gc/g1/g1CardTable.cpp @@ -32,7 +32,7 @@ void G1CardTable::g1_mark_as_young(const MemRegion& mr) { CardValue *const first = byte_for(mr.start()); CardValue *const last = byte_after(mr.last()); - memset_with_concurrent_readers(first, g1_young_gen, last - first); + memset_with_concurrent_readers(first, g1_young_gen, pointer_delta(last, first, sizeof(CardValue))); } #ifndef PRODUCT diff --git a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp index 5bef45fb152..70badde7307 100644 --- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp +++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp @@ -390,8 +390,8 @@ G1ConcurrentMark::G1ConcurrentMark(G1CollectedHeap* g1h, // _num_active_tasks set in set_non_marking_state() // _tasks set inside the constructor - _task_queues(new G1CMTaskQueueSet((int) _max_num_tasks)), - _terminator((int) _max_num_tasks, _task_queues), + _task_queues(new G1CMTaskQueueSet(_max_num_tasks)), + _terminator(_max_num_tasks, _task_queues), _first_overflow_barrier_sync(), _second_overflow_barrier_sync(), @@ -540,8 +540,8 @@ void G1ConcurrentMark::set_concurrency(uint active_tasks) { // Need to update the three data structures below according to the // number of active threads for this phase. _terminator.reset_for_reuse(active_tasks); - _first_overflow_barrier_sync.set_n_workers((int) active_tasks); - _second_overflow_barrier_sync.set_n_workers((int) active_tasks); + _first_overflow_barrier_sync.set_n_workers(active_tasks); + _second_overflow_barrier_sync.set_n_workers(active_tasks); } void G1ConcurrentMark::set_concurrency_and_phase(uint active_tasks, bool concurrent) { diff --git a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp index c4465cc00b3..0ce2c7a961a 100644 --- a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp +++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp @@ -511,7 +511,7 @@ public: // running. void abort_marking_threads(); - void update_accum_task_vtime(int i, double vtime) { + void update_accum_task_vtime(uint i, double vtime) { _accum_task_vtime[i] += vtime; } diff --git a/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.cpp b/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.cpp index 12d272a4fbe..80acada0472 100644 --- a/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.cpp +++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.cpp @@ -74,7 +74,7 @@ size_t G1CMObjArrayProcessor::process_slice(HeapWord* slice) { objArrayOop objArray = objArrayOop(cast_to_oop(start_address)); - size_t already_scanned = slice - start_address; + size_t already_scanned = pointer_delta(slice, start_address); size_t remaining = objArray->size() - already_scanned; return process_array_slice(objArray, slice, remaining); diff --git a/src/hotspot/share/gc/g1/g1EdenRegions.hpp b/src/hotspot/share/gc/g1/g1EdenRegions.hpp index 30ccbabe965..23b97785ad3 100644 --- a/src/hotspot/share/gc/g1/g1EdenRegions.hpp +++ b/src/hotspot/share/gc/g1/g1EdenRegions.hpp @@ -32,7 +32,7 @@ class G1EdenRegions { private: - int _length; + uint _length; // Sum of used bytes from all retired eden regions. // I.e. updated when mutator regions are retired. volatile size_t _used_bytes; diff --git a/src/hotspot/share/gc/g1/g1FreeIdSet.cpp b/src/hotspot/share/gc/g1/g1FreeIdSet.cpp index ca0961bd963..e3cb99acf8d 100644 --- a/src/hotspot/share/gc/g1/g1FreeIdSet.cpp +++ b/src/hotspot/share/gc/g1/g1FreeIdSet.cpp @@ -26,6 +26,7 @@ #include "gc/g1/g1FreeIdSet.hpp" #include "memory/allocation.inline.hpp" #include "runtime/atomic.hpp" +#include "utilities/checkedCast.hpp" #include "utilities/debug.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" @@ -59,7 +60,7 @@ G1FreeIdSet::~G1FreeIdSet() { } uint G1FreeIdSet::head_index(uintx head) const { - return head & _head_index_mask; + return checked_cast(head & _head_index_mask); } uintx G1FreeIdSet::make_head(uint index, uintx old_head) const { diff --git a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp index 87606d5c23f..5265d23b555 100644 --- a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp +++ b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp @@ -100,10 +100,6 @@ size_t G1PageBasedVirtualSpace::uncommitted_size() const { return reserved_size() - committed_size(); } -size_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const { - return (addr - _low_boundary) / _page_size; -} - bool G1PageBasedVirtualSpace::is_area_committed(size_t start_page, size_t size_in_pages) const { size_t end_page = start_page + size_in_pages; return _committed.find_first_clear_bit(start_page, end_page) >= end_page; diff --git a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp index 5bbc387ed4e..52b8ebd31f2 100644 --- a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp +++ b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp @@ -84,9 +84,6 @@ class G1PageBasedVirtualSpace { // Uncommit the given memory range. void uncommit_internal(size_t start_page, size_t end_page); - // Returns the index of the page which contains the given address. - size_t addr_to_page_index(char* addr) const; - // Is the given page index the last page? bool is_last_page(size_t index) const { return index == (_committed.size() - 1); } // Is the given page index the first after last page? diff --git a/src/hotspot/share/gc/g1/g1RemSet.cpp b/src/hotspot/share/gc/g1/g1RemSet.cpp index 07acd9dd5b5..c899bde6b14 100644 --- a/src/hotspot/share/gc/g1/g1RemSet.cpp +++ b/src/hotspot/share/gc/g1/g1RemSet.cpp @@ -545,7 +545,7 @@ class G1ScanHRForRegionClosure : public HeapRegionClosure { void do_claimed_block(uint const region_idx, CardValue* const dirty_l, CardValue* const dirty_r) { _ct->change_dirty_cards_to(dirty_l, dirty_r, _scanned_card_value); - size_t num_cards = dirty_r - dirty_l; + size_t num_cards = pointer_delta(dirty_r, dirty_l, sizeof(CardValue)); _blocks_scanned++; HeapWord* const card_start = _ct->addr_for(dirty_l); diff --git a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp index 6d1633786e6..dc467107136 100644 --- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp +++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp @@ -103,7 +103,7 @@ bool G1RemSetTrackingPolicy::update_before_rebuild(HeapRegion* r, size_t live_by assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index()); - size_t live_bytes_above_tams = (r->top() - r->top_at_mark_start()) * HeapWordSize; + size_t live_bytes_above_tams = pointer_delta(r->top(), r->top_at_mark_start()) * HeapWordSize; size_t total_live_bytes = live_bytes_below_tams + live_bytes_above_tams; bool selected_for_rebuild = false;