aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-relation.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2023-01-25 16:26:39 -0500
committerAndrew MacLeod <amacleod@redhat.com>2023-01-31 09:56:27 -0500
commit99fda5de368d84d97eb29a9f03e0d6039068f8b9 (patch)
tree8cd99fab7a800094f52a5d860454b126779c9549 /gcc/value-relation.h
parent7f583a335769591d016caa51490e3e5dd50354fe (diff)
downloadgcc-99fda5de368d84d97eb29a9f03e0d6039068f8b9.zip
gcc-99fda5de368d84d97eb29a9f03e0d6039068f8b9.tar.gz
gcc-99fda5de368d84d97eb29a9f03e0d6039068f8b9.tar.bz2
Properly set GORI relation trios.
When relation trios were added to GORI, there was only one use. As they are utilized more by range-ops, it is apparent that the implelemtation was not complete. This patch fleshes it out completely so that every GORI operation has a complete relation trio. * gimple-range-gori.cc (gori_compute::compute_operand_range): Do not abort calculations if there is a valid relation available. (gori_compute::refine_using_relation): Pass correct relation trio. (gori_compute::compute_operand1_range): Create trio and use it. (gori_compute::compute_operand2_range): Ditto. * range-op.cc (operator_plus::op1_range): Use correct trio member. (operator_minus::op1_range): Use correct trio member. * value-relation.cc (value_relation::create_trio): New. * value-relation.h (value_relation::create_trio): New prototype.
Diffstat (limited to 'gcc/value-relation.h')
-rw-r--r--gcc/value-relation.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/value-relation.h b/gcc/value-relation.h
index 664fd71..340f9c4 100644
--- a/gcc/value-relation.h
+++ b/gcc/value-relation.h
@@ -426,6 +426,7 @@ public:
inline tree op1 () const { return name1; }
inline tree op2 () const { return name2; }
+ relation_trio create_trio (tree lhs, tree op1, tree op2);
bool union_ (value_relation &p);
bool intersect (value_relation &p);
void negate ();