diff options
author | Jeff Law <law@redhat.com> | 2017-03-16 13:21:23 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2017-03-16 13:21:23 -0600 |
commit | 8d7437be4725af093548429f6e4c80a7867cdb41 (patch) | |
tree | e61e028074af01a48111ce51857df9f8bfae080a /gcc/tree-ssa-dom.c | |
parent | 9fc900af68527b00d67f11f897e1fe77a176bee2 (diff) | |
download | gcc-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.c | 5 |
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); |