From 30fec2f9bf6a5dc1048388ed5bd3ba4d2e359478 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 13 Dec 2016 09:19:19 +0000 Subject: [PATCH] re PR tree-optimization/78699 (ICE (segfault) on powerpc64le-linux-gnu (memory-hog)) 2016-12-13 Richard Biener PR tree-optimization/78699 * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit group size. From-SVN: r243599 --- gcc/ChangeLog | 6 ++++++ gcc/tree-vect-data-refs.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e0562b..daa4e8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2016-12-13 Richard Biener + PR tree-optimization/78699 + * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit + group size. + +2016-12-13 Richard Biener + PR middle-end/78742 * tree.c (cst_and_fits_in_hwi): Look if the actual value fits. * tree-object-size.c (compute_builtin_object_size): Use diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 5a30314..1b9c3b3 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -2390,7 +2390,9 @@ vect_analyze_group_access_1 (struct data_reference *dr) if (groupsize == 0) groupsize = count + gaps; - if (groupsize > UINT_MAX) + /* This could be UINT_MAX but as we are generating code in a very + inefficient way we have to cap earlier. See PR78699 for example. */ + if (groupsize > 4096) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, -- 2.7.4