aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range.cc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-06-02 19:52:41 +0200
committerAldy Hernandez <aldyh@redhat.com>2022-06-03 10:31:01 +0200
commit0fd3c7063db52b8f509a9572ff8078a0f91176da (patch)
treef9937a174a2a9768856cf73b4a4413a3eb60ce38 /gcc/gimple-range.cc
parentf4fa81ba63299030d068327f3d90920de8c54d1c (diff)
downloadgcc-0fd3c7063db52b8f509a9572ff8078a0f91176da.zip
gcc-0fd3c7063db52b8f509a9572ff8078a0f91176da.tar.gz
gcc-0fd3c7063db52b8f509a9572ff8078a0f91176da.tar.bz2
Misc range temporary fixes.
This fixes a couples places that were using int_range_max, but needed a generic temporary. Found while merging the frange work. Also, copying between range temporaries is actually useful :). Tested on x86-64 Linux. gcc/ChangeLog: * gimple-range-cache.cc (ranger_cache::range_from_dom): Use Value_Range. * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same. * value-range.h (Value_Range::Value_Range): Implement copy constructor for Value_Range.
Diffstat (limited to 'gcc/gimple-range.cc')
-rw-r--r--gcc/gimple-range.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index 67dafb2..f3a4655 100644
--- a/gcc/gimple-range.cc
+++ b/gcc/gimple-range.cc
@@ -461,17 +461,20 @@ gimple_ranger::register_inferred_ranges (gimple *s)
tree lhs = gimple_get_lhs (s);
if (lhs)
{
- int_range_max tmp;
+ Value_Range tmp (TREE_TYPE (lhs));
if (range_of_stmt (tmp, s, lhs) && !tmp.varying_p ()
&& update_global_range (tmp, lhs) && dump_file)
{
- value_range vr = tmp;
+ // ?? This section should be adjusted when non-iranges can
+ // be exported. For now, the only way update_global_range
+ // above can succeed is with an irange so this is safe.
+ value_range vr = as_a <irange> (tmp);
fprintf (dump_file, "Global Exported: ");
print_generic_expr (dump_file, lhs, TDF_SLIM);
fprintf (dump_file, " = ");
vr.dump (dump_file);
int_range_max same = vr;
- if (same != tmp)
+ if (same != as_a <irange> (tmp))
{
fprintf (dump_file, " ... irange was : ");
tmp.dump (dump_file);