LLVM: A compilation framework for lifelong program analysis & transformation
University of Illinois Urbana-Champaign
Abstract
We describe LLVM (low level virtual machine), a compiler framework designed to support transparent, lifelong program analysis and transformation for arbitrary programs, by providing high-level information to compiler transformations at compile-time, link-time, run-time, and in idle time between runs. LLVM defines a common, low-level code representation in static single assignment (SSA) form, with several novel features: a simple, language-independent type-system that exposes the primitives commonly used to implement high-level language features; an instruction for typed address arithmetic; and a simple mechanism that can be used to implement the exception handling features of high-level languages (and…
Citation impact
- FWCI
- 7.68
- Percentile
- 100%
- References
- 40
Authors
2Topics & keywords
- Compiler
- Computer science
- Programming language
- Intermediate language
- Optimizing compiler
- Transformation (genetics)
- Simple (philosophy)
- Representation (politics)