Everything about Intermediate representation
Data structure or code used by a compiler
An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" IR must be accurate – capable of representing the source code without loss of information – and independent of any particular source or target language. An IR may take one of several forms: an in-memory data structure, or a special tuple- or stack-based code readable by the program. In the latter case it is also called an intermediate language. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Intermediate representationA 5-minute orientation
- Skim a recent paper: Neuromorphic intermediate representation: A unified instruction set for interoperable brain-inspired computingInfluential work since 2022
- Pick up a classic book: Abelian l̳-adic representations and elliptic curvesThe most-reprinted book on the subject
- Read the landmark paper: POLLY — PERFORMING POLYHEDRAL OPTIMIZATIONS ON A LOW-LEVEL INTERMEDIATE REPRESENTATIONCited 296 times
- Go sideways: LLVMA closely related topic
- Go sideways: Interprocedural optimizationA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
POLLY — PERFORMING POLYHEDRAL OPTIMIZATIONS ON A LOW-LEVEL INTERMEDIATE REPRESENTATION
Multimedia Event Detection Using A Classifier-Specific Intermediate Representation
The hierarchical task graph as a universal intermediate representation
Formalizing the LLVM intermediate representation for verified program transformations
An intermediate representation for optimizing machine learning pipelines
A simple graph-based intermediate representation
Horn clauses as an intermediate representation for program analysis and transformation
A Compiler Intermediate Representation for Reconfigurable Fabrics
🆕 Influential since 2022
Neuromorphic intermediate representation: A unified instruction set for interoperable brain-inspired computing
SCL-IKD: intermediate knowledge distillation via supervised contrastive representation learning
Indexed Streams: A Formal Intermediate Representation for Fused Contraction Programs
Efficient anisotropic Migdal-Eliashberg calculations with an intermediate representation basis and Wannier interpolation
HGVul: A Code Vulnerability Detection Method Based on Heterogeneous Source-Level Intermediate Representation
📚 Books worth reading
Abelian l̳-adic representations and elliptic curvesJean-Pierre Serre · 1968
Groups, representations, and physicsH. F. Jones · 1990- 📕Representation Theory of Symmetric GroupsPierre-Loic Meliot · 2017
Representations of algebras and related topicsHiroyuki Tachikawa, S. Brenner · 1992- 📕Matrix Spaces and Schur MultipliersLars Erik Persson, Nicolae Popa · 2013
Making of the EarthJon Erickson · 2000
Representation theory and higher algebraic K-theoryA. O. Kuku · 2007- 📕Advances in representation theory of algebrasGermany) International Conference on Representations of Algebras (15th 2012 Bielefeld · 2013
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction…
- Interprocedural optimization Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many…
- Compiler In computing, a compiler is software that translates computer code written in one programming language (the source language) into another language (the…
- Static single-assignment form In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a type of intermediate representation (IR) where each…
- MLIR (software) MLIR (Multi-Level Intermediate Representation) is a compiler infrastructure project developed as a sub-project of the LLVM project. It provides a modular…
- GNU Compiler Collection The GNU Compiler Collection (GCC; formerly GNU C Compiler) is a collection of compilers from the GNU Project that support various programming languages…
- Interpreter (computing) In computing, an interpreter is software that executes source code without first compiling it to machine code. An interpreted runtime environment differs…
- C-- C-- (conventionally written using hyphen-minuses but pronounced C minus minus) is a C-like programming language, designed to be generated mainly by compilers…