This is an archive of the discontinued LLVM Phabricator instance.

Use schedule trees to perform post-scheduling transformations
AbandonedPublic

Authored by grosser on Mar 19 2015, 2:00 AM.

Details

Summary

Replacing the old band_tree based code with code that is based on the new
schedule tree [1] interface makes applying complex schedule transformations a lot
more straightforward. We now do not need to reason about the meaning of flat
schedules, but can use a more straightforward tree structure. We do not yet
exploit this a lot in the current code, but hopefully we will be able to do so
soon.

This change also allows us to drop some code, as isl now provides some higher
level interfaces to apply loop transformations such as tiling.

This change causes some small test case changes as isl uses a slightly different
way to perform loop tiling, but no significant functional changes are intended.

[1] http://impact.gforge.inria.fr/impact2014/papers/impact2014-verdoolaege.pdf

Diff Detail

Event Timeline

grosser updated this revision to Diff 22244.Mar 19 2015, 2:00 AM
grosser retitled this revision from to Use schedule trees to perform post-scheduling transformations.
grosser updated this object.
grosser edited the test plan for this revision. (Show Details)
grosser added a subscriber: Unknown Object (MLST).
grosser abandoned this revision.Mar 22 2015, 5:29 AM

This was committed in r232911