[Polly][NewPM][WIP] Add a ScopPassManager
commit84369e51b213a0d4bdd16d1581e27dbf70925aa0
authorPhilip Pfaffe <philip.pfaffe@gmail.com>
Mon, 15 May 2017 13:43:01 +0000 (15 13:43 +0000)
committerPhilip Pfaffe <philip.pfaffe@gmail.com>
Mon, 15 May 2017 13:43:01 +0000 (15 13:43 +0000)
treef13a1bf43388a0e388c8d4deb4cc95f355b17622
parentcae66e2590e8f2ee36a269f5a3e721e7fc55687d
[Polly][NewPM][WIP] Add a ScopPassManager

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.

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

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