On Tue, Mar 28, 2017 at 2:01 PM, Bin Cheng <bin.ch...@arm.com> wrote: > Hi, > This patch fixes a latent bug in vectorizer, specifically, vect_do_peeling > doesn't mark newly created edge > with irreducible flag if the vectorized loop is in irreducible region. > Function checking_verify_loop_structure > needs to be explicitly called in vectorizer otherwise the issue is covered, > but I am okay if we should avoid > this call. > Bootstrap and test on x86_64 and AArch64. This patch causes new failure in > gcc.dg/tree-ssa/pr71077.c, > which uncovers another latent bug in vectorizer. That will be fixed by next > patch. Is this OK?
Ok (please omit the checking_verify_loop_structure call for now). Thanks, Richard. > 2017-03-27 Bin Cheng <bin.ch...@arm.com> > > * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and > mark new edge's irreducible flag accordign to it. > (vect_do_peeling): Check loop preheader edge's irreducible flag > and pass it to function slpeel_add_loop_guard. > * tree-vectorizer.c (vectorize_loops): Explicitly call function > checking_verify_loop_structure. > > gcc/testsuite/ChangeLog > 2017-03-27 Bin Cheng <bin.ch...@arm.com> > > * gcc.c-torture/compile/irreducible-loop.c: New.