[llvm] 11a702d - [opt][NewPM] Add isRequired to passes named as *VerifierPass (#76517)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 3 04:47:57 PST 2024


Author: Björn Pettersson
Date: 2024-01-03T13:47:53+01:00
New Revision: 11a702d215bf3fe5d185b9005e76c76c3001dd0c

URL: https://github.com/llvm/llvm-project/commit/11a702d215bf3fe5d185b9005e76c76c3001dd0c
DIFF: https://github.com/llvm/llvm-project/commit/11a702d215bf3fe5d185b9005e76c76c3001dd0c.diff

LOG: [opt][NewPM] Add isRequired to passes named as *VerifierPass (#76517)

In this patch all passes named as *VerifierPass are being marked as
required. That should make sure that the passes are executed without
being skipped due to standard instrumentations.

For example
  opt -passes='verify<loops>,verify<scalar-evolution>' ...
will no longer skip running the verifications for functions marked as
optnone.

Partial fix for: https://github.com/llvm/llvm-project/issues/76762

Added: 
    

Modified: 
    llvm/include/llvm/Analysis/LoopInfo.h
    llvm/include/llvm/Analysis/MemorySSA.h
    llvm/include/llvm/Analysis/RegionInfo.h
    llvm/include/llvm/Analysis/ScalarEvolution.h
    llvm/include/llvm/IR/Dominators.h
    llvm/include/llvm/IR/SafepointIRVerifier.h
    llvm/include/llvm/Transforms/Utils/PredicateInfo.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Analysis/LoopInfo.h b/llvm/include/llvm/Analysis/LoopInfo.h
index c3bfd9df86d07a..52084630560c55 100644
--- a/llvm/include/llvm/Analysis/LoopInfo.h
+++ b/llvm/include/llvm/Analysis/LoopInfo.h
@@ -586,6 +586,7 @@ class LoopPrinterPass : public PassInfoMixin<LoopPrinterPass> {
 /// Verifier pass for the \c LoopAnalysis results.
 struct LoopVerifierPass : public PassInfoMixin<LoopVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 /// The legacy pass manager's analysis pass to compute loop information.

diff  --git a/llvm/include/llvm/Analysis/MemorySSA.h b/llvm/include/llvm/Analysis/MemorySSA.h
index 531af5ac7380f1..caf0e31fd37d6c 100644
--- a/llvm/include/llvm/Analysis/MemorySSA.h
+++ b/llvm/include/llvm/Analysis/MemorySSA.h
@@ -973,6 +973,7 @@ class MemorySSAWalkerPrinterPass
 /// Verifier pass for \c MemorySSA.
 struct MemorySSAVerifierPass : PassInfoMixin<MemorySSAVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 /// Legacy analysis pass which computes \c MemorySSA.

diff  --git a/llvm/include/llvm/Analysis/RegionInfo.h b/llvm/include/llvm/Analysis/RegionInfo.h
index c49bbff8d63d45..fc8df36ec287db 100644
--- a/llvm/include/llvm/Analysis/RegionInfo.h
+++ b/llvm/include/llvm/Analysis/RegionInfo.h
@@ -990,6 +990,7 @@ class RegionInfoPrinterPass : public PassInfoMixin<RegionInfoPrinterPass> {
 /// Verifier pass for the \c RegionInfo.
 struct RegionInfoVerifierPass : PassInfoMixin<RegionInfoVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 template <>

diff  --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h
index 4d66bdcf2c010a..af3ad822e0b0de 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolution.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolution.h
@@ -2246,6 +2246,7 @@ class ScalarEvolutionVerifierPass
     : public PassInfoMixin<ScalarEvolutionVerifierPass> {
 public:
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 /// Printer pass for the \c ScalarEvolutionAnalysis results.

diff  --git a/llvm/include/llvm/IR/Dominators.h b/llvm/include/llvm/IR/Dominators.h
index 9e000f513d5700..42db4c4ea3a559 100644
--- a/llvm/include/llvm/IR/Dominators.h
+++ b/llvm/include/llvm/IR/Dominators.h
@@ -300,6 +300,7 @@ class DominatorTreePrinterPass
 /// Verifier pass for the \c DominatorTree.
 struct DominatorTreeVerifierPass : PassInfoMixin<DominatorTreeVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 /// Enables verification of dominator trees.

diff  --git a/llvm/include/llvm/IR/SafepointIRVerifier.h b/llvm/include/llvm/IR/SafepointIRVerifier.h
index 246d236adb389a..2ee998e4c68ffe 100644
--- a/llvm/include/llvm/IR/SafepointIRVerifier.h
+++ b/llvm/include/llvm/IR/SafepointIRVerifier.h
@@ -40,6 +40,8 @@ class SafepointIRVerifierPass : public PassInfoMixin<SafepointIRVerifierPass> {
   explicit SafepointIRVerifierPass() = default;
 
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+
+  static bool isRequired() { return true; }
 };
 }
 

diff  --git a/llvm/include/llvm/Transforms/Utils/PredicateInfo.h b/llvm/include/llvm/Transforms/Utils/PredicateInfo.h
index 0dabb97f6d11bc..365b215c051fc6 100644
--- a/llvm/include/llvm/Transforms/Utils/PredicateInfo.h
+++ b/llvm/include/llvm/Transforms/Utils/PredicateInfo.h
@@ -221,6 +221,7 @@ class PredicateInfoPrinterPass
 /// Verifier pass for \c PredicateInfo.
 struct PredicateInfoVerifierPass : PassInfoMixin<PredicateInfoVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+  static bool isRequired() { return true; }
 };
 
 } // end namespace llvm


        


More information about the llvm-commits mailing list