Google Summer of Code 2022 - Rust-GCC/gccrs GitHub Wiki

Please read https://gcc.gnu.org/wiki/SummerOfCode for more detailed information, this wiki just contains information on the potential projects.

Possible Projects:

Note these are simply possible projects, we are open to accepting proposals with your own ideas.

HIR and Typed HIR Dumps

Improve debugging experience by improving the existing HIR dump to include HIR mappings information akin to rustc. We can leverage work here to then emit a name and type resolution dump. This will greatly improve the debugging experience with gcc-rust. We can use the official rustc compiler as a reference here for the HIR dump. We expect the HIR dump will output S-expressions which is a good format to allow for the mappings to be added. See the relevant github issues:

Mentor

Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.

Fix our unused code scan

We currently have two warnings for unused code:

  • Deadcode pass
  • Unused code

They are currently duplicating warnings we have at the moment. The Deadcode pass is working correctly but the unused code scan is also emitting warnings, we need to remove this unused code pass and update the dead code pass to encompass unused variables.

  • Difficulty: Medium
  • Size: medium

Mentor

Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.

Port CPP constexpr.c

We need to be able to do constant folding regardless of optimization level for all constants such as array capacity and enum discriminates. We can do this by continuing the port of the gcc/cp/constexpr.c over to gcc/rust/backend/rust-constexpr.cc to get more error handling and improved constant folding.

  • Difficulty: Hard
  • Size: large

Mentor

Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.

Reusing the Rustc testsuite

Investigate reusing the Rustc testsuite in the short term by building a script to invoke the gccrs compiler on a specified testcase of the rust-testsuite and parse the annotations to determine if it should pass or fail. We could investigate porting it to reuse our dejagnu suite and use the appropriate annotations

  • Difficulty: medium
  • Size: medium

Mentor

Mentored by Philip Herron. Required Skills include Python and finding a way through a large codebase.