diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-07-12 09:37:13 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-07-13 16:25:28 +0200 |
commit | 1184f677d6e17033572ecc5e97ea5ee627627908 (patch) | |
tree | 2bcbdcd5264a740f41cef764d07b0d6229c17ab8 /libgo/sysinfo.c | |
parent | 554b21edb9ec91a898125d4915d790c6d4b9a688 (diff) | |
download | gcc-1184f677d6e17033572ecc5e97ea5ee627627908.zip gcc-1184f677d6e17033572ecc5e97ea5ee627627908.tar.gz gcc-1184f677d6e17033572ecc5e97ea5ee627627908.tar.bz2 |
Use nonzero bits in range-ops to determine if < 0 is false.
For a signed integer, x < 0 is false if the sign bit in the nonzero
bits of X is clear.
Both CCP and ipa-cp can set the global nonzero bits in a range, which
means we can now use some of that information in evrp and subsequent
passes. I've adjusted two tests which now fold things earlier because
of this optimization.
Tested on x86-64 Linux.
gcc/ChangeLog:
* range-op.cc (operator_lt::fold_range): Use nonzero bits.
gcc/testsuite/ChangeLog:
* g++.dg/ipa/pure-const-3.C: Adjust.
* gcc.dg/pr102983.c: Adjust.
Diffstat (limited to 'libgo/sysinfo.c')
0 files changed, 0 insertions, 0 deletions