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 do 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.
Properties of LLVM IR
  • SSA
  • Type safe
  • Target independent
The LLVM compiler infrastructure
  • 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.