/libLLVM, Low Level Virtual Machine shared library
4.0.0nb1, Package name:
libLLVM-4.0.0nb1, Maintainer: pkgsrc-users
The LLVM Project is a collection of modular and reusable compiler and toolchain
technologies. Despite its name, LLVM has little to do with traditional virtual
machines, though it does provide helpful libraries that can be used to build
This package contains the LLVM core shared libraries intended to be usable by
packages built on an otherwise GCC-built system.
Required to run:
] Required to build:
] Package options
: llvm-target-aarch64, llvm-target-amdgpu, llvm-target-arm, llvm-target-bpf, llvm-target-hexagon, llvm-target-mips, llvm-target-msp430, llvm-target-nvptx, llvm-target-powerpc, llvm-target-sparc, llvm-target-systemz, llvm-target-x86, llvm-target-xcore
Master sites: SHA1:
Version history: (Expand)
- (2017-03-24) Updated to version: libLLVM-4.0.0nb1
- (2017-03-18) Updated to version: libLLVM-4.0.0
- (2017-01-05) Updated to version: libLLVM-3.9.1
- (2016-11-15) Updated to version: libLLVM-3.9.0
- (2016-08-03) Updated to version: libLLVM-3.8.1
- (2016-07-09) Updated to version: libLLVM-3.8.0nb2
CVS history: (Expand)
| 2017-03-24 12:43:52 by Joerg Sonnenberger | Files touched by this commit (1) |
Link llvm-lto2 and the other tools dynamically against libLLVM to avoid
the size penalty. The primary intention of this package is to provide a
standalone library for other consumers of LLVM and the size difference
doesn't justify the small performance penalty. Bump revision.
| 2017-03-17 23:38:18 by Adam Ciarcinski | Files touched by this commit (38) |
The minimum compiler version required for building LLVM has been raised to 4.8 \
for GCC and 2015 for Visual Studio.
The C API functions LLVMAddFunctionAttr, LLVMGetFunctionAttr, \
LLVMRemoveFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, \
LLVMAddInstrAttribute and LLVMRemoveInstrAttribute have been removed.
The C API enum LLVMAttribute has been deleted.
The definition and uses of LLVM_ATRIBUTE_UNUSED_RESULT in the LLVM source were \
replaced with LLVM_NODISCARD, which matches the C++17 [[nodiscard]] semantics \
rather than gcc’s __attribute__((warn_unused_result)).
The Timer related APIs now expect a Name and Description. When upgrading code \
the previously used names should become descriptions and a short name in the \
style of a programming language identifier should be added.
LLVM now handles invariant.group across different basic blocks, which makes it \
possible to devirtualize virtual calls inside loops.
The aggressive dead code elimination phase (“adce”) now removes branches \
which do not effect program behavior. Loops are retained by default since they \
may be infinite but these can also be removed with LLVM option \
-adce-remove-loops when the loop body otherwise has no live operations.
The llvm-cov tool can now export coverage data as json. Its html output mode has \
| 2017-03-09 13:45:56 by Jonathan Perkin | Files touched by this commit (3) |
Fix library build on SunOS.
| 2017-01-16 22:56:35 by Brook Milligan | Files touched by this commit (2) |
Clean up definition of libtool on Darwin.
The previous commit ended up with two different specifications for libtool
on Darwin. One was the OS-specific version of CMAKE_ARGS introduced in the
previous commit; the other was inside a conditional to detect Darwin introduced \
in the commit prior. The former seems cleaner so it has been left.
| 2017-01-16 18:26:47 by Brook Milligan | Files touched by this commit (3) |
Use the system-specific libtool on Darwin.
This fixes bugs relating to unrecognized libtool options on Darwin.
| 2017-01-05 12:54:32 by Adam Ciarcinski | Files touched by this commit (16) | |
The LLVMContext gains a new runtime check (see LLVMContext::discardValueNames()) \
that can be set to discard Value names (other than GlobalValue). This is \
intended to be used in release builds by clients that are interested in saving \
CPU/memory as much as possible.
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9 requires \
CMake 3.4.3 or later to build. For information about using CMake please see the \
documentation on Building LLVM with CMake. For information about the CMake \
language there is also a CMake Primer document available.
C API functions LLVMParseBitcode, LLVMParseBitcodeInContext, \
LLVMGetBitcodeModuleInContext and LLVMGetBitcodeModule having been removed. \
LLVMGetTargetMachineData has been removed (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecated in favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor of the \
new LLVMAttributeRef API. The deprecated functions are LLVMAddFunctionAttr, \
LLVMAddTargetDependentFunctionAttr, LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, \
LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute, \
LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns an iterator to \
the next instruction instead of void. Targets that previously did MBB.erase(I); \
return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets will need to be \
updated to replace the argument node and remove any dead nodes in cases where \
they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis. \
It should provide higher-quality results than MemDep, and be algorithmically \
faster than MemDep. Currently, GVNHoist (which is off by default) makes use of \
The minimum density for lowering switches with jump tables has been reduced from \
40% to 10% for functions which are not marked optsize (that is, compiled with \
| 2016-12-20 23:40:06 by Tobias Nygren | Files touched by this commit (1) |
fix build on NetBSD/i386
| 2016-12-18 00:28:35 by Joerg Sonnenberger | Files touched by this commit (4) |
Explicitly build LLVM projects with -std=c++11, it doesn't get detected
automatically in all cases.