Polly 5.0-devel documentation

Release Notes 5.0 (upcoming)

«  Upcoming Release   ::   Contents   ::   The Architecture  »

Release Notes 5.0 (upcoming)

In Polly 5 the following important changes have been incorporated.

Warning

These releaes notes are for the next release of Polly and describe the new features that have recently been committed to our development branch.

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 allow Polly remarks to appear in the opt-viewer tool, allowing for remarks to be viewed next to the source code, and sorted by hotness.

«  Upcoming Release   ::   Contents   ::   The Architecture  »