CRR (M): 7157073: G1: type change size_t -> uint for region counts / indexes
Tony Printezis
tony.printezis at oracle.com
Tue Mar 27 16:34:14 UTC 2012
Hi all,
I'd like a couple of reviews for this cleanup. We have been using
size_t's to represent region counts / indexes and I have been encouraged
to change those to uint's. This unfortunately turned out to be quite an
extensive change that was hard to localize. I've split the change into
two webrevs.
First, this breaks down a long line in g1CollectedHeap.cpp. I I have it
on a separate webrev as it messes up the webrev pages for the rest of
the changes (i.e., the rest of the changes are easier to read with this
excluded):
http://cr.openjdk.java.net/~tonyp/7157073/webrev.0/webrev.0.G1LongLineFix/
The main body of the changes is here:
http://cr.openjdk.java.net/~tonyp/7157073/webrev.0/webrev.1.G1Uints/
Some important comments:
* I tried to change as many of the size_t occurrences as possible but I
didn't touch the following:
- HeapRegionRemSet - we're in the process of reworking this code so I
decided to leave it mostly as is (I only added a few necessary casts)
- CollectionSetChooser / HeapRegion::sort_index() /
HeapRegion::_sort_index - I have a CR open for a CSetChooser cleanup and
I'll do the conversion as part of that cleanup (I did change a few types
on the CSetChooser external API to avoid casts from methods that access it).
- HeapRegion::_young_index_in_cset / HeapRegion::young_index_in_cset() -
The code looks as if it relies on the fact that this is an int. It seems
well localized so I left it as is and we can look at it on a separate CR.
* I had to make some changes to the vmStructs_g1.hpp and I need to
ensure that the SA code works with those changes. Unfortunately, I'm
going on vacation for a few days tonight and I haven't had a chance to
do that yet. I'll look at the SA more closely when I get back and, if I
need to make any changes to the SA, I'll publish those separately (they
will be self-contained anyway). I just wanted to get the main body of
the changes out before I leave so any potential reviewers can get
started on it.
* Testing: the source builds on all platforms and passes JPRT. And I did
a lot of extra 64-bit testing (as any issues should mainly show up in
64-bit builds).
Tony
More information about the hotspot-gc-dev
mailing list