[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:
>> 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 :)
> * 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev