<div dir="ltr"><div dir="ltr">Didn't we already go through this for CUDA? It has all the same issues. I see some comments about Sema::CUDADeferredDiags. I would look at that and try to generalize it.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 15, 2019 at 1:58 PM John McCall via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
On 14 Jan 2019, at 23:23, Finkel, Hal J. via cfe-dev wrote:<br>
<br>
> On 1/14/19 6:22 PM, Alexey Bataev wrote:<br>
>> Yes, it is implemented in the frontend. No, it is not implemented in <br>
>> the Sema analysis, it is implemented in Codegen part of the frontend. <br>
>> And it is almost impossible to implement it in Sema. It requires <br>
>> recursive analysis of the functions used (not only called directly, <br>
>> but also indirectly). The better place to implement it is the CodeGen <br>
>> of the frontend.<br>
><br>
> Your proposal makes sense to me. And, I agree, just moving the logic <br>
> to<br>
> CodeGen seems like the most-straightforward solution. I don't see any<br>
> conceptual problem with inline assembly being checked a bit later in <br>
> the<br>
> pipeline (it is, after all, quite target specific).<br>
<br>
We generally prefer to diagnose things in Sema rather than IRGen, and <br>
one<br>
reason is that we want these diagnostics to show up in clients like <br>
IDEs.<br>
<br>
Obviously, ASM constraint validation is a pretty minor diagnostic, but I<br>
don't see what naturally limits this to just that.  In fact, hasn't this<br>
come up before?<br>
<br>
If this is really just specific to ASM constraint validation, I think we<br>
can find a way to delay the diagnosis of those to IRGen conditionally.<br>
Otherwise, I think you need to find a way to suppress diagnostics from<br>
functions that you don't care about.<br>
<br>
John.<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>