+2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * builtins.c (fold_builtin_strchr): Use build_int_cst, not
+ fold_convert.
+ (fold_builtin_strpbrk): Likewise.
+ * expr.c (array_ref_low_bound): Likewise.
+ * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
+ interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
+ * tree-sra.c (generate_element_zero): Likewise.
+ * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
+ * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
+ add_old_iv_candidates, add_iv_candidates): Likewise.
+ * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
+
2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
* c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
r = actually_strrchr ? strrchr (p1, c) : strchr (p1, c);
if (r == NULL)
- return fold_convert (TREE_TYPE (s1), integer_zero_node);
+ return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, fold_convert (TREE_TYPE (s1),
- ssize_int (r - p1))));
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
}
if (actually_strrchr)
const char *r = strstr (p1, p2);
if (r == NULL)
- return fold_convert (TREE_TYPE (s1), integer_zero_node);
+ return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, fold_convert (TREE_TYPE (s1),
- ssize_int (r - p1))));
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
}
if (p2[0] == '\0')
r = strchr (p1, c);
if (r == NULL)
- return fold_convert (TREE_TYPE (s1), integer_zero_node);
+ return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, fold_convert (TREE_TYPE (s1),
- ssize_int (r - p1))));
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
}
/* FIXME: Should use here strchrM optab so that ports can optimize
r = strrchr (p1, c);
if (r == NULL)
- return fold_convert (TREE_TYPE (s1), integer_zero_node);
+ return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, fold_convert (TREE_TYPE (s1),
- ssize_int (r - p1))));
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
}
if (! integer_zerop (s2))
const char *r = strpbrk (p1, p2);
if (r == NULL)
- return fold_convert (TREE_TYPE (s1), integer_zero_node);
+ return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, fold_convert (TREE_TYPE (s1),
- ssize_int (r - p1))));
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
}
if (p2[0] == '\0')
return SUBSTITUTE_PLACEHOLDER_IN_EXPR (TYPE_MIN_VALUE (domain_type), exp);
/* Otherwise, return a zero of the appropriate type. */
- return fold_convert (TREE_TYPE (TREE_OPERAND (exp, 1)), integer_zero_node);
+ return build_int_cst (TREE_TYPE (TREE_OPERAND (exp, 1)), 0);
}
/* Return a tree representing the upper bound of the array mentioned in
nb_iter = chrec_fold_minus
(chrec_type (nb_iter), nb_iter,
- fold_convert (chrec_type (nb_iter), integer_one_node));
+ build_int_cst (chrec_type (nb_iter), 1));
#if 0
/* TODO -- If the test is after the exit, we may decrease the number of
if (after_exit)
nb_iter = chrec_fold_minus
(chrec_type (nb_iter), nb_iter,
- fold_convert (chrec_type (nb_iter), integer_one_node));
+ build_int_cst (chrec_type (nb_iter), 1));
#endif
end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter);
{
var = loop_nb;
left = chrec_before;
- right = fold_convert (type, integer_zero_node);
+ right = build_int_cst (type, 0);
}
else
{
opnd10 = TREE_OPERAND (opnd1, 0);
chrec10 = analyze_scalar_evolution (loop, opnd10);
chrec10 = chrec_convert (type, chrec10);
- res = chrec_fold_minus (type, fold_convert (type, integer_zero_node),
- chrec10);
+ res = chrec_fold_minus (type, build_int_cst (type, 0), chrec10);
break;
case MULT_EXPR:
type = TREE_TYPE (niter_desc.niter);
if (integer_nonzerop (niter_desc.may_be_zero))
- res = fold_convert (type, integer_zero_node);
+ res = build_int_cst (type, 0);
else if (integer_zerop (niter_desc.may_be_zero))
res = niter_desc.niter;
else
tree t;
if (elt->is_scalar)
- t = fold_convert (elt->type, integer_zero_node);
+ t = build_int_cst (elt->type, 0);
else
/* We generated a replacement for a non-scalar? */
abort ();
TREE_SET_CODE (TREE_OPERAND (dummy_cond, 0), LE_EXPR);
TREE_OPERAND (TREE_OPERAND (dummy_cond, 0), 0) = op;
TREE_OPERAND (TREE_OPERAND (dummy_cond, 0), 1)
- = fold_convert (type, integer_zero_node);
+ = build_int_cst (type, 0);
}
val = simplify_cond_and_lookup_avail_expr (dummy_cond,
&bd->avail_exprs,
TREE_SET_CODE (TREE_OPERAND (dummy_cond, 0), GE_EXPR);
TREE_OPERAND (TREE_OPERAND (dummy_cond, 0), 0) = op;
TREE_OPERAND (TREE_OPERAND (dummy_cond, 0), 1)
- = fold_convert (type, integer_zero_node);
+ = build_int_cst (type, 0);
val = simplify_cond_and_lookup_avail_expr (dummy_cond,
&bd->avail_exprs,
return NULL_TREE;
if (!step)
- return fold_convert (type, integer_zero_node);
+ return build_int_cst (type, 0);
return step;
}
if (TREE_CODE (base) == ARRAY_REF)
step = array_ref_element_size (base);
else
- {
- /* The step for pointer arithmetics already is 1 byte. */
- step = fold_convert (type, integer_one_node);
- }
+ /* The step for pointer arithmetics already is 1 byte. */
+ step = build_int_cst (type, 1);
if (TYPE_PRECISION (iv_type) < TYPE_PRECISION (type))
iv_step = can_count_iv_in_wider_type (dta->ivopts_data->current_loop,
/* The same, but with initial value zero. */
add_candidate (data,
- fold_convert (TREE_TYPE (iv->base), integer_zero_node),
+ build_int_cst (TREE_TYPE (iv->base), 0),
iv->step, true, NULL);
phi = SSA_NAME_DEF_STMT (iv->ssa_name);
add_candidate (data, iv->base, iv->step, false, use);
/* The same, but with initial value zero. */
- add_candidate (data,
- fold_convert (TREE_TYPE (iv->base), integer_zero_node),
+ add_candidate (data, build_int_cst (TREE_TYPE (iv->base), 0),
iv->step, false, use);
}
add_referenced_tmp_var (tmp);
phi = create_phi_node (tmp, first);
- add_phi_arg (&phi, fold_convert (ret_type, integer_zero_node),
- first->pred);
+ add_phi_arg (&phi, build_int_cst (ret_type, 0), first->pred);
a_acc = PHI_RESULT (phi);
}
add_referenced_tmp_var (tmp);
phi = create_phi_node (tmp, first);
- add_phi_arg (&phi, fold_convert (ret_type, integer_one_node),
- first->pred);
+ add_phi_arg (&phi, build_int_cst (ret_type, 1), first->pred);
m_acc = PHI_RESULT (phi);
}
}