LLVM 4.0.0

LLVM is a modular and reusable compiler toolchain. It's suitable for static and dynamic compilations of various programming languages, and based on its own target-abstracted intermediate code representation. Clang is its native C, C++ and Objective-C compiler, which provides additional static code analyzers. Dragonegg is a GNU CC parser binding. LLDB is an extensive debugger utilizing LLVMs JIT compiler, syntax tree or expression parser. lld a newly developed dynamic linker. And vmkit an implementation of Java and CLR runtimes based on LLVM.

Tags c c++ llvm compiler programming-language vmkit debugger
License BSDL
State stable

Recent Releases

4.0.015 Mar 2017 03:05 minor feature: Introduction New Versioning Scheme. Non-comprehensive list of changes in this release.. Improvements to ThinLTO (-flto=thin). LLVM Coroutines. Regcall and Vectorcall Calling Conventions. Code Generation Testing. Intrusive list API overhaul. Changes to the ARM Targets. Changes to the AVR Target. Changes to the MIPS Target. Changes to the X86 Target. Changes to the OCaml bindings. Improvements to ThinLTO (-flto=thin). LLVM Coroutines. Regcall and Vectorcall Calling Conventions. Code Generation Testing. Intrusive list API overhaul. Changes to the ARM Targets. Changes to the AVR Target. Changes to the MIPS Target. Changes to the X86 Target. Changes to the OCaml bindings. External Open Source Projects Using LLVM 4.0.0.. LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). Additional Information.
3.9.125 Dec 2016 23:25 minor feature: Introduction Non-comprehensive list of changes in this release.. GCC ABI Tag. Changes to the LLVM IR. Changes to LLVM s IPO model. Support for ThinLTO. Changes to the ARM Targets. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the AMDGPU Target. GCC ABI Tag. Changes to the LLVM IR. Changes to LLVM s IPO model. Support for ThinLTO. Changes to the ARM Targets. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the AMDGPU Target. External Open Source Projects Using LLVM 3.9.. LDC - the LLVM-based D compiler. LDC - the LLVM-based D compiler. Additional Information.
3.9.005 Sep 2016 01:45 minor feature: Introduction Non-comprehensive list of changes in this release.. GCC ABI Tag. Changes to the LLVM IR. Changes to LLVM s IPO model. Support for ThinLTO. Changes to the ARM Targets. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the AMDGPU Target. GCC ABI Tag. Changes to the LLVM IR. Changes to LLVM s IPO model. Support for ThinLTO. Changes to the ARM Targets. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the AMDGPU Target. External Open Source Projects Using LLVM 3.9.. LDC - the LLVM-based D compiler. LDC - the LLVM-based D compiler. Additional Information.
3.8.113 Jul 2016 23:05 minor feature: Introduction Non-comprehensive list of changes in this release.. Changes to the ARM Backends. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the Hexagon Target. Changes to the AVR Target. Changes to the OCaml bindings. Changes to the ARM Backends. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the Hexagon Target. Changes to the AVR Target. Changes to the OCaml bindings. External Open Source Projects Using LLVM 3.8.. LDC - the LLVM-based D compiler. LDC - the LLVM-based D compiler. Additional Information.
3.8.009 Mar 2016 18:45 minor feature: Introduction Non-comprehensive list of changes in this release.. Changes to the ARM Backends. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the Hexagon Target. Changes to the AVR Target. Changes to the OCaml bindings. Changes to the ARM Backends. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the X86 Target. Changes to the Hexagon Target. Changes to the AVR Target. Changes to the OCaml bindings. External Open Source Projects Using LLVM 3.8.. LDC - the LLVM-based D compiler. LDC - the LLVM-based D compiler. Additional Information.
3.7.116 Jan 2016 11:45 minor feature: Introduction Major changes in 3.7.1. Non-comprehensive list of changes in 3.7.0.. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the SystemZ Target. Changes to the JIT APIs. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the SystemZ Target. Changes to the JIT APIs. Sub-project Status Update.. Polly - The Polyhedral Loop Optimizer in LLVM. libunwind. Polly - The Polyhedral Loop Optimizer in LLVM. libunwind. External Open Source Projects Using LLVM 3.7.. LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). BPF Compiler Collection (BCC). LLVMSharp amp; ClangSharp. LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). BPF Compiler Collection (BCC). LLVMSharp amp; ClangSharp. Additional Information.
3.7.002 Sep 2015 17:25 minor feature: Introduction Non-comprehensive list of changes in this release.. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the SystemZ Target. Changes to the JIT APIs. Changes to the MIPS Target. Changes to the PowerPC Target. Changes to the SystemZ Target. Changes to the JIT APIs. Sub-project Status Update.. Polly - The Polyhedral Loop Optimizer in LLVM. Polly - The Polyhedral Loop Optimizer in LLVM. External Open Source Projects Using LLVM 3.7.. LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). BPF Compiler Collection (BCC). LLVMSharp amp; ClangSharp. LDC - the LLVM-based D compiler. Portable Computing Language (pocl). TTA-based Co-design Environment (TCE). BPF Compiler Collection (BCC). LLVMSharp amp; ClangSharp. Additional Information.
3.6.217 Jul 2015 16:05 minor feature: Introduction Non-comprehensive list of changes in this release.. Changes to the MIPS Target. Changes to the MIPS Target. Non-comprehensive list of changes in 3.6.0.. Prefix data rework. Metadata is not a Value.. Bridges between Value and Metadata. Metadata is typeless. Distinct metadata nodes. Constructing cyclic graphs. MDLocation (aka DebugLoc aka DILocation). Alias syntax change. The old JIT has been removed. object::Binary doesn t own the file buffer. IR in object files is now supported. The gold plugin has been rewritten. Change in the representation of lazy loaded funcs. The opt option -std-compile-opts was removed. Python 2.7 is now required. The leak detector has been removed. New comdat syntax. Added support for Win64 unwind information. Diagnostic infrastructure used by lib/Linker and lib/Bitcode. The PreserveSource linker mode was removed. Garbage Collection. Changes to the MIPS Target.. ABI. LLVMLinux. Miscellaneous. Changes to the PowerPC Target. Changes to the OCaml bindings. Go bindings. Prefix data rework. Metadata is not a Value.. Bridges between Value and Metadata. Metadata is typeless. Distinct metadata nodes. Constructing cyclic graphs. MDLocation (aka DebugLoc aka DILocation). Bridges between Value and Metadata. Metadata is typeless. Distinct metadata nodes. Constructing cyclic graphs. MDLocation (aka DebugLoc aka DILocation). Alias syntax change. The old JIT has been removed. object::Binary doesn t own the file buffer. IR in object files is now supported. The gold plugin has been rewritten. Change in the representation of lazy loaded funcs. The opt option -std-compile-opts was removed. Python 2.7 is now required. The leak detector has been removed. New comdat syntax. Added support for Win64 unwind information. Diagnostic infrastructure used by lib/Linker and lib/Bitcode. The PreserveSource linker mode was removed. Garbage Collection. Changes to the MIPS Target.. ABI. LLVMLinux. Miscellaneous. ABI. LLVMLinux. Miscellaneous. Changes to the PowerP
3.6.028 Feb 2015 22:00 minor feature: Introduction Non-comprehensive list of changes in this release Prefix data rework Metadata is not a ValueBridges between Value and Metadata Metadata is typeless Distinct metadata nodes Constructing cyclic graphs MDLocation (aka DebugLoc aka DILocation) Alias syntax change The old JIT has been removed object::Binary doesn t own the file buffer IR in object files is now supported The gold plugin has been rewritten Change in the representation of lazy loaded funcs The opt option -std-compile-opts was removed Python 2.7 is now required The leak detector has been removed New comdat syntax Added support for Win64 unwind information Diagnostic infrastructure used by lib/Linker and lib/Bitcode The PreserveSource linker mode was removed Garbage Collection Changes to the MIPS TargetABI LLVMLinux Miscellaneous Changes to the PowerPC Target Changes to the OCaml bindings Go bindings Prefix data rework Metadata is not a Value Bridges between Value and Metadata Metadata is typeless Distinct metadata nodes Constructing cyclic graphs MDLocation (aka DebugLoc aka DILocation) Bridges between Value and Metadata Metadata is typeless Distinct metadata nodes Constructing cyclic graphs MDLocation (aka DebugLoc aka DILocation) Alias syntax change The old JIT has been removed object::Binary doesn t own the file buffer IR in object files is now supported The gold plugin has been rewritten Change in the representation of lazy loaded funcs The opt option -std-compile-opts was removed Python 2.7 is now required The leak detector has been removed New comdat syntax Added support for Win64 unwind information Diagnostic infrastructure used by lib/Linker and lib/Bitcode The PreserveSource linker mode was removed Garbage Collection Changes to the MIPS Target ABI LLVMLinux Miscellaneous ABI LLVMLinux Miscellaneous Changes to the PowerPC Target Changes to the OCaml bindings Go bindings External Open Source Projects Using LLVM 3.6 Portable Computing Language (pocl) TTA-based Co-design Environment (TCE) L
3.5.118 Feb 2015 08:05 minor feature: Introduction Non-comprehensive list of changes in this release Changes to the MIPS Target Changes to the MIPS Target Non-comprehensive list of changes in 3.5 Changes to the ARM Backend Changes to the MIPS TargetSubtargets ABI and ABI extensions Integrated Assembler Changes to the AArch64 TargetBackground Changes to the PowerPC Target Changes to CMake build system Changes to the ARM Backend Changes to the MIPS Target Subtargets ABI and ABI extensions Integrated Assembler Subtargets ABI and ABI extensions Integrated Assembler Changes to the AArch64 Target Background Background Changes to the PowerPC Target Changes to CMake build system External Open Source Projects Using LLVM 3.5 LDC - the LLVM-based D compiler Portable Computing Language (pocl) TTA-based Co-design Environment (TCE) ISPC Likely LDC - the LLVM-based D compiler Portable Computing Language (pocl) TTA-based Co-design Environment (TCE) ISPC Likely Additional Information
3.5.004 Sep 2014 22:03 major feature: All backends have been changed to use the MC asm printer and support for the non MC one has been removed. Clang can now successfully self-host itself on Linux/Sparc64 and on FreeBSD/Sparc64. LLVM now assumes the assembler supports .loc for generating debug line numbers. The old support for printing the debug line info directly was only used by llc and has been removed. All inline assembly is parsed by the integrated assembler when it is enabled. Previously this was only the case for object-file output. It is now the case for assembly output as well. The integrated assembler can be disabled with the -no-integrated-as option. llvm-ar now handles IR files like regular object files. In particular, a regular symbol table is created for symbols defined in IR files, including those in file scope inline assembly. LLVM now always uses cfi directives for producing most stack unwinding information. The prefix for loop vectorizer hint metadata has been changed from llvm.vectorizer to llvm.loop.vectorize. In addition, llvm.vectorizer.unroll metadata has been renamed llvm.loop.interleave.count. Some backends previously implemented Atomic NAND(x,y) as x y. Now all backends implement it as (x y), matching the semantics of GCC 4.4 and later.