diff options
author | Michael Kruse <llvm@meinersbur.de> | 2017-08-28 14:07:33 +0000 |
---|---|---|
committer | Michael Kruse <llvm@meinersbur.de> | 2017-08-28 14:07:33 +0000 |
commit | a4f447c2a43194f6fb1ab7c9312b9a0f49b01d14 (patch) | |
tree | 71929230431933c9d223c03fdffc5903a869b871 /polly/lib/CodeGen/PPCGCodeGeneration.cpp | |
parent | 1587086f88b1dd10b8e35841b20235b7ca49ccb9 (diff) | |
download | bcm5719-llvm-a4f447c2a43194f6fb1ab7c9312b9a0f49b01d14.tar.gz bcm5719-llvm-a4f447c2a43194f6fb1ab7c9312b9a0f49b01d14.zip |
[PM] Properly require and preserve OptimizationRemarkEmitter. NFCI.
Properly require and preserve the OptimizationRemarkEmitter for use in
ScopPass. Previously one had to get the ORE from ScopDetection because
CodeGeneration did not mark it as preserved. It would need to be
recomputed which results in the legacy PM to throw away all previous
SCoP analysis.
This also changes the implementation of ScopPass::getAnalysisUsage to
not unconditionally preserve all passes, but only those needed to be
preserved by any SCoP pass (at least when using the legacy PM). This
allows invalidating DependenceInfo (and IslAstInfo) in case the pass
would cause them to change (e.g. OpTree, DeLICM, MaximalArrayExpansion)
JSONImporter should also invalidate the DependenceInfo. In this patch
it marks DependenceInfo as preserved anyway because some regression
tests depend on it.
Differential Revision: https://reviews.llvm.org/D37010
llvm-svn: 311888
Diffstat (limited to 'polly/lib/CodeGen/PPCGCodeGeneration.cpp')
-rw-r--r-- | polly/lib/CodeGen/PPCGCodeGeneration.cpp | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/polly/lib/CodeGen/PPCGCodeGeneration.cpp b/polly/lib/CodeGen/PPCGCodeGeneration.cpp index 61c3fd0bc6c..21edbc7be1a 100644 --- a/polly/lib/CodeGen/PPCGCodeGeneration.cpp +++ b/polly/lib/CodeGen/PPCGCodeGeneration.cpp @@ -3520,6 +3520,8 @@ public: void printScop(raw_ostream &, Scop &) const override {} void getAnalysisUsage(AnalysisUsage &AU) const override { + ScopPass::getAnalysisUsage(AU); + AU.addRequired<DominatorTreeWrapperPass>(); AU.addRequired<RegionInfoPass>(); AU.addRequired<ScalarEvolutionWrapperPass>(); @@ -3527,19 +3529,8 @@ public: AU.addRequired<ScopInfoRegionPass>(); AU.addRequired<LoopInfoWrapperPass>(); - AU.addPreserved<AAResultsWrapperPass>(); - AU.addPreserved<BasicAAWrapperPass>(); - AU.addPreserved<LoopInfoWrapperPass>(); - AU.addPreserved<DominatorTreeWrapperPass>(); - AU.addPreserved<GlobalsAAWrapperPass>(); - AU.addPreserved<ScopDetectionWrapperPass>(); - AU.addPreserved<ScalarEvolutionWrapperPass>(); - AU.addPreserved<SCEVAAWrapperPass>(); - // FIXME: We do not yet add regions for the newly generated code to the // region tree. - AU.addPreserved<RegionInfoPass>(); - AU.addPreserved<ScopInfoRegionPass>(); } }; } // namespace |