Please review this updated patch. It includes the changes we discussed. Thanks for all your input!

Tyler

Attachment: pragma_vectorize-svn.patch
Description: Binary data



On Apr 22, 2014, at 2:30 PM, Tyler Nowicki <[email protected]> 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
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

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

Reply via email to