TC-L Goals
Things to learn during this stage that you should remember:
- Smart Pointers
Usage of
std::unique_ptr
.- Move Semantics
How move semantics make
std::unique_ptr
a powerful tool.- Basic Blocks
Why we need them, and how LLVM uses them in control-flow handling.
- Inner Functions and Their Impact on Memory Management at Runtime
Reaching non-local variables via lambda lifting.
- Properties of LLVM IR
SSA
Type safe
Source & target independent.
Holds necessary information in order to apply optimization.
Can hold debug information (DWARF).
- The LLVM compiler infrastructure
LLVM IR
The optimizer,
opt
opt
takes LLVM IR and applies optimization passes on it. This allows you to select several optimization passes to apply on the LLVM IR and observe the resulting LLVM IR.The LLVM Core libraries
The LLVM Tools:
llvm-as
,llvm-dis
,llvm-link
, etc.
- Using an External Runtime
Using a C runtime interacting with the Tiger code.