aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gimple-range-path.cc')
-rw-r--r--gcc/gimple-range-path.cc22
1 files changed, 6 insertions, 16 deletions
diff --git a/gcc/gimple-range-path.cc b/gcc/gimple-range-path.cc
index ef3db10..cf7e040 100644
--- a/gcc/gimple-range-path.cc
+++ b/gcc/gimple-range-path.cc
@@ -44,7 +44,7 @@ path_range_query::path_range_query (gimple_ranger &ranger,
m_ranger (ranger),
m_resolve (resolve)
{
- m_oracle = new path_oracle (m_ranger.oracle ());
+ m_oracle = new path_oracle (&(m_ranger.oracle ()));
reset_path (path, dependencies);
}
@@ -54,7 +54,7 @@ path_range_query::path_range_query (gimple_ranger &ranger, bool resolve)
m_ranger (ranger),
m_resolve (resolve)
{
- m_oracle = new path_oracle (m_ranger.oracle ());
+ m_oracle = new path_oracle (&(m_ranger.oracle ()));
}
path_range_query::~path_range_query ()
@@ -563,7 +563,7 @@ path_range_query::compute_ranges (const bitmap_head *dependencies)
if (m_resolve)
{
path_oracle *p = get_path_oracle ();
- p->reset_path (m_ranger.oracle ());
+ p->reset_path (&(m_ranger.oracle ()));
}
if (DEBUG_SOLVER)
@@ -629,11 +629,6 @@ jt_fur_source::jt_fur_source (gimple *s,
gcc_checking_assert (!path.is_empty ());
m_entry = path[path.length () - 1];
-
- if (dom_info_available_p (CDI_DOMINATORS))
- m_oracle = query->oracle ();
- else
- m_oracle = NULL;
}
// Ignore statement and register relation on entry to path.
@@ -641,8 +636,7 @@ jt_fur_source::jt_fur_source (gimple *s,
void
jt_fur_source::register_relation (gimple *, relation_kind k, tree op1, tree op2)
{
- if (m_oracle)
- m_oracle->register_relation (m_entry, k, op1, op2);
+ m_query->oracle ().register_relation (m_entry, k, op1, op2);
}
// Ignore edge and register relation on entry to path.
@@ -650,20 +644,16 @@ jt_fur_source::register_relation (gimple *, relation_kind k, tree op1, tree op2)
void
jt_fur_source::register_relation (edge, relation_kind k, tree op1, tree op2)
{
- if (m_oracle)
- m_oracle->register_relation (m_entry, k, op1, op2);
+ m_query->oracle ().register_relation (m_entry, k, op1, op2);
}
relation_kind
jt_fur_source::query_relation (tree op1, tree op2)
{
- if (!m_oracle)
- return VREL_VARYING;
-
if (TREE_CODE (op1) != SSA_NAME || TREE_CODE (op2) != SSA_NAME)
return VREL_VARYING;
- return m_oracle->query_relation (m_entry, op1, op2);
+ return m_query->oracle().query_relation (m_entry, op1, op2);
}
// Return the range of STMT at the end of the path being analyzed.