]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add transitive operations to the relation oracle.
authorAndrew MacLeod <amacleod@redhat.com>
Wed, 18 Aug 2021 20:36:19 +0000 (16:36 -0400)
committerAndrew MacLeod <amacleod@redhat.com>
Tue, 24 Aug 2021 13:44:31 +0000 (09:44 -0400)
commit675a3e40567e1d0dd6d7e7be3efab74b22731415
tree5d16f2ce64a80674eaa79dcf3ccca2615686e014
parentd8b7282ea27e02f687272cb8ea5f66ca900f1582
Add transitive operations to the relation oracle.

When registering relations in the oracle, search for other relations which
imply new transitive relations.

gcc/
* value-relation.cc (rr_transitive_table): New.
(relation_transitive): New.
(value_relation::swap): Remove.
(value_relation::apply_transitive): New.
(relation_oracle::relation_oracle): Allocate a new tmp bitmap.
(relation_oracle::register_relation): Call register_transitives.
(relation_oracle::register_transitives): New.
* value-relation.h (relation_oracle): Add new temporary bitmap and
methods.

gcc/testsuite/
* gcc.dg/predict-1.c: Disable evrp.
* gcc.dg/tree-ssa/evrp-trans.c: New.
gcc/testsuite/gcc.dg/predict-1.c
gcc/testsuite/gcc.dg/tree-ssa/evrp-trans.c [new file with mode: 0644]
gcc/value-relation.cc
gcc/value-relation.h