aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2020-04-22 12:22:55 +0200
committerAldy Hernandez <aldyh@redhat.com>2020-04-22 14:17:52 +0200
commit31445ce3c2b77d8c0e3f347f4a8cd14c28f4b237 (patch)
treed6d5601a92f9a5edd7837b7003166c3c3037919b
parentfaf33902ff37b9a24fe55955d74d7445c59be04d (diff)
downloadgcc-31445ce3c2b77d8c0e3f347f4a8cd14c28f4b237.zip
gcc-31445ce3c2b77d8c0e3f347f4a8cd14c28f4b237.tar.gz
gcc-31445ce3c2b77d8c0e3f347f4a8cd14c28f4b237.tar.bz2
Add STMT argument to substitute_and_fold_engine::get_value().
-rw-r--r--gcc/gimple-loop-versioning.cc5
-rw-r--r--gcc/gimple-ssa-evrp.c6
-rw-r--r--gcc/tree-ssa-ccp.c4
-rw-r--r--gcc/tree-ssa-copy.c4
-rw-r--r--gcc/tree-ssa-propagate.c10
-rw-r--r--gcc/tree-ssa-propagate.h2
-rw-r--r--gcc/tree-vrp.c4
7 files changed, 18 insertions, 17 deletions
diff --git a/gcc/gimple-loop-versioning.cc b/gcc/gimple-loop-versioning.cc
index c424b3a..2d0ebdc 100644
--- a/gcc/gimple-loop-versioning.cc
+++ b/gcc/gimple-loop-versioning.cc
@@ -277,7 +277,7 @@ private:
{
public:
name_prop (loop_info &li) : m_li (li) {}
- tree get_value (tree) FINAL OVERRIDE;
+ tree get_value (tree, gimple *) FINAL OVERRIDE;
private:
/* Information about the versioning we've performed on the loop. */
@@ -534,7 +534,8 @@ loop_versioning::lv_dom_walker::after_dom_children (basic_block bb)
Return the new value if so, otherwise return null. */
tree
-loop_versioning::name_prop::get_value (tree val)
+loop_versioning::name_prop::get_value (tree val,
+ gimple *stmt ATTRIBUTE_UNUSED)
{
if (TREE_CODE (val) == SSA_NAME
&& bitmap_bit_p (&m_li.unity_names, SSA_NAME_VERSION (val)))
diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c
index ffe83a6..9e00541 100644
--- a/gcc/gimple-ssa-evrp.c
+++ b/gcc/gimple-ssa-evrp.c
@@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
class evrp_folder : public substitute_and_fold_engine
{
public:
- tree get_value (tree) FINAL OVERRIDE;
+ tree get_value (tree, gimple *) FINAL OVERRIDE;
evrp_folder (class vr_values *vr_values_)
: vr_values (vr_values_),
simplifier (vr_values_) { }
@@ -61,7 +61,7 @@ class evrp_folder : public substitute_and_fold_engine
};
tree
-evrp_folder::get_value (tree op)
+evrp_folder::get_value (tree op, gimple *stmt ATTRIBUTE_UNUSED)
{
return vr_values->op_with_constant_singleton_value_range (op);
}
@@ -332,7 +332,7 @@ public:
}
}
- tree get_value (tree op)
+ tree get_value (tree op, gimple *stmt ATTRIBUTE_UNUSED)
{
return vr_values->op_with_constant_singleton_value_range (op);
}
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index be6647d..f937f09 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -943,7 +943,7 @@ do_dbg_cnt (void)
class ccp_folder : public substitute_and_fold_engine
{
public:
- tree get_value (tree) FINAL OVERRIDE;
+ tree get_value (tree, gimple *) FINAL OVERRIDE;
bool fold_stmt (gimple_stmt_iterator *) FINAL OVERRIDE;
};
@@ -952,7 +952,7 @@ class ccp_folder : public substitute_and_fold_engine
of calling member functions. */
tree
-ccp_folder::get_value (tree op)
+ccp_folder::get_value (tree op, gimple *stmt ATTRIBUTE_UNUSED)
{
return get_constant_value (op);
}
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index 71e51fa..9bcb708 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -492,13 +492,13 @@ init_copy_prop (void)
class copy_folder : public substitute_and_fold_engine
{
public:
- tree get_value (tree) FINAL OVERRIDE;
+ tree get_value (tree, gimple *) FINAL OVERRIDE;
};
/* Callback for substitute_and_fold to get at the final copy-of values. */
tree
-copy_folder::get_value (tree name)
+copy_folder::get_value (tree name, gimple *stmt ATTRIBUTE_UNUSED)
{
tree val;
if (SSA_NAME_VERSION (name) >= n_copy_of)
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index d86b4f88..270c1cb 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -867,7 +867,7 @@ substitute_and_fold_engine::replace_uses_in (gimple *stmt)
FOR_EACH_SSA_USE_OPERAND (use, stmt, iter, SSA_OP_USE)
{
tree tuse = USE_FROM_PTR (use);
- tree val = get_value (tuse);
+ tree val = get_value (tuse, stmt);
if (val == tuse || val == NULL_TREE)
continue;
@@ -914,7 +914,7 @@ substitute_and_fold_engine::replace_phi_args_in (gphi *phi)
if (TREE_CODE (arg) == SSA_NAME)
{
- tree val = get_value (arg);
+ tree val = get_value (arg, phi);
if (val && val != arg && may_propagate_copy (arg, val))
{
@@ -1033,7 +1033,7 @@ substitute_and_fold_engine::propagate_into_phi_args (basic_block bb)
if (TREE_CODE (arg) != SSA_NAME
|| virtual_operand_p (arg))
continue;
- tree val = get_value (arg);
+ tree val = get_value (arg, phi);
if (val && may_propagate_copy (arg, val))
propagate_value (use_p, val);
}
@@ -1056,7 +1056,7 @@ substitute_and_fold_dom_walker::before_dom_children (basic_block bb)
continue;
if (res && TREE_CODE (res) == SSA_NAME)
{
- tree sprime = substitute_and_fold_engine->get_value (res);
+ tree sprime = substitute_and_fold_engine->get_value (res, phi);
if (sprime
&& sprime != res
&& may_propagate_copy (res, sprime))
@@ -1084,7 +1084,7 @@ substitute_and_fold_dom_walker::before_dom_children (basic_block bb)
tree lhs = gimple_get_lhs (stmt);
if (lhs && TREE_CODE (lhs) == SSA_NAME)
{
- tree sprime = substitute_and_fold_engine->get_value (lhs);
+ tree sprime = substitute_and_fold_engine->get_value (lhs, stmt);
if (sprime
&& sprime != lhs
&& may_propagate_copy (lhs, sprime)
diff --git a/gcc/tree-ssa-propagate.h b/gcc/tree-ssa-propagate.h
index 88b532b..f49c800 100644
--- a/gcc/tree-ssa-propagate.h
+++ b/gcc/tree-ssa-propagate.h
@@ -104,7 +104,7 @@ class substitute_and_fold_engine
: fold_all_stmts (fold_all_stmts) { }
virtual ~substitute_and_fold_engine (void) { }
virtual bool fold_stmt (gimple_stmt_iterator *) { return false; }
- virtual tree get_value (tree) { return NULL_TREE; }
+ virtual tree get_value (tree, gimple *) { return NULL_TREE; }
bool substitute_and_fold (basic_block = NULL);
bool replace_uses_in (gimple *);
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index e1658dd..f16bee4 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4854,7 +4854,7 @@ class vrp_folder : public substitute_and_fold_engine
: substitute_and_fold_engine (/* Fold all stmts. */ true),
m_vr_values (v), simplifier (v)
{ }
- tree get_value (tree) FINAL OVERRIDE;
+ tree get_value (tree, gimple *) FINAL OVERRIDE;
bool fold_stmt (gimple_stmt_iterator *) FINAL OVERRIDE;
bool fold_predicate_in (gimple_stmt_iterator *);
@@ -4952,7 +4952,7 @@ vrp_folder::fold_stmt (gimple_stmt_iterator *si)
Implemented as a pure wrapper right now, but this will change. */
tree
-vrp_folder::get_value (tree op)
+vrp_folder::get_value (tree op, gimple *stmt ATTRIBUTE_UNUSED)
{
return op_with_constant_singleton_value_range (op);
}