This patch adds both a ScopAnalysisManager and a ScopPassManager.
The ScopAnalysisManager is itself a Function-Analysis, and manages analyses on Scops. The ScopPassManager takes care of building Scop pass pipelines.
This patch is marked WIP because I've left two FIXMEs which I need to think about some more. Both of these deal with invalidation:
- Deferred invalidation is currently not implemented. Deferred invalidation deals with analyses which cache references to other analysis results. If these results are invalidated, invalidation needs to be propagated into the caching analyses.
- The ScopPassManager as implemented assumes that ScopPasses do not affect other Scops in any way. There has been some discussion about this on other patch threads, however it makes sense to reiterate this for this specific patch.
I'm uploading this patch even though it's incomplete to encourage discussion and give you an impression of how this is going to work.
Newline before comment??