Extending the RISCV backend of LLVM to support PULP Extensions
The open RISCV ISA has been rapidly increasing in popularity, in academia, but now also in industry. The LLVM compiler infrastructure has been recently extended to compile code for RISCV platforms, enabling Clang and other LLVM tools to be used to compile code for RISCV platforms.
The PULP platform, based on RISCV, and developed at IIS has so far been using the GCC compiler, however, recently the compilation of programs with LLVM has become a point of interest. As the RISCV ISA is extensible, enabling good performance on the PULP platform requires the compiler to be aware of these ISA extensions.
The goal of this project is to extend the LLVM RISCV backend to support the PULP extensions to the RISCV ISA, and to quantify the improvements compared to the mainline LLVM implementation and the state of the art GCC compiler.
- Looking for 1 Interested Master Student (Master/Semester Project)
- Supervision: Bjoern Forsberg
- Knowledge on Memory Hierarchies
- Interest in compiler techniques
The course Systems-on-chip for Data Analytics and Machine Learning provides a good fundament for the first two points on the list. Experience from Compiler Design is meriting.