./lang/clang, C language family frontend for LLVM

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.0.0, Package name: clang-4.0.0, Maintainer: pkgsrc-users

Low Level Virtual Machine (LLVM) is:

A compilation strategy designed to enable effective program optimization across
the entire lifetime of a program. LLVM supports effective optimization at
compile time, link-time (particularly interprocedural), run-time and offline
(i.e., after software is installed), while remaining transparent to developers
and maintaining compatibility with existing build scripts.

A virtual instruction set - LLVM is a low-level object code representation that
uses simple RISC-like instructions, but provides rich, language-independent,
type information and dataflow (SSA) information about operands. This combination
enables sophisticated transformations on object code, while remaining
light-weight enough to be attached to the executable. This combination is key to
allowing link-time, run-time, and offline transformations.

A compiler infrastructure - LLVM is also a collection of source code that
implements the language and compilation strategy. The primary components of the
LLVM infrastructure are a GCC-based C & C++ front-end, a link-time optimization
framework with a growing set of global and interprocedural analyses and
transformations, static back-ends for the X86, X86-64, PowerPC 32/64, ARM,
Thumb, IA-64, Alpha and SPARC architectures, a back-end which emits portable C
code, and a Just-In-Time compiler for X86, X86-64, PowerPC 32/64 processors.


Required to run:
[textproc/libxml2] [lang/gcc48-libs] [lang/llvm]

Required to build:
[lang/python27] [lang/gcc48] [pkgtools/cwrappers]

Master sites:

SHA1: e2762800c93d9335781ea6a45af3f80845542ef5
RMD160: aae742d32a18cd8660b0eabecfcf14139f2f4d4a
Filesize: 10645.426 KB

Version history: (Expand)


CVS history: (Expand)


   2017-03-17 23:38:18 by Adam Ciarcinski | Files touched by this commit (38)
Log message:
LLVM 4.0.0:
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 \ 
also improved.
   2017-01-16 18:26:47 by Brook Milligan | Files touched by this commit (3)
Log message:
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) | Package updated
Log message:
Changes 3.9.1:
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 \ 
MemorySSA.
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 \ 
-Os).
   2016-12-18 00:28:51 by Joerg Sonnenberger | Files touched by this commit (1)
Log message:
Revert.
   2016-12-18 00:28:35 by Joerg Sonnenberger | Files touched by this commit (4)
Log message:
Explicitly build LLVM projects with -std=c++11, it doesn't get detected
automatically in all cases.
   2016-11-14 21:15:33 by Ryo ONODERA | Files touched by this commit (29) | Package updated
Log message:
Update llvm packages to 3.9.0

* Drop CppBackend. It is removed.

Changelog:
* GCC ABI Tag
* LLVM IR: new intrinsics etc.
* Change LLVM IPO model
* Support ThinLTO
* Improve the ARM targets, ARMv8.2-A support etc.
* Improve the MIPS targets
* Improve the PowerPC target, default optim O3 to O2
* Improve the X86 target, SKylake AVX-512 etc.
* Improve the AMDGPU, better support for Mesa 12
   2016-07-26 14:43:51 by Thomas Klausner | Files touched by this commit (5) | Package updated
Log message:
Update llvm and clang* to 3.8.1.

This release contains bug-fixes for the LLVM 3.8.0 release. This
release is API and ABI compatible with 3.8.0.
   2016-03-10 16:01:52 by Tobias Nygren | Files touched by this commit (17) | Package removed
Log message:
Update to clang-3.8.0. Split out llvm tools to lang/llvm.
Packaged in pkgsrc-wip by myself and Kamil.
Remove stale pkgsrc/SunOS bread crumbs that were difficult to merge
following the build framework switch. Needs to be redone. (Sorry!)

Summary of significant changes in LLVM:
- switch build framework from autoconf to CMake
- llvm-ar now supports thin archives.
- llvm doesn t produce .data.rel.ro.local or .data.rel sections anymore.
- opional support for linking clang and the LLVM tools with a single
  libLLVM shared library

  pkgsrc note: we have this library in lang/libLLVM, but we don't currently
  use it. We may do so in the future if/when the API matures.

- The optimization to move the prologue and epilogue of functions in colder
  code path (shrink-wrapping) is now enabled by default
- new target-independent gcc-compatible emulated Thread Local Storage mode
- various target specific optimizations

Summary of significant changes in Clang:

- new compiler flags for tuning what DWARF information is included
- better strict alignment handling
- better support for __builtin_object_size