Index: tree-complex.c =================================================================== --- tree-complex.c (revision 133191) +++ tree-complex.c (working copy) @@ -595,7 +595,8 @@ extract_component (gimple_stmt_iterator inner_type, unshare_expr (t)); if (gimple_p) - t = gimplify_val (gsi, inner_type, t); + t = force_gimple_operand_gsi (gsi, t, true, NULL, true, + GSI_SAME_STMT); return t; } Index: ChangeLog.tuples =================================================================== --- ChangeLog.tuples (revision 133194) +++ ChangeLog.tuples (working copy) @@ -1,3 +1,12 @@ +2008-03-13 Oleg Ryjkov + + * tree-cfg.c (gimplify_val): Removed. + (gimplify_build1, gimplify_build2, gimplify_build3): Use + force_gimple_operand_gsi instead of gimplify_val. + * tree-complex.c (extract_component): Use force_gimple_operand_gsi + instead of gimplify_val. + * tree-vect-generic.c (expand_vector_parallel): Ditto. + 2008-03-13 Diego Novillo Oleg Ryjkov Index: tree-vect-generic.c =================================================================== --- tree-vect-generic.c (revision 133191) +++ tree-vect-generic.c (working copy) @@ -248,7 +248,8 @@ expand_vector_parallel (gimple_stmt_iter result = expand_vector_piecewise (gsi, f, word_type, TREE_TYPE (word_type), a, b, code); - result = gimplify_val (gsi, word_type, result); + result = force_gimple_operand_gsi (gsi, result, true, NULL, true, + GSI_SAME_STMT); } else { Index: tree-cfg.c =================================================================== --- tree-cfg.c (revision 133191) +++ tree-cfg.c (working copy) @@ -6630,37 +6630,6 @@ struct tree_opt_pass pass_split_crit_edg 0 /* letter */ }; - -/* Return EXP if it is a valid GIMPLE rvalue, else gimplify it into - a temporary, make sure and register it to be renamed if necessary, - and finally return the temporary. Put the statements to compute - EXP before the current statement in GSI. */ - -tree -gimplify_val (gimple_stmt_iterator *gsi, tree type, tree exp) -{ - tree t; - gimple new_stmt, orig_stmt; - - if (is_gimple_val (exp)) - return exp; - - gcc_assert (is_gimple_formal_tmp_rhs (exp)); - - t = make_rename_temp (type, NULL); - new_stmt = gimple_build_assign (t, exp); - - orig_stmt = gsi_stmt (*gsi); - gimple_set_location (new_stmt, gimple_location (orig_stmt)); - gimple_set_block (new_stmt, gimple_block (orig_stmt)); - - gsi_insert_before (gsi, new_stmt, GSI_SAME_STMT); - if (gimple_in_ssa_p (cfun)) - mark_symbols_for_renaming (new_stmt); - - return t; -} - /* Build a ternary operation and gimplify it. Emit code before GSI. Return the gimple_val holding the result. */ @@ -6674,7 +6643,8 @@ gimplify_build3 (gimple_stmt_iterator *g ret = fold_build3 (code, type, a, b, c); STRIP_NOPS (ret); - return gimplify_val (gsi, type, ret); + return force_gimple_operand_gsi (gsi, ret, true, NULL, true, + GSI_SAME_STMT); } /* Build a binary operation and gimplify it. Emit code before GSI. @@ -6689,7 +6659,8 @@ gimplify_build2 (gimple_stmt_iterator *g ret = fold_build2 (code, type, a, b); STRIP_NOPS (ret); - return gimplify_val (gsi, type, ret); + return force_gimple_operand_gsi (gsi, ret, true, NULL, true, + GSI_SAME_STMT); } /* Build a unary operation and gimplify it. Emit code before GSI. @@ -6704,7 +6675,8 @@ gimplify_build1 (gimple_stmt_iterator *g ret = fold_build1 (code, type, a); STRIP_NOPS (ret); - return gimplify_val (gsi, type, ret); + return force_gimple_operand_gsi (gsi, ret, true, NULL, true, + GSI_SAME_STMT); }