Release Notes 5.0¶
In Polly 5 the following important changes have been incorporated.
Robustness testing: AOSP and FFMPEG¶
Polly can now compile all of Android. While most of Android is not the primary target of polyhedral data locality optimizations, Android provides us with a large and diverse set of robustness tests. Our new nightly build bot ensures we do not regress.
Polly also successfully compiles FFMPEG and obviously the LLVM test suite.
C++ bindings for isl math library improve maintainability¶
In the context of Polly Labs, a new set of C++ bindings was developed for the isl math library. Thanks to the new isl C++ interface there is no need for manual memory management any more and programming with integer sets became easier in general.
Today:
void isDiffEmptyOrUnionTheUniverse(isl::set S1, isl::set S2) {
isl::set Difference = S1.subtract(S2);
isl::set Union = S1.unite(S2);
if (Difference.is_empty())
return true;
if (Union.is_universe())
return true;
return false;
}
Before:
void isDiffEmptyOrUnionTheUniverse(__isl_take isl_set S1,
__isl_take isl_set S2) {
isl_set *Difference = isl_set_subtract(isl_set_copy(S1),
isl_set_copy(S2));
isl_set *Union = isl_set_union(S1, S2);
isl_bool IsEmpty = isl_set_is_empty(Difference);
isl_set_free(Difference);
if (IsEmpty == isl_bool_error)
llvm_unreachable();
if (IsEmpty)
return true;
isl_bool IsUniverse = isl_set_is_Universe(Union);
isl_set_free(Union);
if (IsUniverse == isl_bool_error)
llvm_unreachable();
if (IsUniverse)
return true;
return false;
}
Improved Polly Diagnostics¶
Polly now uses the LLVM OptimizationDiagnosticInfo API for emitting diagnostic remarks. This allows Polly remarks to appear in the yaml optimization record when compiling with the flag -fsave-optimization-record. This also allows Polly remarks to appear in the opt-viewer tool, allowing for remarks to be viewed next to the source code, and sorted by hotness.
Polly-ACC works with Julia¶
Polly can now offload Julia to GPUs. This feature is enabled by setting the USE_POLLY_ACC variable to 1, i.e. USE_POLLY_ACC:=1.