RFR: 8370077: C2: make Compile::_major_progress a boolean
Marc Chevalier
mchevalier at openjdk.org
Tue Oct 21 08:14:37 UTC 2025
Simply change `Compile::_major_progress` from `int` to `bool` since we are only checking if it's non-zero.
There is one detail, we used to have
void restore_major_progress(int progress) { _major_progress += progress; }
It is used after some verification code (maybe not only?) that may reset the major progress, using the progress saved before the said code.
It has a weird semantics:
Progress before | Progress after verification | Progress after restore
----------------|-----------------------------|-----------------------
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 2
It is rather a or than a restore, and a proper boolean version of that would be
void restore_major_progress(bool progress) { _major_progress = _major_progress || progress; }
but then, I'd argue the name is confusing. It also doesn't fit so well the idea that we just want to be back to the situation before the verification code. I suspect the unsaid assumption, is that the 3rd line (progress clear before, set by verification) is not possible. Anyway, I've tried with this or-semantics, or with a more natural
void set_major_progress(bool progress) { _major_progress = progress; }
that actually restore what we saved. Both pass (tier1-6 + some internal tests). Thus, I prefered the simpler semantics.
Thanks,
Marc
-------------
Commit messages:
- major_progress as bool
Changes: https://git.openjdk.org/jdk/pull/27912/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27912&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8370077
Stats: 12 lines in 2 files changed: 1 ins; 1 del; 10 mod
Patch: https://git.openjdk.org/jdk/pull/27912.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27912/head:pull/27912
PR: https://git.openjdk.org/jdk/pull/27912
More information about the hotspot-compiler-dev
mailing list