aboutsummaryrefslogtreecommitdiff
path: root/gcc/ssa-range.cc
diff options
context:
space:
mode:
authorAndrew Macleod <amacleod@gcc.gnu.org>2019-09-05 13:46:47 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>2019-09-05 13:46:47 +0000
commitbca7f559b06d390c93e44164485e02fc1cd84598 (patch)
tree6b47c50b32b639ccdcf7589e7e6ef5c459810033 /gcc/ssa-range.cc
parent3550efcb527e2fabb070dd684695f08cb16f2172 (diff)
Move from grange c++ interface to gimple_range accessor interface remove...
Move from grange c++ interface to gimple_range accessor interface remove grange_adjust classes and replace with a simple function for now From-SVN: r275410
Diffstat (limited to 'gcc/ssa-range.cc')
-rw-r--r--gcc/ssa-range.cc73
1 files changed, 24 insertions, 49 deletions
diff --git a/gcc/ssa-range.cc b/gcc/ssa-range.cc
index b0e93b182c6..a127384b2ea 100644
--- a/gcc/ssa-range.cc
+++ b/gcc/ssa-range.cc
@@ -53,18 +53,6 @@ along with GCC; see the file COPYING3. If not see
#include "vr-values.h"
#include "dbgcnt.h"
-// Initialize a ranger.
-
-stmt_ranger::stmt_ranger ()
-{
-}
-
-// Destruct a ranger.
-
-stmt_ranger::~stmt_ranger ()
-{
-}
-
irange
stmt_ranger::range_of_ssa_name (tree name, gimple *s ATTRIBUTE_UNUSED)
{
@@ -134,8 +122,8 @@ stmt_ranger::range_of_stmt (irange &r, gimple *s, tree name)
// If name is specified, make sure it a LHS of S.
gcc_checking_assert (name ? SSA_NAME_DEF_STMT (name) == s : true);
- if (is_a<grange_op *> (s))
- res = range_of_range_op (r, as_a<grange_op *> (s));
+ if (is_a<grange *> (s))
+ res = range_of_grange (r, as_a<grange *> (s));
else if (is_a<gphi *>(s))
res = range_of_phi (r, as_a<gphi *> (s));
else if (is_a<gcall *>(s))
@@ -176,8 +164,8 @@ bool
stmt_ranger::range_of_stmt_with_range (irange &r, gimple *s, tree name,
const irange &name_range)
{
- if (is_a<grange_op *> (s))
- return range_of_range_op (r, as_a<grange_op *> (s), name, name_range);
+ if (is_a<grange *> (s))
+ return range_of_grange (r, as_a<grange *> (s), name, name_range);
if (is_a<gphi *>(s))
return range_of_phi (r, as_a<gphi *> (s), name, &name_range);
if (is_a<gcall *>(s))
@@ -194,15 +182,15 @@ stmt_ranger::range_of_stmt_with_range (irange &r, gimple *s, tree name,
// return false.
inline bool
-stmt_ranger::range_of_range_op_core (irange &r, grange_op *s, bool valid,
+stmt_ranger::range_of_grange_core (irange &r, grange *s, bool valid,
irange &range1, irange &range2)
{
if (valid)
{
- if (s->operand2 ())
- valid = s->fold (r, range1, range2);
+ if (gimple_range_operand2 (s))
+ valid = gimple_range_fold (s, r, range1, range2);
else
- valid = s->fold (r, range1);
+ valid = gimple_range_fold (s, r, range1);
}
// If range_of_expr or fold() fails, return varying.
@@ -215,14 +203,14 @@ stmt_ranger::range_of_range_op_core (irange &r, grange_op *s, bool valid,
// cannot be calculated, return false.
bool
-stmt_ranger::range_of_range_op (irange &r, grange_op *s)
+stmt_ranger::range_of_grange (irange &r, grange *s)
{
irange range1, range2;
bool res = true;
gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
- tree op1 = s->operand1 ();
- tree op2 = s->operand2 ();
+ tree op1 = gimple_range_operand1 (s);
+ tree op2 = gimple_range_operand2 (s);
// Calculate a range for operand 1.
res = range_of_expr (range1, op1, s);
@@ -231,7 +219,7 @@ stmt_ranger::range_of_range_op (irange &r, grange_op *s)
if (res && op2)
res = range_of_expr (range2, op2, s);
- return range_of_range_op_core (r, s, res, range1, range2);
+ return range_of_grange_core (r, s, res, range1, range2);
}
// Calculate a range for range_op statement S and return it in R. If any
@@ -239,15 +227,15 @@ stmt_ranger::range_of_range_op (irange &r, grange_op *s)
// cannot be calculated, return false.
bool
-stmt_ranger::range_of_range_op (irange &r, grange_op *s, tree name,
+stmt_ranger::range_of_grange (irange &r, grange *s, tree name,
const irange &name_range)
{
irange range1, range2;
bool res = true;
gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
- tree op1 = s->operand1 ();
- tree op2 = s->operand2 ();
+ tree op1 = gimple_range_operand1 (s);
+ tree op2 = gimple_range_operand2 (s);
// Calculate a range for operand 1.
if (op1 == name)
@@ -264,7 +252,7 @@ stmt_ranger::range_of_range_op (irange &r, grange_op *s, tree name,
res = range_of_expr (range2, op2, s);
}
- return range_of_range_op_core (r, s, res, range1, range2);
+ return range_of_grange_core (r, s, res, range1, range2);
}
// Calculate a range for range_op statement S and return it in R. Evaluate
@@ -272,14 +260,14 @@ stmt_ranger::range_of_range_op (irange &r, grange_op *s, tree name,
// cannot be calculated, return false.
bool
-stmt_ranger::range_of_range_op (irange &r, grange_op *s, gimple *eval_from)
+stmt_ranger::range_of_grange (irange &r, grange *s, gimple *eval_from)
{
irange range1, range2;
bool res = true;
gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
- tree op1 = s->operand1 ();
- tree op2 = s->operand2 ();
+ tree op1 = gimple_range_operand1 (s);
+ tree op2 = gimple_range_operand2 (s);
// Calculate a range for operand 1.
res = range_of_expr (range1, op1, eval_from);
@@ -288,7 +276,7 @@ stmt_ranger::range_of_range_op (irange &r, grange_op *s, gimple *eval_from)
if (res && op2)
res = range_of_expr (range2, op2, eval_from);
- return range_of_range_op_core (r, s, res, range1, range2);
+ return range_of_grange_core (r, s, res, range1, range2);
}
@@ -419,19 +407,6 @@ stmt_ranger::range_of_cond_expr (irange &r, gassign *s, tree name,
}
-// Initialize a CFG ranger.
-
-ssa_ranger::ssa_ranger ()
-{
-}
-
-// Destruct a ranger.
-
-ssa_ranger::~ssa_ranger ()
-{
-}
-
-
// Calculate a range on edge E and return it in R. Try to evaluate a range
// for NAME on this edge. Return FALSE if this is either not a control edge
// or NAME is not defined by this edge.
@@ -536,14 +511,14 @@ ssa_ranger::range_on_exit (irange &r, basic_block bb, tree name)
// calculated, return false.
bool
-ssa_ranger::range_of_range_op (irange &r, grange_op *s, edge eval_on)
+ssa_ranger::range_of_grange (irange &r, grange *s, edge eval_on)
{
irange range1, range2;
bool res = true;
gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
- tree op1 = s->operand1 ();
- tree op2 = s->operand2 ();
+ tree op1 = gimple_range_operand1 (s);
+ tree op2 = gimple_range_operand2 (s);
// Calculate a range for operand 1.
range_on_edge (range1, eval_on, op1);
@@ -552,7 +527,7 @@ ssa_ranger::range_of_range_op (irange &r, grange_op *s, edge eval_on)
if (op2)
range_on_edge (range2, eval_on, op2);
- return range_of_range_op_core (r, s, res, range1, range2);
+ return range_of_grange_core (r, s, res, range1, range2);
}
bool