Chris Lattner
2003-Oct-24 23:35 UTC
[llvm-announce] The LLVM 1.0 Release is finally available!
LLVM Compiler Infrastructure -- Release 1.0 http://llvm.cs.uiuc.edu (*) We are pleased to announce the public release of the LLVM Compiler Infrastructure under a non-restrictive open source license. WHAT IS LLVM? LLVM is a new infrastructure designed for compile-time, link-time, runtime, and "idle-time" optimization of programs from arbitrary programming languages. LLVM is written in C++ and has been developed over the past 3 years at the University of Illinois. It currently supports compilation of C and C++ programs, using front-ends derived from GCC 3.4. New front-ends are being written for Java bytecode and CAML. WHO WILL FIND THIS RELEASE USEFUL? o Compiler researchers interested in compile-time, link-time (interprocedural) and runtime transformations for C and C++ programs. o Virtual machine researchers/developers interested in a portable, language-independent instruction set and compilation framework. o Architecture researchers interested in compiler/hardware techniques. o Security researchers interested in static analysis or instrumentation. o Instructors (or anyone else) interested in a system for quick prototyping of compiler transformations. HOW LONG DOES IT TAKE TO GET STARTED WITH LLVM? We have found that new users can install LLVM and write their first LLVM pass in hours, and start sophisticated projects using LLVM within days. WHY IS LLVM USEFUL? LLVM uses a low-level, RISC-like, language-independent representation to analyze and optimize programs. Key features include explicit control flow, dataflow (SSA), and a language-independent type system that can capture the _operational behavior_ of high-level languages. The LLVM representation is low-level enough to represent arbitrary application and system code, yet is powerful enough to support aggressive "high-level" transformations. The LLVM infrastructure uses this representation to allow these optimizations to occur at compile-time, link-time and runtime. WHAT IS INCLUDED IN THIS RELEASE? Release 1.0 is intended to be a fully functional release of our compiler system for C and C++. As such, it includes the following: o Front-ends for C and C++ based on GCC 3.4, supporting the full ANSI-standard C and C++ languages, plus many GCC extensions. o A wide range of global scalar optimizations o A link-time interprocedural optimization framework, with a rich set of analyses and transformations, including sophisticated whole-program pointer analysis and call graph construction. o Native code generators for x86 and Sparc o A JIT code generation system for x86 and Sparc o A C back-end, useful for testing and to support other targets o A test framework with a number of benchmark codes and some applications o APIs and debugging tools to simplify rapid development WHAT IS NOT INCLUDED IN THIS RELEASE? Some components are not yet implemented in LLVM, including array dependence analysis, dependence-based transformations, profiling support, and a trace-based dynamic optimization system. The native code generators are not yet competitive with vendor compilers in performance. HOW DO I GET IT? Please see: http://llvm.cs.uiuc.edu/releases (*) ------- (*) Hosted by apache compiled to LLVM and running on the x86 JIT
Reasonably Related Threads
- Dataflow analysis regression in 3.7
- [RFC] Add IR level interprocedural outliner for code size.
- Re: [Bug 1046905] New: RFE: add argument to virt-sysprep to disable individual default operations
- [PATCH libguestfs 1/4] ocaml: Replace old enter/leave_blocking_section calls
- [PATCH] customize: Use libxcrypt if available to provide crypt(3).