Looking at it now, curious why no tests failed. On Tue, Mar 18, 2014 at 2:48 PM, Jim Grosbach <grosbach at apple.com> wrote:> Almost certainly, yes. Nice catch! > > > On Mar 18, 2014, at 2:38 PM, Liang Wang <netcasper at gmail.com> wrote: > > > Hi, > > > > I'm studying loop vectorizer. I don't understand the code yet. But > > it looks not right to assign L->begin() to E. Is it a typo? > > > > Thanks, > > Liang > > > > diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp > > b/lib/Transforms/Vectorize/LoopVectorize.cpp > > index 435c005..87b5d79 100644 > > --- a/lib/Transforms/Vectorize/LoopVectorize.cpp > > +++ b/lib/Transforms/Vectorize/LoopVectorize.cpp > > @@ -1067,7 +1067,7 @@ struct LoopVectorize : public FunctionPass { > > // We only handle inner loops, so if there are children just recurse. > > if (!L->empty()) { > > bool Changed = false; > > - for (Loop::iterator I = L->begin(), E = L->begin(); I != E; ++I) > > + for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I) > > Changed |= processLoop(*I); > > return Changed; > > } > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140318/a0a94227/attachment.html>
----- Original Message -----> From: "Chandler Carruth" <chandlerc at google.com> > To: "Jim Grosbach" <grosbach at apple.com> > Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > Sent: Tuesday, March 18, 2014 4:49:14 PM > Subject: Re: [LLVMdev] E = L->begin() in LoopVectorize > > > > Looking at it now, curious why no tests failed.Likely we have no tests with nested loops where the loop to vectorize is not the first child of the parent loop. -Hal> > > > On Tue, Mar 18, 2014 at 2:48 PM, Jim Grosbach < grosbach at apple.com > > wrote: > > > Almost certainly, yes. Nice catch! > > > > > On Mar 18, 2014, at 2:38 PM, Liang Wang < netcasper at gmail.com > > wrote: > > > Hi, > > > > I'm studying loop vectorizer. I don't understand the code yet. But > > it looks not right to assign L->begin() to E. Is it a typo? > > > > Thanks, > > Liang > > > > diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp > > b/lib/Transforms/Vectorize/LoopVectorize.cpp > > index 435c005..87b5d79 100644 > > --- a/lib/Transforms/Vectorize/LoopVectorize.cpp > > +++ b/lib/Transforms/Vectorize/LoopVectorize.cpp > > @@ -1067,7 +1067,7 @@ struct LoopVectorize : public FunctionPass { > > // We only handle inner loops, so if there are children just > > recurse. > > if (!L->empty()) { > > bool Changed = false; > > - for (Loop::iterator I = L->begin(), E = L->begin(); I != E; ++I) > > + for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I) > > Changed |= processLoop(*I); > > return Changed; > > } > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
No, we do. There is no bug here, just dead code left over (harmlessly) from when i was half way through implementing this. I'm tidying it up. On Tue, Mar 18, 2014 at 2:54 PM, Hal Finkel <hfinkel at anl.gov> wrote:> ----- Original Message ----- > > From: "Chandler Carruth" <chandlerc at google.com> > > To: "Jim Grosbach" <grosbach at apple.com> > > Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > > Sent: Tuesday, March 18, 2014 4:49:14 PM > > Subject: Re: [LLVMdev] E = L->begin() in LoopVectorize > > > > > > > > Looking at it now, curious why no tests failed. > > Likely we have no tests with nested loops where the loop to vectorize is > not the first child of the parent loop. > > -Hal > > > > > > > > > On Tue, Mar 18, 2014 at 2:48 PM, Jim Grosbach < grosbach at apple.com > > > wrote: > > > > > > Almost certainly, yes. Nice catch! > > > > > > > > > > On Mar 18, 2014, at 2:38 PM, Liang Wang < netcasper at gmail.com > > > wrote: > > > > > Hi, > > > > > > I'm studying loop vectorizer. I don't understand the code yet. But > > > it looks not right to assign L->begin() to E. Is it a typo? > > > > > > Thanks, > > > Liang > > > > > > diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp > > > b/lib/Transforms/Vectorize/LoopVectorize.cpp > > > index 435c005..87b5d79 100644 > > > --- a/lib/Transforms/Vectorize/LoopVectorize.cpp > > > +++ b/lib/Transforms/Vectorize/LoopVectorize.cpp > > > @@ -1067,7 +1067,7 @@ struct LoopVectorize : public FunctionPass { > > > // We only handle inner loops, so if there are children just > > > recurse. > > > if (!L->empty()) { > > > bool Changed = false; > > > - for (Loop::iterator I = L->begin(), E = L->begin(); I != E; ++I) > > > + for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I) > > > Changed |= processLoop(*I); > > > return Changed; > > > } > > > _______________________________________________ > > > LLVM Developers mailing list > > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > -- > Hal Finkel > Assistant Computational Scientist > Leadership Computing Facility > Argonne National Laboratory >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140318/0922e6e2/attachment.html>