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

Thanks,

Tyler

> On Jul 2, 2015, at 10:29 AM, Hal Finkel <[email protected]> wrote:
> 
> ----- Original Message -----
>> From: "Tyler Nowicki" <[email protected] <mailto:[email protected]>>
>> To: "Hal Finkel" <[email protected] <mailto:[email protected]>>
>> Cc: "llvm cfe" <[email protected] <mailto:[email protected]>>, 
>> "Gerolf Hoflehner" <[email protected] <mailto:[email protected]>>
>> 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 <[email protected]>
>>> 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 <[email protected]> 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

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to