kristof.beyls added a comment.

In D74918#1898191 <https://reviews.llvm.org/D74918#1898191>, @__simt__ wrote:

> In D74918#1897636 <https://reviews.llvm.org/D74918#1897636>, @kristof.beyls 
> wrote:
>
> > If these values are part of the C++ target platform ABI, it seems to me the 
> > values for std::hardware_{constructive,destructive}_interference_size 
> > should be set by whoever has the authority to decide C++ platform ABI for 
> > specific platforms.
> >  Assuming my thought in the previous sentence is correct; discussions on 
> > which values to chose for 
> > std::hardware_{constructive,destructive}_interference_size should happen in 
> > whichever forums decide C++ platform ABI for the various platforms? (Maybe 
> > for some platforms that forum might be clang-related fora like 
> > reviews.llvm.org, but probably not for all platforms).
> >  With my (probably limited) understanding of the requirements, it seems 
> > like deriving std::hardware_{constructive,destructive}_interference_size 
> > from actual cache line size on a specific micro-architecture doesn't seem 
> > to be the right approach?
>
>
> They will be in the library ABI, meaning the libc++ ABI.
>
> It's valid for libstdc++ and libc++ to have different values there. If we 
> wish, we could try for an alignment (no pun intended) on these values, but 
> even then that's just between these two libraries.
>
> Which is good and encouraging, because I don't know what forum we would have 
> to go to.


I see.
So IIUC, this is library C++ ABI, to be defined by the C++ library. Since no 2 
C++ libraries can co-exist in a single application, there is no need for 
different C++ libraries to agree?

I think there is still an issue then with getting the values of 
std::hardware_{constructive,destructive}_interference_size in the library 
implementation derived from compiler builtins.
There are quite a few systems where clang supports targeting a different C++ 
library than libc++, e.g. libstdc++ on linux or  (IIUC) the MSVC C++ library on 
Windows.
If these C++ libraries implement 
std::hardware_{constructive,destructive}_interference_size based on a value 
returned by a compiler builtin, and the different compilers that are used with 
these libraries return different values for such a builtin, then the library 
C++ ABI here will be dependent on which compiler used?
Doesn't this indicate that either:

- std::hardware_{constructive,destructive}_interference_size should not be 
implemented using a compiler builtin, or
- all compilers must return the same value for the builtin; for all targets 
they support.

Overall, that makes me doubt that using a compiler builtin to implement 
std::hardware_{constructive,destructive}_interference_size is the right 
direction.
If the functionality in this patch does not need to support implementing 
std::hardware_{constructive,destructive}_interference_size, then the design 
constraints for this patch change?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74918



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

Reply via email to