diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2023-06-29 11:27:49 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2023-07-12 18:21:29 +0200 |
commit | 602e824eec30a7c6792b8b27d61c40f1c1a2714c (patch) | |
tree | 523bbcde95a826173c3cfbab1d4292e3fe337d40 /gcc/tree-cfg.cc | |
parent | 14b10ff30ad58265c5acd495c3b0e56563571b0c (diff) | |
download | gcc-602e824eec30a7c6792b8b27d61c40f1c1a2714c.zip gcc-602e824eec30a7c6792b8b27d61c40f1c1a2714c.tar.gz gcc-602e824eec30a7c6792b8b27d61c40f1c1a2714c.tar.bz2 |
[range-op] Enable value/mask propagation in range-op.
Throw the switch in range-ops to make full use of the value/mask
information instead of only the nonzero bits. This will cause most of
the operators implemented in range-ops to use the value/mask
information calculated by CCP's bit_value_binop() function which
range-ops uses. This opens up more optimization opportunities.
In follow-up patches I will change the global range setter
(set_range_info) to be able to save the value/mask pair, and make both
CCP and IPA be able to save the known ones bit info, instead of
throwing it away.
gcc/ChangeLog:
* range-op.cc (irange_to_masked_value): Remove.
(update_known_bitmask): Update irange value/mask pair instead of
only updating nonzero bits.
gcc/testsuite/ChangeLog:
* gcc.dg/pr83073.c: Adjust testcase.
Diffstat (limited to 'gcc/tree-cfg.cc')
0 files changed, 0 insertions, 0 deletions