aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-relation.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2024-06-24 10:29:06 -0400
committerAndrew MacLeod <amacleod@redhat.com>2024-06-24 22:14:48 -0400
commit4c8b085820f057d1397d91c1ed1c20bed09eb054 (patch)
treed9ac802ab0a85a19dff2aad6bd5c0d8dbc4a9b27 /gcc/value-relation.h
parentc3be325dd165edbe6b1570f54015b3ea8a43862b (diff)
downloadgcc-4c8b085820f057d1397d91c1ed1c20bed09eb054.zip
gcc-4c8b085820f057d1397d91c1ed1c20bed09eb054.tar.gz
gcc-4c8b085820f057d1397d91c1ed1c20bed09eb054.tar.bz2
Make transitive relations an oracle option
This patch makes processing of transitive relations configurable at dom_oracle creation. * tree-vrp.cc (execute_fast_vrp): Do not use transitive relations. * value-query.cc (range_query::create_relation_oracle): Add parameter to enable transitive relations. * value-query.h (range_query::create_relation_oracle): Likewise. * value-relation.h (dom_oracle::dom_oracle): Likewise. * value-relation.cc (dom_oracle::dom_oracle): Likewise. (dom_oracle::register_transitives): Check transitive flag.
Diffstat (limited to 'gcc/value-relation.h')
-rw-r--r--gcc/value-relation.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/value-relation.h b/gcc/value-relation.h
index cf009e6..f168fd9 100644
--- a/gcc/value-relation.h
+++ b/gcc/value-relation.h
@@ -216,7 +216,7 @@ public:
class dom_oracle : public equiv_oracle
{
public:
- dom_oracle ();
+ dom_oracle (bool do_trans_p = true);
~dom_oracle ();
void record (basic_block bb, relation_kind k, tree op1, tree op2)
@@ -229,6 +229,7 @@ public:
void dump (FILE *f, basic_block bb) const final override;
void dump (FILE *f) const final override;
private:
+ bool m_do_trans_p;
bitmap m_tmp, m_tmp2;
bitmap m_relation_set; // Index by ssa-name. True if a relation exists
vec <relation_chain_head> m_relations; // Index by BB, list of relations.