What is Polaris?
Polaris is a source to source transforming compiler, originally developed at UIUC, intended to parallelize programs written as conventional, sequential algorithms. Polaris is essentially a driver routine which scans a FORTRAN 77 program and converts it into an Abstract Syntax Tree (AST). Then, various passes are called by the driver on the AST. Each pass attempts to optimize the program via specific methods, such as constant propagation, reduction recognition, etc.. The driver program completes its task by printing the program.
What is MiniPolaris?
MiniPolaris is a version of Polaris with only the most fundamental passes.The source program is read, parsed, and converted to an AST. The user will then provide custom passes to extract information and/or make transformations on the statements. After the custom passes are executed, the driver program outputs the resulting code.
Make sure to take a look at the MiniPolaris documentation.
To get started with MiniPolaris the first thing to do is to join 605's Piazza page This is very important. All official announcements (e.g. project deadlines will be posted there. This is also the place to ask questions and to have discussions. You are encouraged to participate in discussions and answer question from your fellow students.
Next, you need to setup the MiniPolaris environment. Instructions how to do this can be found in the setup section.
It's also very important to get more familiar with Minipolaris. Here is a small list of resources:here
Submissions and Deadlines
All projects must be submitted through CSNET. There you can also find the correct deadlines for the submissions.
Non-cse students should also be able to use CSNET to submit projects (although it might need some explanation according to cse helpdesk). If you have any question regarding using CSNET, please take a look at their wiki page or send an email to cse helpdesk.
For every project create a gzipped tar file in the form of
XXX is the project number (e.g. project1A) and
your UIN number. Furthermore, make sure you clean up your code before
(e.g. no core files, executables, object files). Also include a README file
where you explain your approach.Make sure you submit
your projects on time. Points will be subtracted for late submissions.
- Project 1A Transforming Gotos
- Project 1B Basic Blocks
- Project 2 Constant Propagation
- Project 3 SSA
- Project 4 Global Common Subexpresion Elimination
- Project 5 Data dependence testing
- Project 6 Code generation
- Ask a Peer - read the course collaboration policy first
- Check 605 Piazza page
- Contact the TAs