diff mbox series

[vect] Clean up orig_loop_vinfo from vect_analyze_loop

Message ID 451cd999-1fa1-f502-455b-de2348db181c@arm.com
State New
Headers show
Series [vect] Clean up orig_loop_vinfo from vect_analyze_loop | expand

Commit Message

Andre Vieira (lists) Oct. 31, 2019, 6:04 p.m. UTC
Hi,

After my patch I believe the only way orig_loop_vinfo is not null when 
calling vect_analyze_loop is when it is called for an epilogue and in 
that case we no longer use that variable, since 
LOOP_VINFO_ORIG_LOOP_INFO is already set for the epilogue's 
loop_vec_info.  This patch removes that parameter.

Bootstrapped on x86_64 and aarch64.

Is this OK for trunk?

Cheers,
Andre

gcc/ChangeLog:
2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>

         * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
         parameter.
         * tree-vectorizer.h (vect_analyze_loop): Update declaration.
         * tree-vectorizer.c (try_vectorize_loop_1): Update calls to 
vect_analyze_loop.

Comments

Richard Sandiford Nov. 1, 2019, 9:54 a.m. UTC | #1
"Andre Vieira (lists)" <andre.simoesdiasvieira@arm.com> writes:
> Hi,
>
> After my patch I believe the only way orig_loop_vinfo is not null when 
> calling vect_analyze_loop is when it is called for an epilogue and in 
> that case we no longer use that variable, since 
> LOOP_VINFO_ORIG_LOOP_INFO is already set for the epilogue's 
> loop_vec_info.  This patch removes that parameter.
>
> Bootstrapped on x86_64 and aarch64.
>
> Is this OK for trunk?
>
> Cheers,
> Andre
>
> gcc/ChangeLog:
> 2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
>
>          * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
>          parameter.
>          * tree-vectorizer.h (vect_analyze_loop): Update declaration.
>          * tree-vectorizer.c (try_vectorize_loop_1): Update calls to 
> vect_analyze_loop.

OK with...

> diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
> index 9b7d2485b7cae81578c6a7d33304dc48134cc850..f3deada90cb30c3d5a69a8ca243b0b7687d356cc 100644
> --- a/gcc/tree-vect-loop.c
> +++ b/gcc/tree-vect-loop.c
> @@ -2352,8 +2352,7 @@ again:
>     loop_vec_info struct.  If ORIG_LOOP_VINFO is not NULL epilogue must
>     be vectorized.  */
>  opt_loop_vec_info
> -vect_analyze_loop (class loop *loop, loop_vec_info orig_loop_vinfo,
> -		   vec_info_shared *shared)
> +vect_analyze_loop (class loop *loop, vec_info_shared *shared)
>  {
>    auto_vector_sizes vector_sizes;

...removing the "If ORIG_LOOP_VINFO is not NULL ..." comment too.

Thanks,
Richard
diff mbox series

Patch

diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 9b7d2485b7cae81578c6a7d33304dc48134cc850..f3deada90cb30c3d5a69a8ca243b0b7687d356cc 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -2352,8 +2352,7 @@  again:
    loop_vec_info struct.  If ORIG_LOOP_VINFO is not NULL epilogue must
    be vectorized.  */
 opt_loop_vec_info
-vect_analyze_loop (class loop *loop, loop_vec_info orig_loop_vinfo,
-		   vec_info_shared *shared)
+vect_analyze_loop (class loop *loop, vec_info_shared *shared)
 {
   auto_vector_sizes vector_sizes;
 
@@ -2405,9 +2404,7 @@  vect_analyze_loop (class loop *loop, loop_vec_info orig_loop_vinfo,
 
       bool fatal = false;
 
-      if (orig_loop_vinfo)
-	LOOP_VINFO_ORIG_LOOP_INFO (loop_vinfo) = orig_loop_vinfo;
-      else if (vect_epilogues && first_loop_vinfo)
+      if (vect_epilogues && first_loop_vinfo)
 	LOOP_VINFO_ORIG_LOOP_INFO (loop_vinfo) = first_loop_vinfo;
 
       opt_result res = vect_analyze_loop_2 (loop_vinfo, fatal, &n_stmts);
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 71b5f380e2c91a7a551f6e26920bb17809abedf0..ce8d5c6a07c63d757ebbff445a457a3ec6464bfa 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -1716,9 +1716,7 @@  extern bool check_reduction_path (dump_user_location_t, loop_p, gphi *, tree,
 				  enum tree_code);
 extern bool needs_fold_left_reduction_p (tree, tree_code);
 /* Drive for loop analysis stage.  */
-extern opt_loop_vec_info vect_analyze_loop (class loop *,
-					    loop_vec_info,
-					    vec_info_shared *);
+extern opt_loop_vec_info vect_analyze_loop (class loop *, vec_info_shared *);
 extern tree vect_build_loop_niters (loop_vec_info, bool * = NULL);
 extern void vect_gen_vector_loop_niters (loop_vec_info, tree, tree *,
 					 tree *, bool);
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 8e02647c7bad6ce4a92a225a4d37f82439f771ae..0f00383e3b33098189b2f656a8bd02d0148dd888 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -865,8 +865,7 @@  set_uid_loop_bbs (loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
 
 static unsigned
 try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
-		      unsigned *num_vectorized_loops,
-		      loop_p loop, loop_vec_info orig_loop_vinfo,
+		      unsigned *num_vectorized_loops, loop_p loop,
 		      gimple *loop_vectorized_call,
 		      gimple *loop_dist_alias_call)
 {
@@ -890,7 +889,7 @@  try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
   else
     {
       /* Try to analyze the loop, retaining an opt_problem if dump_enabled_p.  */
-      loop_vinfo = vect_analyze_loop (loop, orig_loop_vinfo, &shared);
+      loop_vinfo = vect_analyze_loop (loop, &shared);
       loop->aux = loop_vinfo;
     }
 
@@ -1025,7 +1024,7 @@  try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
        */
       unsigned dont_count = *num_vectorized_loops;
       ret |= try_vectorize_loop_1 (simduid_to_vf_htab, &dont_count,
-				   new_loop, loop_vinfo, NULL, NULL);
+				   new_loop, NULL, NULL);
     }
 
   return ret;
@@ -1042,8 +1041,7 @@  try_vectorize_loop (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
 	|| loop->force_vectorize))
     return 0;
 
-  return try_vectorize_loop_1 (simduid_to_vf_htab, num_vectorized_loops,
-			       loop, NULL,
+  return try_vectorize_loop_1 (simduid_to_vf_htab, num_vectorized_loops, loop,
 			       vect_loop_vectorized_call (loop),
 			       vect_loop_dist_alias_call (loop));
 }