re PR tree-optimization/20474 (ICE while compiling openmotif-2.2.3 with -ftree-vectorize)
PR tree-optimization/20474 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the size_type of the relevant pointer. Check for COMPLETE_TYPE_P. From-SVN: r96632
This commit is contained in:
parent
981c7dcef8
commit
d6efd7d667
@ -1,3 +1,9 @@
|
|||||||
|
2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/20474
|
||||||
|
* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
|
||||||
|
size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
|
||||||
|
|
||||||
2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
|
2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
* config/h8300/h8300-protos.h: Remove prototypes for
|
* config/h8300/h8300-protos.h: Remove prototypes for
|
||||||
|
@ -1401,8 +1401,7 @@ vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
reftype = TREE_TYPE (init);
|
if (!POINTER_TYPE_P (TREE_TYPE (init)))
|
||||||
if (!POINTER_TYPE_P (reftype))
|
|
||||||
{
|
{
|
||||||
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
|
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
|
||||||
LOOP_LOC (loop_vinfo)))
|
LOOP_LOC (loop_vinfo)))
|
||||||
@ -1412,6 +1411,14 @@ vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read,
|
|||||||
|
|
||||||
*ptr_step = fold_convert (ssizetype, step);
|
*ptr_step = fold_convert (ssizetype, step);
|
||||||
innertype = TREE_TYPE (reftype);
|
innertype = TREE_TYPE (reftype);
|
||||||
|
if (!COMPLETE_TYPE_P (innertype))
|
||||||
|
{
|
||||||
|
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
|
||||||
|
LOOP_LOC (loop_vinfo)))
|
||||||
|
fprintf (vect_dump, "not vectorized: pointer to incomplete type.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check that STEP is a multiple of type size. */
|
/* Check that STEP is a multiple of type size. */
|
||||||
if (!integer_zerop (size_binop (TRUNC_MOD_EXPR, *ptr_step,
|
if (!integer_zerop (size_binop (TRUNC_MOD_EXPR, *ptr_step,
|
||||||
fold_convert (ssizetype, TYPE_SIZE_UNIT (innertype)))))
|
fold_convert (ssizetype, TYPE_SIZE_UNIT (innertype)))))
|
||||||
|
Loading…
Reference in New Issue
Block a user