aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-11-11 10:11:03 +0100
committerAldy Hernandez <aldyh@redhat.com>2022-11-11 14:52:09 +0100
commitc0662c74969820fb576c8a2f35e946581c2c6f9d (patch)
treef0422ffc3301d943996f44f4e61f679ec7373d53
parentc16c40808331a02947b1ad962e85e1b40e30a707 (diff)
downloadgcc-c0662c74969820fb576c8a2f35e946581c2c6f9d.zip
gcc-c0662c74969820fb576c8a2f35e946581c2c6f9d.tar.gz
gcc-c0662c74969820fb576c8a2f35e946581c2c6f9d.tar.bz2
[range-ops] Avoid unnecessary intersection in update_known_bitmask.
All the work for keeping the maybe nonzero masks up to date is being done by the bit-CCP code now. Any bitmask inherent in the range that range-ops may have calculated has no extra information, so the intersection is unnecessary. gcc/ChangeLog: * range-op.cc (update_known_bitmask): Avoid unnecessary intersection.
-rw-r--r--gcc/range-op.cc5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/range-op.cc b/gcc/range-op.cc
index 9eec464..0b01cf4 100644
--- a/gcc/range-op.cc
+++ b/gcc/range-op.cc
@@ -89,10 +89,7 @@ update_known_bitmask (irange &r, tree_code code,
bit_value_binop (code, sign, prec, &value, &mask,
lh_sign, lh_prec, lh_value, lh_mask,
rh_sign, rh_prec, rh_value, rh_mask);
-
- int_range<2> tmp (type);
- tmp.set_nonzero_bits (value | mask);
- r.intersect (tmp);
+ r.set_nonzero_bits (value | mask);
}
// Return the upper limit for a type.