[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