Personal tools

Extending the RISCV backend of LLVM to support PULP Extensions

From iis-projects

Jump to: navigation, search

Background

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.


Description

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.

Status: Available

Looking for 1 Interested Master Student (Master/Semester Project)
Supervision: Bjoern Forsberg

Prerequisites

C/C++
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.


Professor

Luca Benini

↑ top