From: Richard Guenther Date: Mon, 14 May 2012 15:05:21 +0000 (+0000) Subject: gimplify.c (gimple_regimplify_operands): Only mark the LHS of statements for renaming. X-Git-Tag: misc/gccgo-go1_1_2~2927 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=097dcc6683c3978015f8dd86a201679f530e3dd3;p=thirdparty%2Fgcc.git gimplify.c (gimple_regimplify_operands): Only mark the LHS of statements for renaming. 2012-05-14 Richard Guenther * gimplify.c (gimple_regimplify_operands): Only mark the LHS of statements for renaming. (force_gimple_operand_1): Likewise, consistently for both calls to force_gimple_operand and force_gimple_operand_gsi. From-SVN: r187468 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 40a0f73b9ebf..67b1fdbde5aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-05-14 Richard Guenther + + * gimplify.c (gimple_regimplify_operands): Only mark the LHS + of statements for renaming. + (force_gimple_operand_1): Likewise, consistently for both + calls to force_gimple_operand and force_gimple_operand_gsi. + 2012-05-14 Richard Guenther * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 63195ae8f995..02e42b8b4198 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -8531,7 +8531,13 @@ gimple_regimplify_operands (gimple stmt, gimple_stmt_iterator *gsi_p) gimple_stmt_iterator i; for (i = gsi_start (pre); !gsi_end_p (i); gsi_next (&i)) - mark_symbols_for_renaming (gsi_stmt (i)); + { + tree lhs = gimple_get_lhs (gsi_stmt (i)); + if (lhs + && TREE_CODE (lhs) != SSA_NAME + && is_gimple_reg (lhs)) + mark_sym_for_renaming (lhs); + } } gsi_insert_seq_before (gsi_p, pre, GSI_SAME_STMT); } @@ -8585,6 +8591,21 @@ force_gimple_operand_1 (tree expr, gimple_seq *stmts, for (t = gimplify_ctxp->temps; t ; t = DECL_CHAIN (t)) add_referenced_var (t); + if (!gimple_seq_empty_p (*stmts) + && gimplify_ctxp->into_ssa) + { + gimple_stmt_iterator i; + + for (i = gsi_start (*stmts); !gsi_end_p (i); gsi_next (&i)) + { + tree lhs = gimple_get_lhs (gsi_stmt (i)); + if (lhs + && TREE_CODE (lhs) != SSA_NAME + && is_gimple_reg (lhs)) + mark_sym_for_renaming (lhs); + } + } + pop_gimplify_context (NULL); return expr; @@ -8621,14 +8642,6 @@ force_gimple_operand_gsi_1 (gimple_stmt_iterator *gsi, tree expr, if (!gimple_seq_empty_p (stmts)) { - if (gimple_in_ssa_p (cfun)) - { - gimple_stmt_iterator i; - - for (i = gsi_start (stmts); !gsi_end_p (i); gsi_next (&i)) - mark_symbols_for_renaming (gsi_stmt (i)); - } - if (before) gsi_insert_seq_before (gsi, stmts, m); else