On Mon, Jan 23, 2023 at 10:28:01AM +0000, Richard Biener wrote:
> On Mon, 23 Jan 2023, Jakub Jelinek wrote:
> 
> > On Mon, Jan 23, 2023 at 11:09:43AM +0100, Richard Biener wrote:
> > > The following deals with .LOOP_DIST_ALIAS surviving vectorization
> > > because any of the loops involved were elided between loop distribution
> > > and vectorization.  As opposed to .LOOP_VECTORIZED which exists only
> > > between if-conversion and vectorization with no intermediate passes
> > > this is more difficult to deal with in advance and thus cleaning
> > > up after vectorization looks better.  There's the unconditional
> > > vector lowering pass which looks like a good place for this (for
> > > SIMD uid we have pass_simduid_cleanup).
> > > 
> > > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
> > > 
> > > OK?
> > 
> > I admit I didn't know something like LOOP_DIST_ALIAS even exist until
> > today.
> > Anyway, I wonder if there is still time to clean up during/after
> > veclower21.
> 
> That's what the patch does, but maybe I misunderstood the question.
> 
> > I see fold_loop_internal_call propagates the return value to immediate
> > uses and cfg_changed means we'll clean up the cfg, is that enough?
> 
> It's enough to get rid of the internal function call which will ICE
> if it reaches RTL expansion.  The earliest point to get rid of them
> is in the loop vectorizer but for the testcase at hand this requires
> a walk of the whole IL where we cut the whole vectorizer pass with
> the number-of-loops in function check currently.

Ok then.

        Jakub

Reply via email to