[PATCH] #pragma vectorize

Nadav Rotem nrotem at apple.com
Tue Apr 22 16:59:35 PDT 2014


+/// LoopHints - This provides the interface
+/// for specifying and retrieving vectorize and interleave hints
+///
+class LoopHints {

Comments should be punctuated properly. 


   SourceLocation WhileLoc;
+
 public:
   WhileStmt(con

Please don’t change white space in unrelated places in the file. 

+
+    // Attach metadata to loop body conditional branch
+    if (S.hasCondBrLoopHints())
+    {
+      llvm::MDNode *LoopID = getLoopHints(LoopBody->getContext(),

The brace should be on the same line as the ‘if’.

Thanks,
Nadav




On Apr 22, 2014, at 4:54 PM, Tyler Nowicki <tnowicki at apple.com> wrote:

> Please review this updated patch. It includes the changes we discussed. Thanks for all your input!
> 
> Tyler
> 
> <pragma_vectorize-svn.patch>
> 
> 
> On Apr 22, 2014, at 2:30 PM, Tyler Nowicki <tnowicki at apple.com> wrote:
> 
>> Hi Hal,
>> 
>> Thanks for the reply.
>> 
>>> Maybe we're looking at this the wrong way... what about?
>>> 
>>> pragma loop vectorize(width/enable/disable) interleave(count/enable/disable)
>> 
>> I like this more, especially because its clear it applies only to loops.
>> 
>>> 
>>>> enable/disable don’t add
>>>> anything that isn’t already part of pragma vectorize enable/disable,
>>>> and specifying `#pragma vectorize disable’ would disable
>>>> interleaving.
>>> 
>>> But that's a bug. Are you sure that's what happens?
>> 
>> I could be mistaken. This is what is in LoopVectorize at the top of processLoop()
>> 
>>     if (Hints.Force == 0) {
>>       DEBUG(dbgs() << "LV: Not vectorizing: #pragma vectorize disable.\n");
>>       return false;
>>     }
>> 
>> And the unrolling occurs later in processLoop(). I thought it was a feature… but yea, lets fix it.
>> 
>>> 
>>>> 
>>>> 
>>>> As for safety, how about #pragma vectorize aggressive?
>>> 
>>> I don't like that; *that* sounds like a cost-model adjustment. The user is asserting something about the property of the loop, and we should try to capture that property. Although this may just be confusing, "vectorizable" is what we mean.
>> 
>> `nodependence’? 
>> 
>> Thanks,
>> 
>> Tyler
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140422/7edac1e5/attachment.html>


More information about the cfe-commits mailing list