<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<br class=""><div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">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. </div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">*These patches build on several previous patches still in review to add late-diagnostics for fp-commut and aliasing. See threads '<span style="font-family: 'Helvetica Neue';" class="">Late evaluation of vectorization r</span><font face="Helvetica Neue" class="">equirements’ and '</font><span style="font-family: 'Helvetica Neue';" class="">Late evaluate of runtime pointer check's threshold'</span>.</div><div class=""><br class=""></div><div class="">Comments and reviews are much appreciated!</div><div class=""><br class=""></div><div class="">Tyler</div><div class=""><br class=""></div><div class="">(sorry if you received this twice. I used the wrong mailing list addresses)</div><div class=""><br class=""></div><div class=""></div></div></div></body></html>