From 60b1938de008cc26a13210f1e5e49e23e64def3c Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 31 Jul 2025 09:26:16 +0200 Subject: [PATCH] Do not bother with fake verifying of shared DRs The following avoids comparing the shared DRs against their unmodified copy for epilogues during loop transform since they are actually modified by update_epilogue_loop_vinfo. Avoid the pointless faking of the original DRs there. * tree-vect-loop.cc (vect_transform_loop): Do not verify DRs have not been modified for epilogue loops. (update_epilogue_loop_vinfo): Do not copy modified DRs to the originals. --- gcc/tree-vect-loop.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 80b5a0a326b..9b4d200bb29 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -11318,9 +11318,6 @@ update_epilogue_loop_vinfo (class loop *epilogue, tree advance) /* Remember the advancement made. */ LOOP_VINFO_DRS_ADVANCED_BY (epilogue_vinfo) = advance; - - epilogue_vinfo->shared->datarefs_copy.release (); - epilogue_vinfo->shared->save_datarefs (); } /* When vectorizing early break statements instructions that happen before @@ -11426,7 +11423,8 @@ vect_transform_loop (loop_vec_info loop_vinfo, gimple *loop_vectorized_call) DUMP_VECT_SCOPE ("vec_transform_loop"); - loop_vinfo->shared->check_datarefs (); + if (! LOOP_VINFO_EPILOGUE_P (loop_vinfo)) + loop_vinfo->shared->check_datarefs (); /* Use the more conservative vectorization threshold. If the number of iterations is constant assume the cost check has been performed -- 2.47.2