[Openmp-dev] [RFC]Requiring C++14 for the OpenMP subproject
Hal Finkel via Openmp-dev
openmp-dev at lists.llvm.org
Tue Feb 11 06:06:20 PST 2020
On 2/11/20 7:50 AM, Jim Cownie via Openmp-dev wrote:
>> On 2/11/20 4:56 AM, Jon Chesterfield via Openmp-dev wrote: >//>/Hmm,
>> so you propose creating a dependency from the OpenMP runtime to
>> />/the LLVM libraries? Which classes would you want to use, probably
>> some />/of the ADTs? Does any of the other runtime libraries (libc++,
>> />/libc++abi, compiler-rt, sanitizers) already do this? IIRC
>> />/libc++abi and />/LLVMSupport share some demangling code, but that
>> is manually copied. />//>//>/I am unaware that each subproject
>> reimplements code to avoid a />/dependency on llvm. My first reaction
>> is "surely not", but it's not />/totally implausible. I will look
>> into this. />//>/ADT is the obvious contender for reuse. There will
>> also be a lot of OS />/wrappers somewhere. File IO, dlopen, probably
>> memory allocators. />/Essentially all the stuff a big cross platform
>> C++ project grows over />/time. In the case of anything hitting the
>> filesystem, also />/treacherously difficult to get right across
>> platforms. />//>/There's an open patch against libomptarget that uses
>> dlopen with a />/hardcoded path length. Opt loads shared libraries on
>> windows afaik so />/probably has a robust wrapper around dlopen, so
>> I'd start there. / I would separate these two discussions. One
>> motivation for the relicensing effort is to allow sharing code
>> between runtime libraries and the core infrastructure. I expect that,
>> as we move to full coverage on various parts of the relicensing,
>> we'll have a large-scale discussion about how to implement this
>> resuse across the project. However, we can certainly use C++14
>> language features before we worry about using LLVM's support library.
>> -Hal
> I agree wth Hal; there are two different issues here which have
> potentailly different implications :-
>
> 1. Choice of base language level (C++11 or C++14)
> 2. Moving code backwards and forwards between the runtime and the
> compiler, or adding additional runtime library requirements on
> users of the OpenMP runtime.
>
>
> Changing the language dialect seems a small an uncontentious thing to do.
> However adding additional dependencies seems more problematic. It is
> important that the runtime should remain usable with code compiled by
> GCC, for instance, even in the absence of other libraries. So not just
> that we support GCC’s OpenMP interfaces when we’re dealing with, say,
> an OpenMP program compiled by LLVM which links to a GCC compiled
> library that uses OpenMP, but also an all GCC case, where nothing but
> libomp has been compiled by LLVM.
>
> This matters because libomp can provide useful performance
> improvements over libgomp at high core counts, and that is useful to
> some people.
> It’s also a nice sales-pitch for LLVM in general :- “Look, you were
> able to use some of LLVM without even recompiling your GCC compiled
> code, and it improved the performance. Just think how good it could be
> if you moved to LLVM completely…” :-)
Indeed :-)
In practice, when we discuss using the LLVM support library in the
runtime libraries, I expect that we'll also have some discussion on how
it should be split, or not, how it should be linked (statically,
dynamically, whatever), what dependencies it may have. I expect that we
would want this to be pretty transparent when we do it.
-Hal
>
>
> -- Jim
> James Cownie <jcownie at gmail.com <mailto:jcownie at gmail.com>>
> Mob: +44 780 637 7146
>
>
>
>
>
> _______________________________________________
> Openmp-dev mailing list
> Openmp-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20200211/747a52a1/attachment-0001.html>
More information about the Openmp-dev
mailing list