[PATCH] #pragma vectorize

Mark Heffernan meheff at google.com
Tue Jun 17 11:37:18 PDT 2014


FYI, it looks like some malformed loop pragmas are not handled well.  The
following crashes clang (note the double open parens):

void loop()
{
#pragma clang loop vectorize(()
  while (1) {}
}

PR 20069 filed.  I'll fix it.

Mark


On Fri, Jun 6, 2014 at 11:14 AM, Mark Heffernan <meheff at google.com> wrote:

> Change sent out as: http://reviews.llvm.org/D4046
>
> Mark
>
>
> On Fri, Jun 6, 2014 at 10:46 AM, Mark Heffernan <meheff at google.com> wrote:
>
>> It looks like this patch introduced a bunch of DOS newline control codes
>> into some of the files.  That is, some of the lines have CR+LF rather than
>> just LF.  I'll create a patch to fix it.  (I'm adding unroll pragma support
>> on top of this patch).
>>
>> Mark
>>
>>
>>
>>
>>
>> On Fri, Jun 6, 2014 at 5:49 AM, Aaron Ballman <aaron at aaronballman.com>
>> wrote:
>>
>>> Thanks! I've committed in r210330.
>>>
>>> ~Aaron
>>>
>>> On Thu, Jun 5, 2014 at 9:43 PM, Tyler Nowicki <tnowicki at apple.com>
>>> wrote:
>>> > Ok, here is the patch without [[clang::fallthrough]].
>>> >
>>> > Could you please commit the patch. I don't have commit privileges.
>>> >
>>> > Thanks,
>>> >
>>> > Tyler
>>> >
>>> >
>>> >
>>> > On Jun 5, 2014, at 6:00 PM, Richard Smith <richard at metafoo.co.uk>
>>> wrote:
>>> >
>>> > On Wed, Jun 4, 2014 at 8:18 PM, Reid Kleckner <rnk at google.com> wrote:
>>> >>
>>> >> On Wed, Jun 4, 2014 at 7:57 PM, Tyler Nowicki <tnowicki at apple.com>
>>> wrote:
>>> >>>
>>> >>> Hi Aaron and Richard,
>>> >>>
>>> >>> Thanks for the review and putting up with me while I learn clang!
>>> Here is
>>> >>> the patch with your changes.
>>> >>>
>>> >>>
>>> >>> >> +      // Vectorization/interleaving is disabled, set width/count
>>> to
>>> >>> >> 1.
>>> >>> >> +      ValueInt = 1;
>>> >>> >> +    // Fallthrough.
>>> >>> >
>>> >>> > We should add [[clang::fallthrough]] to Compiler.h and use it
>>> here. :-)
>>> >>>
>>> >>> Turns out I didn't need to make any changes to Compiler.h. It works
>>> fine
>>> >>> for me. Will it work for all builds?
>>> >>
>>> >>
>>> >> Unlikely.  MSVC's table of C++11 lists attributes as unsupported:
>>> >> http://msdn.microsoft.com/en-us/library/hh567368.aspx
>>> >>
>>> >> GCC is also likely to warn on unrecognized attributes, which wouldn't
>>> >> work.
>>> >
>>> >
>>> > A change to add [[clang::fallthrough]] to Compiler.h should not be
>>> part of
>>> > this patch. Please go ahead with this as-is, and we can deal with the
>>> > fallthrough macro part separately.
>>> >
>>> > IIRC, Richard Trieu sent out a patch quite a while ago adding a
>>> fallthrough
>>> > macro to Compiler.h (along with patches to Clang and LLVM to use it). I
>>> > don't call what happened to that.
>>> >
>>> >
>>> >
>>>
>>> _______________________________________________
>>> 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/20140617/2fd15891/attachment.html>


More information about the cfe-commits mailing list