Commit 0d451405 by Richard Guenther Committed by Richard Biener

tree-vrp.c (build_assert_expr_for, [...]): Use buildN instead of build.

2005-12-02  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
	simplify_cond_using_ranges): Use buildN instead of build.
	* tree-tailcall.c (adjust_accumulator_values,
	adjust_return_value): Likewise.
	* tree-sra.c (generate_one_element_ref, generate_copy_inout,
	generate_element_copy, generate_element_zero,
	generate_one_element_init): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
	* lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
	lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
	perfect_nestify): Likewise.

From-SVN: r107894
parent 69f8a2d6
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
simplify_cond_using_ranges): Use buildN instead of build.
* tree-tailcall.c (adjust_accumulator_values,
adjust_return_value): Likewise.
* tree-sra.c (generate_one_element_ref, generate_copy_inout,
generate_element_copy, generate_element_zero,
generate_one_element_init): Likewise.
* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
* lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
perfect_nestify): Likewise.
2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (pa_secondary_reload): Revise initialization of variable regno. * pa.c (pa_secondary_reload): Revise initialization of variable regno.
......
...@@ -1434,8 +1434,8 @@ gcc_loop_to_lambda_loop (struct loop *loop, int depth, ...@@ -1434,8 +1434,8 @@ gcc_loop_to_lambda_loop (struct loop *loop, int depth,
ubound = gcc_tree_to_linear_expression (depth, uboundvar, ubound = gcc_tree_to_linear_expression (depth, uboundvar,
outerinductionvars, outerinductionvars,
*invariants, extra); *invariants, extra);
uboundresult = build (PLUS_EXPR, TREE_TYPE (uboundvar), uboundvar, uboundresult = build2 (PLUS_EXPR, TREE_TYPE (uboundvar), uboundvar,
build_int_cst (TREE_TYPE (uboundvar), extra)); build_int_cst (TREE_TYPE (uboundvar), extra));
VEC_safe_push (tree, heap, *uboundvars, uboundresult); VEC_safe_push (tree, heap, *uboundvars, uboundresult);
VEC_safe_push (tree, heap, *lboundvars, lboundvar); VEC_safe_push (tree, heap, *lboundvars, lboundvar);
VEC_safe_push (int, heap, *steps, stepint); VEC_safe_push (int, heap, *steps, stepint);
...@@ -1576,7 +1576,7 @@ lbv_to_gcc_expression (lambda_body_vector lbv, ...@@ -1576,7 +1576,7 @@ lbv_to_gcc_expression (lambda_body_vector lbv,
add_referenced_tmp_var (resvar); add_referenced_tmp_var (resvar);
/* Start at 0. */ /* Start at 0. */
stmt = build (MODIFY_EXPR, void_type_node, resvar, integer_zero_node); stmt = build2 (MODIFY_EXPR, void_type_node, resvar, integer_zero_node);
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
tsi = tsi_last (stmts); tsi = tsi_last (stmts);
...@@ -1591,8 +1591,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv, ...@@ -1591,8 +1591,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv,
/* newname = coefficient * induction_variable */ /* newname = coefficient * induction_variable */
coeffmult = build_int_cst (type, LBV_COEFFICIENTS (lbv)[i]); coeffmult = build_int_cst (type, LBV_COEFFICIENTS (lbv)[i]);
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
fold_build2 (MULT_EXPR, type, iv, coeffmult)); fold_build2 (MULT_EXPR, type, iv, coeffmult));
newname = make_ssa_name (resvar, stmt); newname = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = newname; TREE_OPERAND (stmt, 0) = newname;
...@@ -1601,8 +1601,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv, ...@@ -1601,8 +1601,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv,
tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING); tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING);
/* name = name + newname */ /* name = name + newname */
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (PLUS_EXPR, type, name, newname)); build2 (PLUS_EXPR, type, name, newname));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1616,8 +1616,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv, ...@@ -1616,8 +1616,8 @@ lbv_to_gcc_expression (lambda_body_vector lbv,
if (LBV_DENOMINATOR (lbv) != 1) if (LBV_DENOMINATOR (lbv) != 1)
{ {
tree denominator = build_int_cst (type, LBV_DENOMINATOR (lbv)); tree denominator = build_int_cst (type, LBV_DENOMINATOR (lbv));
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (CEIL_DIV_EXPR, type, name, denominator)); build2 (CEIL_DIV_EXPR, type, name, denominator));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1667,7 +1667,7 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1667,7 +1667,7 @@ lle_to_gcc_expression (lambda_linear_expression lle,
for (; lle != NULL; lle = LLE_NEXT (lle)) for (; lle != NULL; lle = LLE_NEXT (lle))
{ {
/* Start at name = 0. */ /* Start at name = 0. */
stmt = build (MODIFY_EXPR, void_type_node, resvar, integer_zero_node); stmt = build2 (MODIFY_EXPR, void_type_node, resvar, integer_zero_node);
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1698,7 +1698,7 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1698,7 +1698,7 @@ lle_to_gcc_expression (lambda_linear_expression lle,
} }
/* newname = mult */ /* newname = mult */
stmt = build (MODIFY_EXPR, void_type_node, resvar, mult); stmt = build2 (MODIFY_EXPR, void_type_node, resvar, mult);
newname = make_ssa_name (resvar, stmt); newname = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = newname; TREE_OPERAND (stmt, 0) = newname;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1706,8 +1706,8 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1706,8 +1706,8 @@ lle_to_gcc_expression (lambda_linear_expression lle,
tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING); tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING);
/* name = name + newname */ /* name = name + newname */
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (PLUS_EXPR, type, name, newname)); build2 (PLUS_EXPR, type, name, newname));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1739,7 +1739,7 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1739,7 +1739,7 @@ lle_to_gcc_expression (lambda_linear_expression lle,
} }
/* newname = mult */ /* newname = mult */
stmt = build (MODIFY_EXPR, void_type_node, resvar, mult); stmt = build2 (MODIFY_EXPR, void_type_node, resvar, mult);
newname = make_ssa_name (resvar, stmt); newname = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = newname; TREE_OPERAND (stmt, 0) = newname;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1747,8 +1747,8 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1747,8 +1747,8 @@ lle_to_gcc_expression (lambda_linear_expression lle,
tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING); tsi_link_after (&tsi, stmt, TSI_CONTINUE_LINKING);
/* name = name + newname */ /* name = name + newname */
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (PLUS_EXPR, type, name, newname)); build2 (PLUS_EXPR, type, name, newname));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1761,9 +1761,9 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1761,9 +1761,9 @@ lle_to_gcc_expression (lambda_linear_expression lle,
name = name + constant. */ name = name + constant. */
if (LLE_CONSTANT (lle) != 0) if (LLE_CONSTANT (lle) != 0)
{ {
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (PLUS_EXPR, type, name, build2 (PLUS_EXPR, type, name,
build_int_cst (type, LLE_CONSTANT (lle)))); build_int_cst (type, LLE_CONSTANT (lle))));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1775,9 +1775,9 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1775,9 +1775,9 @@ lle_to_gcc_expression (lambda_linear_expression lle,
name = name + linear offset. */ name = name + linear offset. */
if (LLE_CONSTANT (offset) != 0) if (LLE_CONSTANT (offset) != 0)
{ {
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (PLUS_EXPR, type, name, build2 (PLUS_EXPR, type, name,
build_int_cst (type, LLE_CONSTANT (offset)))); build_int_cst (type, LLE_CONSTANT (offset))));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
fold_stmt (&stmt); fold_stmt (&stmt);
...@@ -1789,9 +1789,9 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1789,9 +1789,9 @@ lle_to_gcc_expression (lambda_linear_expression lle,
if (LLE_DENOMINATOR (lle) != 1) if (LLE_DENOMINATOR (lle) != 1)
{ {
stmt = build_int_cst (type, LLE_DENOMINATOR (lle)); stmt = build_int_cst (type, LLE_DENOMINATOR (lle));
stmt = build (wrap == MAX_EXPR ? CEIL_DIV_EXPR : FLOOR_DIV_EXPR, stmt = build2 (wrap == MAX_EXPR ? CEIL_DIV_EXPR : FLOOR_DIV_EXPR,
type, name, stmt); type, name, stmt);
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt); stmt = build2 (MODIFY_EXPR, void_type_node, resvar, stmt);
/* name = {ceil, floor}(name/denominator) */ /* name = {ceil, floor}(name/denominator) */
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
...@@ -1811,8 +1811,8 @@ lle_to_gcc_expression (lambda_linear_expression lle, ...@@ -1811,8 +1811,8 @@ lle_to_gcc_expression (lambda_linear_expression lle,
{ {
tree op1 = VEC_index (tree, results, 0); tree op1 = VEC_index (tree, results, 0);
tree op2 = VEC_index (tree, results, 1); tree op2 = VEC_index (tree, results, 1);
stmt = build (MODIFY_EXPR, void_type_node, resvar, stmt = build2 (MODIFY_EXPR, void_type_node, resvar,
build (wrap, type, op1, op2)); build2 (wrap, type, op1, op2));
name = make_ssa_name (resvar, stmt); name = make_ssa_name (resvar, stmt);
TREE_OPERAND (stmt, 0) = name; TREE_OPERAND (stmt, 0) = name;
tsi = tsi_last (stmts); tsi = tsi_last (stmts);
...@@ -1927,10 +1927,10 @@ lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest, ...@@ -1927,10 +1927,10 @@ lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest,
dominate the block containing the exit condition. dominate the block containing the exit condition.
So we simply create our own incremented iv to use in the new exit So we simply create our own incremented iv to use in the new exit
test, and let redundancy elimination sort it out. */ test, and let redundancy elimination sort it out. */
inc_stmt = build (PLUS_EXPR, type, inc_stmt = build2 (PLUS_EXPR, type,
ivvar, build_int_cst (type, LL_STEP (newloop))); ivvar, build_int_cst (type, LL_STEP (newloop)));
inc_stmt = build (MODIFY_EXPR, void_type_node, SSA_NAME_VAR (ivvar), inc_stmt = build2 (MODIFY_EXPR, void_type_node, SSA_NAME_VAR (ivvar),
inc_stmt); inc_stmt);
ivvarinced = make_ssa_name (SSA_NAME_VAR (ivvar), inc_stmt); ivvarinced = make_ssa_name (SSA_NAME_VAR (ivvar), inc_stmt);
TREE_OPERAND (inc_stmt, 0) = ivvarinced; TREE_OPERAND (inc_stmt, 0) = ivvarinced;
bsi = bsi_for_stmt (exitcond); bsi = bsi_for_stmt (exitcond);
...@@ -1948,9 +1948,9 @@ lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest, ...@@ -1948,9 +1948,9 @@ lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest,
if (exit->flags & EDGE_FALSE_VALUE) if (exit->flags & EDGE_FALSE_VALUE)
testtype = swap_tree_comparison (testtype); testtype = swap_tree_comparison (testtype);
COND_EXPR_COND (exitcond) = build (testtype, COND_EXPR_COND (exitcond) = build2 (testtype,
boolean_type_node, boolean_type_node,
newupperbound, ivvarinced); newupperbound, ivvarinced);
update_stmt (exitcond); update_stmt (exitcond);
VEC_replace (tree, new_ivs, i, ivvar); VEC_replace (tree, new_ivs, i, ivvar);
...@@ -2424,11 +2424,11 @@ perfect_nestify (struct loops *loops, ...@@ -2424,11 +2424,11 @@ perfect_nestify (struct loops *loops,
make_edge (headerbb, bodybb, EDGE_FALLTHRU); make_edge (headerbb, bodybb, EDGE_FALLTHRU);
then_label = build1 (GOTO_EXPR, void_type_node, tree_block_label (latchbb)); then_label = build1 (GOTO_EXPR, void_type_node, tree_block_label (latchbb));
else_label = build1 (GOTO_EXPR, void_type_node, tree_block_label (olddest)); else_label = build1 (GOTO_EXPR, void_type_node, tree_block_label (olddest));
cond_stmt = build (COND_EXPR, void_type_node, cond_stmt = build3 (COND_EXPR, void_type_node,
build (NE_EXPR, boolean_type_node, build2 (NE_EXPR, boolean_type_node,
integer_one_node, integer_one_node,
integer_zero_node), integer_zero_node),
then_label, else_label); then_label, else_label);
bsi = bsi_start (bodybb); bsi = bsi_start (bodybb);
bsi_insert_after (&bsi, cond_stmt, BSI_NEW_STMT); bsi_insert_after (&bsi, cond_stmt, BSI_NEW_STMT);
e = make_edge (bodybb, olddest, EDGE_FALSE_VALUE); e = make_edge (bodybb, olddest, EDGE_FALSE_VALUE);
...@@ -2464,8 +2464,8 @@ perfect_nestify (struct loops *loops, ...@@ -2464,8 +2464,8 @@ perfect_nestify (struct loops *loops,
exit_condition = get_loop_exit_condition (newloop); exit_condition = get_loop_exit_condition (newloop);
uboundvar = create_tmp_var (integer_type_node, "uboundvar"); uboundvar = create_tmp_var (integer_type_node, "uboundvar");
add_referenced_tmp_var (uboundvar); add_referenced_tmp_var (uboundvar);
stmt = build (MODIFY_EXPR, void_type_node, uboundvar, stmt = build2 (MODIFY_EXPR, void_type_node, uboundvar,
VEC_index (tree, ubounds, 0)); VEC_index (tree, ubounds, 0));
uboundvar = make_ssa_name (uboundvar, stmt); uboundvar = make_ssa_name (uboundvar, stmt);
TREE_OPERAND (stmt, 0) = uboundvar; TREE_OPERAND (stmt, 0) = uboundvar;
...@@ -2474,10 +2474,10 @@ perfect_nestify (struct loops *loops, ...@@ -2474,10 +2474,10 @@ perfect_nestify (struct loops *loops,
else else
bsi_insert_before (&bsi, stmt, BSI_SAME_STMT); bsi_insert_before (&bsi, stmt, BSI_SAME_STMT);
update_stmt (stmt); update_stmt (stmt);
COND_EXPR_COND (exit_condition) = build (GE_EXPR, COND_EXPR_COND (exit_condition) = build2 (GE_EXPR,
boolean_type_node, boolean_type_node,
uboundvar, uboundvar,
ivvarinced); ivvarinced);
update_stmt (exit_condition); update_stmt (exit_condition);
bbs = get_loop_body_in_dom_order (loop); bbs = get_loop_body_in_dom_order (loop);
/* Now move the statements, and replace the induction variable in the moved /* Now move the statements, and replace the induction variable in the moved
......
...@@ -1511,17 +1511,17 @@ generate_one_element_ref (struct sra_elt *elt, tree base) ...@@ -1511,17 +1511,17 @@ generate_one_element_ref (struct sra_elt *elt, tree base)
if (DECL_FIELD_CONTEXT (field) != TYPE_MAIN_VARIANT (TREE_TYPE (base))) if (DECL_FIELD_CONTEXT (field) != TYPE_MAIN_VARIANT (TREE_TYPE (base)))
field = find_compatible_field (TREE_TYPE (base), field); field = find_compatible_field (TREE_TYPE (base), field);
return build (COMPONENT_REF, elt->type, base, field, NULL); return build3 (COMPONENT_REF, elt->type, base, field, NULL);
} }
case ARRAY_TYPE: case ARRAY_TYPE:
return build (ARRAY_REF, elt->type, base, elt->element, NULL, NULL); return build4 (ARRAY_REF, elt->type, base, elt->element, NULL, NULL);
case COMPLEX_TYPE: case COMPLEX_TYPE:
if (elt->element == integer_zero_node) if (elt->element == integer_zero_node)
return build (REALPART_EXPR, elt->type, base); return build1 (REALPART_EXPR, elt->type, base);
else else
return build (IMAGPART_EXPR, elt->type, base); return build1 (IMAGPART_EXPR, elt->type, base);
default: default:
gcc_unreachable (); gcc_unreachable ();
...@@ -1561,17 +1561,17 @@ generate_copy_inout (struct sra_elt *elt, bool copy_out, tree expr, ...@@ -1561,17 +1561,17 @@ generate_copy_inout (struct sra_elt *elt, bool copy_out, tree expr,
c = lookup_element (elt, integer_one_node, NULL, NO_INSERT); c = lookup_element (elt, integer_one_node, NULL, NO_INSERT);
i = c->replacement; i = c->replacement;
t = build (COMPLEX_EXPR, elt->type, r, i); t = build2 (COMPLEX_EXPR, elt->type, r, i);
t = build (MODIFY_EXPR, void_type_node, expr, t); t = build2 (MODIFY_EXPR, void_type_node, expr, t);
SSA_NAME_DEF_STMT (expr) = t; SSA_NAME_DEF_STMT (expr) = t;
append_to_statement_list (t, list_p); append_to_statement_list (t, list_p);
} }
else if (elt->replacement) else if (elt->replacement)
{ {
if (copy_out) if (copy_out)
t = build (MODIFY_EXPR, void_type_node, elt->replacement, expr); t = build2 (MODIFY_EXPR, void_type_node, elt->replacement, expr);
else else
t = build (MODIFY_EXPR, void_type_node, expr, elt->replacement); t = build2 (MODIFY_EXPR, void_type_node, expr, elt->replacement);
append_to_statement_list (t, list_p); append_to_statement_list (t, list_p);
} }
else else
...@@ -1606,8 +1606,8 @@ generate_element_copy (struct sra_elt *dst, struct sra_elt *src, tree *list_p) ...@@ -1606,8 +1606,8 @@ generate_element_copy (struct sra_elt *dst, struct sra_elt *src, tree *list_p)
gcc_assert (src->replacement); gcc_assert (src->replacement);
t = build (MODIFY_EXPR, void_type_node, dst->replacement, t = build2 (MODIFY_EXPR, void_type_node, dst->replacement,
src->replacement); src->replacement);
append_to_statement_list (t, list_p); append_to_statement_list (t, list_p);
} }
} }
...@@ -1638,7 +1638,7 @@ generate_element_zero (struct sra_elt *elt, tree *list_p) ...@@ -1638,7 +1638,7 @@ generate_element_zero (struct sra_elt *elt, tree *list_p)
gcc_assert (elt->is_scalar); gcc_assert (elt->is_scalar);
t = fold_convert (elt->type, integer_zero_node); t = fold_convert (elt->type, integer_zero_node);
t = build (MODIFY_EXPR, void_type_node, elt->replacement, t); t = build2 (MODIFY_EXPR, void_type_node, elt->replacement, t);
append_to_statement_list (t, list_p); append_to_statement_list (t, list_p);
} }
} }
...@@ -1650,7 +1650,7 @@ static void ...@@ -1650,7 +1650,7 @@ static void
generate_one_element_init (tree var, tree init, tree *list_p) generate_one_element_init (tree var, tree init, tree *list_p)
{ {
/* The replacement can be almost arbitrarily complex. Gimplify. */ /* The replacement can be almost arbitrarily complex. Gimplify. */
tree stmt = build (MODIFY_EXPR, void_type_node, var, init); tree stmt = build2 (MODIFY_EXPR, void_type_node, var, init);
gimplify_and_add (stmt, list_p); gimplify_and_add (stmt, list_p);
} }
......
...@@ -244,7 +244,7 @@ forward_propagate_into_cond_1 (tree cond, tree *test_var_p) ...@@ -244,7 +244,7 @@ forward_propagate_into_cond_1 (tree cond, tree *test_var_p)
if (!is_gimple_val (t)) if (!is_gimple_val (t))
return NULL_TREE; return NULL_TREE;
new_cond = build (cond_code, boolean_type_node, op0, t); new_cond = build2 (cond_code, boolean_type_node, op0, t);
} }
} }
...@@ -285,8 +285,8 @@ forward_propagate_into_cond_1 (tree cond, tree *test_var_p) ...@@ -285,8 +285,8 @@ forward_propagate_into_cond_1 (tree cond, tree *test_var_p)
if (has_single_use (test_var)) if (has_single_use (test_var))
{ {
/* TEST_VAR was set from a relational operator. */ /* TEST_VAR was set from a relational operator. */
new_cond = build (TREE_CODE (def_rhs), new_cond = build2 (TREE_CODE (def_rhs),
boolean_type_node, op0, op1); boolean_type_node, op0, op1);
/* Invert the conditional if necessary. */ /* Invert the conditional if necessary. */
if ((cond_code == EQ_EXPR if ((cond_code == EQ_EXPR
......
...@@ -559,8 +559,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back) ...@@ -559,8 +559,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back)
var = m_acc; var = m_acc;
else else
{ {
stmt = build (MODIFY_EXPR, ret_type, NULL_TREE, stmt = build2 (MODIFY_EXPR, ret_type, NULL_TREE,
build (MULT_EXPR, ret_type, m_acc, a)); build2 (MULT_EXPR, ret_type, m_acc, a));
tmp = create_tmp_var (ret_type, "acc_tmp"); tmp = create_tmp_var (ret_type, "acc_tmp");
add_referenced_tmp_var (tmp); add_referenced_tmp_var (tmp);
...@@ -573,8 +573,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back) ...@@ -573,8 +573,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back)
else else
var = a; var = a;
stmt = build (MODIFY_EXPR, ret_type, NULL_TREE, stmt = build2 (MODIFY_EXPR, ret_type, NULL_TREE,
build (PLUS_EXPR, ret_type, a_acc, var)); build2 (PLUS_EXPR, ret_type, a_acc, var));
var = make_ssa_name (SSA_NAME_VAR (a_acc), stmt); var = make_ssa_name (SSA_NAME_VAR (a_acc), stmt);
TREE_OPERAND (stmt, 0) = var; TREE_OPERAND (stmt, 0) = var;
bsi_insert_after (&bsi, stmt, BSI_NEW_STMT); bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
...@@ -583,8 +583,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back) ...@@ -583,8 +583,8 @@ adjust_accumulator_values (block_stmt_iterator bsi, tree m, tree a, edge back)
if (m) if (m)
{ {
stmt = build (MODIFY_EXPR, ret_type, NULL_TREE, stmt = build2 (MODIFY_EXPR, ret_type, NULL_TREE,
build (MULT_EXPR, ret_type, m_acc, m)); build2 (MULT_EXPR, ret_type, m_acc, m));
var = make_ssa_name (SSA_NAME_VAR (m_acc), stmt); var = make_ssa_name (SSA_NAME_VAR (m_acc), stmt);
TREE_OPERAND (stmt, 0) = var; TREE_OPERAND (stmt, 0) = var;
bsi_insert_after (&bsi, stmt, BSI_NEW_STMT); bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
...@@ -638,8 +638,8 @@ adjust_return_value (basic_block bb, tree m, tree a) ...@@ -638,8 +638,8 @@ adjust_return_value (basic_block bb, tree m, tree a)
if (m) if (m)
{ {
stmt = build (MODIFY_EXPR, ret_type, NULL_TREE, stmt = build2 (MODIFY_EXPR, ret_type, NULL_TREE,
build (MULT_EXPR, ret_type, m_acc, ret_var)); build2 (MULT_EXPR, ret_type, m_acc, ret_var));
tmp = create_tmp_var (ret_type, "acc_tmp"); tmp = create_tmp_var (ret_type, "acc_tmp");
add_referenced_tmp_var (tmp); add_referenced_tmp_var (tmp);
...@@ -653,8 +653,8 @@ adjust_return_value (basic_block bb, tree m, tree a) ...@@ -653,8 +653,8 @@ adjust_return_value (basic_block bb, tree m, tree a)
if (a) if (a)
{ {
stmt = build (MODIFY_EXPR, ret_type, NULL_TREE, stmt = build2 (MODIFY_EXPR, ret_type, NULL_TREE,
build (PLUS_EXPR, ret_type, a_acc, var)); build2 (PLUS_EXPR, ret_type, a_acc, var));
tmp = create_tmp_var (ret_type, "acc_tmp"); tmp = create_tmp_var (ret_type, "acc_tmp");
add_referenced_tmp_var (tmp); add_referenced_tmp_var (tmp);
......
...@@ -2164,21 +2164,21 @@ build_assert_expr_for (tree cond, tree v) ...@@ -2164,21 +2164,21 @@ build_assert_expr_for (tree cond, tree v)
if (COMPARISON_CLASS_P (cond)) if (COMPARISON_CLASS_P (cond))
{ {
tree a = build (ASSERT_EXPR, TREE_TYPE (v), v, cond); tree a = build2 (ASSERT_EXPR, TREE_TYPE (v), v, cond);
assertion = build (MODIFY_EXPR, TREE_TYPE (v), n, a); assertion = build2 (MODIFY_EXPR, TREE_TYPE (v), n, a);
} }
else if (TREE_CODE (cond) == TRUTH_NOT_EXPR) else if (TREE_CODE (cond) == TRUTH_NOT_EXPR)
{ {
/* Given !V, build the assignment N = false. */ /* Given !V, build the assignment N = false. */
tree op0 = TREE_OPERAND (cond, 0); tree op0 = TREE_OPERAND (cond, 0);
gcc_assert (op0 == v); gcc_assert (op0 == v);
assertion = build (MODIFY_EXPR, TREE_TYPE (v), n, boolean_false_node); assertion = build2 (MODIFY_EXPR, TREE_TYPE (v), n, boolean_false_node);
} }
else if (TREE_CODE (cond) == SSA_NAME) else if (TREE_CODE (cond) == SSA_NAME)
{ {
/* Given V, build the assignment N = true. */ /* Given V, build the assignment N = true. */
gcc_assert (v == cond); gcc_assert (v == cond);
assertion = build (MODIFY_EXPR, TREE_TYPE (v), n, boolean_true_node); assertion = build2 (MODIFY_EXPR, TREE_TYPE (v), n, boolean_true_node);
} }
else else
gcc_unreachable (); gcc_unreachable ();
...@@ -2781,7 +2781,7 @@ process_assert_insertions_for (tree name, assert_locus_t loc) ...@@ -2781,7 +2781,7 @@ process_assert_insertions_for (tree name, assert_locus_t loc)
edge_iterator ei; edge_iterator ei;
edge e; edge e;
cond = build (loc->comp_code, boolean_type_node, name, loc->val); cond = build2 (loc->comp_code, boolean_type_node, name, loc->val);
assert_expr = build_assert_expr_for (cond, name); assert_expr = build_assert_expr_for (cond, name);
if (loc->e) if (loc->e)
...@@ -3957,7 +3957,7 @@ simplify_cond_using_ranges (tree stmt) ...@@ -3957,7 +3957,7 @@ simplify_cond_using_ranges (tree stmt)
} }
COND_EXPR_COND (stmt) COND_EXPR_COND (stmt)
= build (EQ_EXPR, boolean_type_node, op0, new); = build2 (EQ_EXPR, boolean_type_node, op0, new);
update_stmt (stmt); update_stmt (stmt);
if (dump_file) if (dump_file)
...@@ -3985,7 +3985,7 @@ simplify_cond_using_ranges (tree stmt) ...@@ -3985,7 +3985,7 @@ simplify_cond_using_ranges (tree stmt)
} }
COND_EXPR_COND (stmt) COND_EXPR_COND (stmt)
= build (NE_EXPR, boolean_type_node, op0, new); = build2 (NE_EXPR, boolean_type_node, op0, new);
update_stmt (stmt); update_stmt (stmt);
if (dump_file) if (dump_file)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment