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".
No comments:
Post a Comment