Home / announcements | Course syllabus | Reading list | |
Schedule | Lecture Notes | Homeworks | Links |
Assigned Jan 10, 2024
; Due Jan 17, 2024: 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 Jan 17, 2024
A. Setup and run LLVM on your own "hello world" program. We will be using version 17.0.6. 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 Jan 31, 2024; Due Feb 21, 2024 (11:59pm Eastern USA): pdf
Materials: 2 sets of benchmarks are provided in the first tgz file : correctness and performance. Correctness benchmarks are designed to help you test and debug your implementation, but are too small to notice any performance change with optimization. Performance benchmarks have high trip count loops to assess performance of your optimization. Some performance improvement should be observed particularly with the Bonus Implementation. See the 2 README files for more info about each group of benchmarks.Benchmarks - W24_EECS583_benchmarks.tar.gz
Implementation template - W24_EECS583_HW2_Template.tar.gz
Home / announcements | Course syllabus | Reading list | |
Schedule | Lecture Notes | Homeworks | Links |