aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-06-29 09:49:14 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-06-29 09:49:14 +0000
commitc2fd033cdf1876ff4ec91c747c6fc569de19b322 (patch)
treef78350f5786574a3f861377ab7a26d226f41845f /gcc
parent135101526e13c156567fe99256600914467a5f21 (diff)
downloadgcc-c2fd033cdf1876ff4ec91c747c6fc569de19b322.zip
gcc-c2fd033cdf1876ff4ec91c747c6fc569de19b322.tar.gz
gcc-c2fd033cdf1876ff4ec91c747c6fc569de19b322.tar.bz2
tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert compute_all_dependences succeeds.
2018-06-29 Richard Biener <rguenther@suse.de> * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert compute_all_dependences succeeds. * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we exceed --param loop-max-datarefs-for-datadeps. From-SVN: r262244
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-vect-data-refs.c9
-rw-r--r--gcc/tree-vect-loop.c5
3 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 67f562c..bc333f2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-06-29 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert
+ compute_all_dependences succeeds.
+ * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we
+ exceed --param loop-max-datarefs-for-datadeps.
+
2018-06-29 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 9f848fe..63429a3 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -575,10 +575,11 @@ vect_analyze_data_ref_dependences (loop_vec_info loop_vinfo,
* LOOP_VINFO_DATAREFS (loop_vinfo).length ());
/* We need read-read dependences to compute
STMT_VINFO_SAME_ALIGN_REFS. */
- if (!compute_all_dependences (LOOP_VINFO_DATAREFS (loop_vinfo),
- &LOOP_VINFO_DDRS (loop_vinfo),
- LOOP_VINFO_LOOP_NEST (loop_vinfo), true))
- return false;
+ bool res = compute_all_dependences (LOOP_VINFO_DATAREFS (loop_vinfo),
+ &LOOP_VINFO_DDRS (loop_vinfo),
+ LOOP_VINFO_LOOP_NEST (loop_vinfo),
+ true);
+ gcc_assert (res);
}
LOOP_VINFO_NO_DATA_DEPENDENCIES (loop_vinfo) = true;
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index ab76be0..8741e0b 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -1812,6 +1812,11 @@ vect_get_datarefs_in_loop (loop_p loop, basic_block *bbs,
}
return false;
}
+ /* If dependence analysis will give up due to the limit on the
+ number of datarefs stop here and fail fatally. */
+ if (datarefs->length ()
+ > (unsigned)PARAM_VALUE (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS))
+ return false;
}
return true;
}