On Fri, Sep 2, 2016 at 3:46 PM, Yuri Rumyantsev <ysrum...@gmail.com> wrote: > Hi Jeff, > > I am trying to reduce cost of repeated call of if-conversion for > epilogue vectorization. I'd like to clarify your recommendation - > should I design additional support for versioning in > vect_do_peeling_for_loop_bound or lightweight version of if-conversion Hi Yuri, I didn't read the patch, so please correct me if I mis-understand anything. It might be better not to introduce versioning logic in peeling stuff if possible. The peeling part is complicated and generates somehow inefficient CFG. I am preparing patches rewriting the peeling stuff.
Thanks, bin > is sufficient? Any help in clarification will be appreciated. > > Thanks ahead. > Yuri. > > 2016-08-01 19:10 GMT+03:00 Jeff Law <l...@redhat.com>: >> On 08/01/2016 03:09 AM, Ilya Enkovich wrote: >>> >>> 2016-07-26 18:38 GMT+03:00 Ilya Enkovich <enkovich....@gmail.com>: >>>> >>>> 2016-07-26 18:26 GMT+03:00 Jeff Law <l...@redhat.com>: >>>>> >>>>> On 07/26/2016 03:57 AM, Ilya Enkovich wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> Ilya, what's the fundamental reason why we need to run >>>>>>> if-conversion again? Yes, I know you want to if-convert the >>>>>>> epilogue, but why? >>>>>>> >>>>>>> What are the consequences of not doing if-conversion on the >>>>>>> epilogue? Presumably we miss a vectorization opportunity on the >>>>>>> tail. But that may be a reasonable limitation to allow the >>>>>>> existing work to move forward while you go back and revamp things a >>>>>>> little. >>>>>> >>>>>> >>>>>> >>>>>> If we have some control-flow in a loop then we have to if-convert it >>>>>> for vectorizer. We need to preserve both versions: if-converted one >>>>>> for vectorizer and the original one to be used if vectorization >>>>>> fails. For epilogues we have similar situation and need two >>>>>> versions. I do it by running if-conversion on a copy of original >>>>>> loop. Note that it doesn't run full if-conversion pass. If-conversion >>>>>> is called for epilogue loop only. >>>>> >>>>> >>>>> Right. So what I think Richi wants you to try is to use the >>>>> if-converted >>>>> loop to construct the if-converted epilogue. It seems conceptually >>>>> simple >>>>> and low cost -- the question is on the implementation side. I have no >>>>> clue >>>>> how painful that would be. >>>> >>>> >>>> Probably another part of if-conversion may be re-used to build required >>>> epilogue. I'll have a look. >>> >>> >>> Hi, >>> >>> Yuri will continue my work from this point. >> >> Understood. I'm actually got some comments on #5 and Yuri is already on the >> CC list for that draft message. >> >> Jeff