This is an archive of the discontinued LLVM Phabricator instance.

[Polly][ZoneAlgo] More fine-grained bail-out.
ClosedPublic

Authored by Meinersbur on Aug 28 2017, 9:36 AM.

Details

Summary

ZoneAlgo used to bail out for the complete SCoP if it encountered something violating its assumption. This meant the neither OpTree can forward any load nor DeLICM do anything in such cases, even if their transformations are unrelated to the violations.

This patch adds a list of compatible elements (currently with the granularity of entire arrays) that can be used for analysis. OpTree and DeLICM can then check whether their transformations only concern compatible elements, and skip non-compatible ones.

This will be useful for e.g. Polybench's benchmarks covariance, correlation, bicg, doitgen, durbin, gramschmidt, adi that have assumption violation, but which are not necessarily relevant for all transformations.

Diff Detail

Repository
rL LLVM

Event Timeline

Meinersbur created this revision.Aug 28 2017, 9:36 AM
grosser accepted this revision.Aug 28 2017, 12:00 PM

Very nice!

This revision is now accepted and ready to land.Aug 28 2017, 12:00 PM
This revision was automatically updated to reflect the committed changes.