Lund University
Department of Computer Science

Optimizing Compiler Project, 2023

The project includes the following compulsory parts:

  1. Constant propagation with conditional branches.
  2. Dead code elimination using control dependences.
For the competition, only optimisations which are reasonable are permitted, which in principle only excludes solutions which would waste enourmous amounts of memory during execution of the optimized program. Up to 30000 memory words is OK.

There is no deadline for the project but to participate in the competition, there is a deadline of mailing me a zip or tar file with your vcc compiler: Saturday, March 11 at 18.00 (Swedish time zone). You are allowed to change anything except the simulator in vcc.



The base project code (a non-optimizing C subset compiler) is provided in C. If you would like to use a different language, you are encouraged to translate the base code to another language including Ada, Clojure, C++, Fortran, Haskell, Java, Lisp, Objective-C, POWER assembler, Prolog, Rust, Scala, Scheme, Simula, Smalltalk, or SPARC assembler. You need to ask for permission to use other languages.

If you are interested in increasing your grade one step (from 3 or 4), you can implement for instance graph colouring register allocation, or one of the following algorithms on SSA form: operator strength reduction, global value numbering, or partial redundancy elimination.


Most recently updated: Fri Feb 10 04:23:53 PM CET 2023