[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