hfinkel added a comment.

In D71241#1782430 <https://reviews.llvm.org/D71241#1782430>, @JonChesterfield 
wrote:

> In D71241#1782427 <https://reviews.llvm.org/D71241#1782427>, @ABataev wrote:
>
> > In D71241#1782425 <https://reviews.llvm.org/D71241#1782425>, 
> > @JonChesterfield wrote:
> >
> > > > Explain that you're replacing the function written by the user on the 
> > > > fly by another one. If they accept it, go ahead.
> > >
> > > That's the observational effect of variants. Replacing is very similar to 
> > > calling + inlining.
> >
> >
> > Not in the AST.
>
>
> I don't see much difference between mutating the AST and mutating the SSA. 
> What're your objections to the former, specifically? It's not a stable 
> interface so tools hanging off it will have a process for updating when it 
> changes.


I'd like to add that what we're talking about is none of these things. We're 
not talking about "mutating" the AST at all. Neither are we inlining. We're 
talking about performing callee resolution when building the AST in the first 
place. This is exactly what we do in all other places where to do overload 
resolution.

This is different from other places where we perform overload resolution only 
in that the callee won't have the same name as the identifier used in the call 
expression. But that's okay - those are the semantics of the calls with OpenMP 
variants. You type one name, and the function that ends up being called has 
another name. But it's all static and part of the specified language semantics. 
Should we record the original "base" function? Yes. Should we represent it as 
the callee? No.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71241/new/

https://reviews.llvm.org/D71241



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to