Skip to content
Success

Changes

Summary

  1. Improve VPClass::mustBeNotEqual() (commit: 5aba990) (details)
Commit 5aba990c724f7bd7ca4d633597590ae9bc1e703a by Devin Papineau
Improve VPClass::mustBeNotEqual()

This will allow reference comparisons to be folded to "not equal" more
often. Previously VPClass::mustBeNotEqual() would return true only when
the constraints could be distinguished by:
- known null vs. known non-null,
- known object index (when both are known to be non-null), or
- fixed-class class pointer (when both are known to be non-null).

Now most of the cases where it returns true require only one of the two
constraints to forbid null. Additionally, the constraints can now also
be distinguished by:
- location (heap, stack, class object),
- array element size,
- array length,
- class object type bound (non-fixed), and
- instance type bound (fixed or not).
(commit: 5aba990)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)