aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorAlan Hayward <alan.hayward@arm.com>2015-11-20 14:20:24 +0000
committerAlan Hayward <alahay01@gcc.gnu.org>2015-11-20 14:20:24 +0000
commitb09d93475d8e4f86e3b2bce19ef05dbb669e55fb (patch)
tree33776ebf3c7c995ca522d109f57e202a41944ca9 /gcc/tree-vectorizer.h
parent0b78e62cff89045311459e512a43fc9010c61353 (diff)
downloadgcc-b09d93475d8e4f86e3b2bce19ef05dbb669e55fb.zip
gcc-b09d93475d8e4f86e3b2bce19ef05dbb669e55fb.tar.gz
gcc-b09d93475d8e4f86e3b2bce19ef05dbb669e55fb.tar.bz2
re PR tree-optimization/68413 (internal compiler error: in vect_transform_stmt)
2015-11-20 Alan Hayward <alan.hayward@arm.com> PR tree-optimization/68413 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache evolution base (vectorizable_reduction): Use cached base From-SVN: r230658
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 7867c26..327f08d 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -518,11 +518,13 @@ typedef struct _stmt_vec_info {
tree dr_step;
tree dr_aligned_to;
- /* For loop PHI nodes, the evolution part of it. This makes sure
+ /* For loop PHI nodes, the base and evolution part of it. This makes sure
this information is still available in vect_update_ivs_after_vectorizer
where we may not be able to re-analyze the PHI nodes evolution as
peeling for the prologue loop can make it unanalyzable. The evolution
- part is still correct though. */
+ part is still correct after peeling, but the base may have changed from
+ the version here. */
+ tree loop_phi_evolution_base_unchanged;
tree loop_phi_evolution_part;
/* Used for various bookkeeping purposes, generally holding a pointer to
@@ -645,6 +647,7 @@ STMT_VINFO_BB_VINFO (stmt_vec_info stmt_vinfo)
#define STMT_VINFO_GROUP_GAP(S) (S)->gap
#define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
#define STMT_VINFO_GROUPED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info)
+#define STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED(S) (S)->loop_phi_evolution_base_unchanged
#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part
#define STMT_VINFO_MIN_NEG_DIST(S) (S)->min_neg_dist