./devel/polly, Polyhedral optimizations for LLVM

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

Branch: CURRENT, Version: 5.0.1, Package name: polly-5.0.1, Maintainer: pkgsrc-users

Polly is a high-level loop and data-locality optimizer and optimization
infrastructure for LLVM. It uses an abstract mathematical representation based
on integer polyhedra to analyze and optimize the memory access pattern of a
program. We currently perform classical loop transformations, especially tiling
and loop fusion to improve data-locality. Polly can also exploit OpenMP level
parallelism, expose SIMDization opportunities. Work has also be done in the
area of automatic GPU code generation.

For many users, however, it's not the existing optimizations in Polly that are
of most interest, but the new analyses and optimizations enabled by the Polly
infrastructure. At polyhedral.info you can get an idea of what has already been
done and what is possible in the context of polyhedral compilation.

Required to run:

Required to build:

Master sites:

SHA1: 8e1f5cc243ac8c5148926995730f2ed8c0f5e3ee
RMD160: adffff1011da70a11b2e0802f7d2556c310bcb83
Filesize: 8330.609 KB

Version history: (Expand)

CVS history: (Expand)

   2017-12-30 11:39:25 by Adam Ciarcinski | Files touched by this commit (14) | Package updated
Log message:
llvm: updated to 5.0.1

LLVM 5.0.1:
This release contains bug-fixes for the LLVM 5.0.0 release. This
release is API and ABI compatible with 5.0.0.
   2017-12-01 20:22:13 by Adam Ciarcinski | Files touched by this commit (34) | Package updated
Log message:
llvm: updated to 5.0.0

Non-comprehensive list of changes in this release
* LLVM’s WeakVH has been renamed to WeakTrackingVH and a new WeakVH has been \ 
introduced. The new WeakVH nulls itself out on deletion, but does not track \ 
values across RAUW.
* A new library named BinaryFormat has been created which holds a collection of \ 
code which previously lived in Support. This includes the file_magic structure \ 
and identify_magic functions, as well as all the structure and type definitions \ 
for DWARF, ELF, COFF, WASM, and MachO file formats.
* The tool llvm-pdbdump has been renamed llvm-pdbutil to better reflect its \ 
nature as a general purpose PDB manipulation / diagnostics tool that does more \ 
than just dumping contents.
* The BBVectorize pass has been removed. It was fully replaced and no longer \ 
used back in 2014 but we didn’t get around to removing it. Now it is gone. The \ 
SLP vectorizer is the suggested non-loop vectorization pass.
* A new tool opt-viewer.py has been added to visualize optimization remarks in \ 
HTML. The tool processes the YAML files produced by clang with the \ 
-fsave-optimization-record option.
* A new CMake macro LLVM_REVERSE_ITERATION has been added. If enabled, all \ 
supported unordered LLVM containers would be iterated in reverse order. This is \ 
useful for uncovering non-determinism caused by iteration of unordered \ 
containers. Currently, it supports reverse iteration of SmallPtrSet and \ 
* A new tool llvm-dlltool has been added to create short import libraries from \ 
GNU style definition files. The tool utilizes the PE COFF SPEC Import Library \ 
Format and PE COFF Auxiliary Weak Externals Format to achieve compatibility with \ 
   2017-07-11 21:47:38 by Adam Ciarcinski | Files touched by this commit (15)
Log message:
Changes 4.0.1:
This is a bug-fix release.
   2017-05-06 03:38:43 by Kamil Rytarowski | Files touched by this commit (3)
Log message:
Mark c++11 requirement
   2017-05-06 01:13:05 by Kamil Rytarowski | Files touched by this commit (7) | Package updated
Log message:
Update buildlink3.mk with reality in LLVM projects
   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-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 \ 
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-11-14 21:49:16 by Ryo ONODERA | Files touched by this commit (4) | Package updated
Log message:
Update to 3.9.0

* Polly directly available in clang/opt/bugpoint
* Increased analysis coverage
* Fine-grain dependences analysis
* Update of the isl math library