[Polly] Add TargetTransformInfo to ScopPass standard analysis results.
authorMichael Kruse <llvm-project@meinersbur.de>
Wed, 10 Feb 2021 04:30:42 +0000 (22:30 -0600)
committerMichael Kruse <llvm-project@meinersbur.de>
Wed, 10 Feb 2021 05:56:20 +0000 (23:56 -0600)
TargetTransformInfo is required by IslScheduleOptimizer, as ScopPass.
Unfortunately it is not possible to get arbitrary larger-unit analyses
in for as ScopPass. Loop passes also already use TargetTransformInfo as
LoopStandardAnalysisResults, hence wei might expect it to be available
to Scop passes as well.

polly/include/polly/ScopPass.h

index 360768f..e091a39 100644 (file)
@@ -20,6 +20,7 @@
 #include "polly/ScopInfo.h"
 #include "llvm/ADT/PriorityWorklist.h"
 #include "llvm/Analysis/RegionPass.h"
+#include "llvm/Analysis/TargetTransformInfo.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/PassManagerImpl.h"
 
@@ -176,6 +177,7 @@ struct ScopStandardAnalysisResults {
   ScalarEvolution &SE;
   LoopInfo &LI;
   RegionInfo &RI;
+  TargetTransformInfo &TTI;
 };
 
 class SPMUpdater {
@@ -224,7 +226,8 @@ public:
                                       AM.getResult<ScopInfoAnalysis>(F),
                                       AM.getResult<ScalarEvolutionAnalysis>(F),
                                       AM.getResult<LoopAnalysis>(F),
-                                      AM.getResult<RegionInfoAnalysis>(F)};
+                                      AM.getResult<RegionInfoAnalysis>(F),
+                                      AM.getResult<TargetIRAnalysis>(F)};
 
     ScopAnalysisManager &SAM =
         AM.getResult<ScopAnalysisManagerFunctionProxy>(F).getManager();