[PATCH] D28627: [PM] Introduce an analysis set used to preserve all analyses over a function's CFG when that CFG is unchanged.

Davide Italiano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 12 15:55:17 PST 2017


davide added a comment.

I'm so glad to see this happening =)
First round of comments.



================
Comment at: lib/Transforms/InstCombine/InstructionCombining.cpp:3180-3181
+  auto PA = PreservedAnalyses::allOnFunctionCFG();
+  PA.preserve<AAManager>();
+  PA.preserve<GlobalsAA>();
   return PA;
----------------
The fact that we preserve now `GlobalsAA` and `AAManager` is an unrelated change, I guess? (can be committed separately).


================
Comment at: lib/Transforms/Scalar/DCE.cpp:127-128
 PreservedAnalyses DCEPass::run(Function &F, FunctionAnalysisManager &AM) {
-  if (eliminateDeadCode(F, AM.getCachedResult<TargetLibraryAnalysis>(F)))
-    return PreservedAnalyses::none();
-  return PreservedAnalyses::all();
+  if (!eliminateDeadCode(F, AM.getCachedResult<TargetLibraryAnalysis>(F)))
+    // Nothing changed.
+    return PreservedAnalyses::all();
----------------
this comment is too trivial to be useful.


================
Comment at: lib/Transforms/Scalar/IndVarSimplify.cpp:2497
+  PA.preserveSet<AnalysesOnFunctionCFG>();
+  return std::move(PA);
 }
----------------
Why `std::move()` here?


================
Comment at: lib/Transforms/Scalar/LoopRotation.cpp:637
     return PreservedAnalyses::all();
+
   return getLoopPassPreservedAnalyses();
----------------
Unrelated?


================
Comment at: lib/Transforms/Scalar/LoopSimplifyCFG.cpp:72
     return PreservedAnalyses::all();
+
   return getLoopPassPreservedAnalyses();
----------------
Unrelated?


================
Comment at: lib/Transforms/Scalar/LoopUnrollPass.cpp:1133
     return PreservedAnalyses::all();
+
   return getLoopPassPreservedAnalyses();
----------------
Unrelated?


================
Comment at: lib/Transforms/Scalar/NaryReassociate.cpp:168-169
 
   // FIXME: This should also 'preserve the CFG'.
-  PreservedAnalyses PA;
-  PA.preserve<DominatorTreeAnalysis>();
+  auto PA = PreservedAnalyses::allOnFunctionCFG();
   PA.preserve<ScalarEvolutionAnalysis>();
----------------
Remove the FIXME.


https://reviews.llvm.org/D28627





More information about the llvm-commits mailing list