Hi All, What do people think about having the ability to force only the latch connected exit as the exit as a param? I.e. what's in the patch but as a param.
I found this useful when debugging large example failures as it tells me where I should be looking. No hard requirement but just figured I'd ask if we should. Thanks, Tamar gcc/ChangeLog: * tree-vect-loop.cc (vec_init_loop_exit_info): Allow forcing of exit. --- inline copy of patch -- diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 27ab6abfa854f14f8a4cf3d9fcb1ac1c203a4198..d6b35372623e94e02965510ab557cb568c302ebe 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -964,6 +964,7 @@ vec_init_loop_exit_info (class loop *loop) if (exits.length () == 1) return exits[0]; +#if 0 /* If we have multiple exits we only support counting IV at the moment. Analyze all exits and return one */ class tree_niter_desc niter_desc; @@ -982,6 +983,16 @@ vec_init_loop_exit_info (class loop *loop) } return candidate; +#else + basic_block bb = ip_normal_pos (loop); + if (!bb) + return NULL; + + edge exit = EDGE_SUCC (bb, 0); + if (exit->dest == loop->latch) + return EDGE_SUCC (bb, 1); + return exit; +#endif } /* Function bb_in_loop_p --
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 27ab6abfa854f14f8a4cf3d9fcb1ac1c203a4198..d6b35372623e94e02965510ab557cb568c302ebe 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -964,6 +964,7 @@ vec_init_loop_exit_info (class loop *loop) if (exits.length () == 1) return exits[0]; +#if 0 /* If we have multiple exits we only support counting IV at the moment. Analyze all exits and return one */ class tree_niter_desc niter_desc; @@ -982,6 +983,16 @@ vec_init_loop_exit_info (class loop *loop) } return candidate; +#else + basic_block bb = ip_normal_pos (loop); + if (!bb) + return NULL; + + edge exit = EDGE_SUCC (bb, 0); + if (exit->dest == loop->latch) + return EDGE_SUCC (bb, 1); + return exit; +#endif } /* Function bb_in_loop_p