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

Tyler Nowicki tnowicki at apple.com
Wed Jun 24 13:59:31 PDT 2015


Hi Hal,

Here are the split patches.

Thanks,

Tyler

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Rename-Vectorizer-to-Vectorize-and-VectorizeUnroll-t.patch
Type: application/octet-stream
Size: 7292 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150624/d287d7fd/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Moved-functionality-from-EmitCondBr-to-CGLoopInfo.patch
Type: application/octet-stream
Size: 35167 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150624/d287d7fd/attachment-0001.obj>
-------------- next part --------------


> 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.


More information about the cfe-commits mailing list