LLVM and Clang: Advancing Compiler Technology
LLVM and Clang: Advancing Compiler Technology
FOSDEM'11 - Feb 5, 2011
What is the LLVM Umbrella Project?
Language independent optimizer and code generator ? Many optimizations, many targets, generates great code Clang C/C++/Objective-C front-end ? Designed for speed, reusability, compatibility with GCC quirks Debuggers, "binutils", standard libraries ? Providing pieces of a low-level toolchain, with many advantages Applications of LLVM ? OpenGL, OpenCL, Python, Ruby, etc, even RealBasic and Cray Fortran
LLVM/Clang are Open Source with a BSD-like License!
Why new compilers?
Existing open source C compilers have stagnated!
? Based on decades old code generation technology ? Aging code bases: difficult to learn, hard to change substantially ? Not modular, can't be reused in many other applications ? Keep getting slower with every release
? What I want:
? A set of production-grade reusable libraries ? ... which implement the best known techniques ? ... which focus on compile time ? ... and performance of the generated code
? Ideally support many different languages and applications!
LLVM Vision and Approach
? Primary mission: build a set of modular compiler components:
? Reduces the time & cost to construct a particular compiler ? A new compiler = glue code plus any components not yet available
? Components are shared across different compilers ? Improvements made for one compiler benefits the others
? Allows choice of the right component for the job ? Don't force "one true register allocator", scheduler, or optimization order
? Secondary mission: Build compilers that use these components
? ... for example, an amazing C compiler
X86 ARM PPC clang GCC LTO ...
DWARF Target
Code gen
JIT
Optzn linker IPO ...
BC IO ELF System Core Support xforms analysis GC ...
LLVM Code Generator Highlights
Approachable C++ code base, modern design, easy to learn ? Strong and friendly community, good documentation
Language and target independent code representation ? Very easy to generate from existing language front-ends ? Text form allows you to write your front-end in perl if you desire
Modern code generator: ? Supports both JIT and static code generation ? Much easier to retarget to new chips than GCC ? Many popular targets supported:
? X86, ARM, PowerPC, SPARC, Alpha, MIPS, Blackfin, CellSPU, MBlaze, MSP430, XCore, etc.
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- fx documentation
- llvm and clang advancing compiler technology
- haskell types university of arizona
- 6 175 constructive computer architecture tutorial 1
- provablycorrectdevelopmentof reconfigurablehardwaredesigns
- whyp a c based version of ouforth for the motorola 68hc11
- solutions to exercises
- hust ctf 2010 write up
- high level views on low level representations
- csc 520 principles of programming languages 11 haskell
Related searches
- advancing art education
- advancing with e commerce
- advancing education effectiveness
- computers advancing education
- quotes about advancing education
- walker county advancing education center
- python compiler gdb
- online compiler gdb
- online python compiler gdb
- advancing diversity and inclusion in higher education
- advancing technology for humanity
- clang length of array