summaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.c
diff options
context:
space:
mode:
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-12 01:35:54 +0000
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-12 01:35:54 +0000
commite9705e7fbd8fb3403fd54ded918bc2e649f74ddd (patch)
treef188986dd14899759aa5d472d21666c8b4c61591 /gcc/tree-vectorizer.c
parentf8b517614769ca972988344b8cd08195e0f15125 (diff)
downloadgcc-e9705e7fbd8fb3403fd54ded918bc2e649f74ddd.tar.gz
* tree-data-ref.c (build_classic_dist_vector,
compute_subscript_distance): Make externally visible. * tree-data-ref.h (build_classic_dist_vector, compute_subscript_distance): Same. * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Check distance vector against vectorization factor. (vect_analyze_loop): Determine vectorizaion factor before analyzing data dependences. * tree-vectorizer.c (loops_num): Make it externally visible and rename ... * tree-vectorizer.c (vect_loops_num): ... new name. * tree-vectorizer.h (vect_loops_num): New. * tree-vect-analyze.c (vect_analyze_operations): Check vectorizable codition. * tree-vect-transform.c (vect_is_simple_cond): New function. (vectorizable_condition): New function. (vect_transform_stmt): Handle condition_vec_info_type. * tree-vectorizer.h (enum stmt_vec_info_type): Add condition_vec_info_type. (vectorizable_condition): New. * lib/target-supports.exp (check_effective_target_vect_condition): New. * gcc.dg/vect/vect-ifcvt-1.c: New test. * gcc.dg/vect/vect-ifcvt-2.c: New test. * gcc.dg/vect/vect-ifcvt-3.c: New test. * gcc.dg/vect/vect-ifcvt-4.c: New test. * gcc.dg/vect/vect-ifcvt-5.c: New test. * gcc.dg/vect/vect-ifcvt-6.c: New test. * gcc.dg/vect/vect-ifcvt-7.c: New test. * gcc.dg/vect/vect-none.c: Now one loop is vectorized. * gcc.dg/vect/vect-dv-1.c: New test. * gcc.dg/vect/vect-dv-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97999 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r--gcc/tree-vectorizer.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 63dd2d201d2..c264ee0c4f8 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -178,7 +178,8 @@ FILE *vect_dump;
to mark that it's uninitialized. */
enum verbosity_levels vect_verbosity_level = MAX_VERBOSITY_LEVEL;
-
+/* Number of loops, at the beginning of vectorization. */
+unsigned int vect_loops_num;
/*************************************************************************
Simple Loop Peeling Utilities
@@ -1821,7 +1822,7 @@ vect_is_simple_iv_evolution (unsigned loop_nb, tree access_fn, tree * init,
void
vectorize_loops (struct loops *loops)
{
- unsigned int i, loops_num;
+ unsigned int i;
unsigned int num_vectorized_loops = 0;
/* Fix the verbosity level if not defined explicitly by the user. */
@@ -1841,8 +1842,8 @@ vectorize_loops (struct loops *loops)
/* If some loop was duplicated, it gets bigger number
than all previously defined loops. This fact allows us to run
only over initial loops skipping newly generated ones. */
- loops_num = loops->num;
- for (i = 1; i < loops_num; i++)
+ vect_loops_num = loops->num;
+ for (i = 1; i < vect_loops_num; i++)
{
loop_vec_info loop_vinfo;
struct loop *loop = loops->parray[i];
@@ -1866,7 +1867,7 @@ vectorize_loops (struct loops *loops)
/* ----------- Finalize. ----------- */
- for (i = 1; i < loops_num; i++)
+ for (i = 1; i < vect_loops_num; i++)
{
struct loop *loop = loops->parray[i];
loop_vec_info loop_vinfo;