C0 Compiler Optimizations and Functional Programming Features

15-411 Compiler Design Course Project | Fall 2021

Collaborators

  • Ishan Bhargava

Languages Involved

  • Implementation: Rust
  • Source: C0, a safe subset of C
  • Target: x86 asm

Overview

  • Studied and implemented compiler optimizations including Partial Redundancy Elimination (PRE) and Aggressive Dead Code Elimination (ADCE) for a C0 to x86 asm compiler, achieving speedups on par with GCC -O1
  • Expanded compiler to support algebraic datatypes (ADTs) and function closures, including parsing, typechecking, and codegen