aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/value-relation.cc55
-rw-r--r--gcc/value-relation.h57
2 files changed, 57 insertions, 55 deletions
diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc
index 7fc22d3..e6f5ef4 100644
--- a/gcc/value-relation.cc
+++ b/gcc/value-relation.cc
@@ -635,61 +635,6 @@ equiv_oracle::dump (FILE *f) const
// --------------------------------------------------------------------------
-
-// The value-relation class is used to encapsulate the represention of an
-// individual relation between 2 ssa-names, and to facilitate operating on
-// the relation.
-
-class value_relation
-{
-public:
- value_relation ();
- value_relation (relation_kind kind, tree n1, tree n2);
- void set_relation (relation_kind kind, tree n1, tree n2);
-
- inline relation_kind kind () const { return related; }
- inline tree op1 () const { return name1; }
- inline tree op2 () const { return name2; }
-
- bool union_ (value_relation &p);
- bool intersect (value_relation &p);
- void negate ();
- bool apply_transitive (const value_relation &rel);
-
- void dump (FILE *f) const;
-private:
- relation_kind related;
- tree name1, name2;
-};
-
-// Set relation R between ssa_name N1 and N2.
-
-inline void
-value_relation::set_relation (relation_kind r, tree n1, tree n2)
-{
- related = r;
- name1 = n1;
- name2 = n2;
-}
-
-// Default constructor.
-
-inline
-value_relation::value_relation ()
-{
- related = VREL_VARYING;
- name1 = NULL_TREE;
- name2 = NULL_TREE;
-}
-
-// Constructor for relation R between SSA version N1 nd N2.
-
-inline
-value_relation::value_relation (relation_kind kind, tree n1, tree n2)
-{
- set_relation (kind, n1, n2);
-}
-
// Negate the current relation.
void
diff --git a/gcc/value-relation.h b/gcc/value-relation.h
index 64884a8..f3b18ac 100644
--- a/gcc/value-relation.h
+++ b/gcc/value-relation.h
@@ -256,4 +256,61 @@ private:
bitmap_obstack m_bitmaps;
struct obstack m_chain_obstack;
};
+
+// The value-relation class is used to encapsulate the represention of an
+// individual relation between 2 ssa-names, and to facilitate operating on
+// the relation.
+
+class value_relation
+{
+public:
+ value_relation ();
+ value_relation (relation_kind kind, tree n1, tree n2);
+ void set_relation (relation_kind kind, tree n1, tree n2);
+
+ inline relation_kind kind () const { return related; }
+ inline tree op1 () const { return name1; }
+ inline tree op2 () const { return name2; }
+
+ bool union_ (value_relation &p);
+ bool intersect (value_relation &p);
+ void negate ();
+ bool apply_transitive (const value_relation &rel);
+
+ void dump (FILE *f) const;
+private:
+ relation_kind related;
+ tree name1, name2;
+};
+
+// Set relation R between ssa_name N1 and N2.
+
+inline void
+value_relation::set_relation (relation_kind r, tree n1, tree n2)
+{
+ gcc_checking_assert (TREE_CODE (n1) == SSA_NAME
+ && TREE_CODE (n2) == SSA_NAME);
+ related = r;
+ name1 = n1;
+ name2 = n2;
+}
+
+// Default constructor.
+
+inline
+value_relation::value_relation ()
+{
+ related = VREL_VARYING;
+ name1 = NULL_TREE;
+ name2 = NULL_TREE;
+}
+
+// Constructor for relation R between SSA version N1 nd N2.
+
+inline
+value_relation::value_relation (relation_kind kind, tree n1, tree n2)
+{
+ set_relation (kind, n1, n2);
+}
+
#endif /* GCC_VALUE_RELATION_H */