[cfe-dev] Contributing to C++2a feature implementation!

Nicolas Lesser via cfe-dev cfe-dev at lists.llvm.org
Wed Oct 10 12:31:39 PDT 2018


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:
>
>> Hello,
>>
>> 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 [4].
>>
>> ===
>>
>> 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 [1].
>> 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].
>>
>> 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 [3]. 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 :)


>  * 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.
>>
>> [1] https://anydsl.github.io/
>> [2] https://nvlabs.github.io/cub/
>> [3] https://reviews.llvm.org/p/ergawy/
>> [4] https://clang.llvm.org/cxx_status.html
>> <https://clang.llvm.org/cxx_status.html#ts>
>>
>> Best,
>> Kareem
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181010/03de7a82/attachment-0001.html>


More information about the cfe-dev mailing list