Commit c63ae7f0 by Andrew Stubbs

Fix fast-math-pr55281.c ICE

2020-01-31  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
	(find_inv_vars_cb): Likewise.
parent 182ce042
2020-01-31 Andrew Stubbs <ams@codesourcery.com>
* tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
(find_inv_vars_cb): Likewise.
2020-01-31 David Malcolm <dmalcolm@redhat.com> 2020-01-31 David Malcolm <dmalcolm@redhat.com>
* calls.c (special_function_p): Split out the check for DECL_NAME * calls.c (special_function_p): Split out the check for DECL_NAME
......
...@@ -1246,7 +1246,11 @@ get_iv (struct ivopts_data *data, tree var) ...@@ -1246,7 +1246,11 @@ get_iv (struct ivopts_data *data, tree var)
if (!bb if (!bb
|| !flow_bb_inside_loop_p (data->current_loop, bb)) || !flow_bb_inside_loop_p (data->current_loop, bb))
set_iv (data, var, var, build_int_cst (type, 0), true); {
if (POINTER_TYPE_P (type))
type = sizetype;
set_iv (data, var, var, build_int_cst (type, 0), true);
}
} }
return name_info (data, var)->iv; return name_info (data, var)->iv;
...@@ -2990,7 +2994,10 @@ find_inv_vars_cb (tree *expr_p, int *ws ATTRIBUTE_UNUSED, void *data) ...@@ -2990,7 +2994,10 @@ find_inv_vars_cb (tree *expr_p, int *ws ATTRIBUTE_UNUSED, void *data)
if (!bb || !flow_bb_inside_loop_p (idata->current_loop, bb)) if (!bb || !flow_bb_inside_loop_p (idata->current_loop, bb))
{ {
set_iv (idata, op, op, build_int_cst (TREE_TYPE (op), 0), true); tree steptype = TREE_TYPE (op);
if (POINTER_TYPE_P (steptype))
steptype = sizetype;
set_iv (idata, op, op, build_int_cst (steptype, 0), true);
record_invariant (idata, op, false); record_invariant (idata, op, false);
} }
} }
......
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