diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-07-14 19:06:57 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-07-15 11:41:04 +0200 |
commit | 3aab916f4ff9b41222273e712e1d435013ac8150 (patch) | |
tree | 080d3bf66009a10f691dbd1e811c8de92964d2d3 /gcc | |
parent | 64864aa9e6ea347a4f9c7027941be898ce993f85 (diff) | |
download | gcc-3aab916f4ff9b41222273e712e1d435013ac8150.zip gcc-3aab916f4ff9b41222273e712e1d435013ac8150.tar.gz gcc-3aab916f4ff9b41222273e712e1d435013ac8150.tar.bz2 |
Use pp_vrange for ranges in dump_ssaname_info.
This changes the ad-hoc dumping of ranges in the gimple pretty printer
to use the pp_vrange utility function, which has the benefit of
handling all range types going forward and unifying the dumping code.
Instead of:
# RANGE [0, 51] NONZERO 0x3f
# RANGE ~[5, 10]
we would now get:
# RANGE [irange] long unsigned int [0, 51] NONZERO 0x3f
# RANGE [irange] int [-MIN, 4][11, MAX]
Tested on x86-64 Linux.
gcc/ChangeLog:
* gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-pretty-print.cc | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/gcc/gimple-pretty-print.cc b/gcc/gimple-pretty-print.cc index ebd87b2..f18baec 100644 --- a/gcc/gimple-pretty-print.cc +++ b/gcc/gimple-pretty-print.cc @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "ssa.h" #include "cgraph.h" #include "gimple-pretty-print.h" +#include "value-range-pretty-print.h" #include "internal-fn.h" #include "tree-eh.h" #include "gimple-iterator.h" @@ -2335,35 +2336,10 @@ dump_ssaname_info (pretty_printer *buffer, tree node, int spc) if (!POINTER_TYPE_P (TREE_TYPE (node)) && SSA_NAME_RANGE_INFO (node)) { - wide_int min, max, nonzero_bits; - value_range r; - + Value_Range r (TREE_TYPE (node)); get_global_range_query ()->range_of_expr (r, node); - value_range_kind range_type = r.kind (); - if (!r.undefined_p ()) - { - min = wi::to_wide (r.min ()); - max = wi::to_wide (r.max ()); - } - - // FIXME: Use irange::dump() instead. - if (range_type == VR_VARYING) - pp_printf (buffer, "# RANGE VR_VARYING"); - else if (range_type == VR_RANGE || range_type == VR_ANTI_RANGE) - { - pp_printf (buffer, "# RANGE "); - pp_printf (buffer, "%s[", range_type == VR_RANGE ? "" : "~"); - pp_wide_int (buffer, min, TYPE_SIGN (TREE_TYPE (node))); - pp_printf (buffer, ", "); - pp_wide_int (buffer, max, TYPE_SIGN (TREE_TYPE (node))); - pp_printf (buffer, "]"); - } - nonzero_bits = get_nonzero_bits (node); - if (nonzero_bits != -1) - { - pp_string (buffer, " NONZERO "); - pp_wide_int (buffer, nonzero_bits, UNSIGNED); - } + pp_string (buffer, "# RANGE "); + pp_vrange (buffer, &r); newline_and_indent (buffer, spc); } } |