[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