[Polly][PM] Improve invalidation in the Scop-Pipeline
commit32145d4b0eaebe7321e56c5b673a7d64eca7294f
authorPhilip Pfaffe <philip.pfaffe@gmail.com>
Thu, 10 Aug 2017 07:43:46 +0000 (10 07:43 +0000)
committerPhilip Pfaffe <philip.pfaffe@gmail.com>
Thu, 10 Aug 2017 07:43:46 +0000 (10 07:43 +0000)
tree89bc8766edfc9a7c996e4dcd70859bed52aa7f92
parent0e7f5babf236fba3e8d842f029cbd6eece1d245e
[Polly][PM] Improve invalidation in the Scop-Pipeline

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.

Reviewers: grosser, Meinersbur, bollu

Reviewed By: grosser

Subscribers: llvm-commits, pollydev

Differential Revision: https://reviews.llvm.org/D36524

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@310551 91177308-0d34-0410-b5e6-96231b3b80d8
include/polly/ScopInfo.h
include/polly/ScopPass.h
lib/Analysis/ScopInfo.cpp
lib/Analysis/ScopPass.cpp
lib/CodeGen/CodeGeneration.cpp