This is an archive of the discontinued LLVM Phabricator instance.

[Polly][PM] Improve invalidation in the Scop-Pipeline
ClosedPublic

Authored by philip.pfaffe on Aug 9 2017, 8:07 AM.

Details

Summary

During code generation for a Scop we modify the IR of a function.
While this shouldn't affect a Scop in the formal sense, the implementation
caches various information about the IR such as SCEV expressions for bounds or
parameters. This cached information needs to be updated or invalidated. To this
end, SPMUpdater allows passes to report when they've invalidated a Scop to the
PassManager, which will then flush and recompute all Scops. This in turn
invalidates all iterators, so references to Scops shouldn't be held.

Diff Detail

Repository
rL LLVM

Event Timeline

philip.pfaffe created this revision.Aug 9 2017, 8:07 AM
grosser accepted this revision.Aug 9 2017, 10:19 AM

LGTM.

This revision is now accepted and ready to land.Aug 9 2017, 10:19 AM
This revision was automatically updated to reflect the committed changes.