PackageDescription | Low-Level Virtual Machine (LLVM), C language family frontend
The Low-Level Virtual Machine (LLVM) is a collection of libraries and
tools that make it easy to build compilers, optimizers, Just-In-Time
code generators, and many other compiler-related programs. LLVM
uses a single, language-independent virtual instruction set both
as an offline code representation (to communicate code between
compiler phases and to run-time systems) and as the compiler internal
representation (to analyze and transform programs). This persistent
code representation allows a common set of sophisticated compiler
techniques to be applied at compile-time, link-time, install-time,
run-time, or "idle-time" (between program runs).
.
Clang project is a new C, C++, Objective C and Objective C++ front-end
for the LLVM compiler. Some of its goals include the following:
.
End-User Features:
.
* Fast compiles and low memory use
* Expressive diagnostics (examples)
* GCC compatibility
.
Utility and Applications:
.
* Modular library based architecture
* Support diverse clients (refactoring, static analysis, code
generation, etc)
* Allow tight integration with IDEs
* Use the LLVM 'BSD' License
.
Internal Design and Implementation:
.
* A real-world, production quality compiler
* A simple and hackable code base
* A single unified parser for C, Objective C, C++, and Objective C++
* Conformance with C/C++/ObjC and their variants |