hfinkel added a comment.

In D71179#1775157 <https://reviews.llvm.org/D71179#1775157>, @ABataev wrote:

> In D71179#1775066 <https://reviews.llvm.org/D71179#1775066>, @hfinkel wrote:
>
> > In D71179#1774678 <https://reviews.llvm.org/D71179#1774678>, @ABataev wrote:
> >
> > > In D71179#1774487 <https://reviews.llvm.org/D71179#1774487>, @jdoerfert 
> > > wrote:
> > >
> > > > In D71179#1774471 <https://reviews.llvm.org/D71179#1774471>, @ABataev 
> > > > wrote:
> > > >
> > > > > They do this because they have several function definitions with the 
> > > > > same name. In our case, we have several different functions with 
> > > > > different names and for us no need to worry about overloading 
> > > > > resolution, the compiler will do everything for us.
> > > >
> > > >
> > > > I think we talk past each other again. This is the implementation of 
> > > > `omp begin/end declare variant` as described in TR8. Bt definition, the 
> > > > new variant mechanism will result in several different function 
> > > > definitions with the same name. See the two tests for examples.
> > >
> > >
> > > I just don't get it. If begin/end is just a something like 
> > > #ifdef...endif, why you just can't skip everything between begin/end if 
> > > the context does not match?
> >
> >
> > The patch does this (see in ParseOpenMP.cpp where I asked about the 
> > potential inf-loop). But when the definitions are not skipped, then we have 
> > to worry about having multiple decls/defs of the same name and the overload 
> > priorities.
>
>
> I would recommend to drop all this extra stuff from the patch and focus on 
> the initial patch. We'll need something similar to multiversion in case of 
> the construct context selectors, but at first we need to solve all the 
> problems with the simple versions of the construct rather that try to solve 
> all the problems in the world in one patch. It is almost impossible to review.


I agree. We should split this into several patches (e.g., basic handling, 
skipping parsing for incompatible selectors, overload things). I think that 
@jdoerfert posted this so that people can see the high-level direction and 
provide feedback (including feedback on how to stage the functionality for 
review).

@jdoerfert , also, do we have tests that can go into the test suite / 
libomptarget regression tests demonstrating the collection of problems people 
have currently opened bugs on regarding math.h? I recall we still had problems 
with host code needing the long-double overloads, with constants from the 
system headers, etc.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71179



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

Reply via email to