CiteULike is a free online bibliography manager. Register and you can start organising your references online.

LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation

In CGO '04: Proceedings of the international symposium on Code generation and optimization (2004), 75.

X Abstract

This paper describes LLVM (Low Level Virtual Machine),a compiler framework designed to support transparent, lifelongprogram analysis and transformation for arbitrary programs,by providing high-level information to compilertransformations at compile-time, link-time, run-time, and inidle time between runs.LLVM defines a common, low-levelcode representation in Static Single Assignment (SSA) form,with several novel features: a simple, language-independenttype-system that exposes the primitives commonly used toimplement high-level language features; an instruction fortyped address arithmetic; and a simple mechanism that canbe used to implement the exception handling features ofhigh-level languages (and setjmp/longjmp in C) uniformlyand efficiently.The LLVM compiler framework and coderepresentation together provide a combination of key capabilitiesthat are important for practical, lifelong analysis andtransformation of programs.To our knowledge, no existingcompilation approach provides all these capabilities.We describethe design of the LLVM representation and compilerframework, and evaluate the design in three ways: (a) thesize and effectiveness of the representation, including thetype information it provides; (b) compiler performance forseveral interprocedural problems; and (c) illustrative examplesof the benefits LLVM provides for several challengingcompiler problems.

View the full article here:

ACM

This article has been bookmarked 5 times, initially on 2006-01-24.

2009-06-28 User NickGasson
2009-04-11 User guillonc , 1 note

Seminal paper presenting llvm. The framework was designed from the start for link time optmization. It also supports dynamic compilation and interpretation but it is not the first objective. Highly compatible with existing C/C++ systems as it relies directly on available libraries/headers. The cost is that target independence of the code limited due to no abstraction of system dependencies.

2009-04-11 15:22:23
2009-03-15 User hannibal_08
2006-01-24 User jolilius
Group TUCS-ES_Lab
Privacy Statement | Terms & Conditions
CiteULike organises scholarly (or academic) papers or literature and provides bibliographic (which means it makes bibliographies) for universities and higher education establishments. It helps undergraduates and postgraduates. People studying for PhDs or in postdoctoral (postdoc) positions. The service is similar in scope to EndNote or RefWorks or any other reference manager like BibTeX, but it is a social bookmarking service for scientists and humanities researchers.