M5: Code Generation¶
This fifth module we begin our transition to talking about code generation (i.e., the backend of the compiler).
Pre-recorded Lectures¶
Note: Professor Samuels will state on Ed when the prerecorded videos are ready to be viewed each week for a module.
The pre-recorded lectures are available here: M5 Videos. You can also find the videos under the “Panopto” tab on the MPCS 51300 canvas site.
The lectures are a series of approx 15-20 minute videos. Please come back here weekly as the videos will be updated if a module spans multiple weeks. This module includes the following videos:
Week 6¶
5.1: ARM Procedure Standard
5.2: C-Runtime Calls in ARM
5.3: Writing a Simple ARM Program
Week 7¶
5.4: Linear Register Allocation
The slides presented in these videos are accessible in the upstream repository.
Resources/Readings¶
The slides and code presented in this module are accessible in the upstream repository.
Engineering a Compiler readings:
Chapter 6.1 - 6.4
Synchronous Sessions (In-person Lecture)¶
As a reminder here are the dates and times for the synchronous session for this module:
Week 6¶
- Dates/Times
Section 1: Wednesday February 12th 10:30am-12:20pm
Please note this class is remote! Please check Ed for the Zoom link.
- Session Outline
Introduction Code Generation
ARM64 Overview
Procedure Abstraction
ARM Instructions [if time permits]
Week 7¶
- Dates/Times
Section 1: Wednesday February 19th 10:30am-12:20pm
- Session Outline
Liveness Analysis
LLVM SSA Formation
Assignment¶
Assignments are always due on Friday evenings.
Milestone #4, due February 21st at 11:59pm CDT
Milestone #5, due March 7th at 11:59pm CDT
Milestone #6, due March 14th at 11:59pm CDT