On Mon, 1 Dec 2014, Jakub Jelinek wrote:

> On Fri, Nov 28, 2014 at 08:02:23PM +0100, Jakub Jelinek wrote:
> > As possible follow-up, I wonder if gimple_build_assign_with_ops
> > isn't too long and too verbose either, couldn't we just
> > use overloads of gimple_build_assign instead?
> > Either with the argument order of gimple_build_assign_with_ops,
> > i.e. tree_code, lhs, operands... , or perhaps swap the lhs and
> > tree_code, so lhs, tree_code, operands... In either case, I'd
> > find it to be pretty much unambiguous with the current two operand
> > gimple_build_assign which takes lhs, treeop, the presence of
> > enum tree_code would make it obvious that you are supplying ops for it
> > rather than building it from what is extracted from the tree.
> 
> The following patch implements that.  Bootstrapped/regtested on x86_64-linux
> and i686-linux, ok for trunk?

Ok.

Thanks,
Richard.

> 2014-12-01  Jakub Jelinek  <ja...@redhat.com>
> 
>       * gimple.h (gimple_build_assign_stat): Remove prototype.
>       (gimple_build_assign): Remove define.  Add overload prototypes
>       with tree lhs and either a tree rhs, or enum tree_code and
>       1, 2 or 3 tree operands.
>       * gimple.c (gimple_build_assign_stat): Renamed to...
>       (gimple_build_assign): ... this.  Add overloads with
>       enum tree_code and 1, 2 or 3 tree operands.
>       (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
>       Rename the 3 operand overload to ...
>       (gimple_build_assign_1): ... this.  Make it static inline.
>       * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
>       instead of gimple_build_assign_with_ops, swap the order of first
>       two arguments and adjust formatting where necessary.
>       * tree-vect-slp.c (vect_get_constant_vectors,
>       vect_create_mask_and_perm): Likewise.
>       * tree-ssa-forwprop.c (simplify_rotate): Likewise.
>       * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
>       maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
>       * tsan.c (instrument_builtin_call): Likewise.
>       * tree-chkp.c (chkp_compute_bounds_for_assignment,
>       chkp_generate_extern_var_bounds): Likewise.
>       * tree-loop-distribution.c (generate_memset_builtin): Likewise.
>       * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
>       * gimple-builder.c (build_assign, build_type_cast): Likewise.
>       * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
>       * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
>       gimple_mod_subtract): Likewise.
>       * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
>       * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
>       vect_recog_sad_pattern, vect_handle_widen_op_by_const,
>       vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
>       vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
>       vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
>       vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
>       vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
>       adjust_bool_pattern_cast, adjust_bool_pattern,
>       vect_recog_bool_pattern): Likewise.
>       * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
>       insert_initializers, introduce_cast_before_cand,
>       replace_one_candidate): Likewise.
>       * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
>       powi_as_mults, build_and_insert_binop, build_and_insert_cast,
>       pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
>       Likewise.
>       * tree-tailcall.c (adjust_return_value_with_ops,
>       update_accumulator_with_ops): Likewise.
>       * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
>       * tree-ssa-reassoc.c (build_and_add_sum,
>       optimize_range_tests_to_bit_test, update_ops,
>       maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
>       negate_value, repropagate_negates, attempt_builtin_powi,
>       reassociate_bb): Likewise.
>       * tree-vect-loop.c (vect_is_simple_reduction_1,
>       get_initial_def_for_induction, vect_create_epilog_for_reduction):
>       Likewise.
>       * ipa-split.c (split_function): Likewise.
>       * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
>       abs_replacement, neg_replacement): Likewise.
>       * tree-profile.c (gimple_gen_edge_profiler): Likewise.
>       * tree-vrp.c (simplify_truth_ops_using_ranges,
>       simplify_float_conversion_using_ranges,
>       simplify_internal_call_using_ranges): Likewise.
>       * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
>       * tree-vect-generic.c (expand_vector_divmod,
>       optimize_vector_constructor): Likewise.
>       * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
>       instrument_bool_enum_load): Likewise.
>       * tree-ssa-loop-manip.c (create_iv): Likewise.
>       * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
>       expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
>       expand_cilk_for, simd_clone_adjust): Likewise.
>       * trans-mem.c (expand_transaction): Likewise.
>       * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
>       vect_setup_realignment, vect_permute_load_chain,
>       vect_shift_permute_load_chain): Likewise.
>       * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
>       vectorizable_simd_clone_call, vect_gen_widened_results_half,
>       vect_create_vectorized_demotion_stmts, vectorizable_conversion,
>       vectorizable_shift, vectorizable_operation, vectorizable_store,
>       permute_vec_elements, vectorizable_load): Likewise.
> 
> --- gcc/gimple.h.jj   2014-11-20 17:06:26.908397762 +0100
> +++ gcc/gimple.h      2014-12-01 11:40:44.848212993 +0100
> @@ -1296,14 +1296,12 @@ gcall *gimple_build_call_valist (tree, u
>  gcall *gimple_build_call_internal (enum internal_fn, unsigned, ...);
>  gcall *gimple_build_call_internal_vec (enum internal_fn, vec<tree> );
>  gcall *gimple_build_call_from_tree (tree);
> -gassign *gimple_build_assign_stat (tree, tree MEM_STAT_DECL);
> -#define gimple_build_assign(l,r) gimple_build_assign_stat (l, r 
> MEM_STAT_INFO)
> -gassign *gimple_build_assign_with_ops (enum tree_code, tree,
> -                                    tree, tree, tree CXX_MEM_STAT_INFO);
> -gassign *gimple_build_assign_with_ops (enum tree_code, tree,
> -                                    tree, tree CXX_MEM_STAT_INFO);
> -gassign *gimple_build_assign_with_ops (enum tree_code, tree,
> -                                    tree CXX_MEM_STAT_INFO);
> +gassign *gimple_build_assign (tree, tree CXX_MEM_STAT_DECL);
> +gassign *gimple_build_assign (tree, enum tree_code,
> +                           tree, tree, tree CXX_MEM_STAT_INFO);
> +gassign *gimple_build_assign (tree, enum tree_code,
> +                           tree, tree CXX_MEM_STAT_INFO);
> +gassign *gimple_build_assign (tree, enum tree_code, tree CXX_MEM_STAT_INFO);
>  gcond *gimple_build_cond (enum tree_code, tree, tree, tree, tree);
>  gcond *gimple_build_cond_from_tree (tree, tree, tree);
>  void gimple_cond_set_condition_from_tree (gcond *, tree);
> --- gcc/gimple.c.jj   2014-11-20 17:06:26.906397799 +0100
> +++ gcc/gimple.c      2014-12-01 11:40:37.550343605 +0100
> @@ -399,24 +399,22 @@ gimple_build_call_from_tree (tree t)
>     RHS of the assignment which can be unary or binary.  */
>  
>  gassign *
> -gimple_build_assign_stat (tree lhs, tree rhs MEM_STAT_DECL)
> +gimple_build_assign (tree lhs, tree rhs MEM_STAT_DECL)
>  {
>    enum tree_code subcode;
>    tree op1, op2, op3;
>  
>    extract_ops_from_tree_1 (rhs, &subcode, &op1, &op2, &op3);
> -  return gimple_build_assign_with_ops (subcode, lhs, op1, op2, op3
> -                                    PASS_MEM_STAT);
> +  return gimple_build_assign (lhs, subcode, op1, op2, op3 PASS_MEM_STAT);
>  }
>  
>  
>  /* Build a GIMPLE_ASSIGN statement with subcode SUBCODE and operands
> -   OP1 and OP2.  If OP2 is NULL then SUBCODE must be of class
> -   GIMPLE_UNARY_RHS or GIMPLE_SINGLE_RHS.  */
> +   OP1, OP2 and OP3.  */
>  
> -gassign *
> -gimple_build_assign_with_ops (enum tree_code subcode, tree lhs, tree op1,
> -                           tree op2, tree op3 MEM_STAT_DECL)
> +static inline gassign *
> +gimple_build_assign_1 (tree lhs, enum tree_code subcode, tree op1,
> +                    tree op2, tree op3 MEM_STAT_DECL)
>  {
>    unsigned num_ops;
>    gassign *p;
> @@ -445,20 +443,34 @@ gimple_build_assign_with_ops (enum tree_
>    return p;
>  }
>  
> +/* Build a GIMPLE_ASSIGN statement with subcode SUBCODE and operands
> +   OP1, OP2 and OP3.  */
> +
> +gassign *
> +gimple_build_assign (tree lhs, enum tree_code subcode, tree op1,
> +                  tree op2, tree op3 MEM_STAT_DECL)
> +{
> +  return gimple_build_assign_1 (lhs, subcode, op1, op2, op3 PASS_MEM_STAT);
> +}
> +
> +/* Build a GIMPLE_ASSIGN statement with subcode SUBCODE and operands
> +   OP1 and OP2.  */
> +
>  gassign *
> -gimple_build_assign_with_ops (enum tree_code subcode, tree lhs, tree op1,
> -                           tree op2 MEM_STAT_DECL)
> +gimple_build_assign (tree lhs, enum tree_code subcode, tree op1,
> +                  tree op2 MEM_STAT_DECL)
>  {
> -  return gimple_build_assign_with_ops (subcode, lhs, op1, op2, NULL_TREE
> -                                    PASS_MEM_STAT);
> +  return gimple_build_assign_1 (lhs, subcode, op1, op2, NULL_TREE
> +                             PASS_MEM_STAT);
>  }
>  
> +/* Build a GIMPLE_ASSIGN statement with subcode SUBCODE and operand OP1.  */
> +
>  gassign *
> -gimple_build_assign_with_ops (enum tree_code subcode, tree lhs, tree op1
> -                           MEM_STAT_DECL)
> +gimple_build_assign (tree lhs, enum tree_code subcode, tree op1 
> MEM_STAT_DECL)
>  {
> -  return gimple_build_assign_with_ops (subcode, lhs, op1, NULL_TREE, 
> NULL_TREE
> -                                    PASS_MEM_STAT);
> +  return gimple_build_assign_1 (lhs, subcode, op1, NULL_TREE, NULL_TREE
> +                             PASS_MEM_STAT);
>  }
>  
>  
> --- gcc/tree-ssa-strlen.c.jj  2014-12-01 10:44:27.576594419 +0100
> +++ gcc/tree-ssa-strlen.c     2014-12-01 12:07:40.584155577 +0100
> @@ -465,11 +465,9 @@ get_string_length (strinfo si)
>                lhs = force_gimple_operand_gsi (&gsi, lhs, true, NULL_TREE,
>                                                true, GSI_SAME_STMT);
>              }
> -       lenstmt
> -         = gimple_build_assign_with_ops
> -             (POINTER_PLUS_EXPR,
> -              make_ssa_name (TREE_TYPE (gimple_call_arg (stmt, 0))),
> -              tem, lhs);
> +       lenstmt = gimple_build_assign
> +                     (make_ssa_name (TREE_TYPE (gimple_call_arg (stmt, 0))),
> +                      POINTER_PLUS_EXPR,tem, lhs);
>         gsi_insert_before (&gsi, lenstmt, GSI_SAME_STMT);
>         gimple_call_set_arg (stmt, 0, gimple_assign_lhs (lenstmt));
>         lhs = NULL_TREE;
> --- gcc/tree-vect-slp.c.jj    2014-12-01 10:44:28.073585547 +0100
> +++ gcc/tree-vect-slp.c       2014-12-01 12:28:38.136222874 +0100
> @@ -2671,11 +2671,9 @@ vect_get_constant_vectors (tree op, slp_
>               {
>                 tree new_temp = make_ssa_name (TREE_TYPE (vector_type));
>                 gimple init_stmt;
> -               op = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (vector_type),
> -                            op);               
> +               op = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (vector_type), op);
>                 init_stmt
> -                 = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR,
> -                                                 new_temp, op);
> +                 = gimple_build_assign (new_temp, VIEW_CONVERT_EXPR, op);
>                 gimple_seq_add_stmt (&ctor_seq, init_stmt);
>                 op = new_temp;
>               }
> @@ -2899,8 +2897,8 @@ vect_create_mask_and_perm (gimple stmt,
>        second_vec = dr_chain[second_vec_indx];
>  
>        /* Generate the permute statement.  */
> -      perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, perm_dest,
> -                                             first_vec, second_vec, mask);
> +      perm_stmt = gimple_build_assign (perm_dest, VEC_PERM_EXPR,
> +                                    first_vec, second_vec, mask);
>        data_ref = make_ssa_name (perm_dest, perm_stmt);
>        gimple_set_lhs (perm_stmt, data_ref);
>        vect_finish_stmt_generation (stmt, perm_stmt, gsi);
> --- gcc/tree-ssa-forwprop.c.jj        2014-12-01 10:44:28.046586029 +0100
> +++ gcc/tree-ssa-forwprop.c   2014-12-01 12:00:38.523849348 +0100
> @@ -1722,23 +1722,21 @@ simplify_rotate (gimple_stmt_iterator *g
>    if (!useless_type_conversion_p (TREE_TYPE (def_arg2[0]),
>                                 TREE_TYPE (rotcnt)))
>      {
> -      g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                     make_ssa_name (TREE_TYPE (def_arg2[0])),
> -                                     rotcnt);
> +      g = gimple_build_assign (make_ssa_name (TREE_TYPE (def_arg2[0])),
> +                            NOP_EXPR, rotcnt);
>        gsi_insert_before (gsi, g, GSI_SAME_STMT);
>        rotcnt = gimple_assign_lhs (g);
>      }
>    lhs = gimple_assign_lhs (stmt);
>    if (!useless_type_conversion_p (rtype, TREE_TYPE (def_arg1[0])))
>      lhs = make_ssa_name (TREE_TYPE (def_arg1[0]));
> -  g = gimple_build_assign_with_ops (((def_code[0] == LSHIFT_EXPR) ^ 
> swapped_p)
> -                                 ? LROTATE_EXPR : RROTATE_EXPR,
> -                                 lhs, def_arg1[0], rotcnt);
> +  g = gimple_build_assign (lhs,
> +                        ((def_code[0] == LSHIFT_EXPR) ^ swapped_p)
> +                        ? LROTATE_EXPR : RROTATE_EXPR, def_arg1[0], rotcnt);
>    if (!useless_type_conversion_p (rtype, TREE_TYPE (def_arg1[0])))
>      {
>        gsi_insert_before (gsi, g, GSI_SAME_STMT);
> -      g = gimple_build_assign_with_ops (NOP_EXPR, gimple_assign_lhs (stmt),
> -                                     lhs);
> +      g = gimple_build_assign (gimple_assign_lhs (stmt), NOP_EXPR, lhs);
>      }
>    gsi_replace (gsi, g, false);
>    return true;
> --- gcc/asan.c.jj     2014-12-01 10:44:27.803590367 +0100
> +++ gcc/asan.c        2014-12-01 11:52:00.636118172 +0100
> @@ -1585,25 +1585,25 @@ build_shadow_mem_access (gimple_stmt_ite
>    gimple g;
>  
>    t = build_int_cst (uintptr_type, ASAN_SHADOW_SHIFT);
> -  g = gimple_build_assign_with_ops (RSHIFT_EXPR, make_ssa_name 
> (uintptr_type),
> -                                 base_addr, t);
> +  g = gimple_build_assign (make_ssa_name (uintptr_type), RSHIFT_EXPR,
> +                        base_addr, t);
>    gimple_set_location (g, location);
>    gsi_insert_after (gsi, g, GSI_NEW_STMT);
>  
>    t = build_int_cst (uintptr_type, asan_shadow_offset ());
> -  g = gimple_build_assign_with_ops (PLUS_EXPR, make_ssa_name (uintptr_type),
> -                                 gimple_assign_lhs (g), t);
> +  g = gimple_build_assign (make_ssa_name (uintptr_type), PLUS_EXPR,
> +                        gimple_assign_lhs (g), t);
>    gimple_set_location (g, location);
>    gsi_insert_after (gsi, g, GSI_NEW_STMT);
>  
> -  g = gimple_build_assign_with_ops (NOP_EXPR, make_ssa_name 
> (shadow_ptr_type),
> -                                 gimple_assign_lhs (g));
> +  g = gimple_build_assign (make_ssa_name (shadow_ptr_type), NOP_EXPR,
> +                        gimple_assign_lhs (g));
>    gimple_set_location (g, location);
>    gsi_insert_after (gsi, g, GSI_NEW_STMT);
>  
>    t = build2 (MEM_REF, shadow_type, gimple_assign_lhs (g),
>             build_int_cst (shadow_ptr_type, 0));
> -  g = gimple_build_assign_with_ops (MEM_REF, make_ssa_name (shadow_type), t);
> +  g = gimple_build_assign (make_ssa_name (shadow_type), MEM_REF, t);
>    gimple_set_location (g, location);
>    gsi_insert_after (gsi, g, GSI_NEW_STMT);
>    return gimple_assign_lhs (g);
> @@ -1618,9 +1618,8 @@ maybe_create_ssa_name (location_t loc, t
>  {
>    if (TREE_CODE (base) == SSA_NAME)
>      return base;
> -  gimple g
> -    = gimple_build_assign_with_ops (TREE_CODE (base),
> -                                 make_ssa_name (TREE_TYPE (base)), base);
> +  gimple g = gimple_build_assign (make_ssa_name (TREE_TYPE (base)),
> +                               TREE_CODE (base), base);
>    gimple_set_location (g, loc);
>    if (before_p)
>      gsi_insert_before (iter, g, GSI_SAME_STMT);
> @@ -1638,10 +1637,8 @@ maybe_cast_to_ptrmode (location_t loc, t
>  {
>    if (ptrofftype_p (len))
>      return len;
> -  gimple g
> -    = gimple_build_assign_with_ops (NOP_EXPR,
> -                                 make_ssa_name (pointer_sized_int_node),
> -                                 len);
> +  gimple g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                               NOP_EXPR, len);
>    gimple_set_location (g, loc);
>    if (before_p)
>      gsi_insert_before (iter, g, GSI_SAME_STMT);
> @@ -2542,10 +2539,8 @@ asan_expand_check_ifn (gimple_stmt_itera
>    if (use_calls)
>      {
>        /* Instrument using callbacks.  */
> -      gimple g
> -     = gimple_build_assign_with_ops (NOP_EXPR,
> -                                     make_ssa_name (pointer_sized_int_node),
> -                                     base);
> +      gimple g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                                   NOP_EXPR, base);
>        gimple_set_location (g, loc);
>        gsi_insert_before (iter, g, GSI_SAME_STMT);
>        tree base_addr = gimple_assign_lhs (g);
> @@ -2557,9 +2552,8 @@ asan_expand_check_ifn (gimple_stmt_itera
>        else
>       {
>         gcc_assert (nargs == 2);
> -       g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                         make_ssa_name 
> (pointer_sized_int_node),
> -                                         len);
> +       g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                                NOP_EXPR, len);
>         gimple_set_location (g, loc);
>         gsi_insert_before (iter, g, GSI_SAME_STMT);
>         tree sz_arg = gimple_assign_lhs (g);
> @@ -2616,9 +2610,8 @@ asan_expand_check_ifn (gimple_stmt_itera
>                                 &then_bb,
>                                 &else_bb);
>  
> -  g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                 make_ssa_name (pointer_sized_int_node),
> -                                 base);
> +  g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                        NOP_EXPR, base);
>    gimple_set_location (g, loc);
>    gsi_insert_before (&gsi, g, GSI_NEW_STMT);
>    tree base_addr = gimple_assign_lhs (g);
> @@ -2670,17 +2663,14 @@ asan_expand_check_ifn (gimple_stmt_itera
>         check first and last byte.  */
>        if (size_in_bytes == -1)
>       {
> -       g = gimple_build_assign_with_ops (MINUS_EXPR,
> -                                         make_ssa_name 
> (pointer_sized_int_node),
> -                                         len,
> -                                         build_int_cst 
> (pointer_sized_int_node, 1));
> +       g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                                MINUS_EXPR, len,
> +                                build_int_cst (pointer_sized_int_node, 1));
>         gimple_set_location (g, loc);
>         gsi_insert_after (&gsi, g, GSI_NEW_STMT);
>         tree last = gimple_assign_lhs (g);
> -       g = gimple_build_assign_with_ops (PLUS_EXPR,
> -                                         make_ssa_name 
> (pointer_sized_int_node),
> -                                         base_addr,
> -                                         last);
> +       g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                                PLUS_EXPR, base_addr, last);
>         gimple_set_location (g, loc);
>         gsi_insert_after (&gsi, g, GSI_NEW_STMT);
>         tree base_end_addr = gimple_assign_lhs (g);
> --- gcc/tsan.c.jj     2014-12-01 10:44:27.803590367 +0100
> +++ gcc/tsan.c        2014-12-01 12:37:15.871738028 +0100
> @@ -500,7 +500,7 @@ instrument_builtin_call (gimple_stmt_ite
>                                               TREE_TYPE (args[1])))
>                 {
>                   tree var = make_ssa_name (TREE_TYPE (lhs));
> -                 g = gimple_build_assign_with_ops (NOP_EXPR, var, args[1]);
> +                 g = gimple_build_assign (var, NOP_EXPR, args[1]);
>                   gsi_insert_after (gsi, g, GSI_NEW_STMT);
>                   args[1] = var;
>                 }
> @@ -509,17 +509,14 @@ instrument_builtin_call (gimple_stmt_ite
>               if (tsan_atomic_table[i].code == BIT_NOT_EXPR)
>                 {
>                   tree var = make_ssa_name (TREE_TYPE (lhs));
> -                 g = gimple_build_assign_with_ops (BIT_AND_EXPR, var,
> -                                                   gimple_call_lhs (stmt),
> -                                                   args[1]);
> +                 g = gimple_build_assign (var, BIT_AND_EXPR,
> +                                          gimple_call_lhs (stmt), args[1]);
>                   gsi_insert_after (gsi, g, GSI_NEW_STMT);
> -                 g = gimple_build_assign_with_ops (BIT_NOT_EXPR, lhs, var);
> +                 g = gimple_build_assign (lhs, BIT_NOT_EXPR, var);
>                 }
>               else
> -               g = gimple_build_assign_with_ops (tsan_atomic_table[i].code,
> -                                                 lhs,
> -                                                 gimple_call_lhs (stmt),
> -                                                 args[1]);
> +               g = gimple_build_assign (lhs, tsan_atomic_table[i].code,
> +                                        gimple_call_lhs (stmt), args[1]);
>               update_stmt (stmt);
>               gsi_insert_after (gsi, g, GSI_NEW_STMT);
>             }
> @@ -553,9 +550,8 @@ instrument_builtin_call (gimple_stmt_ite
>           if (!useless_type_conversion_p (TREE_TYPE (t),
>                                           TREE_TYPE (args[1])))
>             {
> -             g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                               make_ssa_name (TREE_TYPE (t)),
> -                                               args[1]);
> +             g = gimple_build_assign (make_ssa_name (TREE_TYPE (t)),
> +                                      NOP_EXPR, args[1]);
>               gsi_insert_before (gsi, g, GSI_SAME_STMT);
>               args[1] = gimple_assign_lhs (g);
>             }
> @@ -577,9 +573,8 @@ instrument_builtin_call (gimple_stmt_ite
>               t = make_ssa_name (TREE_TYPE (TREE_TYPE (decl)), stmt);
>               cond = build2 (NE_EXPR, boolean_type_node, t,
>                              build_int_cst (TREE_TYPE (t), 0));
> -             g = gimple_build_assign_with_ops (COND_EXPR, lhs, cond,
> -                                               args[1],
> -                                               gimple_assign_lhs (g));
> +             g = gimple_build_assign (lhs, COND_EXPR, cond, args[1],
> +                                      gimple_assign_lhs (g));
>               gimple_call_set_lhs (stmt, t);
>               update_stmt (stmt);
>               gsi_insert_after (gsi, g, GSI_NEW_STMT);
> --- gcc/tree-chkp.c.jj        2014-11-20 17:06:24.819436009 +0100
> +++ gcc/tree-chkp.c   2014-12-01 11:58:19.434338683 +0100
> @@ -2536,8 +2536,7 @@ chkp_compute_bounds_for_assignment (tree
>           rhs1 = unshare_expr (rhs1);
>  
>           bounds = chkp_get_tmp_reg (assign);
> -         stmt = gimple_build_assign_with_ops (COND_EXPR, bounds,
> -                                               rhs1, bnd1, bnd2);
> +         stmt = gimple_build_assign (bounds, COND_EXPR, rhs1, bnd1, bnd2);
>           gsi_insert_after (&iter, stmt, GSI_SAME_STMT);
>  
>           if (!chkp_valid_bounds (bnd1) && !chkp_valid_bounds (bnd2))
> @@ -2563,8 +2562,7 @@ chkp_compute_bounds_for_assignment (tree
>           tree cond = build2 (rhs_code == MAX_EXPR ? GT_EXPR : LT_EXPR,
>                               boolean_type_node, rhs1, rhs2);
>           bounds = chkp_get_tmp_reg (assign);
> -         stmt = gimple_build_assign_with_ops (COND_EXPR, bounds,
> -                                               cond, bnd1, bnd2);
> +         stmt = gimple_build_assign (bounds, COND_EXPR, cond, bnd1, bnd2);
>  
>           gsi_insert_after (&iter, stmt, GSI_SAME_STMT);
>  
> @@ -2840,9 +2838,9 @@ chkp_generate_extern_var_bounds (tree va
>                        fold_convert (chkp_uintptr_type, lb));
>        max_size = chkp_force_gimple_call_op (max_size, &seq);
>  
> -      cond = build2 (NE_EXPR, boolean_type_node, size_reloc, 
> integer_zero_node);
> -      stmt = gimple_build_assign_with_ops (COND_EXPR, size,
> -                                        cond, size_reloc, max_size);
> +      cond = build2 (NE_EXPR, boolean_type_node,
> +                  size_reloc, integer_zero_node);
> +      stmt = gimple_build_assign (size, COND_EXPR, cond, size_reloc, 
> max_size);
>        gimple_seq_add_stmt (&seq, stmt);
>      }
>    else
> --- gcc/tree-loop-distribution.c.jj   2014-12-01 10:44:27.274599811 +0100
> +++ gcc/tree-loop-distribution.c      2014-12-01 11:58:25.955221977 +0100
> @@ -823,7 +823,7 @@ generate_memset_builtin (struct loop *lo
>    else if (!useless_type_conversion_p (integer_type_node, TREE_TYPE (val)))
>      {
>        tree tem = make_ssa_name (integer_type_node);
> -      gimple cstmt = gimple_build_assign_with_ops (NOP_EXPR, tem, val);
> +      gimple cstmt = gimple_build_assign (tem, NOP_EXPR, val);
>        gsi_insert_after (&gsi, cstmt, GSI_CONTINUE_LINKING);
>        val = tem;
>      }
> --- gcc/tree-ssa-loop-im.c.jj 2014-11-20 17:06:24.817436046 +0100
> +++ gcc/tree-ssa-loop-im.c    2014-12-01 12:01:28.849948644 +0100
> @@ -898,11 +898,10 @@ rewrite_reciprocal (gimple_stmt_iterator
>    real_one = build_one_cst (type);
>  
>    name = make_temp_ssa_name (type, NULL, "reciptmp");
> -  stmt1 = gimple_build_assign_with_ops (RDIV_EXPR, name, real_one,
> -                                     gimple_assign_rhs2 (stmt));
> -
> -  stmt2 = gimple_build_assign_with_ops (MULT_EXPR, lhs, name,
> -                                     gimple_assign_rhs1 (stmt));
> +  stmt1 = gimple_build_assign (name, RDIV_EXPR, real_one,
> +                            gimple_assign_rhs2 (stmt));
> +  stmt2 = gimple_build_assign (lhs, MULT_EXPR, name,
> +                            gimple_assign_rhs1 (stmt));
>  
>    /* Replace division stmt with reciprocal and multiply stmts.
>       The multiply stmt is not invariant, so update iterator
> @@ -1215,9 +1214,8 @@ move_computations_dom_walker::before_dom
>        if (gimple_phi_num_args (stmt) == 1)
>       {
>         tree arg = PHI_ARG_DEF (stmt, 0);
> -       new_stmt = gimple_build_assign_with_ops (TREE_CODE (arg),
> -                                                gimple_phi_result (stmt),
> -                                                arg);
> +       new_stmt = gimple_build_assign (gimple_phi_result (stmt),
> +                                       TREE_CODE (arg), arg);
>       }
>        else
>       {
> @@ -1230,9 +1228,8 @@ move_computations_dom_walker::before_dom
>         gcc_assert (arg0 && arg1);
>         t = build2 (gimple_cond_code (cond), boolean_type_node,
>                     gimple_cond_lhs (cond), gimple_cond_rhs (cond));
> -       new_stmt = gimple_build_assign_with_ops (COND_EXPR,
> -                                                gimple_phi_result (stmt),
> -                                                t, arg0, arg1);
> +       new_stmt = gimple_build_assign (gimple_phi_result (stmt),
> +                                       COND_EXPR, t, arg0, arg1);
>         todo_ |= TODO_cleanup_cfg;
>       }
>        gsi_insert_on_edge (loop_preheader_edge (level), new_stmt);
> --- gcc/gimple-builder.c.jj   2014-12-01 10:44:28.036586207 +0100
> +++ gcc/gimple-builder.c      2014-12-01 11:52:37.293462102 +0100
> @@ -66,7 +66,7 @@ build_assign (enum tree_code code, tree
>    tree op2 = build_int_cst (TREE_TYPE (op1), val);
>    if (lhs == NULL_TREE)
>      lhs = make_ssa_name (get_expr_type (code, op1));
> -  return gimple_build_assign_with_ops (code, lhs, op1, op2);
> +  return gimple_build_assign (lhs, code, op1, op2);
>  }
>  
>  gassign *
> @@ -89,7 +89,7 @@ build_assign (enum tree_code code, tree
>  {
>    if (lhs == NULL_TREE)
>      lhs = make_ssa_name (get_expr_type (code, op1));
> -  return gimple_build_assign_with_ops (code, lhs, op1, op2);
> +  return gimple_build_assign (lhs, code, op1, op2);
>  }
>  
>  gassign *
> @@ -120,7 +120,7 @@ build_type_cast (tree to_type, tree op,
>  {
>    if (lhs == NULL_TREE)
>      lhs = make_ssa_name (to_type);
> -  return gimple_build_assign_with_ops (NOP_EXPR, lhs, op);
> +  return gimple_build_assign (lhs, NOP_EXPR, op);
>  }
>  
>  gassign *
> --- gcc/tree-vect-loop-manip.c.jj     2014-12-01 10:44:27.583594294 +0100
> +++ gcc/tree-vect-loop-manip.c        2014-12-01 12:17:14.887573545 +0100
> @@ -2157,8 +2157,7 @@ vect_create_cond_for_align_checks (loop_
>  
>        sprintf (tmp_name, "addr2int%d", i);
>        addr_tmp_name = make_temp_ssa_name (int_ptrsize_type, NULL, tmp_name);
> -      addr_stmt = gimple_build_assign_with_ops (NOP_EXPR, addr_tmp_name,
> -                                             addr_base);
> +      addr_stmt = gimple_build_assign (addr_tmp_name, NOP_EXPR, addr_base);
>        gimple_seq_add_stmt (cond_expr_stmt_list, addr_stmt);
>  
>        /* The addresses are OR together.  */
> @@ -2168,9 +2167,8 @@ vect_create_cond_for_align_checks (loop_
>            /* create: or_tmp = or_tmp | addr_tmp */
>            sprintf (tmp_name, "orptrs%d", i);
>         new_or_tmp_name = make_temp_ssa_name (int_ptrsize_type, NULL, 
> tmp_name);
> -       or_stmt = gimple_build_assign_with_ops (BIT_IOR_EXPR,
> -                                               new_or_tmp_name,
> -                                               or_tmp_name, addr_tmp_name);
> +       or_stmt = gimple_build_assign (new_or_tmp_name, BIT_IOR_EXPR,
> +                                      or_tmp_name, addr_tmp_name);
>         gimple_seq_add_stmt (cond_expr_stmt_list, or_stmt);
>            or_tmp_name = new_or_tmp_name;
>          }
> @@ -2184,8 +2182,8 @@ vect_create_cond_for_align_checks (loop_
>    /* create: and_tmp = or_tmp & mask  */
>    and_tmp_name = make_temp_ssa_name (int_ptrsize_type, NULL, "andmask");
>  
> -  and_stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, and_tmp_name,
> -                                        or_tmp_name, mask_cst);
> +  and_stmt = gimple_build_assign (and_tmp_name, BIT_AND_EXPR,
> +                               or_tmp_name, mask_cst);
>    gimple_seq_add_stmt (cond_expr_stmt_list, and_stmt);
>  
>    /* Make and_tmp the left operand of the conditional test against zero.
> --- gcc/value-prof.c.jj       2014-11-20 17:06:25.140430132 +0100
> +++ gcc/value-prof.c  2014-12-01 12:38:34.931289482 +0100
> @@ -775,13 +775,11 @@ gimple_divmod_fixed_value (gassign *stmt
>    bb1end = stmt3;
>  
>    tmp2 = create_tmp_reg (optype, "PROF");
> -  stmt1 = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), tmp2,
> -                                     op1, tmp0);
> +  stmt1 = gimple_build_assign (tmp2, gimple_assign_rhs_code (stmt), op1, 
> tmp0);
>    gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>    bb2end = stmt1;
>  
> -  stmt1 = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), tmp2,
> -                                     op1, op2);
> +  stmt1 = gimple_build_assign (tmp2, gimple_assign_rhs_code (stmt), op1, 
> op2);
>    gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>    bb3end = stmt1;
>  
> @@ -930,9 +928,9 @@ gimple_mod_pow2 (gassign *stmt, int prob
>    result = create_tmp_reg (optype, "PROF");
>    tmp2 = make_temp_ssa_name (optype, NULL, "PROF");
>    tmp3 = make_temp_ssa_name (optype, NULL, "PROF");
> -  stmt2 = gimple_build_assign_with_ops (PLUS_EXPR, tmp2, op2,
> -                                     build_int_cst (optype, -1));
> -  stmt3 = gimple_build_assign_with_ops (BIT_AND_EXPR, tmp3, tmp2, op2);
> +  stmt2 = gimple_build_assign (tmp2, PLUS_EXPR, op2,
> +                            build_int_cst (optype, -1));
> +  stmt3 = gimple_build_assign (tmp3, BIT_AND_EXPR, tmp2, op2);
>    stmt4 = gimple_build_cond (NE_EXPR, tmp3, build_int_cst (optype, 0),
>                            NULL_TREE, NULL_TREE);
>    gsi_insert_before (&gsi, stmt2, GSI_SAME_STMT);
> @@ -941,12 +939,12 @@ gimple_mod_pow2 (gassign *stmt, int prob
>    bb1end = stmt4;
>  
>    /* tmp2 == op2-1 inherited from previous block.  */
> -  stmt1 = gimple_build_assign_with_ops (BIT_AND_EXPR, result, op1, tmp2);
> +  stmt1 = gimple_build_assign (result, BIT_AND_EXPR, op1, tmp2);
>    gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>    bb2end = stmt1;
>  
> -  stmt1 = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), 
> result,
> -                                     op1, op2);
> +  stmt1 = gimple_build_assign (result, gimple_assign_rhs_code (stmt),
> +                            op1, op2);
>    gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>    bb3end = stmt1;
>  
> @@ -1094,7 +1092,7 @@ gimple_mod_subtract (gassign *stmt, int
>  
>    if (ncounts)       /* Assumed to be 0 or 1 */
>      {
> -      stmt1 = gimple_build_assign_with_ops (MINUS_EXPR, result, result, 
> tmp1);
> +      stmt1 = gimple_build_assign (result, MINUS_EXPR, result, tmp1);
>        stmt2 = gimple_build_cond (LT_EXPR, result, tmp1, NULL_TREE, 
> NULL_TREE);
>        gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>        gsi_insert_before (&gsi, stmt2, GSI_SAME_STMT);
> @@ -1102,8 +1100,8 @@ gimple_mod_subtract (gassign *stmt, int
>      }
>  
>    /* Fallback case. */
> -  stmt1 = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), 
> result,
> -                                     result, tmp1);
> +  stmt1 = gimple_build_assign (result, gimple_assign_rhs_code (stmt),
> +                            result, tmp1);
>    gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
>    bb3end = stmt1;
>  
> --- gcc/gimple-match-head.c.jj        2014-12-01 10:44:28.040586136 +0100
> +++ gcc/gimple-match-head.c   2014-12-01 11:54:43.830197429 +0100
> @@ -332,8 +332,8 @@ maybe_push_res_to_seq (code_helper rcode
>        if (!res)
>       res = make_ssa_name (type);
>        maybe_build_generic_op (rcode, type, &ops[0], ops[1], ops[2]);
> -      gimple new_stmt = gimple_build_assign_with_ops (rcode, res,
> -                                                   ops[0], ops[1], ops[2]);
> +      gimple new_stmt = gimple_build_assign (res, rcode,
> +                                          ops[0], ops[1], ops[2]);
>        gimple_seq_add_stmt_without_update (seq, new_stmt);
>        return res;
>      }
> --- gcc/tree-vect-patterns.c.jj       2014-12-01 10:44:28.046586029 +0100
> +++ gcc/tree-vect-patterns.c  2014-12-01 12:39:12.293604921 +0100
> @@ -439,8 +439,8 @@ vect_recog_dot_prod_pattern (vec<gimple>
>  
>    /* Pattern detected. Create a stmt to be used to replace the pattern: */
>    var = vect_recog_temp_ssa_var (type, NULL);
> -  pattern_stmt = gimple_build_assign_with_ops (DOT_PROD_EXPR, var,
> -                                            oprnd00, oprnd01, oprnd1);
> +  pattern_stmt = gimple_build_assign (var, DOT_PROD_EXPR,
> +                                   oprnd00, oprnd01, oprnd1);
>  
>    if (dump_enabled_p ())
>      {
> @@ -673,8 +673,8 @@ vect_recog_sad_pattern (vec<gimple> *stm
>  
>    /* Pattern detected. Create a stmt to be used to replace the pattern: */
>    tree var = vect_recog_temp_ssa_var (sum_type, NULL);
> -  gimple pattern_stmt = gimple_build_assign_with_ops
> -                          (SAD_EXPR, var, sad_oprnd0, sad_oprnd1, 
> plus_oprnd1);
> +  gimple pattern_stmt = gimple_build_assign (var, SAD_EXPR, sad_oprnd0,
> +                                          sad_oprnd1, plus_oprnd1);
>  
>    if (dump_enabled_p ())
>      {
> @@ -760,7 +760,7 @@ vect_handle_widen_op_by_const (gimple st
>        /* Create a_T = (NEW_TYPE) a_t;  */
>        *oprnd = gimple_assign_rhs1 (def_stmt);
>        new_oprnd = make_ssa_name (new_type);
> -      new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd, *oprnd);
> +      new_stmt = gimple_build_assign (new_oprnd, NOP_EXPR, *oprnd);
>        STMT_VINFO_RELATED_STMT (vinfo_for_stmt (def_stmt)) = new_stmt;
>        stmts->safe_push (def_stmt);
>        *oprnd = new_oprnd;
> @@ -933,8 +933,7 @@ vect_recog_widen_mult_pattern (vec<gimpl
>  
>          tree old_oprnd = gimple_assign_rhs1 (def_stmt);
>       tree new_oprnd = make_ssa_name (half_type0);
> -        new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
> -                                              old_oprnd);
> +     new_stmt = gimple_build_assign (new_oprnd, NOP_EXPR, old_oprnd);
>          *oprnd = new_oprnd;
>      }
>  
> @@ -999,8 +998,7 @@ vect_recog_widen_mult_pattern (vec<gimpl
>  
>    /* Pattern supported. Create a stmt to be used to replace the pattern: */
>    var = vect_recog_temp_ssa_var (itype, NULL);
> -  pattern_stmt = gimple_build_assign_with_ops (WIDEN_MULT_EXPR, var, oprnd0,
> -                                            oprnd1);
> +  pattern_stmt = gimple_build_assign (var, WIDEN_MULT_EXPR, oprnd0, oprnd1);
>  
>    stmt_vec_info stmt_vinfo = vinfo_for_stmt (last_stmt);
>    loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
> @@ -1028,10 +1026,9 @@ vect_recog_widen_mult_pattern (vec<gimpl
>          = new_stmt_vec_info (pattern_stmt, loop_vinfo, bb_vinfo);
>        set_vinfo_for_stmt (pattern_stmt, pattern_stmt_info);
>        STMT_VINFO_VECTYPE (pattern_stmt_info) = vecitype;
> -      pattern_stmt
> -        = gimple_build_assign_with_ops (NOP_EXPR,
> -                                        vect_recog_temp_ssa_var (type, NULL),
> -                                     gimple_assign_lhs (pattern_stmt));
> +      pattern_stmt = gimple_build_assign (vect_recog_temp_ssa_var (type, 
> NULL),
> +                                       NOP_EXPR,
> +                                       gimple_assign_lhs (pattern_stmt));
>      }
>  
>    if (dump_enabled_p ())
> @@ -1115,7 +1112,7 @@ vect_recog_pow_pattern (vec<gimple> *stm
>        *type_in = TREE_TYPE (base);
>  
>        var = vect_recog_temp_ssa_var (TREE_TYPE (base), NULL);
> -      stmt = gimple_build_assign_with_ops (MULT_EXPR, var, base, base);
> +      stmt = gimple_build_assign (var, MULT_EXPR, base, base);
>        return stmt;
>      }
>  
> @@ -1244,8 +1241,7 @@ vect_recog_widen_sum_pattern (vec<gimple
>  
>    /* Pattern detected. Create a stmt to be used to replace the pattern: */
>    var = vect_recog_temp_ssa_var (type, NULL);
> -  pattern_stmt = gimple_build_assign_with_ops (WIDEN_SUM_EXPR, var,
> -                                            oprnd0, oprnd1);
> +  pattern_stmt = gimple_build_assign (var, WIDEN_SUM_EXPR, oprnd0, oprnd1);
>  
>    if (dump_enabled_p ())
>      {
> @@ -1440,8 +1436,7 @@ vect_operation_fits_smaller_type (gimple
>                /* Create NEW_OPRND = (INTERM_TYPE) OPRND.  */
>                oprnd = gimple_assign_rhs1 (def_stmt);
>             new_oprnd = make_ssa_name (interm_type);
> -              new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
> -                                                    oprnd);
> +           new_stmt = gimple_build_assign (new_oprnd, NOP_EXPR, oprnd);
>                STMT_VINFO_RELATED_STMT (vinfo_for_stmt (def_stmt)) = new_stmt;
>                stmts->safe_push (def_stmt);
>                oprnd = new_oprnd;
> @@ -1459,8 +1454,7 @@ vect_operation_fits_smaller_type (gimple
>          {
>            /* Create a type conversion HALF_TYPE->INTERM_TYPE.  */
>         new_oprnd = make_ssa_name (interm_type);
> -          new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
> -                                                oprnd);
> +       new_stmt = gimple_build_assign (new_oprnd, NOP_EXPR, oprnd);
>            oprnd = new_oprnd;
>            *new_def_stmt = new_stmt;
>          }
> @@ -1548,8 +1542,7 @@ vect_recog_over_widening_pattern (vec<gi
>  
>        var = vect_recog_temp_ssa_var (new_type, NULL);
>        pattern_stmt
> -     = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), var,
> -                                     op0, op1);
> +     = gimple_build_assign (var, gimple_assign_rhs_code (stmt), op0, op1);
>        STMT_VINFO_RELATED_STMT (vinfo_for_stmt (stmt)) = pattern_stmt;
>        new_pattern_def_seq (vinfo_for_stmt (stmt), new_def_stmt);
>  
> @@ -1591,8 +1584,7 @@ vect_recog_over_widening_pattern (vec<gi
>          {
>            /* Create NEW_TYPE->USE_TYPE conversion.  */
>         new_oprnd = make_ssa_name (use_type);
> -          pattern_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
> -                                                    var);
> +       pattern_stmt = gimple_build_assign (new_oprnd, NOP_EXPR, var);
>            STMT_VINFO_RELATED_STMT (vinfo_for_stmt (use_stmt)) = pattern_stmt;
>  
>            *type_in = get_vectype_for_scalar_type (new_type);
> @@ -1781,7 +1773,7 @@ vect_recog_widen_shift_pattern (vec<gimp
>    /* Pattern supported.  Create a stmt to be used to replace the pattern.  */
>    var = vect_recog_temp_ssa_var (type, NULL);
>    pattern_stmt =
> -    gimple_build_assign_with_ops (WIDEN_LSHIFT_EXPR, var, oprnd0, oprnd1);
> +    gimple_build_assign (var, WIDEN_LSHIFT_EXPR, oprnd0, oprnd1);
>  
>    if (dump_enabled_p ())
>      dump_gimple_stmt_loc (MSG_NOTE, vect_location, TDF_SLIM, pattern_stmt, 
> 0);
> @@ -1944,7 +1936,7 @@ vect_recog_rotate_pattern (vec<gimple> *
>    if (def == NULL_TREE)
>      {
>        def = vect_recog_temp_ssa_var (type, NULL);
> -      def_stmt = gimple_build_assign_with_ops (NOP_EXPR, def, oprnd1);
> +      def_stmt = gimple_build_assign (def, NOP_EXPR, oprnd1);
>        if (ext_def)
>       {
>         basic_block new_bb
> @@ -1974,7 +1966,7 @@ vect_recog_rotate_pattern (vec<gimple> *
>        if (vecstype == NULL_TREE)
>       return NULL;
>        def2 = vect_recog_temp_ssa_var (stype, NULL);
> -      def_stmt = gimple_build_assign_with_ops (NEGATE_EXPR, def2, def);
> +      def_stmt = gimple_build_assign (def2, NEGATE_EXPR, def);
>        if (ext_def)
>       {
>         basic_block new_bb
> @@ -1992,9 +1984,8 @@ vect_recog_rotate_pattern (vec<gimple> *
>        def2 = vect_recog_temp_ssa_var (stype, NULL);
>        tree mask
>       = build_int_cst (stype, GET_MODE_PRECISION (TYPE_MODE (stype)) - 1);
> -      def_stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, def2,
> -                                            gimple_assign_lhs (def_stmt),
> -                                            mask);
> +      def_stmt = gimple_build_assign (def2, BIT_AND_EXPR,
> +                                   gimple_assign_lhs (def_stmt), mask);
>        if (ext_def)
>       {
>         basic_block new_bb
> @@ -2011,15 +2002,15 @@ vect_recog_rotate_pattern (vec<gimple> *
>      }
>  
>    var1 = vect_recog_temp_ssa_var (type, NULL);
> -  def_stmt = gimple_build_assign_with_ops (rhs_code == LROTATE_EXPR
> -                                        ? LSHIFT_EXPR : RSHIFT_EXPR,
> -                                        var1, oprnd0, def);
> +  def_stmt = gimple_build_assign (var1, rhs_code == LROTATE_EXPR
> +                                     ? LSHIFT_EXPR : RSHIFT_EXPR,
> +                               oprnd0, def);
>    append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>    var2 = vect_recog_temp_ssa_var (type, NULL);
> -  def_stmt = gimple_build_assign_with_ops (rhs_code == LROTATE_EXPR
> -                                        ? RSHIFT_EXPR : LSHIFT_EXPR,
> -                                        var2, oprnd0, def2);
> +  def_stmt = gimple_build_assign (var2, rhs_code == LROTATE_EXPR
> +                                     ? RSHIFT_EXPR : LSHIFT_EXPR,
> +                               oprnd0, def2);
>    append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>    /* Pattern detected.  */
> @@ -2029,7 +2020,7 @@ vect_recog_rotate_pattern (vec<gimple> *
>  
>    /* Pattern supported.  Create a stmt to be used to replace the pattern.  */
>    var = vect_recog_temp_ssa_var (type, NULL);
> -  pattern_stmt = gimple_build_assign_with_ops (BIT_IOR_EXPR, var, var1, 
> var2);
> +  pattern_stmt = gimple_build_assign (var, BIT_IOR_EXPR, var1, var2);
>  
>    if (dump_enabled_p ())
>      dump_gimple_stmt_loc (MSG_NOTE, vect_location, TDF_SLIM, pattern_stmt, 
> 0);
> @@ -2147,7 +2138,7 @@ vect_recog_vector_vector_shift_pattern (
>    if (def == NULL_TREE)
>      {
>        def = vect_recog_temp_ssa_var (TREE_TYPE (oprnd0), NULL);
> -      def_stmt = gimple_build_assign_with_ops (NOP_EXPR, def, oprnd1);
> +      def_stmt = gimple_build_assign (def, NOP_EXPR, oprnd1);
>        new_pattern_def_seq (stmt_vinfo, def_stmt);
>      }
>  
> @@ -2158,7 +2149,7 @@ vect_recog_vector_vector_shift_pattern (
>  
>    /* Pattern supported.  Create a stmt to be used to replace the pattern.  */
>    var = vect_recog_temp_ssa_var (TREE_TYPE (oprnd0), NULL);
> -  pattern_stmt = gimple_build_assign_with_ops (rhs_code, var, oprnd0, def);
> +  pattern_stmt = gimple_build_assign (var, rhs_code, oprnd0, def);
>  
>    if (dump_enabled_p ())
>      dump_gimple_stmt_loc (MSG_NOTE, vect_location, TDF_SLIM, pattern_stmt, 
> 0);
> @@ -2281,25 +2272,21 @@ vect_recog_divmod_pattern (vec<gimple> *
>         tree var = vect_recog_temp_ssa_var (itype, NULL);
>         tree shift;
>         def_stmt
> -         = gimple_build_assign_with_ops (COND_EXPR, var, cond,
> -                                         fold_build2 (MINUS_EXPR, itype,
> -                                                      oprnd1,
> -                                                      build_int_cst (itype,
> -                                                                     1)),
> -                                         build_int_cst (itype, 0));
> +         = gimple_build_assign (var, COND_EXPR, cond,
> +                                fold_build2 (MINUS_EXPR, itype, oprnd1,
> +                                             build_int_cst (itype, 1)),
> +                                build_int_cst (itype, 0));
>         new_pattern_def_seq (stmt_vinfo, def_stmt);
>         var = vect_recog_temp_ssa_var (itype, NULL);
>         def_stmt
> -         = gimple_build_assign_with_ops (PLUS_EXPR, var, oprnd0,
> -                                         gimple_assign_lhs (def_stmt));
> +         = gimple_build_assign (var, PLUS_EXPR, oprnd0,
> +                                gimple_assign_lhs (def_stmt));
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         shift = build_int_cst (itype, tree_log2 (oprnd1));
>         pattern_stmt
> -         = gimple_build_assign_with_ops (RSHIFT_EXPR,
> -                                         vect_recog_temp_ssa_var (itype,
> -                                                                  NULL),
> -                                         var, shift);
> +         = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                                RSHIFT_EXPR, var, shift);
>       }
>        else
>       {
> @@ -2308,10 +2295,9 @@ vect_recog_divmod_pattern (vec<gimple> *
>         if (compare_tree_int (oprnd1, 2) == 0)
>           {
>             signmask = vect_recog_temp_ssa_var (itype, NULL);
> -           def_stmt
> -             = gimple_build_assign_with_ops (COND_EXPR, signmask, cond,
> -                                             build_int_cst (itype, 1),
> -                                             build_int_cst (itype, 0));
> +           def_stmt = gimple_build_assign (signmask, COND_EXPR, cond,
> +                                           build_int_cst (itype, 1),
> +                                           build_int_cst (itype, 0));
>             append_pattern_def_seq (stmt_vinfo, def_stmt);
>           }
>         else
> @@ -2324,20 +2310,18 @@ vect_recog_divmod_pattern (vec<gimple> *
>                                       - tree_log2 (oprnd1));
>             tree var = vect_recog_temp_ssa_var (utype, NULL);
>  
> -           def_stmt
> -             = gimple_build_assign_with_ops (COND_EXPR, var, cond,
> -                                             build_int_cst (utype, -1),
> -                                             build_int_cst (utype, 0));
> +           def_stmt = gimple_build_assign (var, COND_EXPR, cond,
> +                                           build_int_cst (utype, -1),
> +                                           build_int_cst (utype, 0));
>             def_stmt_vinfo
>               = new_stmt_vec_info (def_stmt, loop_vinfo, bb_vinfo);
>             set_vinfo_for_stmt (def_stmt, def_stmt_vinfo);
>             STMT_VINFO_VECTYPE (def_stmt_vinfo) = vecutype;
>             append_pattern_def_seq (stmt_vinfo, def_stmt);
>             var = vect_recog_temp_ssa_var (utype, NULL);
> -           def_stmt
> -             = gimple_build_assign_with_ops (RSHIFT_EXPR, var,
> -                                             gimple_assign_lhs (def_stmt),
> -                                             shift);
> +           def_stmt = gimple_build_assign (var, RSHIFT_EXPR,
> +                                           gimple_assign_lhs (def_stmt),
> +                                           shift);
>             def_stmt_vinfo
>               = new_stmt_vec_info (def_stmt, loop_vinfo, bb_vinfo);
>             set_vinfo_for_stmt (def_stmt, def_stmt_vinfo);
> @@ -2345,32 +2329,24 @@ vect_recog_divmod_pattern (vec<gimple> *
>             append_pattern_def_seq (stmt_vinfo, def_stmt);
>             signmask = vect_recog_temp_ssa_var (itype, NULL);
>             def_stmt
> -             = gimple_build_assign_with_ops (NOP_EXPR, signmask, var);
> +             = gimple_build_assign (signmask, NOP_EXPR, var);
>             append_pattern_def_seq (stmt_vinfo, def_stmt);
>           }
>         def_stmt
> -         = gimple_build_assign_with_ops (PLUS_EXPR,
> -                                         vect_recog_temp_ssa_var (itype,
> -                                                                  NULL),
> -                                         oprnd0, signmask);
> +         = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                                PLUS_EXPR, oprnd0, signmask);
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>         def_stmt
> -         = gimple_build_assign_with_ops (BIT_AND_EXPR,
> -                                         vect_recog_temp_ssa_var (itype,
> -                                                                  NULL),
> -                                         gimple_assign_lhs (def_stmt),
> -                                         fold_build2 (MINUS_EXPR, itype,
> -                                                      oprnd1,
> -                                                      build_int_cst (itype,
> -                                                                     1)));
> +         = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                                BIT_AND_EXPR, gimple_assign_lhs (def_stmt),
> +                                fold_build2 (MINUS_EXPR, itype, oprnd1,
> +                                             build_int_cst (itype, 1)));
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         pattern_stmt
> -         = gimple_build_assign_with_ops (MINUS_EXPR,
> -                                         vect_recog_temp_ssa_var (itype,
> -                                                                  NULL),
> -                                         gimple_assign_lhs (def_stmt),
> -                                         signmask);
> +         = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                                MINUS_EXPR, gimple_assign_lhs (def_stmt),
> +                                signmask);
>       }
>  
>        if (dump_enabled_p ())
> @@ -2432,25 +2408,23 @@ vect_recog_divmod_pattern (vec<gimple> *
>            t4 = t1 + t3;
>            q = t4 >> (post_shift - 1);  */
>         t1 = vect_recog_temp_ssa_var (itype, NULL);
> -       def_stmt
> -         = gimple_build_assign_with_ops (MULT_HIGHPART_EXPR, t1, oprnd0,
> -                                         build_int_cst (itype, ml));
> +       def_stmt = gimple_build_assign (t1, MULT_HIGHPART_EXPR, oprnd0,
> +                                       build_int_cst (itype, ml));
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         t2 = vect_recog_temp_ssa_var (itype, NULL);
>         def_stmt
> -         = gimple_build_assign_with_ops (MINUS_EXPR, t2, oprnd0, t1);
> +         = gimple_build_assign (t2, MINUS_EXPR, oprnd0, t1);
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         t3 = vect_recog_temp_ssa_var (itype, NULL);
>         def_stmt
> -         = gimple_build_assign_with_ops (RSHIFT_EXPR, t3, t2,
> -                                         integer_one_node);
> +         = gimple_build_assign (t3, RSHIFT_EXPR, t2, integer_one_node);
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         t4 = vect_recog_temp_ssa_var (itype, NULL);
>         def_stmt
> -         = gimple_build_assign_with_ops (PLUS_EXPR, t4, t1, t3);
> +         = gimple_build_assign (t4, PLUS_EXPR, t1, t3);
>  
>         if (post_shift != 1)
>           {
> @@ -2458,10 +2432,8 @@ vect_recog_divmod_pattern (vec<gimple> *
>  
>             q = vect_recog_temp_ssa_var (itype, NULL);
>             pattern_stmt
> -             = gimple_build_assign_with_ops (RSHIFT_EXPR, q, t4,
> -                                             build_int_cst (itype,
> -                                                            post_shift
> -                                                            - 1));
> +             = gimple_build_assign (q, RSHIFT_EXPR, t4,
> +                                    build_int_cst (itype, post_shift - 1));
>           }
>         else
>           {
> @@ -2481,18 +2453,16 @@ vect_recog_divmod_pattern (vec<gimple> *
>           {
>             t1 = vect_recog_temp_ssa_var (itype, NULL);
>             def_stmt
> -             = gimple_build_assign_with_ops (RSHIFT_EXPR, t1, oprnd0,
> -                                             build_int_cst (NULL,
> -                                                            pre_shift));
> +             = gimple_build_assign (t1, RSHIFT_EXPR, oprnd0,
> +                                    build_int_cst (NULL, pre_shift));
>             append_pattern_def_seq (stmt_vinfo, def_stmt);
>           }
>         else
>           t1 = oprnd0;
>  
>         t2 = vect_recog_temp_ssa_var (itype, NULL);
> -       def_stmt
> -         = gimple_build_assign_with_ops (MULT_HIGHPART_EXPR, t2, t1,
> -                                         build_int_cst (itype, ml));
> +       def_stmt = gimple_build_assign (t2, MULT_HIGHPART_EXPR, t1,
> +                                       build_int_cst (itype, ml));
>  
>         if (post_shift)
>           {
> @@ -2500,9 +2470,8 @@ vect_recog_divmod_pattern (vec<gimple> *
>  
>             q = vect_recog_temp_ssa_var (itype, NULL);
>             def_stmt
> -             = gimple_build_assign_with_ops (RSHIFT_EXPR, q, t2,
> -                                             build_int_cst (itype,
> -                                                            post_shift));
> +             = gimple_build_assign (q, RSHIFT_EXPR, t2,
> +                                    build_int_cst (itype, post_shift));
>           }
>         else
>           q = t2;
> @@ -2552,17 +2521,15 @@ vect_recog_divmod_pattern (vec<gimple> *
>  
>        /* t1 = oprnd0 h* ml;  */
>        t1 = vect_recog_temp_ssa_var (itype, NULL);
> -      def_stmt
> -     = gimple_build_assign_with_ops (MULT_HIGHPART_EXPR, t1, oprnd0,
> -                                     build_int_cst (itype, ml));
> +      def_stmt = gimple_build_assign (t1, MULT_HIGHPART_EXPR, oprnd0,
> +                                   build_int_cst (itype, ml));
>  
>        if (add)
>       {
>         /* t2 = t1 + oprnd0;  */
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>         t2 = vect_recog_temp_ssa_var (itype, NULL);
> -       def_stmt
> -         = gimple_build_assign_with_ops (PLUS_EXPR, t2, t1, oprnd0);
> +       def_stmt = gimple_build_assign (t2, PLUS_EXPR, t1, oprnd0);
>       }
>        else
>       t2 = t1;
> @@ -2572,9 +2539,8 @@ vect_recog_divmod_pattern (vec<gimple> *
>         /* t3 = t2 >> post_shift;  */
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>         t3 = vect_recog_temp_ssa_var (itype, NULL);
> -       def_stmt
> -         = gimple_build_assign_with_ops (RSHIFT_EXPR, t3, t2,
> -                                         build_int_cst (itype, post_shift));
> +       def_stmt = gimple_build_assign (t3, RSHIFT_EXPR, t2,
> +                                       build_int_cst (itype, post_shift));
>       }
>        else
>       t3 = t2;
> @@ -2605,20 +2571,17 @@ vect_recog_divmod_pattern (vec<gimple> *
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>         t4 = vect_recog_temp_ssa_var (itype, NULL);
>         if (msb != 1)
> -         def_stmt
> -           = gimple_build_assign_with_ops (INTEGER_CST,
> -                                           t4, build_int_cst (itype, msb));
> +         def_stmt = gimple_build_assign (t4, INTEGER_CST,
> +                                         build_int_cst (itype, msb));
>         else
> -         def_stmt
> -           = gimple_build_assign_with_ops (RSHIFT_EXPR, t4, oprnd0,
> -                                           build_int_cst (itype, prec - 1));
> +         def_stmt = gimple_build_assign (t4, RSHIFT_EXPR, oprnd0,
> +                                         build_int_cst (itype, prec - 1));
>         append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>         /* q = t3 - t4;  or q = t4 - t3;  */
>         q = vect_recog_temp_ssa_var (itype, NULL);
> -       pattern_stmt
> -         = gimple_build_assign_with_ops (MINUS_EXPR, q, d < 0 ? t4 : t3,
> -                                         d < 0 ? t3 : t4);
> +       pattern_stmt = gimple_build_assign (q, MINUS_EXPR, d < 0 ? t4 : t3,
> +                                           d < 0 ? t3 : t4);
>       }
>      }
>  
> @@ -2632,13 +2595,11 @@ vect_recog_divmod_pattern (vec<gimple> *
>        append_pattern_def_seq (stmt_vinfo, pattern_stmt);
>  
>        t1 = vect_recog_temp_ssa_var (itype, NULL);
> -      def_stmt
> -     = gimple_build_assign_with_ops (MULT_EXPR, t1, q, oprnd1);
> +      def_stmt = gimple_build_assign (t1, MULT_EXPR, q, oprnd1);
>        append_pattern_def_seq (stmt_vinfo, def_stmt);
>  
>        r = vect_recog_temp_ssa_var (itype, NULL);
> -      pattern_stmt
> -     = gimple_build_assign_with_ops (MINUS_EXPR, r, oprnd0, t1);
> +      pattern_stmt = gimple_build_assign (r, MINUS_EXPR, oprnd0, t1);
>      }
>  
>    /* Pattern detected.  */
> @@ -2793,16 +2754,12 @@ vect_recog_mixed_size_cond_pattern (vec<
>       return NULL;
>      }
>  
> -  def_stmt
> -    = gimple_build_assign_with_ops (COND_EXPR,
> -                                 vect_recog_temp_ssa_var (itype, NULL),
> -                                 unshare_expr (cond_expr),
> -                                 fold_convert (itype, then_clause),
> -                                 fold_convert (itype, else_clause));
> -  pattern_stmt
> -    = gimple_build_assign_with_ops (NOP_EXPR,
> -                                 vect_recog_temp_ssa_var (type, NULL),
> -                                 gimple_assign_lhs (def_stmt));
> +  def_stmt = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                               COND_EXPR, unshare_expr (cond_expr),
> +                               fold_convert (itype, then_clause),
> +                               fold_convert (itype, else_clause));
> +  pattern_stmt = gimple_build_assign (vect_recog_temp_ssa_var (type, NULL),
> +                                   NOP_EXPR, gimple_assign_lhs (def_stmt));
>  
>    new_pattern_def_seq (stmt_vinfo, def_stmt);
>    def_stmt_info = new_stmt_vec_info (def_stmt, loop_vinfo, bb_vinfo);
> @@ -2913,10 +2870,8 @@ adjust_bool_pattern_cast (tree type, tre
>    gcc_assert (!STMT_VINFO_PATTERN_DEF_SEQ (stmt_vinfo));
>    pattern_stmt = STMT_VINFO_RELATED_STMT (stmt_vinfo);
>    new_pattern_def_seq (stmt_vinfo, pattern_stmt);
> -  cast_stmt
> -    = gimple_build_assign_with_ops (NOP_EXPR,
> -                                 vect_recog_temp_ssa_var (type, NULL),
> -                                 gimple_assign_lhs (pattern_stmt));
> +  cast_stmt = gimple_build_assign (vect_recog_temp_ssa_var (type, NULL),
> +                                NOP_EXPR, gimple_assign_lhs (pattern_stmt));
>    STMT_VINFO_RELATED_STMT (stmt_vinfo) = cast_stmt;
>    return gimple_assign_lhs (cast_stmt);
>  }
> @@ -2951,18 +2906,16 @@ adjust_bool_pattern (tree var, tree out_
>        irhs1 = adjust_bool_pattern (rhs1, out_type, NULL_TREE, stmts);
>        itype = TREE_TYPE (irhs1);
>        pattern_stmt
> -     = gimple_build_assign_with_ops (SSA_NAME,
> -                                     vect_recog_temp_ssa_var (itype, NULL),
> -                                     irhs1);
> +     = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                            SSA_NAME, irhs1);
>        break;
>  
>      case BIT_NOT_EXPR:
>        irhs1 = adjust_bool_pattern (rhs1, out_type, NULL_TREE, stmts);
>        itype = TREE_TYPE (irhs1);
>        pattern_stmt
> -     = gimple_build_assign_with_ops (BIT_XOR_EXPR,
> -                                     vect_recog_temp_ssa_var (itype, NULL),
> -                                     irhs1, build_int_cst (itype, 1));
> +     = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                            BIT_XOR_EXPR, irhs1, build_int_cst (itype, 1));
>        break;
>  
>      case BIT_AND_EXPR:
> @@ -3073,9 +3026,8 @@ adjust_bool_pattern (tree var, tree out_
>       }
>        itype = TREE_TYPE (irhs1);
>        pattern_stmt
> -     = gimple_build_assign_with_ops (rhs_code,
> -                                     vect_recog_temp_ssa_var (itype, NULL),
> -                                     irhs1, irhs2);
> +     = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                            rhs_code, irhs1, irhs2);
>        break;
>  
>      default:
> @@ -3098,10 +3050,9 @@ adjust_bool_pattern (tree var, tree out_
>       gcc_checking_assert (useless_type_conversion_p (itype,
>                                                       TREE_TYPE (trueval)));
>        pattern_stmt
> -     = gimple_build_assign_with_ops (COND_EXPR,
> -                                     vect_recog_temp_ssa_var (itype, NULL),
> -                                     cond_expr, trueval,
> -                                     build_int_cst (itype, 0));
> +     = gimple_build_assign (vect_recog_temp_ssa_var (itype, NULL),
> +                            COND_EXPR, cond_expr, trueval,
> +                            build_int_cst (itype, 0));
>        break;
>      }
>  
> @@ -3200,11 +3151,10 @@ vect_recog_bool_pattern (vec<gimple> *st
>        rhs = adjust_bool_pattern (var, TREE_TYPE (lhs), NULL_TREE, stmts);
>        lhs = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL);
>        if (useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (rhs)))
> -     pattern_stmt
> -       = gimple_build_assign_with_ops (SSA_NAME, lhs, rhs);
> +     pattern_stmt = gimple_build_assign (lhs, SSA_NAME, rhs);
>        else
>       pattern_stmt
> -       = gimple_build_assign_with_ops (NOP_EXPR, lhs, rhs);
> +       = gimple_build_assign (lhs, NOP_EXPR, rhs);
>        *type_out = vectype;
>        *type_in = vectype;
>        stmts->safe_push (last_stmt);
> @@ -3239,11 +3189,11 @@ vect_recog_bool_pattern (vec<gimple> *st
>        rhs = adjust_bool_pattern (var, type, NULL_TREE, stmts);
>        lhs = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL);
>        pattern_stmt 
> -       = gimple_build_assign_with_ops (COND_EXPR, lhs,
> -                                       build2 (NE_EXPR, boolean_type_node,
> -                                               rhs, build_int_cst (type, 0)),
> -                                       gimple_assign_rhs2 (last_stmt),
> -                                       gimple_assign_rhs3 (last_stmt));
> +       = gimple_build_assign (lhs, COND_EXPR,
> +                              build2 (NE_EXPR, boolean_type_node,
> +                                      rhs, build_int_cst (type, 0)),
> +                              gimple_assign_rhs2 (last_stmt),
> +                              gimple_assign_rhs3 (last_stmt));
>        *type_out = vectype;
>        *type_in = vectype;
>        stmts->safe_push (last_stmt);
> @@ -3269,13 +3219,11 @@ vect_recog_bool_pattern (vec<gimple> *st
>        if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (rhs)))
>       {
>         tree rhs2 = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL);
> -       gimple cast_stmt
> -         = gimple_build_assign_with_ops (NOP_EXPR, rhs2, rhs);
> +       gimple cast_stmt = gimple_build_assign (rhs2, NOP_EXPR, rhs);
>         new_pattern_def_seq (stmt_vinfo, cast_stmt);
>         rhs = rhs2;
>       }
> -      pattern_stmt
> -     = gimple_build_assign_with_ops (SSA_NAME, lhs, rhs);
> +      pattern_stmt = gimple_build_assign (lhs, SSA_NAME, rhs);
>        pattern_stmt_info = new_stmt_vec_info (pattern_stmt, loop_vinfo,
>                                               bb_vinfo);
>        set_vinfo_for_stmt (pattern_stmt, pattern_stmt_info);
> --- gcc/gimple-ssa-strength-reduction.c.jj    2014-11-20 17:06:26.483405543 
> +0100
> +++ gcc/gimple-ssa-strength-reduction.c       2014-12-01 11:55:59.034851464 
> +0100
> @@ -2186,8 +2186,7 @@ create_add_on_incoming_edge (slsr_cand_t
>       }
>  
>        bump_tree = wide_int_to_tree (basis_type, bump);
> -      new_stmt = gimple_build_assign_with_ops (code, lhs, basis_name,
> -                                            bump_tree);
> +      new_stmt = gimple_build_assign (lhs, code, basis_name, bump_tree);
>      }
>    else
>      {
> @@ -2199,15 +2198,14 @@ create_add_on_incoming_edge (slsr_cand_t
>        if (incr_vec[i].initializer)
>       {
>         enum tree_code code = negate_incr ? MINUS_EXPR : PLUS_EXPR;
> -       new_stmt = gimple_build_assign_with_ops (code, lhs, basis_name,
> -                                                incr_vec[i].initializer);
> +       new_stmt = gimple_build_assign (lhs, code, basis_name,
> +                                       incr_vec[i].initializer);
>       }
>        else if (increment == 1)
> -     new_stmt = gimple_build_assign_with_ops (PLUS_EXPR, lhs, basis_name,
> -                                              c->stride);
> +     new_stmt = gimple_build_assign (lhs, PLUS_EXPR, basis_name, c->stride);
>        else if (increment == -1)
> -     new_stmt = gimple_build_assign_with_ops (MINUS_EXPR, lhs, basis_name,
> -                                              c->stride);
> +     new_stmt = gimple_build_assign (lhs, MINUS_EXPR, basis_name,
> +                                     c->stride);
>        else
>       gcc_unreachable ();
>      }
> @@ -3160,8 +3158,8 @@ insert_initializers (slsr_cand_t c)
>        /* Create the initializer and insert it in the latest possible
>        dominating position.  */
>        incr_tree = wide_int_to_tree (stride_type, incr);
> -      init_stmt = gimple_build_assign_with_ops (MULT_EXPR, new_name,
> -                                             c->stride, incr_tree);
> +      init_stmt = gimple_build_assign (new_name, MULT_EXPR,
> +                                    c->stride, incr_tree);
>        if (where)
>       {
>         gimple_stmt_iterator gsi = gsi_for_stmt (where->cand_stmt);
> @@ -3264,7 +3262,7 @@ introduce_cast_before_cand (slsr_cand_t
>    gimple_stmt_iterator gsi = gsi_for_stmt (c->cand_stmt);
>  
>    cast_lhs = make_temp_ssa_name (to_type, NULL, "slsr");
> -  cast_stmt = gimple_build_assign_with_ops (NOP_EXPR, cast_lhs, from_expr);
> +  cast_stmt = gimple_build_assign (cast_lhs, NOP_EXPR, from_expr);
>    gimple_set_location (cast_stmt, gimple_location (c->cand_stmt));
>    gsi_insert_before (&gsi, cast_stmt, GSI_SAME_STMT);
>  
> @@ -3433,8 +3431,7 @@ replace_one_candidate (slsr_cand_t c, un
>        else
>       {
>         gimple_stmt_iterator gsi = gsi_for_stmt (c->cand_stmt);
> -       gassign *cast_stmt = gimple_build_assign_with_ops (NOP_EXPR, lhs,
> -                                                          basis_name);
> +       gassign *cast_stmt = gimple_build_assign (lhs, NOP_EXPR, basis_name);
>         gimple_set_location (cast_stmt, gimple_location (c->cand_stmt));
>         gsi_replace (&gsi, cast_stmt, false);
>         c->cand_stmt = cast_stmt;
> --- gcc/tree-ssa-math-opts.c.jj       2014-12-01 10:44:27.651593080 +0100
> +++ gcc/tree-ssa-math-opts.c  2014-12-01 12:02:54.194421203 +0100
> @@ -378,8 +378,8 @@ insert_reciprocals (gimple_stmt_iterator
>        /* Make a variable with the replacement and substitute it.  */
>        type = TREE_TYPE (def);
>        recip_def = create_tmp_reg (type, "reciptmp");
> -      new_stmt = gimple_build_assign_with_ops (RDIV_EXPR, recip_def,
> -                                            build_one_cst (type), def);
> +      new_stmt = gimple_build_assign (recip_def, RDIV_EXPR,
> +                                   build_one_cst (type), def);
>  
>        if (occ->bb_has_division)
>          {
> @@ -1009,7 +1009,7 @@ powi_as_mults_1 (gimple_stmt_iterator *g
>        op1 = op0;
>      }
>  
> -  mult_stmt = gimple_build_assign_with_ops (MULT_EXPR, ssa_target, op0, op1);
> +  mult_stmt = gimple_build_assign (ssa_target, MULT_EXPR, op0, op1);
>    gimple_set_location (mult_stmt, loc);
>    gsi_insert_before (gsi, mult_stmt, GSI_SAME_STMT);
>  
> @@ -1039,9 +1039,8 @@ powi_as_mults (gimple_stmt_iterator *gsi
>  
>    /* If the original exponent was negative, reciprocate the result.  */
>    target = make_temp_ssa_name (type, NULL, "powmult");
> -  div_stmt = gimple_build_assign_with_ops (RDIV_EXPR, target, 
> -                                        build_real (type, dconst1),
> -                                        result);
> +  div_stmt = gimple_build_assign (target, RDIV_EXPR,
> +                               build_real (type, dconst1), result);
>    gimple_set_location (div_stmt, loc);
>    gsi_insert_before (gsi, div_stmt, GSI_SAME_STMT);
>  
> @@ -1100,7 +1099,7 @@ build_and_insert_binop (gimple_stmt_iter
>                       tree arg0, tree arg1)
>  {
>    tree result = make_temp_ssa_name (TREE_TYPE (arg0), NULL, name);
> -  gassign *stmt = gimple_build_assign_with_ops (code, result, arg0, arg1);
> +  gassign *stmt = gimple_build_assign (result, code, arg0, arg1);
>    gimple_set_location (stmt, loc);
>    gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
>    return result;
> @@ -1130,7 +1129,7 @@ build_and_insert_cast (gimple_stmt_itera
>                      tree type, tree val)
>  {
>    tree result = make_ssa_name (type);
> -  gassign *stmt = gimple_build_assign_with_ops (NOP_EXPR, result, val);
> +  gassign *stmt = gimple_build_assign (result, NOP_EXPR, val);
>    gimple_set_location (stmt, loc);
>    gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
>    return result;
> @@ -1533,17 +1532,14 @@ pass_cse_sincos::execute (function *fun)
>                     minus_one = build_real (t0, dconstm1);
>  
>                     cond = make_temp_ssa_name (t1, NULL, "powi_cond");
> -                   stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, cond,
> -                                                        arg1,
> -                                                        build_int_cst (t1,
> -                                                                       1));
> +                   stmt = gimple_build_assign (cond, BIT_AND_EXPR,
> +                                               arg1, build_int_cst (t1, 1));
>                     gimple_set_location (stmt, loc);
>                     gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
>  
>                     result = make_temp_ssa_name (t0, NULL, "powi");
> -                   stmt = gimple_build_assign_with_ops (COND_EXPR, result,
> -                                                        cond,
> -                                                        minus_one, one);
> +                   stmt = gimple_build_assign (result, COND_EXPR, cond,
> +                                               minus_one, one);
>                     gimple_set_location (stmt, loc);
>                     gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
>                   }
> @@ -2318,7 +2314,7 @@ bswap_replace (gimple cur_stmt, gimple s
>       {
>         gimple convert_stmt;
>         tmp = make_temp_ssa_name (bswap_type, NULL, "bswapsrc");
> -       convert_stmt = gimple_build_assign_with_ops (NOP_EXPR, tmp, src);
> +       convert_stmt = gimple_build_assign (tmp, NOP_EXPR, src);
>         gsi_insert_before (&gsi, convert_stmt, GSI_SAME_STMT);
>       }
>  
> @@ -2332,7 +2328,7 @@ bswap_replace (gimple cur_stmt, gimple s
>      {
>        gimple convert_stmt;
>        tmp = make_temp_ssa_name (bswap_type, NULL, "bswapdst");
> -      convert_stmt = gimple_build_assign_with_ops (NOP_EXPR, tgt, tmp);
> +      convert_stmt = gimple_build_assign (tgt, NOP_EXPR, tmp);
>        gsi_insert_after (&gsi, convert_stmt, GSI_SAME_STMT);
>      }
>  
> @@ -3174,9 +3170,8 @@ convert_mult_to_fma (gimple mul_stmt, tr
>                                          true, NULL_TREE, true,
>                                          GSI_SAME_STMT);
>  
> -      fma_stmt = gimple_build_assign_with_ops (FMA_EXPR,
> -                                            gimple_assign_lhs (use_stmt),
> -                                            mulop1, op2, addop);
> +      fma_stmt = gimple_build_assign (gimple_assign_lhs (use_stmt),
> +                                   FMA_EXPR, mulop1, op2, addop);
>        gsi_replace (&gsi, fma_stmt, true);
>        widen_mul_stats.fmas_inserted++;
>      }
> --- gcc/tree-tailcall.c.jj    2014-12-01 10:44:27.575594437 +0100
> +++ gcc/tree-tailcall.c       2014-12-01 12:07:57.412839914 +0100
> @@ -665,7 +665,7 @@ adjust_return_value_with_ops (enum tree_
>      }
>    if (types_compatible_p (TREE_TYPE (acc), TREE_TYPE (op1))
>        && code != POINTER_PLUS_EXPR)
> -    stmt = gimple_build_assign_with_ops (code, result, acc, op1);
> +    stmt = gimple_build_assign (result, code, acc, op1);
>    else
>      {
>        tree tem;
> @@ -696,7 +696,7 @@ update_accumulator_with_ops (enum tree_c
>    gassign *stmt;
>    tree var = copy_ssa_name (acc);
>    if (types_compatible_p (TREE_TYPE (acc), TREE_TYPE (op1)))
> -    stmt = gimple_build_assign_with_ops (code, var, acc, op1);
> +    stmt = gimple_build_assign (var, code, acc, op1);
>    else
>      {
>        tree rhs = fold_convert (TREE_TYPE (acc),
> --- gcc/tree-predcom.c.jj     2014-12-01 10:44:28.044586064 +0100
> +++ gcc/tree-predcom.c        2014-12-01 11:58:54.210716278 +0100
> @@ -2192,7 +2192,7 @@ reassociate_to_the_same_stmt (tree name1
>       combine it with the rhs of S1.  */
>    var = create_tmp_reg (type, "predreastmp");
>    new_name = make_ssa_name (var);
> -  new_stmt = gimple_build_assign_with_ops (code, new_name, name1, name2);
> +  new_stmt = gimple_build_assign (new_name, code, name1, name2);
>  
>    var = create_tmp_reg (type, "predreastmp");
>    tmp_name = make_ssa_name (var);
> @@ -2200,10 +2200,9 @@ reassociate_to_the_same_stmt (tree name1
>    /* Rhs of S1 may now be either a binary expression with operation
>       CODE, or gimple_val (in case that stmt1 == s1 or stmt2 == s1,
>       so that name1 or name2 was removed from it).  */
> -  tmp_stmt = gimple_build_assign_with_ops (gimple_assign_rhs_code (s1),
> -                                        tmp_name,
> -                                        gimple_assign_rhs1 (s1),
> -                                        gimple_assign_rhs2 (s1));
> +  tmp_stmt = gimple_build_assign (tmp_name, gimple_assign_rhs_code (s1),
> +                               gimple_assign_rhs1 (s1),
> +                               gimple_assign_rhs2 (s1));
>  
>    bsi = gsi_for_stmt (s1);
>    gimple_assign_set_rhs_with_ops (&bsi, code, new_name, tmp_name);
> --- gcc/tree-ssa-reassoc.c.jj 2014-12-01 10:44:28.054585886 +0100
> +++ gcc/tree-ssa-reassoc.c    2014-12-01 12:06:39.891294023 +0100
> @@ -1342,7 +1342,7 @@ build_and_add_sum (tree type, tree op1,
>  
>    /* Create the addition statement.  */
>    op = make_ssa_name (type);
> -  sum = gimple_build_assign_with_ops (opcode, op, op1, op2);
> +  sum = gimple_build_assign (op, opcode, op1, op2);
>  
>    /* Find an insertion place and insert.  */
>    if (TREE_CODE (op1) == SSA_NAME)
> @@ -2592,9 +2592,8 @@ optimize_range_tests_to_bit_test (enum t
>         gimple_seq_add_seq_without_update (&seq, seq2);
>         gcc_assert (TREE_CODE (exp) == SSA_NAME);
>         gimple_set_visited (SSA_NAME_DEF_STMT (exp), true);
> -       gimple g
> -         = gimple_build_assign_with_ops (BIT_IOR_EXPR,
> -                                         make_ssa_name (optype), tem, exp);
> +       gimple g = gimple_build_assign (make_ssa_name (optype),
> +                                       BIT_IOR_EXPR, tem, exp);
>         gimple_set_location (g, loc);
>         gimple_seq_add_stmt_without_update (&seq, g);
>         exp = gimple_assign_lhs (g);
> @@ -2999,8 +2998,8 @@ update_ops (tree var, enum tree_code cod
>      {
>        gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
>        var = make_ssa_name (TREE_TYPE (var));
> -      gassign *g = gimple_build_assign_with_ops (gimple_assign_rhs_code 
> (stmt),
> -                                              var, rhs[2], rhs[3]);
> +      gassign *g = gimple_build_assign (var, gimple_assign_rhs_code (stmt),
> +                                     rhs[2], rhs[3]);
>        gimple_set_uid (g, gimple_uid (stmt));
>        gimple_set_visited (g, true);
>        gsi_insert_before (&gsi, g, GSI_SAME_STMT);
> @@ -3305,8 +3304,7 @@ maybe_optimize_range_tests (gimple stmt)
>                         g = gimple_build_assign (new_lhs, new_op);
>                       }
>                     else
> -                     g = gimple_build_assign_with_ops (rhs_code, new_lhs,
> -                                                       new_op);
> +                     g = gimple_build_assign (new_lhs, rhs_code, new_op);
>                     gimple_stmt_iterator gsi = gsi_for_stmt (cast_stmt);
>                     gimple_set_uid (g, gimple_uid (cast_stmt));
>                     gimple_set_visited (g, true);
> @@ -3519,8 +3517,8 @@ rewrite_expr_tree (gimple stmt, unsigned
>             gimple insert_point = find_insert_point (stmt, oe1->op, oe2->op);
>             lhs = make_ssa_name (TREE_TYPE (lhs));
>             stmt
> -             = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt),
> -                                             lhs, oe1->op, oe2->op);
> +             = gimple_build_assign (lhs, gimple_assign_rhs_code (stmt),
> +                                    oe1->op, oe2->op);
>             gimple_set_uid (stmt, uid);
>             gimple_set_visited (stmt, true);
>             if (insert_point == gsi_stmt (gsi))
> @@ -3583,8 +3581,8 @@ rewrite_expr_tree (gimple stmt, unsigned
>         gimple insert_point = find_insert_point (stmt, new_rhs1, oe->op);
>  
>         lhs = make_ssa_name (TREE_TYPE (lhs));
> -       stmt = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt),
> -                                            lhs, new_rhs1, oe->op);
> +       stmt = gimple_build_assign (lhs, gimple_assign_rhs_code (stmt),
> +                                   new_rhs1, oe->op);
>         gimple_set_uid (stmt, uid);
>         gimple_set_visited (stmt, true);
>         if (insert_point == gsi_stmt (gsi))
> @@ -3800,10 +3798,10 @@ linearize_expr (gimple stmt)
>    gsi = gsi_for_stmt (stmt);
>  
>    gimple_assign_set_rhs2 (stmt, gimple_assign_rhs1 (binrhs));
> -  binrhs = gimple_build_assign_with_ops (gimple_assign_rhs_code (binrhs),
> -                                      make_ssa_name (TREE_TYPE (lhs)),
> -                                      gimple_assign_lhs (binlhs),
> -                                      gimple_assign_rhs2 (binrhs));
> +  binrhs = gimple_build_assign (make_ssa_name (TREE_TYPE (lhs)),
> +                             gimple_assign_rhs_code (binrhs),
> +                             gimple_assign_lhs (binlhs),
> +                             gimple_assign_rhs2 (binrhs));
>    gimple_assign_set_rhs1 (stmt, gimple_assign_lhs (binrhs));
>    gsi_insert_before (&gsi, binrhs, GSI_SAME_STMT);
>    gimple_set_uid (binrhs, gimple_uid (stmt));
> @@ -3891,7 +3889,7 @@ negate_value (tree tonegate, gimple_stmt
>        gsi = gsi_for_stmt (negatedefstmt);
>        lhs = make_ssa_name (TREE_TYPE (lhs));
>        gimple_set_visited (negatedefstmt, true);
> -      g = gimple_build_assign_with_ops (PLUS_EXPR, lhs, rhs1, rhs2);
> +      g = gimple_build_assign (lhs, PLUS_EXPR, rhs1, rhs2);
>        gimple_set_uid (g, gimple_uid (negatedefstmt));
>        gsi_insert_before (&gsi, g, GSI_SAME_STMT);
>        return lhs;
> @@ -4217,7 +4215,7 @@ repropagate_negates (void)
>             gimple_stmt_iterator gsi = gsi_for_stmt (feed);
>             gimple_stmt_iterator gsi2 = gsi_for_stmt (user);
>             tree x = make_ssa_name (TREE_TYPE (gimple_assign_lhs (feed)));
> -           gimple g = gimple_build_assign_with_ops (PLUS_EXPR, x, a, b);
> +           gimple g = gimple_build_assign (x, PLUS_EXPR, a, b);
>             gsi_insert_before (&gsi2, g, GSI_SAME_STMT);
>             gimple_assign_set_rhs_with_ops (&gsi2, NEGATE_EXPR, x);
>             user = gsi_stmt (gsi2);
> @@ -4570,9 +4568,8 @@ attempt_builtin_powi (gimple stmt, vec<o
>                 op2 = rf2->repr;
>  
>                 target_ssa = make_temp_ssa_name (type, NULL, "reassocpow");
> -               mul_stmt = gimple_build_assign_with_ops (MULT_EXPR,
> -                                                        target_ssa,
> -                                                        op1, op2);
> +               mul_stmt = gimple_build_assign (target_ssa, MULT_EXPR,
> +                                               op1, op2);
>                 gimple_set_location (mul_stmt, gimple_location (stmt));
>                 gsi_insert_before (&gsi, mul_stmt, GSI_SAME_STMT);
>                 rf1->repr = target_ssa;
> @@ -4599,8 +4596,8 @@ attempt_builtin_powi (gimple stmt, vec<o
>        if (result)
>       {
>         tree new_result = make_temp_ssa_name (type, NULL, "reassocpow");
> -       mul_stmt = gimple_build_assign_with_ops (MULT_EXPR, new_result,
> -                                                result, iter_result);
> +       mul_stmt = gimple_build_assign (new_result, MULT_EXPR,
> +                                       result, iter_result);
>         gimple_set_location (mul_stmt, gimple_location (stmt));
>         gsi_insert_before (&gsi, mul_stmt, GSI_SAME_STMT);
>         gimple_set_visited (mul_stmt, true);
> @@ -4857,9 +4854,8 @@ reassociate_bb (basic_block bb)
>                     update_stmt (lhs_stmt);
>                     if (lhs != new_lhs)
>                       target_ssa = new_lhs;
> -                   mul_stmt = gimple_build_assign_with_ops (MULT_EXPR, lhs,
> -                                                            powi_result,
> -                                                            target_ssa);
> +                   mul_stmt = gimple_build_assign (lhs, MULT_EXPR,
> +                                                   powi_result, target_ssa);
>                     gimple_set_location (mul_stmt, gimple_location (stmt));
>                     gsi_insert_after (&gsi, mul_stmt, GSI_NEW_STMT);
>                   }
> --- gcc/tree-vect-loop.c.jj   2014-12-01 10:44:28.036586207 +0100
> +++ gcc/tree-vect-loop.c      2014-12-01 12:16:48.056177821 +0100
> @@ -2503,8 +2503,7 @@ vect_is_simple_reduction_1 (loop_vec_inf
>      {
>        tree rhs = gimple_assign_rhs2 (def_stmt);
>        tree negrhs = make_ssa_name (TREE_TYPE (rhs));
> -      gimple negate_stmt = gimple_build_assign_with_ops (NEGATE_EXPR, negrhs,
> -                                                      rhs);
> +      gimple negate_stmt = gimple_build_assign (negrhs, NEGATE_EXPR, rhs);
>        gimple_stmt_iterator gsi = gsi_for_stmt (def_stmt);
>        set_vinfo_for_stmt (negate_stmt, new_stmt_vec_info (negate_stmt, 
>                                                         loop_info, NULL));
> @@ -3380,10 +3379,13 @@ get_initial_def_for_induction (gimple iv
>        /* If the initial value is not of proper type, convert it.  */
>        if (!useless_type_conversion_p (vectype, TREE_TYPE (vec_init)))
>       {
> -       new_stmt = gimple_build_assign_with_ops
> -           (VIEW_CONVERT_EXPR,
> -            vect_get_new_vect_var (vectype, vect_simple_var, "vec_iv_"),
> -            build1 (VIEW_CONVERT_EXPR, vectype, vec_init));
> +       new_stmt
> +         = gimple_build_assign (vect_get_new_vect_var (vectype,
> +                                                       vect_simple_var,
> +                                                       "vec_iv_"),
> +                                VIEW_CONVERT_EXPR,
> +                                build1 (VIEW_CONVERT_EXPR, vectype,
> +                                        vec_init));
>         vec_init = make_ssa_name (gimple_assign_lhs (new_stmt), new_stmt);
>         gimple_assign_set_lhs (new_stmt, vec_init);
>         new_bb = gsi_insert_on_edge_immediate (loop_preheader_edge (iv_loop),
> @@ -3496,8 +3498,7 @@ get_initial_def_for_induction (gimple iv
>    induc_def = PHI_RESULT (induction_phi);
>  
>    /* Create the iv update inside the loop  */
> -  new_stmt = gimple_build_assign_with_ops (PLUS_EXPR, vec_dest,
> -                                        induc_def, vec_step);
> +  new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, vec_step);
>    vec_def = make_ssa_name (vec_dest, new_stmt);
>    gimple_assign_set_lhs (new_stmt, vec_def);
>    gsi_insert_before (&si, new_stmt, GSI_SAME_STMT);
> @@ -3546,20 +3547,21 @@ get_initial_def_for_induction (gimple iv
>        for (i = 1; i < ncopies; i++)
>       {
>         /* vec_i = vec_prev + vec_step  */
> -       new_stmt = gimple_build_assign_with_ops (PLUS_EXPR, vec_dest,
> -                                                vec_def, vec_step);
> +       new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR,
> +                                       vec_def, vec_step);
>         vec_def = make_ssa_name (vec_dest, new_stmt);
>         gimple_assign_set_lhs (new_stmt, vec_def);
>   
>         gsi_insert_before (&si, new_stmt, GSI_SAME_STMT);
>         if (!useless_type_conversion_p (resvectype, vectype))
>           {
> -           new_stmt = gimple_build_assign_with_ops
> -               (VIEW_CONVERT_EXPR,
> -                vect_get_new_vect_var (resvectype, vect_simple_var,
> -                                       "vec_iv_"),
> -                build1 (VIEW_CONVERT_EXPR, resvectype,
> -                        gimple_assign_lhs (new_stmt)));
> +           new_stmt
> +             = gimple_build_assign
> +                     (vect_get_new_vect_var (resvectype, vect_simple_var,
> +                                             "vec_iv_"),
> +                      VIEW_CONVERT_EXPR,
> +                      build1 (VIEW_CONVERT_EXPR, resvectype,
> +                              gimple_assign_lhs (new_stmt)));
>             gimple_assign_set_lhs (new_stmt,
>                                    make_ssa_name
>                                      (gimple_assign_lhs (new_stmt), 
> new_stmt));
> @@ -3623,10 +3625,12 @@ get_initial_def_for_induction (gimple iv
>    STMT_VINFO_VEC_STMT (phi_info) = induction_phi;
>    if (!useless_type_conversion_p (resvectype, vectype))
>      {
> -      new_stmt = gimple_build_assign_with_ops
> -      (VIEW_CONVERT_EXPR,
> -       vect_get_new_vect_var (resvectype, vect_simple_var, "vec_iv_"),
> -       build1 (VIEW_CONVERT_EXPR, resvectype, induc_def));
> +      new_stmt = gimple_build_assign (vect_get_new_vect_var (resvectype,
> +                                                          vect_simple_var,
> +                                                          "vec_iv_"),
> +                                   VIEW_CONVERT_EXPR,
> +                                   build1 (VIEW_CONVERT_EXPR, resvectype,
> +                                           induc_def));
>        induc_def = make_ssa_name (gimple_assign_lhs (new_stmt), new_stmt);
>        gimple_assign_set_lhs (new_stmt, induc_def);
>        si = gsi_after_labels (bb);
> @@ -4299,15 +4303,14 @@ vect_create_epilog_for_reduction (vec<tr
>              {
>                calc_vec_perm_mask_for_shift (mode, elt_offset, sel);
>                tree mask = vect_gen_perm_mask_any (vectype, sel);
> -           epilog_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR,
> -                                                       vec_dest, new_temp,
> -                                                       zero_vec, mask);
> +           epilog_stmt = gimple_build_assign (vec_dest, VEC_PERM_EXPR,
> +                                              new_temp, zero_vec, mask);
>                new_name = make_ssa_name (vec_dest, epilog_stmt);
>                gimple_assign_set_lhs (epilog_stmt, new_name);
>                gsi_insert_before (&exit_gsi, epilog_stmt, GSI_SAME_STMT);
>  
> -              epilog_stmt = gimple_build_assign_with_ops (code, vec_dest,
> -                                                          new_name, 
> new_temp);
> +           epilog_stmt = gimple_build_assign (vec_dest, code, new_name,
> +                                              new_temp);
>                new_temp = make_ssa_name (vec_dest, epilog_stmt);
>                gimple_assign_set_lhs (epilog_stmt, new_temp);
>                gsi_insert_before (&exit_gsi, epilog_stmt, GSI_SAME_STMT);
> @@ -4386,8 +4389,8 @@ vect_create_epilog_for_reduction (vec<tr
>                      }
>                    else
>                      {
> -                      epilog_stmt = gimple_build_assign_with_ops (code,
> -                                          new_scalar_dest, new_name, 
> new_temp);
> +                   epilog_stmt = gimple_build_assign (new_scalar_dest, code,
> +                                                      new_name, new_temp);
>                        new_temp = make_ssa_name (new_scalar_dest, 
> epilog_stmt);
>                        gimple_assign_set_lhs (epilog_stmt, new_temp);
>                        gsi_insert_before (&exit_gsi, epilog_stmt, 
> GSI_SAME_STMT);
> @@ -4409,8 +4412,8 @@ vect_create_epilog_for_reduction (vec<tr
>                     j++)
>                  {
>                    first_res = scalar_results[j % group_size];
> -                  new_stmt = gimple_build_assign_with_ops (code,
> -                                              new_scalar_dest, first_res, 
> res);
> +               new_stmt = gimple_build_assign (new_scalar_dest, code,
> +                                               first_res, res);
>                    new_res = make_ssa_name (new_scalar_dest, new_stmt);
>                    gimple_assign_set_lhs (new_stmt, new_res);
>                    gsi_insert_before (&exit_gsi, new_stmt, GSI_SAME_STMT);
> --- gcc/ipa-split.c.jj        2014-12-01 10:44:28.034586243 +0100
> +++ gcc/ipa-split.c   2014-12-01 11:56:06.836711831 +0100
> @@ -1586,8 +1586,7 @@ split_function (struct split_point *spli
>                     gimple cpy;
>                     tree tem = create_tmp_reg (restype);
>                     tem = make_ssa_name (tem, call);
> -                   cpy = gimple_build_assign_with_ops (NOP_EXPR, retval,
> -                                                       tem);
> +                   cpy = gimple_build_assign (retval, NOP_EXPR, tem);
>                     gsi_insert_after (&gsi, cpy, GSI_NEW_STMT);
>                     retval = tem;
>                   }
> --- gcc/tree-ssa-phiopt.c.jj  2014-12-01 10:44:28.040586136 +0100
> +++ gcc/tree-ssa-phiopt.c     2014-12-01 12:04:13.947993824 +0100
> @@ -537,8 +537,7 @@ conditional_replacement (basic_block con
>        source_location locus_0, locus_1;
>  
>        new_var2 = make_ssa_name (TREE_TYPE (result));
> -      new_stmt = gimple_build_assign_with_ops (CONVERT_EXPR, new_var2,
> -                                            new_var);
> +      new_stmt = gimple_build_assign (new_var2, CONVERT_EXPR, new_var);
>        gsi_insert_before (&gsi, new_stmt, GSI_SAME_STMT);
>        new_var = new_var2;
>  
> @@ -1151,7 +1150,7 @@ minmax_replacement (basic_block cond_bb,
>  
>    /* Emit the statement to compute min/max.  */
>    result = duplicate_ssa_name (PHI_RESULT (phi), NULL);
> -  new_stmt = gimple_build_assign_with_ops (minmax, result, arg0, arg1);
> +  new_stmt = gimple_build_assign (result, minmax, arg0, arg1);
>    gsi = gsi_last_bb (cond_bb);
>    gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);
>  
> @@ -1258,7 +1257,7 @@ abs_replacement (basic_block cond_bb, ba
>      lhs = result;
>  
>    /* Build the modify expression with abs expression.  */
> -  new_stmt = gimple_build_assign_with_ops (ABS_EXPR, lhs, rhs);
> +  new_stmt = gimple_build_assign (lhs, ABS_EXPR, rhs);
>  
>    gsi = gsi_last_bb (cond_bb);
>    gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);
> @@ -1268,7 +1267,7 @@ abs_replacement (basic_block cond_bb, ba
>        /* Get the right GSI.  We want to insert after the recently
>        added ABS_EXPR statement (which we know is the first statement
>        in the block.  */
> -      new_stmt = gimple_build_assign_with_ops (NEGATE_EXPR, result, lhs);
> +      new_stmt = gimple_build_assign (result, NEGATE_EXPR, lhs);
>  
>        gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>      }
> @@ -1371,9 +1370,9 @@ neg_replacement (basic_block cond_bb, ba
>      }
>  
>    tree cond_val = make_ssa_name (boolean_type_node);
> -  new_stmt = gimple_build_assign_with_ops (cond_code, cond_val,
> -                                        gimple_cond_lhs (cond),
> -                                        gimple_cond_rhs (cond));
> +  new_stmt = gimple_build_assign (cond_val, cond_code,
> +                               gimple_cond_lhs (cond),
> +                               gimple_cond_rhs (cond));
>    gsi = gsi_last_bb (cond_bb);
>    gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);
>  
> @@ -1382,8 +1381,8 @@ neg_replacement (basic_block cond_bb, ba
>    if (invert)
>      {
>        tree tmp = make_ssa_name (boolean_type_node);
> -      new_stmt = gimple_build_assign_with_ops (BIT_XOR_EXPR, tmp,
> -                                            cond_val, boolean_true_node);
> +      new_stmt = gimple_build_assign (tmp, BIT_XOR_EXPR, cond_val,
> +                                   boolean_true_node);
>        gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>        cond_val = tmp;
>      }
> @@ -1391,23 +1390,21 @@ neg_replacement (basic_block cond_bb, ba
>    /* Get the condition in the right type so that we can perform
>       logical and arithmetic operations on it.  */
>    tree cond_val_converted = make_ssa_name (TREE_TYPE (rhs));
> -  new_stmt = gimple_build_assign_with_ops (NOP_EXPR, cond_val_converted,
> -                                        cond_val);
> +  new_stmt = gimple_build_assign (cond_val_converted, NOP_EXPR, cond_val);
>    gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>  
>    tree neg_cond_val_converted = make_ssa_name (TREE_TYPE (rhs));
> -  new_stmt = gimple_build_assign_with_ops (NEGATE_EXPR, 
> neg_cond_val_converted,
> -                                        cond_val_converted);
> +  new_stmt = gimple_build_assign (neg_cond_val_converted, NEGATE_EXPR,
> +                               cond_val_converted);
>    gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>  
>    tree tmp = make_ssa_name (TREE_TYPE (rhs));
> -  new_stmt = gimple_build_assign_with_ops (BIT_XOR_EXPR, tmp,
> -                                        rhs, neg_cond_val_converted);
> +  new_stmt = gimple_build_assign (tmp, BIT_XOR_EXPR, rhs,
> +                               neg_cond_val_converted);
>    gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>  
>    tree new_lhs = make_ssa_name (TREE_TYPE (rhs));
> -  new_stmt = gimple_build_assign_with_ops (PLUS_EXPR, new_lhs,
> -                                        tmp, cond_val_converted);
> +  new_stmt = gimple_build_assign (new_lhs, PLUS_EXPR, tmp, 
> cond_val_converted);
>    gsi_insert_after (&gsi, new_stmt, GSI_NEW_STMT);
>  
>    replace_phi_edge_with_variable (cond_bb, e1, phi, new_lhs);
> --- gcc/tree-profile.c.jj     2014-11-20 17:06:26.904397836 +0100
> +++ gcc/tree-profile.c        2014-12-01 11:59:05.387516243 +0100
> @@ -315,8 +315,8 @@ gimple_gen_edge_profiler (int edgeno, ed
>    stmt1 = gimple_build_assign (gcov_type_tmp_var, ref);
>    gcov_type_tmp_var = make_temp_ssa_name (gcov_type_node,
>                                         NULL, "PROF_edge_counter");
> -  stmt2 = gimple_build_assign_with_ops (PLUS_EXPR, gcov_type_tmp_var,
> -                                     gimple_assign_lhs (stmt1), one);
> +  stmt2 = gimple_build_assign (gcov_type_tmp_var, PLUS_EXPR,
> +                            gimple_assign_lhs (stmt1), one);
>    stmt3 = gimple_build_assign (unshare_expr (ref), gimple_assign_lhs 
> (stmt2));
>    gsi_insert_on_edge (e, stmt1);
>    gsi_insert_on_edge (e, stmt2);
> --- gcc/tree-vrp.c.jj 2014-12-01 10:44:27.237600471 +0100
> +++ gcc/tree-vrp.c    2014-12-01 12:36:16.977817095 +0100
> @@ -8968,7 +8968,7 @@ simplify_truth_ops_using_ranges (gimple_
>      {
>        tree tem = make_ssa_name (TREE_TYPE (op0));
>        gassign *newop
> -     = gimple_build_assign_with_ops (BIT_XOR_EXPR, tem, op0, op1);
> +     = gimple_build_assign (tem, BIT_XOR_EXPR, op0, op1);
>        gsi_insert_before (gsi, newop, GSI_SAME_STMT);
>        gimple_assign_set_rhs_with_ops (gsi, NOP_EXPR, tem);
>      }
> @@ -9735,7 +9735,7 @@ simplify_float_conversion_using_ranges (
>       float conversion.  */
>    tem = make_ssa_name (build_nonstandard_integer_type
>                         (GET_MODE_PRECISION (mode), 0));
> -  conv = gimple_build_assign_with_ops (NOP_EXPR, tem, rhs1);
> +  conv = gimple_build_assign (tem, NOP_EXPR, rhs1);
>    gsi_insert_before (gsi, conv, GSI_SAME_STMT);
>    gimple_assign_set_rhs1 (stmt, tem);
>    update_stmt (stmt);
> @@ -9794,8 +9794,7 @@ simplify_internal_call_using_ranges (gim
>    gimple g;
>    location_t loc = gimple_location (stmt);
>    if (is_ubsan)
> -    g = gimple_build_assign_with_ops (subcode, gimple_call_lhs (stmt),
> -                                   op0, op1);
> +    g = gimple_build_assign (gimple_call_lhs (stmt), subcode, op0, op1);
>    else
>      {
>        int prec = TYPE_PRECISION (type);
> @@ -9808,8 +9807,7 @@ simplify_internal_call_using_ranges (gim
>       op0 = fold_convert (utype, op0);
>        else if (!useless_type_conversion_p (utype, TREE_TYPE (op0)))
>       {
> -       g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                         make_ssa_name (utype), op0);
> +       g = gimple_build_assign (make_ssa_name (utype), NOP_EXPR, op0);
>         gimple_set_location (g, loc);
>         gsi_insert_before (gsi, g, GSI_SAME_STMT);
>         op0 = gimple_assign_lhs (g);
> @@ -9818,26 +9816,24 @@ simplify_internal_call_using_ranges (gim
>       op1 = fold_convert (utype, op1);
>        else if (!useless_type_conversion_p (utype, TREE_TYPE (op1)))
>       {
> -       g = gimple_build_assign_with_ops (NOP_EXPR,
> -                                         make_ssa_name (utype), op1);
> +       g = gimple_build_assign (make_ssa_name (utype), NOP_EXPR, op1);
>         gimple_set_location (g, loc);
>         gsi_insert_before (gsi, g, GSI_SAME_STMT);
>         op1 = gimple_assign_lhs (g);
>       }
> -      g = gimple_build_assign_with_ops (subcode, make_ssa_name (utype),
> -                                     op0, op1);
> +      g = gimple_build_assign (make_ssa_name (utype), subcode, op0, op1);
>        gimple_set_location (g, loc);
>        gsi_insert_before (gsi, g, GSI_SAME_STMT);
>        if (utype != type)
>       {
> -       g = gimple_build_assign_with_ops (NOP_EXPR, make_ssa_name (type),
> -                                         gimple_assign_lhs (g));
> +       g = gimple_build_assign (make_ssa_name (type), NOP_EXPR,
> +                                gimple_assign_lhs (g));
>         gimple_set_location (g, loc);
>         gsi_insert_before (gsi, g, GSI_SAME_STMT);
>       }
> -      g = gimple_build_assign_with_ops (COMPLEX_EXPR, gimple_call_lhs (stmt),
> -                                     gimple_assign_lhs (g),
> -                                     build_int_cst (type, ovf));
> +      g = gimple_build_assign (gimple_call_lhs (stmt), COMPLEX_EXPR,
> +                            gimple_assign_lhs (g),
> +                            build_int_cst (type, ovf));
>      }
>    gimple_set_location (g, loc);
>    gsi_replace (gsi, g, false);
> --- gcc/gimple-fold.c.jj      2014-12-01 10:44:28.041586118 +0100
> +++ gcc/gimple-fold.c 2014-12-01 11:54:05.180889149 +0100
> @@ -5642,8 +5642,7 @@ rewrite_to_defined_overflow (gimple stmt
>    if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
>      gimple_assign_set_rhs_code (stmt, PLUS_EXPR);
>    gimple_seq_add_stmt (&stmts, stmt);
> -  gimple cvt = gimple_build_assign_with_ops (NOP_EXPR, lhs,
> -                                          gimple_assign_lhs (stmt));
> +  gimple cvt = gimple_build_assign (lhs, NOP_EXPR, gimple_assign_lhs (stmt));
>    gimple_seq_add_stmt (&stmts, cvt);
>  
>    return stmts;
> @@ -5672,10 +5671,9 @@ gimple_build (gimple_seq *seq, location_
>        if (code == REALPART_EXPR
>         || code == IMAGPART_EXPR
>         || code == VIEW_CONVERT_EXPR)
> -     stmt = gimple_build_assign_with_ops (code, res,
> -                                          build1 (code, type, op0));
> +     stmt = gimple_build_assign (res, code, build1 (code, type, op0));
>        else
> -     stmt = gimple_build_assign_with_ops (code, res, op0);
> +     stmt = gimple_build_assign (res, code, op0);
>        gimple_set_location (stmt, loc);
>        gimple_seq_add_stmt_without_update (seq, stmt);
>      }
> @@ -5700,7 +5698,7 @@ gimple_build (gimple_seq *seq, location_
>       res = make_ssa_name (type);
>        else
>       res = create_tmp_reg (type);
> -      gimple stmt = gimple_build_assign_with_ops (code, res, op0, op1);
> +      gimple stmt = gimple_build_assign (res, code, op0, op1);
>        gimple_set_location (stmt, loc);
>        gimple_seq_add_stmt_without_update (seq, stmt);
>      }
> @@ -5728,11 +5726,10 @@ gimple_build (gimple_seq *seq, location_
>       res = create_tmp_reg (type);
>        gimple stmt;
>        if (code == BIT_FIELD_REF)
> -     stmt = gimple_build_assign_with_ops (code, res,
> -                                          build3 (BIT_FIELD_REF, type,
> -                                                  op0, op1, op2));
> +     stmt = gimple_build_assign (res, code,
> +                                 build3 (code, type, op0, op1, op2));
>        else
> -     stmt = gimple_build_assign_with_ops (code, res, op0, op1, op2);
> +     stmt = gimple_build_assign (res, code, op0, op1, op2);
>        gimple_set_location (stmt, loc);
>        gimple_seq_add_stmt_without_update (seq, stmt);
>      }
> --- gcc/tree-vect-generic.c.jj        2014-12-01 10:44:28.052585921 +0100
> +++ gcc/tree-vect-generic.c   2014-12-01 12:13:25.825679714 +0100
> @@ -640,8 +640,8 @@ expand_vector_divmod (gimple_stmt_iterat
>                                        << shifts[i]) - 1);
>             cst = build_vector (type, vec);
>             addend = make_ssa_name (type);
> -           stmt = gimple_build_assign_with_ops (VEC_COND_EXPR, addend,
> -                                                cond, cst, zero);
> +           stmt = gimple_build_assign (addend, VEC_COND_EXPR, cond,
> +                                       cst, zero);
>             gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
>           }
>       }
> @@ -1082,8 +1082,8 @@ optimize_vector_constructor (gimple_stmt
>      CONSTRUCTOR_ELT (rhs, i)->value = base;
>    g = gimple_build_assign (make_ssa_name (type), rhs);
>    gsi_insert_before (gsi, g, GSI_SAME_STMT);
> -  g = gimple_build_assign_with_ops (PLUS_EXPR, lhs, gimple_assign_lhs (g),
> -                                 build_vector (type, cst));
> +  g = gimple_build_assign (lhs, PLUS_EXPR, gimple_assign_lhs (g),
> +                        build_vector (type, cst));
>    gsi_replace (gsi, g, false);
>  }
>  
> --- gcc/ubsan.c.jj    2014-12-01 10:44:28.044586064 +0100
> +++ gcc/ubsan.c       2014-12-01 11:40:37.550343605 +0100
> @@ -748,7 +748,7 @@ ubsan_expand_null_ifn (gimple_stmt_itera
>        if (compare_tree_int (align, ptralign) == 1)
>       {
>         check_align = make_ssa_name (pointer_sized_int_node);
> -       g = gimple_build_assign_with_ops (NOP_EXPR, check_align, ptr);
> +       g = gimple_build_assign (check_align, NOP_EXPR, ptr);
>         gimple_set_location (g, loc);
>         gsi_insert_before (&gsi, g, GSI_SAME_STMT);
>       }
> @@ -870,9 +870,8 @@ ubsan_expand_null_ifn (gimple_stmt_itera
>  
>        tree mask = build_int_cst (pointer_sized_int_node,
>                                tree_to_uhwi (align) - 1);
> -      g = gimple_build_assign_with_ops (BIT_AND_EXPR,
> -                                     make_ssa_name (pointer_sized_int_node),
> -                                     check_align, mask);
> +      g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
> +                            BIT_AND_EXPR, check_align, mask);
>        gimple_set_location (g, loc);
>        if (check_null)
>       gsi_insert_after (&gsi2, g, GSI_NEW_STMT);
> @@ -944,7 +943,7 @@ ubsan_expand_objsize_ifn (gimple_stmt_it
>             ? BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH
>             : BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT;
>         tree p = make_ssa_name (pointer_sized_int_node);
> -       g = gimple_build_assign_with_ops (NOP_EXPR, p, ptr);
> +       g = gimple_build_assign (p, NOP_EXPR, ptr);
>         gimple_set_location (g, loc);
>         gsi_insert_before (gsi, g, GSI_SAME_STMT);
>         g = gimple_build_call (builtin_decl_explicit (bcode), 2, data, p);
> @@ -1185,7 +1184,7 @@ instrument_bool_enum_load (gimple_stmt_i
>    if (can_throw)
>      {
>        gimple_assign_set_lhs (stmt, urhs);
> -      g = gimple_build_assign_with_ops (NOP_EXPR, lhs, urhs);
> +      g = gimple_build_assign (lhs, NOP_EXPR, urhs);
>        gimple_set_location (g, loc);
>        edge e = find_fallthru_edge (gimple_bb (stmt)->succs);
>        gsi_insert_on_edge_immediate (e, g);
> @@ -1204,8 +1203,7 @@ instrument_bool_enum_load (gimple_stmt_i
>    maxv = fold_convert (utype, maxv);
>    if (!integer_zerop (minv))
>      {
> -      g = gimple_build_assign_with_ops (MINUS_EXPR, make_ssa_name (utype),
> -                                     urhs, minv);
> +      g = gimple_build_assign (make_ssa_name (utype), MINUS_EXPR, urhs, 
> minv);
>        gimple_set_location (g, loc);
>        gsi_insert_before (gsi, g, GSI_SAME_STMT);
>      }
> --- gcc/tree-ssa-loop-manip.c.jj      2014-12-01 10:44:27.574594455 +0100
> +++ gcc/tree-ssa-loop-manip.c 2014-12-01 12:01:38.016784582 +0100
> @@ -145,7 +145,7 @@ create_iv (tree base, tree step, tree va
>    if (stmts)
>      gsi_insert_seq_on_edge_immediate (pe, stmts);
>  
> -  stmt = gimple_build_assign_with_ops (incr_op, va, vb, step);
> +  stmt = gimple_build_assign (va, incr_op, vb, step);
>    if (after)
>      gsi_insert_after (incr_pos, stmt, GSI_NEW_STMT);
>    else
> --- gcc/omp-low.c.jj  2014-12-01 10:44:27.578594384 +0100
> +++ gcc/omp-low.c     2014-12-01 11:57:35.786119871 +0100
> @@ -3635,7 +3635,7 @@ lower_rec_input_clauses (tree clauses, g
>                         enum tree_code code = PLUS_EXPR;
>                         if (POINTER_TYPE_P (TREE_TYPE (new_var)))
>                           code = POINTER_PLUS_EXPR;
> -                       g = gimple_build_assign_with_ops (code, iv, iv, t);
> +                       g = gimple_build_assign (iv, code, iv, t);
>                         gsi_insert_before_without_update (&gsi, g,
>                                                           GSI_SAME_STMT);
>                         break;
> @@ -3845,8 +3845,8 @@ lower_rec_input_clauses (tree clauses, g
>        OMP_CLAUSE__SIMDUID__DECL (c) = uid;
>        OMP_CLAUSE_CHAIN (c) = gimple_omp_for_clauses (ctx->stmt);
>        gimple_omp_for_set_clauses (ctx->stmt, c);
> -      g = gimple_build_assign_with_ops (INTEGER_CST, lane,
> -                                     build_int_cst (unsigned_type_node, 0));
> +      g = gimple_build_assign (lane, INTEGER_CST,
> +                            build_int_cst (unsigned_type_node, 0));
>        gimple_seq_add_stmt (ilist, g);
>        for (int i = 0; i < 2; i++)
>       if (llist[i])
> @@ -3857,7 +3857,7 @@ lower_rec_input_clauses (tree clauses, g
>           gimple_seq *seq = i == 0 ? ilist : dlist;
>           gimple_seq_add_stmt (seq, g);
>           tree t = build_int_cst (unsigned_type_node, 0);
> -         g = gimple_build_assign_with_ops (INTEGER_CST, idx, t);
> +         g = gimple_build_assign (idx, INTEGER_CST, t);
>           gimple_seq_add_stmt (seq, g);
>           tree body = create_artificial_label (UNKNOWN_LOCATION);
>           tree header = create_artificial_label (UNKNOWN_LOCATION);
> @@ -3866,7 +3866,7 @@ lower_rec_input_clauses (tree clauses, g
>           gimple_seq_add_stmt (seq, gimple_build_label (body));
>           gimple_seq_add_seq (seq, llist[i]);
>           t = build_int_cst (unsigned_type_node, 1);
> -         g = gimple_build_assign_with_ops (PLUS_EXPR, idx, idx, t);
> +         g = gimple_build_assign (idx, PLUS_EXPR, idx, t);
>           gimple_seq_add_stmt (seq, g);
>           gimple_seq_add_stmt (seq, gimple_build_label (header));
>           g = gimple_build_cond (LT_EXPR, idx, vf, body, end);
> @@ -5856,7 +5856,7 @@ expand_omp_for_generic (struct omp_regio
>        if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE 
> (iend)))
>       assign_stmt = gimple_build_assign (fd->loop.v, iend);
>        else
> -     assign_stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, iend);
> +     assign_stmt = gimple_build_assign (fd->loop.v, NOP_EXPR, iend);
>        gsi_insert_after (&gsi, assign_stmt, GSI_CONTINUE_LINKING);
>      }
>    if (fd->collapse > 1)
> @@ -6206,8 +6206,7 @@ expand_omp_for_static_nochunk (struct om
>    gsi_insert_before (&gsi, gimple_build_assign (tt, build_int_cst (itype, 
> 0)),
>                    GSI_SAME_STMT);
>    gassign *assign_stmt
> -    = gimple_build_assign_with_ops (PLUS_EXPR, q, q,
> -                                 build_int_cst (itype, 1));
> +    = gimple_build_assign (q, PLUS_EXPR, q, build_int_cst (itype, 1));
>    gsi_insert_before (&gsi, assign_stmt, GSI_SAME_STMT);
>  
>    third_bb = split_block (second_bb, assign_stmt)->dest;
> @@ -6276,7 +6275,7 @@ expand_omp_for_static_nochunk (struct om
>        if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE (e)))
>       assign_stmt = gimple_build_assign (fd->loop.v, e);
>        else
> -     assign_stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, e);
> +     assign_stmt = gimple_build_assign (fd->loop.v, NOP_EXPR, e);
>        gsi_insert_after (&gsi, assign_stmt, GSI_CONTINUE_LINKING);
>      }
>    if (fd->collapse > 1)
> @@ -6666,7 +6665,7 @@ expand_omp_for_static_chunk (struct omp_
>        if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE (e)))
>       assign_stmt = gimple_build_assign (fd->loop.v, e);
>        else
> -     assign_stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, e);
> +     assign_stmt = gimple_build_assign (fd->loop.v, NOP_EXPR, e);
>        gsi_insert_after (&gsi, assign_stmt, GSI_CONTINUE_LINKING);
>      }
>    if (fd->collapse > 1)
> @@ -6934,8 +6933,8 @@ expand_cilk_for (struct omp_region *regi
>        gsi = gsi_last_bb (cont_bb);
>        stmt = gsi_stmt (gsi);
>        gcc_assert (gimple_code (stmt) == GIMPLE_OMP_CONTINUE);
> -      stmt = gimple_build_assign_with_ops (PLUS_EXPR, ind_var, ind_var,
> -                                        build_one_cst (type));
> +      stmt = gimple_build_assign (ind_var, PLUS_EXPR, ind_var,
> +                               build_one_cst (type));
>  
>        /* Replace GIMPLE_OMP_CONTINUE.  */
>        gsi_replace (&gsi, stmt, true);
> @@ -12121,9 +12120,8 @@ simd_clone_adjust (struct cgraph_node *n
>    edge e = make_edge (incr_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
>    e->probability = REG_BR_PROB_BASE;
>    gsi = gsi_last_bb (incr_bb);
> -  gimple g = gimple_build_assign_with_ops (PLUS_EXPR, iter2, iter1,
> -                                        build_int_cst (unsigned_type_node,
> -                                                       1));
> +  gimple g = gimple_build_assign (iter2, PLUS_EXPR, iter1,
> +                               build_int_cst (unsigned_type_node, 1));
>    gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
>  
>    /* Mostly annotate the loop for the vectorizer (the rest is done below).  
> */
> @@ -12239,8 +12237,7 @@ simd_clone_adjust (struct cgraph_node *n
>           if (need_cvt)
>             {
>               t = make_ssa_name (orig_arg);
> -             g = gimple_build_assign_with_ops (NOP_EXPR, t,
> -                                               gimple_call_lhs (g));
> +             g = gimple_build_assign (t, NOP_EXPR, gimple_call_lhs (g));
>               gimple_seq_add_stmt_without_update (&seq, g);
>             }
>           gsi_insert_seq_on_edge_immediate
> @@ -12284,7 +12281,7 @@ simd_clone_adjust (struct cgraph_node *n
>                          ? TREE_TYPE (orig_arg) : sizetype;
>           tree addcst
>             = build_int_cst (addtype, node->simdclone->args[i].linear_step);
> -         g = gimple_build_assign_with_ops (code, iter2, iter1, addcst);
> +         g = gimple_build_assign (iter2, code, iter1, addcst);
>           gsi = gsi_last_bb (incr_bb);
>           gsi_insert_before (&gsi, g, GSI_SAME_STMT);
>  
> --- gcc/trans-mem.c.jj        2014-12-01 10:44:28.038586171 +0100
> +++ gcc/trans-mem.c   2014-12-01 11:57:52.917813259 +0100
> @@ -2807,8 +2807,7 @@ expand_transaction (struct tm_region *re
>  
>        tree t1 = create_tmp_reg (tm_state_type);
>        tree t2 = build_int_cst (tm_state_type, A_RESTORELIVEVARIABLES);
> -      gimple stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, t1,
> -                                               tm_state, t2);
> +      gimple stmt = gimple_build_assign (t1, BIT_AND_EXPR, tm_state, t2);
>        gimple_stmt_iterator gsi = gsi_last_bb (test_bb);
>        gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING);
>  
> @@ -2848,8 +2847,7 @@ expand_transaction (struct tm_region *re
>  
>        tree t1 = create_tmp_reg (tm_state_type);
>        tree t2 = build_int_cst (tm_state_type, A_ABORTTRANSACTION);
> -      gimple stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, t1,
> -                                               tm_state, t2);
> +      gimple stmt = gimple_build_assign (t1, BIT_AND_EXPR, tm_state, t2);
>        gimple_stmt_iterator gsi = gsi_last_bb (test_bb);
>        gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING);
>  
> @@ -2891,8 +2889,7 @@ expand_transaction (struct tm_region *re
>        tree t1 = create_tmp_reg (tm_state_type);
>        tree t2 = build_int_cst (tm_state_type, A_RUNUNINSTRUMENTEDCODE);
>  
> -      gimple stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, t1,
> -                                               tm_state, t2);
> +      gimple stmt = gimple_build_assign (t1, BIT_AND_EXPR, tm_state, t2);
>        gimple_stmt_iterator gsi = gsi_last_bb (test_bb);
>        gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING);
>  
> --- gcc/tree-vect-data-refs.c.jj      2014-12-01 10:44:28.037586189 +0100
> +++ gcc/tree-vect-data-refs.c 2014-12-01 12:13:00.790149318 +0100
> @@ -4348,8 +4348,8 @@ bump_vector_ptr (tree dataref_ptr, gimpl
>      update = bump;
>  
>    new_dataref_ptr = copy_ssa_name (dataref_ptr);
> -  incr_stmt = gimple_build_assign_with_ops (POINTER_PLUS_EXPR, 
> new_dataref_ptr,
> -                                         dataref_ptr, update);
> +  incr_stmt = gimple_build_assign (new_dataref_ptr, POINTER_PLUS_EXPR,
> +                                dataref_ptr, update);
>    vect_finish_stmt_generation (stmt, incr_stmt, gsi);
>  
>    /* Copy the points-to information if it exists. */
> @@ -4640,9 +4640,8 @@ vect_permute_store_chain (vec<tree> dr_c
>                                 {j, nelt, *, j + 1, nelt + j + 1, *,
>                                  j + 2, nelt + j + 2, *, ...}>  */
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle3_low");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 vect1, vect2,
> -                                                 perm3_mask_low);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, vect1,
> +                                        vect2, perm3_mask_low);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>  
>         vect1 = data_ref;
> @@ -4652,9 +4651,8 @@ vect_permute_store_chain (vec<tree> dr_c
>                                 {0, 1, nelt + j, 3, 4, nelt + j + 1,
>                                  6, 7, nelt + j + 2, ...}>  */
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle3_high");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 vect1, vect2,
> -                                                 perm3_mask_high);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, vect1,
> +                                        vect2, perm3_mask_high);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>         (*result_chain)[j] = data_ref;
>       }
> @@ -4686,9 +4684,8 @@ vect_permute_store_chain (vec<tree> dr_c
>                  high = VEC_PERM_EXPR <vect1, vect2, {0, nelt, 1, nelt+1,
>                                                       ...}>  */
>               high = make_temp_ssa_name (vectype, NULL, "vect_inter_high");
> -             perm_stmt
> -               = gimple_build_assign_with_ops (VEC_PERM_EXPR, high,
> -                                               vect1, vect2, perm_mask_high);
> +             perm_stmt = gimple_build_assign (high, VEC_PERM_EXPR, vect1,
> +                                              vect2, perm_mask_high);
>               vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>               (*result_chain)[2*j] = high;
>  
> @@ -4697,9 +4694,8 @@ vect_permute_store_chain (vec<tree> dr_c
>                                       {nelt/2, nelt*3/2, nelt/2+1, nelt*3/2+1,
>                                        ...}>  */
>               low = make_temp_ssa_name (vectype, NULL, "vect_inter_low");
> -             perm_stmt
> -               = gimple_build_assign_with_ops (VEC_PERM_EXPR, low,
> -                                               vect1, vect2, perm_mask_low);
> +             perm_stmt = gimple_build_assign (low, VEC_PERM_EXPR, vect1,
> +                                              vect2, perm_mask_low);
>               vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>               (*result_chain)[2*j+1] = low;
>             }
> @@ -4880,8 +4876,8 @@ vect_setup_realignment (gimple stmt, gim
>                                     NULL_TREE, &init_addr, NULL, &inc,
>                                     true, &inv_p);
>        new_temp = copy_ssa_name (ptr);
> -      new_stmt = gimple_build_assign_with_ops
> -                (BIT_AND_EXPR, new_temp, ptr,
> +      new_stmt = gimple_build_assign
> +                (new_temp, BIT_AND_EXPR, ptr,
>                   build_int_cst (TREE_TYPE (ptr),
>                                  -(HOST_WIDE_INT)TYPE_ALIGN_UNIT (vectype)));
>        new_bb = gsi_insert_on_edge_immediate (pe, new_stmt);
> @@ -5194,9 +5190,8 @@ vect_permute_load_chain (vec<tree> dr_ch
>            low = VEC_PERM_EXPR <first_vect, second_vect2, {k, 3 + k, 6 + k,
>                                                            ...}>  */
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle3_low");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 first_vect, second_vect,
> -                                                 perm3_mask_low);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, first_vect,
> +                                        second_vect, perm3_mask_low);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>  
>         /* Create interleaving stmt (high part of):
> @@ -5205,9 +5200,8 @@ vect_permute_load_chain (vec<tree> dr_ch
>         first_vect = data_ref;
>         second_vect = dr_chain[2];
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle3_high");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 first_vect, second_vect,
> -                                                 perm3_mask_high);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, first_vect,
> +                                        second_vect, perm3_mask_high);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>         (*result_chain)[k] = data_ref;
>       }
> @@ -5234,17 +5228,17 @@ vect_permute_load_chain (vec<tree> dr_ch
>  
>             /* data_ref = permute_even (first_data_ref, second_data_ref);  */
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_even");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     first_vect, second_vect,
> -                                                     perm_mask_even);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            first_vect, second_vect,
> +                                            perm_mask_even);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             (*result_chain)[j/2] = data_ref;
>  
>             /* data_ref = permute_odd (first_data_ref, second_data_ref);  */
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_odd");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     first_vect, second_vect,
> -                                                     perm_mask_odd);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            first_vect, second_vect,
> +                                            perm_mask_odd);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             (*result_chain)[j/2+length/2] = data_ref;
>           }
> @@ -5431,30 +5425,28 @@ vect_shift_permute_load_chain (vec<tree>
>             second_vect = dr_chain[j + 1];
>  
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle2");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     first_vect, first_vect,
> -                                                     perm2_mask1);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            first_vect, first_vect,
> +                                            perm2_mask1);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             vect[0] = data_ref;
>  
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle2");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     second_vect, 
> second_vect,
> -                                                     perm2_mask2);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            second_vect, second_vect,
> +                                            perm2_mask2);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             vect[1] = data_ref;
>  
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_shift");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     vect[0], vect[1],
> -                                                     shift1_mask);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            vect[0], vect[1], shift1_mask);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             (*result_chain)[j/2 + length/2] = data_ref;
>  
>             data_ref = make_temp_ssa_name (vectype, NULL, "vect_select");
> -           perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                     vect[0], vect[1],
> -                                                     select_mask);
> +           perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                            vect[0], vect[1], select_mask);
>             vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>             (*result_chain)[j/2] = data_ref;
>           }
> @@ -5544,9 +5536,9 @@ vect_shift_permute_load_chain (vec<tree>
>        for (k = 0; k < 3; k++)
>       {
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shuffle3");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 dr_chain[k], dr_chain[k],
> -                                                 perm3_mask);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                        dr_chain[k], dr_chain[k],
> +                                        perm3_mask);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>         vect[k] = data_ref;
>       }
> @@ -5554,10 +5546,9 @@ vect_shift_permute_load_chain (vec<tree>
>        for (k = 0; k < 3; k++)
>       {
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shift1");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 vect[k % 3],
> -                                                 vect[(k + 1) % 3],
> -                                                 shift1_mask);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                        vect[k % 3], vect[(k + 1) % 3],
> +                                        shift1_mask);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>         vect_shift[k] = data_ref;
>       }
> @@ -5565,10 +5556,10 @@ vect_shift_permute_load_chain (vec<tree>
>        for (k = 0; k < 3; k++)
>       {
>         data_ref = make_temp_ssa_name (vectype, NULL, "vect_shift2");
> -       perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                                 vect_shift[(4 - k) % 3],
> -                                                 vect_shift[(3 - k) % 3],
> -                                                 shift2_mask);
> +       perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR,
> +                                        vect_shift[(4 - k) % 3],
> +                                        vect_shift[(3 - k) % 3],
> +                                        shift2_mask);
>         vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>         vect[k] = data_ref;
>       }
> @@ -5576,16 +5567,14 @@ vect_shift_permute_load_chain (vec<tree>
>        (*result_chain)[3 - (nelt % 3)] = vect[2];
>  
>        data_ref = make_temp_ssa_name (vectype, NULL, "vect_shift3");
> -      perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                             vect[0], vect[0],
> -                                             shift3_mask);
> +      perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, vect[0],
> +                                    vect[0], shift3_mask);
>        vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>        (*result_chain)[nelt % 3] = data_ref;
>  
>        data_ref = make_temp_ssa_name (vectype, NULL, "vect_shift4");
> -      perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                             vect[1], vect[1],
> -                                             shift4_mask);
> +      perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, vect[1],
> +                                    vect[1], shift4_mask);
>        vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>        (*result_chain)[0] = data_ref;
>        return true;
> --- gcc/tree-vect-stmts.c.jj  2014-12-01 10:44:28.047586011 +0100
> +++ gcc/tree-vect-stmts.c     2014-12-01 12:33:20.373052887 +0100
> @@ -1332,8 +1332,7 @@ vect_init_vector (gimple stmt, tree val,
>         else
>           {
>             new_temp = make_ssa_name (TREE_TYPE (type));
> -           init_stmt = gimple_build_assign_with_ops (NOP_EXPR,
> -                                                     new_temp, val);
> +           init_stmt = gimple_build_assign (new_temp, NOP_EXPR, val);
>             vect_init_vector_1 (stmt, init_stmt, gsi);
>             val = new_temp;
>           }
> @@ -1969,7 +1968,7 @@ vectorizable_mask_load_store (gimple stm
>             var = make_ssa_name (var);
>             op = build1 (VIEW_CONVERT_EXPR, idxtype, op);
>             new_stmt
> -             = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR, var, op);
> +             = gimple_build_assign (var, VIEW_CONVERT_EXPR, op);
>             vect_finish_stmt_generation (stmt, new_stmt, gsi);
>             op = var;
>           }
> @@ -1998,8 +1997,7 @@ vectorizable_mask_load_store (gimple stm
>                 var = make_ssa_name (var);
>                 mask_op = build1 (VIEW_CONVERT_EXPR, masktype, mask_op);
>                 new_stmt
> -                 = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR, var,
> -                                                 mask_op);
> +                 = gimple_build_assign (var, VIEW_CONVERT_EXPR, mask_op);
>                 vect_finish_stmt_generation (stmt, new_stmt, gsi);
>                 mask_op = var;
>               }
> @@ -2019,8 +2017,7 @@ vectorizable_mask_load_store (gimple stm
>             vect_finish_stmt_generation (stmt, new_stmt, gsi);
>             var = make_ssa_name (vec_dest);
>             op = build1 (VIEW_CONVERT_EXPR, vectype, op);
> -           new_stmt
> -             = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR, var, op);
> +           new_stmt = gimple_build_assign (var, VIEW_CONVERT_EXPR, op);
>           }
>         else
>           {
> @@ -3049,8 +3046,8 @@ vectorizable_simd_clone_call (gimple stm
>                              ncopies * nunits);
>                 tree tcst = wide_int_to_tree (type, cst);
>                 tree phi_arg = copy_ssa_name (op);
> -               new_stmt = gimple_build_assign_with_ops (code, phi_arg,
> -                                                        phi_res, tcst);
> +               new_stmt
> +                 = gimple_build_assign (phi_arg, code, phi_res, tcst);
>                 gimple_stmt_iterator si = gsi_after_labels (loop->header);
>                 gsi_insert_after (&si, new_stmt, GSI_NEW_STMT);
>                 set_vinfo_for_stmt (new_stmt,
> @@ -3073,9 +3070,8 @@ vectorizable_simd_clone_call (gimple stm
>                              j * nunits);
>                 tree tcst = wide_int_to_tree (type, cst);
>                 new_temp = make_ssa_name (TREE_TYPE (op));
> -               new_stmt
> -                 = gimple_build_assign_with_ops (code, new_temp,
> -                                                 arginfo[i].op, tcst);
> +               new_stmt = gimple_build_assign (new_temp, code,
> +                                               arginfo[i].op, tcst);
>                 vect_finish_stmt_generation (stmt, new_stmt, gsi);
>                 vargs.safe_push (new_temp);
>               }
> @@ -3275,8 +3271,7 @@ vect_gen_widened_results_half (enum tree
>        gcc_assert (op_type == TREE_CODE_LENGTH (code));
>        if (op_type != binary_op)
>       vec_oprnd1 = NULL;
> -      new_stmt = gimple_build_assign_with_ops (code, vec_dest, vec_oprnd0,
> -                                            vec_oprnd1);
> +      new_stmt = gimple_build_assign (vec_dest, code, vec_oprnd0, 
> vec_oprnd1);
>        new_temp = make_ssa_name (vec_dest, new_stmt);
>        gimple_assign_set_lhs (new_stmt, new_temp);
>      }
> @@ -3346,7 +3341,7 @@ vect_create_vectorized_demotion_stmts (v
>        /* Create demotion operation.  */
>        vop0 = (*vec_oprnds)[i];
>        vop1 = (*vec_oprnds)[i + 1];
> -      new_stmt = gimple_build_assign_with_ops (code, vec_dest, vop0, vop1);
> +      new_stmt = gimple_build_assign (vec_dest, code, vop0, vop1);
>        new_tmp = make_ssa_name (vec_dest, new_stmt);
>        gimple_assign_set_lhs (new_stmt, new_tmp);
>        vect_finish_stmt_generation (stmt, new_stmt, gsi);
> @@ -3826,8 +3821,7 @@ vectorizable_conversion (gimple stmt, gi
>             else
>               {
>                 gcc_assert (TREE_CODE_LENGTH (code1) == unary_op);
> -               new_stmt = gimple_build_assign_with_ops (code1, vec_dest,
> -                                                        vop0);
> +               new_stmt = gimple_build_assign (vec_dest, code1, vop0);
>                 new_temp = make_ssa_name (vec_dest, new_stmt);
>                 gimple_assign_set_lhs (new_stmt, new_temp);
>               }
> @@ -3938,8 +3932,8 @@ vectorizable_conversion (gimple stmt, gi
>                   {
>                     gcc_assert (TREE_CODE_LENGTH (codecvt1) == unary_op);
>                     new_temp = make_ssa_name (vec_dest);
> -                   new_stmt = gimple_build_assign_with_ops (codecvt1,
> -                                                            new_temp, vop0);
> +                   new_stmt = gimple_build_assign (new_temp, codecvt1,
> +                                                   vop0);
>                   }
>  
>                 vect_finish_stmt_generation (stmt, new_stmt, gsi);
> @@ -3995,8 +3989,8 @@ vectorizable_conversion (gimple stmt, gi
>                 {
>                   gcc_assert (TREE_CODE_LENGTH (codecvt1) == unary_op);
>                   new_temp = make_ssa_name (vec_dest);
> -                 new_stmt = gimple_build_assign_with_ops (codecvt1, new_temp,
> -                                                          vop0);
> +                 new_stmt = gimple_build_assign (new_temp, codecvt1,
> +                                                 vop0);
>                 }
>  
>               vect_finish_stmt_generation (stmt, new_stmt, gsi);
> @@ -4557,7 +4551,7 @@ vectorizable_shift (gimple stmt, gimple_
>        FOR_EACH_VEC_ELT (vec_oprnds0, i, vop0)
>          {
>            vop1 = vec_oprnds1[i];
> -          new_stmt = gimple_build_assign_with_ops (code, vec_dest, vop0, 
> vop1);
> +       new_stmt = gimple_build_assign (vec_dest, code, vop0, vop1);
>            new_temp = make_ssa_name (vec_dest, new_stmt);
>            gimple_assign_set_lhs (new_stmt, new_temp);
>            vect_finish_stmt_generation (stmt, new_stmt, gsi);
> @@ -4910,8 +4904,7 @@ vectorizable_operation (gimple stmt, gim
>                 ? vec_oprnds1[i] : NULL_TREE);
>         vop2 = ((op_type == ternary_op)
>                 ? vec_oprnds2[i] : NULL_TREE);
> -       new_stmt = gimple_build_assign_with_ops (code, vec_dest,
> -                                                vop0, vop1, vop2);
> +       new_stmt = gimple_build_assign (vec_dest, code, vop0, vop1, vop2);
>         new_temp = make_ssa_name (vec_dest, new_stmt);
>         gimple_assign_set_lhs (new_stmt, new_temp);
>         vect_finish_stmt_generation (stmt, new_stmt, gsi);
> @@ -5467,9 +5460,8 @@ vectorizable_store (gimple stmt, gimple_
>  
>                 /* Generate the permute statement.  */
>                 gimple perm_stmt 
> -                 = gimple_build_assign_with_ops (VEC_PERM_EXPR, new_temp,
> -                                                 vec_oprnd, vec_oprnd,
> -                                                 perm_mask);
> +                 = gimple_build_assign (new_temp, VEC_PERM_EXPR, vec_oprnd,
> +                                        vec_oprnd, perm_mask);
>                 vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>  
>                 perm_stmt = SSA_NAME_DEF_STMT (new_temp);
> @@ -5558,8 +5550,7 @@ permute_vec_elements (tree x, tree y, tr
>    data_ref = make_ssa_name (perm_dest);
>  
>    /* Generate the permute statement.  */
> -  perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
> -                                         x, y, mask_vec);
> +  perm_stmt = gimple_build_assign (data_ref, VEC_PERM_EXPR, x, y, mask_vec);
>    vect_finish_stmt_generation (stmt, perm_stmt, gsi);
>  
>    return data_ref;
> @@ -5994,7 +5985,7 @@ vectorizable_load (gimple stmt, gimple_s
>             var = make_ssa_name (var);
>             op = build1 (VIEW_CONVERT_EXPR, idxtype, op);
>             new_stmt
> -             = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR, var, op);
> +             = gimple_build_assign (var, VIEW_CONVERT_EXPR, op);
>             vect_finish_stmt_generation (stmt, new_stmt, gsi);
>             op = var;
>           }
> @@ -6013,7 +6004,7 @@ vectorizable_load (gimple stmt, gimple_s
>             var = make_ssa_name (vec_dest);
>             op = build1 (VIEW_CONVERT_EXPR, vectype, op);
>             new_stmt
> -             = gimple_build_assign_with_ops (VIEW_CONVERT_EXPR, var, op);
> +             = gimple_build_assign (var, VIEW_CONVERT_EXPR, op);
>           }
>         else
>           {
> @@ -6117,8 +6108,8 @@ vectorizable_load (gimple stmt, gimple_s
>                                                GSI_SAME_STMT);
>             CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, newref);
>             newoff = copy_ssa_name (running_off);
> -           incr = gimple_build_assign_with_ops (POINTER_PLUS_EXPR, newoff,
> -                                                running_off, stride_step);
> +           incr = gimple_build_assign (newoff, POINTER_PLUS_EXPR,
> +                                       running_off, stride_step);
>             vect_finish_stmt_generation (stmt, incr, gsi);
>  
>             running_off = newoff;
> @@ -6456,8 +6447,8 @@ vectorizable_load (gimple stmt, gimple_s
>                                                   dataref_ptr, NULL);
>  
>                   ptr = copy_ssa_name (dataref_ptr);
> -                 new_stmt = gimple_build_assign_with_ops
> -                              (BIT_AND_EXPR, ptr, dataref_ptr,
> +                 new_stmt = gimple_build_assign
> +                              (ptr, BIT_AND_EXPR, dataref_ptr,
>                                 build_int_cst
>                                 (TREE_TYPE (dataref_ptr),
>                                  -(HOST_WIDE_INT)TYPE_ALIGN_UNIT (vectype)));
> @@ -6479,8 +6470,8 @@ vectorizable_load (gimple stmt, gimple_s
>                   bump = size_binop (MULT_EXPR, vs_minus_1,
>                                      TYPE_SIZE_UNIT (elem_type));
>                   ptr = bump_vector_ptr (dataref_ptr, NULL, gsi, stmt, bump);
> -                 new_stmt = gimple_build_assign_with_ops
> -                              (BIT_AND_EXPR, NULL_TREE, ptr,
> +                 new_stmt = gimple_build_assign
> +                              (NULL_TREE, BIT_AND_EXPR, ptr,
>                                 build_int_cst
>                                 (TREE_TYPE (ptr),
>                                  -(HOST_WIDE_INT)TYPE_ALIGN_UNIT (vectype)));
> @@ -6495,8 +6486,8 @@ vectorizable_load (gimple stmt, gimple_s
>                 }
>               case dr_explicit_realign_optimized:
>                 new_temp = copy_ssa_name (dataref_ptr);
> -               new_stmt = gimple_build_assign_with_ops
> -                            (BIT_AND_EXPR, new_temp, dataref_ptr,
> +               new_stmt = gimple_build_assign
> +                            (new_temp, BIT_AND_EXPR, dataref_ptr,
>                               build_int_cst
>                                 (TREE_TYPE (dataref_ptr),
>                                  -(HOST_WIDE_INT)TYPE_ALIGN_UNIT (vectype)));
> @@ -6525,10 +6516,8 @@ vectorizable_load (gimple stmt, gimple_s
>                 if (!realignment_token)
>                   realignment_token = dataref_ptr;
>                 vec_dest = vect_create_destination_var (scalar_dest, vectype);
> -               new_stmt
> -                 = gimple_build_assign_with_ops (REALIGN_LOAD_EXPR,
> -                                                 vec_dest, msq, lsq,
> -                                                 realignment_token);
> +               new_stmt = gimple_build_assign (vec_dest, REALIGN_LOAD_EXPR,
> +                                               msq, lsq, realignment_token);
>                 new_temp = make_ssa_name (vec_dest, new_stmt);
>                 gimple_assign_set_lhs (new_stmt, new_temp);
>                 vect_finish_stmt_generation (stmt, new_stmt, gsi);
> 
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendoerffer, HRB 21284
(AG Nuernberg)
Maxfeldstrasse 5, 90409 Nuernberg, Germany

Reply via email to