RFR: 8370077: C2: make Compile::_major_progress a boolean [v4]
    Marc Chevalier 
    mchevalier at openjdk.org
       
    Sun Oct 26 21:20:38 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 | What would be the assignment semantics
> ----------------|-----------------------------|-----------------------|-
> 0               | 0                           | 0 | 0
> 1               | 0                           | 1 | 1
> 0               | 1                           | 1 | 0 (mismatch!)
> 1               | 1                           | 2 | 1 (same truthiness)
> 
> 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
Marc Chevalier has updated the pull request incrementally with one additional commit since the last revision:
  put back the OR in restORe
-------------
Changes:
  - all: https://git.openjdk.org/jdk/pull/27912/files
  - new: https://git.openjdk.org/jdk/pull/27912/files/9e5612a1..c0b0bdec
Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=27912&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=27912&range=02-03
  Stats: 5 lines in 2 files changed: 0 ins; 0 del; 5 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