[PATCH] D71241: [OpenMP][WIP] Use overload centric declare variants

Hal Finkel via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 12 15:39:25 PST 2019


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





More information about the cfe-commits mailing list