diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2023-01-25 16:26:39 -0500 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2023-01-31 09:56:27 -0500 |
commit | 99fda5de368d84d97eb29a9f03e0d6039068f8b9 (patch) | |
tree | 8cd99fab7a800094f52a5d860454b126779c9549 /gcc/value-relation.h | |
parent | 7f583a335769591d016caa51490e3e5dd50354fe (diff) | |
download | gcc-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.h | 1 |
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 (); |