aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-12-13 09:19:19 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-12-13 09:19:19 +0000
commit30fec2f9bf6a5dc1048388ed5bd3ba4d2e359478 (patch)
tree45417765626a20a0d69c0d7673447948429ed52b /gcc
parent6182121c120a277dd38eb28e669866842a83a4dc (diff)
downloadgcc-30fec2f9bf6a5dc1048388ed5bd3ba4d2e359478.zip
gcc-30fec2f9bf6a5dc1048388ed5bd3ba4d2e359478.tar.gz
gcc-30fec2f9bf6a5dc1048388ed5bd3ba4d2e359478.tar.bz2
re PR tree-optimization/78699 (ICE (segfault) on powerpc64le-linux-gnu (memory-hog))
2016-12-13 Richard Biener <rguenther@suse.de> PR tree-optimization/78699 * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit group size. From-SVN: r243599
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vect-data-refs.c4
2 files changed, 9 insertions, 1 deletions
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 <rguenther@suse.de>
+ PR tree-optimization/78699
+ * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit
+ group size.
+
+2016-12-13 Richard Biener <rguenther@suse.de>
+
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,