diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2020-04-22 12:22:55 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2020-04-22 14:17:52 +0200 |
commit | 31445ce3c2b77d8c0e3f347f4a8cd14c28f4b237 (patch) | |
tree | d6d5601a92f9a5edd7837b7003166c3c3037919b | |
parent | faf33902ff37b9a24fe55955d74d7445c59be04d (diff) | |
download | gcc-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.cc | 5 | ||||
-rw-r--r-- | gcc/gimple-ssa-evrp.c | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 4 | ||||
-rw-r--r-- | gcc/tree-ssa-copy.c | 4 | ||||
-rw-r--r-- | gcc/tree-ssa-propagate.c | 10 | ||||
-rw-r--r-- | gcc/tree-ssa-propagate.h | 2 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 4 |
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); } |