The DOI matches its Crossref record.
LLVM: a compilation framework for lifelong program analysis & transformation
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 setjmp/longjmp in C) uniformly and efficiently. The LLVM compiler framework and code representation together provide a combination of key capabilities that are important for practical, lifelong analysis and transformation of programs. To our knowledge, no existing compilation approach provides all these capabilities. We describe the design of the LLVM representation and compiler framework, and evaluate the design in three ways: (a) the size and effectiveness of the representation, including the type information it provides; (b) compiler performance for several interprocedural problems; and (c) illustrative examples of the benefits LLVM provides for several challenging compiler problems.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
No references could be resolved yet.
Research works printed but not linked: 44
- 10.1145/780732.780743 · DOI
- 10.1145/378795.378811 · DOI
- 10.1145/319301.319345 · DOI · Paper page
- 10.1145/800017.800542 · DOI
- muth, 1999, Alto A platform for object code modification
- 10.1145/115372.115320 · DOI · Paper page
- meijer, 2002, A Technical Overview of the Commmon Language Infrastructure
- dehnert, 2003, The transmeta code morphing software: Using speculation, recovery and adaptive retranslation to address real-life challenges, 2nd IEEE/ACM Symp Code Generation and Optimization
- 0, Managed extensions for c++ specification, NET Framework Compiler and Language Reference
- shukla, 2003, Lightweight Cross-procedure Tracing for Runtime Optimization
- 2001, C++ ABI for Itanium
- cohn, 1997, Optimizing Alpha executables on Windows NT with Spike, Digital Technical Journal, 9
- romer, 1997, Instrumentation and optimization of Win32/Intel executables using Etch, Proc USENIX Windows NT Workshop
- 10.1109/40.671403 · DOI
- 10.1145/289423.289460 · DOI
- 10.1145/301618.301635 · DOI
- 10.1145/223428.207121 · DOI
- 10.1109/ISCA.1997.604517 · DOI
- 10.1145/38765.38828 · DOI
- 10.1016/S0066-4138(61)80014-1 · DOI
- srivastava, 1992, A practical system for intermodule code optimization at link-time, Journal of Programming Languages, 1, 1
- 10.1109/IWIA.1998.779076 · DOI
- 10.1145/12276.13338 · DOI
- 10.1145/265563.265576 · DOI
- 10.1145/512529.512563 · DOI
- 10.1145/781131.781150 · DOI
- 10.1145/347324.348916 · DOI
- 2000, XL FORTRAN: Eight ways to boost performance, White Paper
- 10.1145/778559.778562 · DOI
- 10.1145/581630.581678 · DOI
- lattner, 0, LLVM Language Reference Manual
- 10.1145/378795.378825 · DOI
- 10.1109/MICRO.2003.1253196 · DOI
- 10.1145/231379.231402 · DOI
- 10.1145/781131.781155 · DOI
- lattner, 2002, Automatic pool allocation for disjoint data structures, Proc ACM SIGPLAN Workshop on Memory System Performance, 10.1145/773146.773041 · DOI
- 10.1145/169683.169678 · DOI
- 10.1145/349299.349303 · DOI
- lindholm, 1997, The Java Virtual Machine Specification
- 10.1145/277652.277745 · DOI
- lattner, 2003, Data structure analysis: A fast and scalable context-sensitive heap analysis, Tech Report
- 0, The Architectural Neutral Distribution Format
- chase, 1994, Implementation of exception handling, J C Language Transl, 5, 229
- 10.1145/304065.304113 · DOI
Cited by
Quantifying the Accuracy of High-Level Fault Injection Techniques for Hardware Faults
Wei, J., Thomas, A., Li, G., & Pattabiraman, K. (2014) · 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks · doi:10.1109/dsn.2014.2 · Cited by 182
QASMBench: A Low-Level Quantum Benchmark Suite for NISQ Evaluation and Simulation
Li, A., Stein, S., Krishnamoorthy, S., & Ang, J. (2023) · ACM Transactions on Quantum Computing · doi:10.1145/3550488 · Cited by 183
Understanding Error Propagation in GPGPU Applications
Li, G., Pattabiraman, K., Cher, C.-Y., & Bose, P. (2016) · SC16: International Conference for High Performance Computing, Networking, Storage and Analysis · doi:10.1109/sc.2016.20 · Cited by 89
Ming, J., Zhang, F., Wu, D., Liu, P., & Zhu, S. (2016) · IEEE Transactions on Reliability · doi:10.1109/tr.2016.2570554 · Cited by 33
PipeBERT: High-throughput BERT Inference for ARM Big.LITTLE Multi-core Processors
Chang, H.-Y., Mozafari, S. H., Chen, C., Clark, J. J., Meyer, B. H., & Gross, W. J. (2023) · Journal of Signal Processing Systems · doi:10.1007/s11265-022-01814-y · Cited by 14
Metadata
- Authors
- Lattner, C., & Adve, V.
- Venue
- International Symposium on Code Generation and Optimization, 2004. CGO 2004.
- Publisher
- IEEE
- Published
- 2004-01-01
- Pages
- 75-86
- OpenAlex
- W4246166885
- Cited by
- 2,681
- References
- 0
- FWCI
- 6.29
- Type
- conference paper
- Language
- en
- Open access
- closed
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
How to cite
Cite CoChat for the checks on this page, and the paper for its own findings.
- This page
- CoChat. (2026). Citation check: LLVM: a compilation framework for lifelong program analysis & transformation. https://app.cochat.ai/papers/10.1109/cgo.2004.1281665
- The paper
- Lattner, C., & Adve, V. (2004). LLVM: a compilation framework for lifelong program analysis & transformation. International Symposium on Code Generation and Optimization, 2004. CGO 2004. https://doi.org/10.1109/cgo.2004.1281665
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.