[cfe-dev] Contributing to C++2a feature implementation!
Richard Smith via cfe-dev
cfe-dev at lists.llvm.org
Wed Oct 10 13:41:42 PDT 2018
On Wed, 10 Oct 2018 at 12:32, Nicolas Lesser via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> On Wed, Oct 10, 2018 at 9:24 PM Richard Smith via cfe-dev <
> cfe-dev at lists.llvm.org> wrote:
>> Hi Kareem!
>> This sounds great, and we'd be happy to have more people helping out.
>> On Tue, 9 Oct 2018 at 06:49, Kareem Kareem via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>> My name is Kareem and I am a C++ software engineer at TomTom. I would
>>> like to gain more experience in compilers by contributing to the
>>> implementation of experimental C++2a features as detailed on the Clang
>>> website .
>>> Here is my relevant background:
>>> 1 - I implemented a library for a research language called Impala.
>>> Impala is implemented on top of a compiler framework called AnyDSL .
>>> Specifically, I implemented a number of parallel primitives in Impala (e.g.
>>> map, reduce, radix sort). The library is inspired by Nvidia's CUB library
>>> 2 - I participated in a research project to extend LLVM IR to natively
>>> support fork-join parallelism. In particular, I implemented an OpenMP
>>> frontend and backend to translate to and from Parallel-IR. The frontend and
>>> backend supported simple parallel loops.
>>> 3 - I did some tiny bug fixes in LLVM to properly propagate DebugInfo in
>>> some passes . Nothing so fancy though :).
>>> It would great if an experienced member of the community is able to
>>> guide me through this by choosing a (somewhat beginner friendly) proposal
>>> that I can start looking into and probably point me to relevant literature.
>> Here's a selection of smaller C++20 papers you could choose from:
>> * template-parameter-list for generic lambdas (http://wg21.link/p04282r2)
>> -- this would involve parsing support and a few updates through various
>> parts of the compiler to correctly deal with explicit template parameter
>> lists (eg, AST pretty-printing)
> There is already patch for this in review: https://reviews.llvm.org/D36527
> . Might want to check that out before you duplicate work :)
Oops, sorry! :)
> * designated initializers (http://wg21.link/p0329r4) -- we already
>> support most of this, but we do not have support for some of the syntax
>> yet, and we accept things that are not part of the C++20 feature: we should
>> add syntactic support for the new parts and produce appropriate "extension"
>> warnings based on the current language mode
>> * [[likely]] and [[unlikely]] attributes (http://wg21.link/p0479r5) --
>> adding the attributes themselves should be straightforward, but you'll also
>> need to figure out how best to express the effects of these attributes in
>> LLVM IR (whether by existing intrinsics and metadata or by adding a new
>> construct that LLVM can lower at an appropriate moment)
>> * pack expansion in lambda init-capture (http://wg21.iink/p0780r2) --
>> this'd be a good choice if you want to learn your way around the way Clang
>> represents and instantiates templates
>>> I can commit to a GSoC-style partnership if any experienced member would
>>> be willing to do so.
>>>  https://anydsl.github.io/
>>>  https://nvlabs.github.io/cub/
>>>  https://reviews.llvm.org/p/ergawy/
>>>  https://clang.llvm.org/cxx_status.html
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev