diff options
author | Alan Hayward <alan.hayward@arm.com> | 2015-11-20 14:20:24 +0000 |
---|---|---|
committer | Alan Hayward <alahay01@gcc.gnu.org> | 2015-11-20 14:20:24 +0000 |
commit | b09d93475d8e4f86e3b2bce19ef05dbb669e55fb (patch) | |
tree | 33776ebf3c7c995ca522d109f57e202a41944ca9 /gcc/tree-vectorizer.h | |
parent | 0b78e62cff89045311459e512a43fc9010c61353 (diff) | |
download | gcc-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.h | 7 |
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 |