Tamar Christina <tamar.christ...@arm.com> writes: > 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.
If it's useful for that, then perhaps it would be worth making it a DEBUG_COUNTER instead of a --param, for easy bisection. Thanks, Richard > > 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