-
12
pages
-
English
-
Documents
-
2011
Description
LLVM: A Compilation Framework forLifelong Program Analysis & TransformationChris Lattner Vikram AdveUniversity of Illinois at Urbana-Champaign{lattner,vadve}@cs.uiuc.eduhttp://llvm.cs.uiuc.edu/ABSTRACT mizationsperformedatlink-time(topreservethebenefitsofseparate compilation), machine-dependent optimizations atThis paper describes LLVM (Low Level Virtual Machine),install time on each system, dynamic optimization at run-a compiler framework designed to support transparent, life-time, and profile-guided optimization between runs (“idlelong program analysis and transformation for arbitrary pro-time”)usingprofileinformationcollectedfromtheend-user.grams, by providing high-level information to compilerProgramoptimizationisnottheonlyuseforlifelonganal-transformationsatcompile-time,link-time,run-time, andinysis and transformation. Other applications of static anal-idle time between runs. LLVM defines a common, low-levelysis are fundamentally interprocedural, and are thereforecoderepresentationinStaticSingleAssignment(SSA)form,most convenient to perform at link-time (examples includewith several novel features: a simple, language-independentstatic debugging, static leak detection [24], and memorytype-system that exposes the primitives commonly used tomanagement transformations [30]). Sophisticated analysesimplement high-level language features; an instruction forandtransformationsarebeingdevelopedtoenforceprogramtyped address arithmetic; and a simple mechanism that ...
-
Publié par
-
Publié le
02 septembre 2011
-
Langue
English