RFR: 8257676: Simplify WeakProcessorPhase

Albert Mingkun Yang ayang at openjdk.java.net
Wed Dec 9 18:26:41 UTC 2020


On Fri, 4 Dec 2020 09:34:36 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

> Please review this reimplementation of WeakProcessorPhase.  It is changed to
> a scoped enum at namespace scope, and uses the recently added EnumIterator
> facility to provide iteration, rather than a bespoke iterator class.
> 
> This is a step toward eliminating it entirely.  I've split it out into a
> separate PR to make the review of the follow-up work a bit easier.
> 
> As part of this the file weakProcessorPhases.hpp is renamed to
> weakProcessorPhase.hpp, but git doesn't seem to be recognizing that as a
> rename and (majorly) edit, instead treating it as a remove and add a new
> file.
> 
> Testing: mach5 tier1

Marked as reviewed by ayang (Author).

src/hotspot/share/gc/shared/weakProcessor.inline.hpp line 88:

> 86:     CountingClosure<IsAlive, KeepAlive> cl(is_alive, keep_alive);
> 87:     WeakProcessorPhaseTimeTracker pt(_phase_times, phase, worker_id);
> 88:     int state_index = checked_cast<int>(phase_range.index(phase));

I feel `EnumRange<WeakProcessorPhase>().index(phase)` is better than `phase_range.index(phase)`, since we want to know the "global" index for this phase, not the "local" index within this particular range instance. The two are identical currently. However, if the for-loop is iterating over a subset of all `WeakProcessorPhase`, the two cases will give different results, I believe.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1620



More information about the hotspot-gc-dev mailing list