LLVM Compiler Katie Dew
Lectures High-level overview of LLVM (Katie) Walkthrough of LLVM in context of our project (Jason) –Input requirements –Configuration needs Additional configuration and global context (Dave) –Optimizations –Other file formats 2
Overview High level overview of toolchain Sub-projects, libraries Advantages Audience Features Basic commands 3
What is LLVM? Research project at the University of Illinois in 2000 –Goal: build a dynamic compiler for static and dynamic programming languages Set of modular and reusable compiler and toolchain technologies 4
Sub-Projects of LLVM LLVM Core Libraries – Clang libc++ 5
Why Use LLVM? Low-level language with strictly defined semantics Front-ends for C and C++ Garbage collection Documentation and projects – Tools to make development easier –Bugpoint tool – 6
Who is LLVM For? Developers Researchers End-users 7
Features Front-ends for C, C++, Objective-C, and Fortran Stable implementation of LLVM instruction set Easy retargettable code generator which supports –X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, Xcore Just-In-Time (JIT) code generation system 8
Basic Commands llvm-as llvm-dis opt llc lli llvm-link llvm-ar 9
Questions? 10