./devel/polly, Polyhedral optimizations for LLVM

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

Branch: CURRENT, Version: 12.0.1, Package name: polly-12.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:

RMD160: a0aecf805194bcbb3652398b386d7d2a0d3d9f57
Filesize: 8822.863 KB

Version history: (Expand)

CVS history: (Expand)

   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-07-12 20:48:01 by Adam Ciarcinski | Files touched by this commit (1) | Package updated
Log message:
polly: updated to 12.0.1

The LLVM option -polly-isl-arg was added to pass options to ISL’s command line \ 
option parser. For instance, -polly-isl-arg=–schedule-algorithm=feautrier \ 
switches to the Feautrier scheduling algorithm.
   2020-07-26 21:20:14 by Adam Ciarcinski | Files touched by this commit (14) | Package updated
Log message:
llvm: updated to 10.0.1

Bug fix release
   2020-04-18 10:01:43 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
polly: updated to 10.0.0

In Polly 10 the following important changes have been incorporated.

The mechanism that Polly uses to link itself statically into the opt, bugpoint \ 
and clang executables has been generalized such that it can be used by other \ 
pass plugins. An example plugin “Bye” has been added to LLVM to illustate \ 
the mechanism.
Some ScopInfo methods that are only relevant during SCoP construction have been \ 
moved into the ScopBuilder class. In addition to making it clearer which methods \ 
can only be used during the construction phase, the refactoring helps shrinking \ 
the size of the public header ScopInfo.h.
   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2019-12-29 16:31:23 by Adam Ciarcinski | Files touched by this commit (35) | Package updated
Log message:
llvm: updated to 9.0.1

9.0.1 is a bug-fix release.
   2019-10-24 13:52:21 by Tobias Nygren | Files touched by this commit (8)
Log message:
more packages with wrong LICENSE tag
   2019-10-19 16:01:37 by Adam Ciarcinski | Files touched by this commit (16) | Package updated
Log message:
lld: updated to 9.0.0

Non-comprehensive list of changes in this release

ELF Improvements

ld.lld now has typo suggestions for flags: $ ld.lld --call-shared now prints \ 
unknown argument '--call-shared', did you mean '--call_shared'.

--allow-shlib-undefined and --no-allow-shlib-undefined options are added. \ 
--no-allow-shlib-undefined is the default for executables.

-nmagic and -omagic options are fully supported.

Segment layout has changed. PT_GNU_RELRO, which was previously placed in the \ 
middle of readable/writable PT_LOAD segments, is now placed at the beginning of \ 
them. This change permits lld-produced ELF files to be read correctly by GNU \ 
strip older than 2.31, which has a bug to discard a PT_GNU_RELRO in the former \ 

-z common-page-size is supported.

Diagnostics messages have improved. A new flag --vs-diagnostics alters the \ 
format of diagnostic output to enable source hyperlinks in Microsoft Visual \ 
Studio IDE.

Linker script compatibility with GNU BFD linker has generally improved.

The clang --dependent-library form of autolinking is supported.

This feature is added to implement the Windows-style autolinking for Unix. On \ 
Unix, in order to use a library, you usually have to include a header file \ 
provided by the library and then explicitly link the library with the linker -l \ 
option. On Windows, header files usually contain pragmas that list needed \ 
libraries. Compilers copy that information to object files, so that linkers can \ 
automatically link needed libraries. --dependent-library is added for \ 
implementing that Windows semantics on Unix.

AArch64 BTI and PAC are supported.

lld now supports replacing JAL with JALX instructions in case of MIPS-microMIPS \ 
cross-mode jumps.

lld now creates LA25 thunks for MIPS R6 code.

Put MIPS-specific .reginfo, .MIPS.options, and .MIPS.abiflags sections into \ 

The quality of RISC-V and PowerPC ports have greatly improved. Many applications \ 
can now be linked by lld. PowerPC64 is now almost production ready.

The Linux kernel for arm32_7, arm64, ppc64le and x86_64 can now be linked by lld.

x86-64 TLSDESC is supported.

DF_STATIC_TLS flag is set for i386 and x86-64 when needed.

The experimental partitioning feature is added to allow a program to be split \ 
into multiple pieces.

The feature allows you to semi-automatically split a single program into \ 
multiple ELF files called “partitions”. Since all partitions share the same \ 
memory address space and don’t use PLT/GOT, split programs run as fast as \ 
regular programs.

With the mechanism, you can start a program only with a “main” partition and \ 
load remaining partitions on-demand. For example, you can split a web browser \ 
into a main partition and a PDF reader sub-partition and load the PDF reader \ 
partition only when a user tries to open a PDF file.

See the documentation for more information.

If “-” is given as an output filename, lld writes the final result to the \ 
standard output. Previously, it created a file “-” in the current directory.

-z ifunc-noplt option is added to reduce IFunc function call overhead in a \ 
freestanding environment such as the OS kernel.

Functions resolved by the IFunc mechanism are usually dispatched via PLT and \ 
thus slower than regular functions because of the cost of indirection. With -z \ 
ifunc-noplt, you can eliminate it by doing text relocations at load-time. You \ 
need a special loader to utilize this feature. This feature is added for the \ 
FreeBSD kernel but can be used by any operating systems.

--undefined-glob option is added. The new option is an extension to --undefined \ 
to take a glob pattern instead of a single symbol name.

COFF Improvements

Like the ELF driver, lld-link now has typo suggestions for flags.
lld-link now correctly reports duplicate symbol errors for object files that \ 
were compiled with /Gy.
lld-link now correctly reports duplicate symbol errors when several resource \ 
(.res) input files define resources with the same type, name and language. This \ 
can be demoted to a warning using /force:multipleres.
lld-link now rejects more than one resource object input files, matching \ 
link.exe. Previously, lld-link would silently ignore all but one. If you hit \ 
this: Don’t pass resource object files to the linker, instead pass res files \ 
to the linker directly. Don’t put resource files in static libraries, pass \ 
them on the command line.
Having more than two /natvis: now works correctly; it used to not work for \ 
larger binaries before.
Undefined symbols are now printed only in demangled form. Pass /demangle:no to \ 
see raw symbol names instead.
Several speed and memory usage improvements.
lld-link now supports resource object files created by GNU windres and MS \ 
cvtres, not only llvm-cvtres.
The generated thunks for delayimports now share the majority of code among \ 
thunks, significantly reducing the overhead of using delayimport.
IMAGE_REL_ARM{,64}_REL32 relocations are supported.
Range extension thunks for AArch64 are now supported, so lld can create large \ 
executables for Windows/ARM64.
The following flags have been added: /functionpadmin

WebAssembly Improvements

Imports from custom module names are supported.
Symbols that are in llvm.used are now exported by default.
Initial support for PIC and dynamic linking has landed.
wasm-ld now add __start_/__stop_ symbols for data sections.
wasm-ld now doesn’t report an error on archives without a symbol index.
The following flags have been added: --emit-relocs

MinGW Improvements

lld now correctly links crtend.o as the last object file, handling terminators \ 
for the sections such as .eh_frame properly, fixing DWARF exception handling \ 
with libgcc and gcc’s crtend.o.
lld now also handles DWARF unwind info generated by GCC, when linking with libgcc.
PDB output can be requested without manually specifying the PDB file name, with \ 
the new option -pdb= with an empty value to the option. (The old existing syntax \ 
-pdb <filename> was more cumbersome to use with an empty parameter value.)
--no-insert-timestamp option is added as an alias to /timestamp:0.
Many more GNU ld options are now supported, which e.g. allows the lld MinGW \ 
frontend to be called by GCC.
The following options are added: --exclude-all-symbols, --appcontainer, --undefined