RFR: 8350896: Integer/Long.compress gets wrong type from CompressBitsNode::Value
    Jatin Bhateja 
    jbhateja at openjdk.org
       
    Fri Mar  7 17:42:07 UTC 2025
    
    
  
Hi All,
This bugfix patch fixes incorrect value computation for Integer/Long. compress APIs.
Problems occur with a constant input and variable mask where the input's value is equal to the lower bound of the mask value., In this case, an erroneous value range estimation results in a constant value. Existing value routine first attempts to constant fold the compression operation if both input and compression mask are constant values; otherwise, it attempts to constrain the value range of result based on the upper and lower bounds of mask type.
New IR test covers the issue reported in the bug report along with a case for value range based logic pruning.
Kindly review and share your feedback.
Best Regards,
Jatin
-------------
Commit messages:
 - 8350896: Integer/Long.compress gets wrong type from CompressBitsNode::Value
Changes: https://git.openjdk.org/jdk/pull/23947/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23947&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8350896
  Stats: 163 lines in 3 files changed: 145 ins; 15 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/23947.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23947/head:pull/23947
PR: https://git.openjdk.org/jdk/pull/23947
    
    
More information about the hotspot-compiler-dev
mailing list