<div dir="ltr"><div><div><div><div>It seems like a difficult thing to do since we would have to keep metadata intact across transformations, which, AFAIK, is not done.<br>mem2reg, for example, doesn't even propagate debug metadata to phi nodes, and I'm not really sure if it's valid to do so.<br>
</div><div>Also, line information alone seems to be insufficient for providing accurate warnings. Debug metadata does contain variable names, but relying only on that would probably limit the kind of warnings we can emit.<br>
</div><div><br></div><div>H.<br></div></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Nov 9, 2013 at 8:27 PM, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>I was discussing this with a few folks at the dev meeting and it would be interesting for some passes to print some warnings on a later stage than the front-end, in special cases, especially if line information is kept and available at that stage. Is this possible today?</div>

<div><br></div><div>My main concern is not correctness, that should have been taken care by the front-end and the sanitizers, but things like we already do with the debug messages, only less verbose, and possibly formatted in a special way, so that other front-end tools can read and propose changes to the code.</div>

<div><br></div><div>I don't have a clear picture of it yet in my mind, but I was thinking of hints like "this loop could be vectorized if you added a restrict keyword to your pointers". </div><div><br></div>

<div>The vectorizer doesn't know if they alias, so it prints the warning. Then another front-end tool could read this and do some code analysis and tell the user if there is at least a few cases in the call graph in which they can't alias, and propose some code changes.</div>

<div><br></div><div>This can also be used to raise bugs. Even though the debug info is already good enough for it, a flag in Clang to enable these non-verbose warnings would be more effective than a list of debug messages, and maybe the user could even figure it out by him/herself before sending the email.</div>

<div><br></div><div>So instead of an email like "why doesn't my loop vectorize?", we get a bug report "implement THIS and THAT in the vectorizer", with an example of the loop.</div><div><br></div>
<div>
Does that make sense? This could be a nice GSOC project...</div><div><br></div><div>cheers,</div><div>--renato</div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>