M7: Code Generation

In this seventh module, we will begin to look implementing the necessary code for performing code generation for our language. Specifically looking at translating canonical LLVM IR trees into ARM64 assembly code.

Pre-recorded Lectures

The pre-recorded lectures are available here: `M7 Videos <>`_. You can also find the videos under the “Panopto” tab on the MPCS 51300 canvas site.

The lectures are a series of approx 20-30 minute videos divided into 4 sections:

  • Writing an ARM Program

  • Register Allocation

The slides/code presented in these videos are accessible in the upstream repository under the m7/resources m8/resources directory. Please reachout to me if you do not have access to this repository.

Supplementary Resources

  • Engineering a Compiler readings:
    • Chapter 13.1 - 13.4

Synchronous Session (In-person or Remote)

You will find the links to the Zoom sessions on Canvas. As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times
    • Section 1: Tuesday February 21st @ 5:30pm-7:20pm

  • Discussion Outline
    • Introduction to ARM code generation

    • Structuring an ARM assembly file

    • Simple Arm Demo

Assignment

Assignments are always due on Friday evenings.