[llvm] [Analysis] Avoid running transform passes that have just been run (PR #112092)
    Arthur Eubanks via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Oct 16 14:45:10 PDT 2024
    
    
  
================
@@ -5538,8 +5539,15 @@ void InstCombinePass::printPipeline(
   OS << '>';
 }
 
+char InstCombinePass::ID = 0;
+
 PreservedAnalyses InstCombinePass::run(Function &F,
                                        FunctionAnalysisManager &AM) {
+  auto &LRT = AM.getResult<LastRunTrackingAnalysis>(F);
+  // No changes since last InstCombine pass, exit early.
+  if (LRT.shouldSkip(&ID, Options))
+    return PreservedAnalyses::all();
----------------
aeubanks wrote:
in the legacy pass manager, analyses were special passes. in the new pass manager, analyses and passes are separate concepts, so that sort of hack doesn't really work. and that doesn't solve the pass parameter issue.
https://github.com/llvm/llvm-project/pull/112092
    
    
More information about the llvm-commits
mailing list