mbox series

[00/16] prange supporting patchset

Message ID 20240428190557.1209586-1-aldyh@redhat.com
Headers show
Series prange supporting patchset | expand

Message

Aldy Hernandez April 28, 2024, 7:05 p.m. UTC
In this cycle, we will be contributing ranges for pointers (prange),
to disambiguate pointers from integers in a range.  Initially they
will behave exactly as they do now, with just two integer end points
and a bitmask, but eventually we will track points-to info in a less
hacky manner than what we do with the pointer equivalency class
(pointer_equiv_analyzer).

This first set of patches implements a bunch of little cleanups and
set-ups that will make it easier to drop in prange in a week or two.
The patches in this set are non-intrusive, and don't touch code that
changes much in the release, so they should be safe to push now.

There should be no change in behavior in any of these patches.

All patches have been tested on x86-64 Linux.

Aldy Hernandez (16):
  Make vrange an abstract class.
  Add a virtual vrange destructor.
  Make some Value_Range's explicitly integer.
  Add tree versions of lower and upper bounds to vrange.
  Move bitmask routines to vrange base class.
  Remove GTY support for vrange and derived classes.
  Make fold_cond_with_ops use a boolean type for range_true/range_false.
  Change range_includes_zero_p argument to a reference.
  Verify that reading back from vrange_storage doesn't drop bits.
  Accept a vrange in get_legacy_range.
  Move get_bitmask_from_range out of irange class.
  Make some integer specific ranges generic Value_Range's.
  Accept any vrange in range_includes_zero_p.
  Move print_irange_* out of vrange_printer class.
  Remove range_zero and range_nonzero.
  Callers of irange_bitmask must normalize value/mask pairs.

 gcc/gimple-range-op.cc          |   6 +-
 gcc/gimple-ssa-warn-access.cc   |   4 +-
 gcc/ipa-cp.cc                   |   9 +-
 gcc/ipa-prop.cc                 |  10 +-
 gcc/range-op-mixed.h            |   2 +-
 gcc/range-op-ptr.cc             |  14 +-
 gcc/range-op.cc                 |  20 ++-
 gcc/range.cc                    |  14 --
 gcc/range.h                     |   2 -
 gcc/tree-ssa-ccp.cc             |   1 +
 gcc/tree-ssa-loop-niter.cc      |  16 +-
 gcc/tree-ssa-loop-split.cc      |   6 +-
 gcc/tree-ssa-strlen.cc          |   2 +-
 gcc/value-query.cc              |   4 +-
 gcc/value-range-pretty-print.cc |  83 +++++-----
 gcc/value-range-pretty-print.h  |   2 -
 gcc/value-range-storage.cc      |  20 ++-
 gcc/value-range-storage.h       |   4 -
 gcc/value-range.cc              | 284 ++++++++++++++++----------------
 gcc/value-range.h               | 166 ++++++++-----------
 gcc/vr-values.cc                |   7 +-
 21 files changed, 310 insertions(+), 366 deletions(-)