diff options
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 1bcf2bf1804..e57c18e064b 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -180,7 +180,7 @@ record_temporary_equivalence (tree x, tree y, VEC(tree, heap) **stack) } /* Record temporary equivalences created by PHIs at the target of the - edge E. Record unwind information for the equivalences onto STACK. + edge E. Record unwind information for the equivalences onto STACK. If a PHI which prevents threading is encountered, then return FALSE indicating we should not thread this edge, else return TRUE. */ @@ -199,7 +199,7 @@ record_temporary_equivalences_from_phis (edge e, VEC(tree, heap) **stack) tree src = PHI_ARG_DEF_FROM_EDGE (phi, e); tree dst = gimple_phi_result (phi); - /* If the desired argument is not the same as this PHI's result + /* If the desired argument is not the same as this PHI's result and it is set by a PHI in E->dest, then we can not thread through E->dest. */ if (src != dst @@ -274,7 +274,7 @@ fold_assignment_stmt (gimple stmt) Record unwind information for temporary equivalences onto STACK. Use SIMPLIFY (a pointer to a callback function) to further simplify - statements using pass specific information. + statements using pass specific information. We might consider marking just those statements which ultimately feed the COND_EXPR. It's not clear if the overhead of bookkeeping @@ -372,7 +372,7 @@ record_temporary_equivalences_from_stmts_at_dest (edge e, /* At this point we have a statement which assigns an RHS to an SSA_VAR on the LHS. We want to try and simplify this statement to expose more context sensitive equivalences which in turn may - allow us to simplify the condition at the end of the loop. + allow us to simplify the condition at the end of the loop. Handle simple copy operations as well as implied copies from ASSERT_EXPRs. */ @@ -420,7 +420,7 @@ record_temporary_equivalences_from_stmts_at_dest (edge e, || (TREE_CODE (cached_lhs) != SSA_NAME && !is_gimple_min_invariant (cached_lhs))) cached_lhs = (*simplify) (stmt, stmt); - + /* Restore the statement's original uses/defs. */ i = 0; FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE | SSA_OP_VUSE) @@ -579,7 +579,7 @@ simplify_control_stmt_condition (edge e, } /* We are exiting E->src, see if E->dest ends with a conditional - jump which has a known value when reached via E. + jump which has a known value when reached via E. Special care is necessary if E is a back edge in the CFG as we may have already recorded equivalences for E->dest into our @@ -592,14 +592,14 @@ simplify_control_stmt_condition (edge e, end with a conditional which is either always true or always false when reached via the loop backedge. Thus we do not want to blindly disable threading across a loop backedge. - + DUMMY_COND is a shared cond_expr used by condition simplification as scratch, to avoid allocating memory. - + HANDLE_DOMINATING_ASSERTS is true if we should try to replace operands of the simplified condition with left-hand sides of ASSERT_EXPRs they are used in. - + STACK is used to undo temporary equivalences created during the walk of E->dest. @@ -634,7 +634,7 @@ thread_across_edge (gimple dummy_cond, goto fail; } } - + stmt_count = 0; /* PHIs create temporary equivalences. */ |