|
Assignments COMP4133: Advanced Compiler Construction Semester 1, 2004 |
There will be two projects. The first project is about scalar replacement of aggregates, which is primarily designed to help you become familiar with the LLVM infrastructure. You have a little over four weeks to complete this project.
The second project is more substantial aiming at solving a significant compiler problem. It involves reading the literature, developing a solution, implementing in a realistic compiler (LLVM); testing it for realistic codes, writing a project report and giving a seminar presentation. You have about 10 weeks to complete this project --- you are expected to start reading relevant papers in week 4.
You are strongly advised to start now to work on the projects. It is difficult for you to complete either of the two projects in one week since both LLVM and the underluing compiler problem you deal with are new to you.
To get the most out of a project, think about the project as a research problem to tackle and solve, rather than something with scanned procedures and goals.
| Project | Weight (marks) | Due | Penalties |
|---|---|---|---|
| 1 | 10 | 12noon Sunday 4 April 2004 | 2 marks per day late |
| 2 | 50 | 12noon Friday 11 June 2004 | 3 marks per day late |
Copy the files from ~cs4133/Assignments/proj1: proj1.ps project description scalarise.c a test example scalarise.bc bytecode of example |
The IR for LLVM is SSA-based.
To gain a preliminary understanding about SSA, read the SSA construction paper
by Cytron et al available from the Subject Info page. At this stage,
you don't need to understand the algorithms for the SSA construction. It will be
sufficient for this project if you understand the SSA representation itself,
particularly the meaning of the
functions.
Read and consult the LLVM documentation during the entire project to become familiar with the LLVM infrastructure.
cfrontend-1.1.i686-redhat-linux-gnu.tar.gz: precompiled llvm front end
binaries for Linux/x86
llvm-2-may.tar.gz: llvm source code
|
YOUR-LLVM-INSTALLATION-DIR/docs/GettingStarted.html