[Patch][LoopVectorize] Print vectorization analysis when loop hint pragma is specified
Tyler Nowicki via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 11 17:56:21 PDT 2015
Thanks!
Tyler
> On Aug 11, 2015, at 3:27 PM, Mark Heffernan <meheff at google.com> wrote:
>
> Nice!
>
> On Mon, Aug 10, 2015 at 6:57 PM, Tyler Nowicki <tnowicki at apple.com <mailto:tnowicki at apple.com>> wrote:
> Mark: Would you be interested in extending this to the loop unroller as well?
>
> I'd be happy to. I'm about to head off on vacation, but I'll get to it when I return.
>
> Mark
>
>
>> P.S. I assume we should add similar logic to the loop unroller (please add a FIXME if you're not going to do this yourself). Another place where this would be useful is to warn the user when a function marked always_inline is not actually inlined.
>
>
> Hal: Thanks for the all the reviews Hal!
>
> Committed in r244550, r244552,r244555, and r244556.
>
> Tyler
>
>> On Aug 9, 2015, at 9:59 PM, Hal Finkel <hfinkel at anl.gov <mailto:hfinkel at anl.gov>> wrote:
>>
>> Hi Tyler,
>>
>> Thanks for working on this!
>>
>> + // If a loop hint is provided the diagnostic is always produced.
>> + const char *name = Hints.isForced() ? DiagnosticInfo::AlwaysPrint : LV_NAME;
>>
>> name -> Name
>>
>> These LGTM.
>>
>> P.S. I assume we should add similar logic to the loop unroller (please add a FIXME if you're not going to do this yourself). Another place where this would be useful is to warn the user when a function marked always_inline is not actually inlined.
>>
>> -Hal
>>
>> ----- Original Message -----
>>> From: "Tyler Nowicki" <tnowicki at apple.com <mailto:tnowicki at apple.com>>
>>> To: "Gonzalo BG" <gonzalobg88 at gmail.com <mailto:gonzalobg88 at gmail.com>>, "Hal J. Finkel" <hfinkel at anl.gov <mailto:hfinkel at anl.gov>>, "Commit Messages and Patches for LLVM"
>>> <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>>, "llvm cfe" <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>>
>>> Cc: "Gerolf Hoflehner" <ghoflehner at apple.com <mailto:ghoflehner at apple.com>>
>>> Sent: Friday, August 7, 2015 4:15:51 PM
>>> Subject: [Patch][LoopVectorize] Print vectorization analysis when loop hint pragma is specified
>>>
>>>
>>> Hi,
>>>
>>>
>>>
>>>
>>>
>>> Currently, when loop hint is used but vectorization fails we generate
>>> a warning. To get the analysis the user needs to provide the command
>>> line option -Rpass-analysis=<passname> with the correct pass name.
>>> BUT we don’t tell the user which pass name they will need to get the
>>> analysis message. We should be displaying the analysis without
>>> having to request it.
>>>
>>>
>>> These patches print the analysis information when vectorization fails
>>> on loops with hints when the compiler option ‘-Rpass-analysis’ is
>>> provided without ‘=<passname>'. Users of loop hints can provide the
>>> compiler option with their regular debug builds to ensure they
>>> always get the analysis when vectorization fails. This approach is
>>> preferred because diagnostic printing needs line number tracking
>>> which is not enabled by normally. Specifying the option without a
>>> pass-target enables line number tracking and makes viewing the
>>> messages optional.
>>>
>>>
>>> The LLVM patches modify the pass-name of the diagnostic to
>>> DiagnosticInfo::AlwaysPrint, which is an empty const char*. The use
>>> of DiagnosticInfo::AlwaysPrint is recognized when filtering the
>>> diagnostics allowing the message to be printed even if the filter
>>> doesn’t match. Note that the analysis of loops with hints will
>>> always be printed whenever the compiler option is provided even if
>>> ‘=<pass name>' is specified. This allows both types of analyses to
>>> be printed at the same time rather than hiding the analysis on loops
>>> with hints with an pass-target is given.
>>>
>>>
>>> *These patches build on several previous patches still in review to
>>> add late-diagnostics for fp-commut and aliasing. See threads ' Late
>>> evaluation of vectorization r equirements’ and ' Late evaluate of
>>> runtime pointer check's threshold' .
>>>
>>>
>>> Comments and reviews are much appreciated!
>>>
>>>
>>> Tyler
>>>
>>>
>>> (sorry if you received this twice. I used the wrong mailing list
>>> addresses)
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Hal Finkel
>> Assistant Computational Scientist
>> Leadership Computing Facility
>> Argonne National Laboratory
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150811/c810c784/attachment.html>
More information about the llvm-commits
mailing list