aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dom.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2017-03-16 13:21:23 -0600
committerJeff Law <law@gcc.gnu.org>2017-03-16 13:21:23 -0600
commit8d7437be4725af093548429f6e4c80a7867cdb41 (patch)
treee61e028074af01a48111ce51857df9f8bfae080a /gcc/tree-ssa-dom.c
parent9fc900af68527b00d67f11f897e1fe77a176bee2 (diff)
downloadgcc-8d7437be4725af093548429f6e4c80a7867cdb41.zip
gcc-8d7437be4725af093548429f6e4c80a7867cdb41.tar.gz
gcc-8d7437be4725af093548429f6e4c80a7867cdb41.tar.bz2
re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All callers changed. (simplify_stmt_for_jump_threading): Add basic_block argument. All callers changed. (lhs_of_dominating_assert): Moved from here into tree-vrp.c. (dom_opt_dom_walker::thread_across_edge): Remove handle_dominating_asserts argument. All callers changed. (record_temporary_equivalences_from_stmts_at_dest): Corresponding changes. Remove calls to lhs_of_dominating_assert. Other uses of handle_dominating_asserts turn into unconditional code (simplify_control_stmt_condition_1): Likewise. (simplify_control_stmt_condition): Likewise. (thread_through_normal_block, thread_across_edge): Likewise. * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes. * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original object if it is not an SSA_NAME. (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert before calling into the VRP specific simplifiers. (identify_jump_threads): Remove handle_dominating_asserts argument. From-SVN: r246207
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r--gcc/tree-ssa-dom.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 0ebe892..32468e9 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -604,7 +604,8 @@ make_pass_dominator (gcc::context *ctxt)
static tree
simplify_stmt_for_jump_threading (gimple *stmt,
gimple *within_stmt ATTRIBUTE_UNUSED,
- class avail_exprs_stack *avail_exprs_stack)
+ class avail_exprs_stack *avail_exprs_stack,
+ basic_block bb ATTRIBUTE_UNUSED)
{
return avail_exprs_stack->lookup_avail_expr (stmt, false, true);
}
@@ -835,7 +836,7 @@ dom_opt_dom_walker::thread_across_edge (edge e)
/* With all the edge equivalences in the tables, go ahead and attempt
to thread through E->dest. */
- ::thread_across_edge (m_dummy_cond, e, false,
+ ::thread_across_edge (m_dummy_cond, e,
m_const_and_copies, m_avail_exprs_stack,
simplify_stmt_for_jump_threading);