Index: include/llvm/Pass.h =================================================================== --- include/llvm/Pass.h +++ include/llvm/Pass.h @@ -214,6 +214,8 @@ template AnalysisType &getAnalysisID(AnalysisID PI, Function &F); + + virtual bool isVerifier() const { return false; } }; //===----------------------------------------------------------------------===// Index: lib/CodeGen/MachineVerifier.cpp =================================================================== --- lib/CodeGen/MachineVerifier.cpp +++ lib/CodeGen/MachineVerifier.cpp @@ -312,6 +312,8 @@ report_fatal_error("Found "+Twine(FoundErrors)+" machine code errors."); return false; } + + bool isVerifier() const override { return true; } }; } // end anonymous namespace Index: lib/IR/LegacyPassManager.cpp =================================================================== --- lib/IR/LegacyPassManager.cpp +++ lib/IR/LegacyPassManager.cpp @@ -784,7 +784,8 @@ return; } - if (PI && !PI->isAnalysis() && shouldPrintBeforePass(PI->getPassArgument())) { + if (!P->isVerifier() && PI && !PI->isAnalysis() && + shouldPrintBeforePass(PI->getPassArgument())) { Pass *PP = P->createPrinterPass( dbgs(), ("*** IR Dump Before " + P->getPassName() + " ***").str()); PP->assignPassManager(activeStack, getTopLevelPassManagerType()); @@ -793,7 +794,8 @@ // Add the requested pass to the best available pass manager. P->assignPassManager(activeStack, getTopLevelPassManagerType()); - if (PI && !PI->isAnalysis() && shouldPrintAfterPass(PI->getPassArgument())) { + if (!P->isVerifier() && PI && !PI->isAnalysis() && + shouldPrintAfterPass(PI->getPassArgument())) { Pass *PP = P->createPrinterPass( dbgs(), ("*** IR Dump After " + P->getPassName() + " ***").str()); PP->assignPassManager(activeStack, getTopLevelPassManagerType());