Home / announcements | Course syllabus | Reading list | |
Schedule | Lecture Notes | Homeworks | Links |
Assigned Aug 30, 2021
; Due Sep 8, 2021: Note, there is nothing to turn in for this homework, but it is highly recommended that you do it as you need it for Homework 1. Assigned Sep 8, 2021
A. Setup and run LLVM on your own "hello world" program. We will be using version 12.0.1 (Note 13.0.0 is supposed to be out in September, but is not available yet). We have 2 Linux servers for the class, eecs583a,eecs583b.eecs.umich.edu. You can either use one of the servers or your own Linux system. For the class servers, you will set up your directory to point to a central LLVM installation and just have your own pass in your local directory. For your own server, you will need to do a full install of LLVM on your system. See http://www.llvm.org for more information and to familiarize yourself with what resources are available. Detailed instructions for both setups are posted on piazza.
B. Skim over the following LLVM documentation,
C. Go through writing a pass tutorial: Writing a Pass.
Create your own LLVM pass that can print the names of all basic blocks in the input program.
You may want to write a script to run LLVM and your pass efficiently rather than running LLVM manually on the command line.
Lastly, try generating the human-readable LLVM bitcode (*.bc) and dump/view the control-flow graph for the input program (see option -dot-cfg).
Homework 1
Assigned Sep 20, 2021; Due Oct 8, 2021 (11:59pm): pdf
Benchmarks - EECS583_HW2Bench.tar.gz
Implementation template - F21_EECS583_HW2Template.tar.gz
Home / announcements | Course syllabus | Reading list | |
Schedule | Lecture Notes | Homeworks | Links |