[Patch][LoopInfo] Use CGLoopInfo to generate loop hints

Tyler Nowicki tnowicki at apple.com
Thu Jul 9 13:41:20 PDT 2015


I understand. Whenever you get a chance to look at the patches.

Thanks,

Tyler

> On Jul 2, 2015, at 10:29 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> ----- Original Message -----
>> From: "Tyler Nowicki" <tnowicki at apple.com <mailto:tnowicki at apple.com>>
>> To: "Hal Finkel" <hfinkel at anl.gov <mailto:hfinkel at anl.gov>>
>> Cc: "llvm cfe" <cfe-commits at cs.uiuc.edu <mailto:cfe-commits at cs.uiuc.edu>>, "Gerolf Hoflehner" <ghoflehner at apple.com <mailto: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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150709/580c7695/attachment.html>


More information about the cfe-commits mailing list