Overview of the LLVM architecture:

Static Single-Assignment
SSA is a means of structuring the IR such that every variable is given a value only once and every variable is defined before its use. (this is how LLVM expects its input to be!)
SSA of
LLVM Types
| Type | Identifier |
|---|---|
| boolean | i1 |
| byte | i8 |
| short | i16 |
| char | i16 |
| integer | i32 |
| long | i63 |
| float | float |
| double | double |
| *_ | pointer to |
| **_ | pointer to a pointer to |
| [_] | arrays of |
Example: we want to translate FUN to K-(Intermediate)Language
FUN:
K-(Intermediate)Language
KLet
CPS (Continuation Parsing Style ?)
We need to translate our FUN expressions into SSA compliant K-(Intermediate)Language.



