Monday, 9 February 2026
Rust uses C++
Friday, 12 December 2025
LLVM Concepts - Optimizable IL from SSA Approach
What is LLVM?
LLVM ("Low Level Virtual Machine") is a collection of modular and reusable compiler and toolchain technologies (you could call it a "compiler infrastructure framework" or a "framework of reusable components to build compilers").
LLVM was born from research work at the University of Illinois.
The intermediate language (IL) is constrained by static single assignment (or SSA), where variables are assigned only once - enabling aggressive optimization.
The IL is an abstract RISC-like instruction set with additional information - a major feature being type information. A detailed guide can be found here. It is designed to be human-readable. Note that LLVM documentation does not refer tot the language as an IL but rather an IR, or intermediate representation.
A Core Tenent of LLVM - "Lifelong" Program Analysis and Transformation
One of the stated goals of LLVM is to make "lifelong program analysis and transformation available for arbitrary software".
Get Python SHAP Explainer in Ubuntu
- numba
- scikit-learn
Sunday, 9 August 2020
Static Single Assignment-Based Compilation Explained
SSA refers to Static Single Assignment.
It is a naming convention for storage locations such that the value of a variable is independent of its location in the program. This is known as referential transparency.
An example of an SSA-based compilation toolchain is LLVM which has an associated Project Blog here.