LLVM Overview
来源:互联网 发布:mac给iphone装软件 编辑:程序博客网 时间:2024/06/05 02:41
LLVM Overview
LLVM (originally an acronym for Low Level Virtual Machine) was conceived as a compiler framework for programs written in arbitrary languages. Currently, the LLVM project consists of a collection of modular, reusable components (libraries, toolsets, runtimes) used for program analysis and compilation (as shown in Figure C-1).
Figure C-1. LLVM project components
These components can be used as infrastructure to implement a variety of capabilities, such as compilers, optimizers, and debuggers. The following are brief definitions for several of the components under the LLVM project:
- Clang compiler: Clang is a modern compiler for the C, Objective-C, and C++ programming languages. It is responsible for parsing, validating, and diagnosing errors in the input code, and then translating the parsed code into LLVM intermediate representation (IR). Like the LLVM project, Clang is itself divided into modular, reusable libraries that expose public APIs.
- Optimizers: The LLVM optimizers perform code optimization, traversing some portion of code to either collect information or perform transformations. Their features include compile-time optimization, link-time optimization, and optimization across language boundaries.
- Code generator: The LLVM target-independent code generator is a framework that provides a suite of reusable components for translating the LLVM internal representation to the machine code for a specified target—either in assembly form (suitable for a static compiler) or in binary machine code form (usable for a JIT compiler).
- Disassembler: The disassembler takes an LLVM bitcode file and converts it into human-readable LLVM assembly language.
- JIT: The LLVM Just-in-Time (JIT) compiler performs runtime translation of LLVM IR code into machine code. It also performs runtime optimization based on dynamic information.
As depicted in Figure C-1, a few of the tools that have been built using the LLVM project components include the LLVM compiler (the standard compiler for Xcode), the static analyzer (also used by Xcode), and the LLDB debugger. Xcode’s integration with LLVM components and tools provides many benefits in addition to Objective-C source code compilation. These benefits include real-time notification of warnings and errors as you type your code, suggested corrections for coding mistakes, improved code completion, source code static analysis, and comprehensive support for program debugging with LLDB, the default debugger for Xcode.
- LLVM Overview
- LLVM
- LLVM
- llvm
- LLVM
- LLVM
- LLVM
- LLVM
- LLVM
- LLVM
- Overview
- Overview
- Overview
- Overview
- overview-overview
- llvm基本概念
- LLVM 3.1
- LLVM 介绍
- MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复
- 运行adaddnode.pl报错ORA-01403 And ORA-06512
- Service和Thread的区别
- Android_WindowManager_实现类似360流量悬浮框
- effective c++
- LLVM Overview
- LeetCode Longest Palindromic Substring
- VisualStudio快捷键总结
- 游戏盒子接球
- php学习之字符串转换
- hdu-1071 The area
- 啊各位
- 合并不同目录下,相同文件的内容(java实现)
- 区间DP-石子合并(线性)