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

Kareem Kareem via cfe-dev cfe-dev at lists.llvm.org
Thu Oct 11 13:55:39 PDT 2018


Thanks for the suggestions Richard. And thanks for the heads-up Nicolas :). I am interested to take on the pack expansion in lambda init-capture paper. I will come back to this thread with my questions later on. But as a start, it would be great if you can point me to the relevant parts in the code base so that I can start exploring at the right place. Best, Kareem ---- On Wed, 10 Oct 2018 22:41:42 +0200 Richard Smith via cfe-dev <cfe-dev at lists.llvm.org> wrote ---- 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: 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 :) 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. [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 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 _______________________________________________ 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/20181011/95df237c/attachment.html>


More information about the cfe-dev mailing list