[Patch][LoopInfo] Use CGLoopInfo to generate loop hints
Hal Finkel
hfinkel at anl.gov
Thu Jul 2 10:29:50 PDT 2015
----- Original Message -----
> From: "Tyler Nowicki" <tnowicki at apple.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "llvm cfe" <cfe-commits at cs.uiuc.edu>, "Gerolf Hoflehner" <ghoflehner at apple.com>
> Sent: Thursday, July 2, 2015 12:27:00 PM
> Subject: Re: [Patch][LoopInfo] Use CGLoopInfo to generate loop hints
>
> Hi,
>
> Could I get a review of these patches?
Yes, I'll look at them soon (sorry, I'm about a week behind on code reviews right now).
-Hal
>
> Thanks,
>
> Tyler
>
> > On Jun 24, 2015, at 4:25 PM, Tyler Nowicki <tnowicki at apple.com>
> > wrote:
> >
> > Hi Hal,
> >
> > Here are the split patches.
> >
> > Thanks,
> >
> > Tyler
> >
> > <0001-Rename-Vectorizer-to-Vectorize-and-VectorizeUnroll-t.patch><0002-Moved-functionality-from-EmitCondBr-to-CGLoopInfo.patch>
> >
> >> On Jun 22, 2015, at 5:40 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> >>
> >> Hi Tyler,
> >>
> >> - Type::getInt32Ty(Ctx),
> >> Attrs.VectorizerWidth))};
> >> + Type::getInt32Ty(Ctx),
> >> Attrs.VectorizeWidth))};
> >>
> >> Could you please factor out the renamings from the functional
> >> change?
> >>>>
> >>>> Hello,
> >>>>
> >>>> I noticed a problem with my implementation of #pragma clang loop
> >>>> vectorize(assume_safety). When it was specified on a loop other
> >>>> loop hints were lost. The problem is that CGLoopInfo attaches
> >>>> metadata a little bit differently than EmitCondBrHints in
> >>>> CGStmt.
> >>>> For do-loops CGLoopInfo attaches metadata to the br in the body
> >>>> block and for while and for loops, the inc block.
> >>>> EmitCondBrHints
> >>>> on the other hand always attaches data to the br in the cond
> >>>> block. When specifying assume_safety CGLoopInfo emits an empty
> >>>> llvm.loop metadata shadowing the metadata in the cond block.
> >>>> Loop
> >>>> transformations like rotate and unswitch would then eliminate
> >>>> the
> >>>> cond block.
> >>>>
> >>>> This patch unifies both approaches for adding metadata and
> >>>> modifies
> >>>> the existing safety tests to include non-assume_safety loop
> >>>> hints.
>
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the cfe-commits
mailing list