Adding unsigned bounds and known bits to TypeInt/Long has several advantages:
- More tight value constraints increase the strength of GVN and CCP and open more transformations and simplifications.
- Currently we have some specifically crafted analysis such as CmpU of Add/Sub, And of a LShift, etc and we have some potential improvements in JBS such as the sign of an Or. These can be solved elegantly using unsigned bounds and known bits.
- Ability to express TypeInt::CC_NE
- More tight value constraints increase the strength of GVN and CCP and open more transformations and simplifications.
- Currently we have some specifically crafted analysis such as CmpU of Add/Sub, And of a LShift, etc and we have some potential improvements in JBS such as the sign of an Or. These can be solved elegantly using unsigned bounds and known bits.
- Ability to express TypeInt::CC_NE
- duplicates
-
JDK-8311597 OrINode/OrLNode::add_ring should track positives
- Closed
- relates to
-
JDK-8001436 C2: Implement bitwise constant propagation
- Open
-
JDK-8311597 OrINode/OrLNode::add_ring should track positives
- Closed
- links to
-
Review openjdk/jdk/15440
-
Review(master) openjdk/jdk/17508