From: Anastasis Grammenos Date: Tue, 15 May 2018 23:38:05 +0000 (+0000) Subject: [Debugfiy] Print the pass name next to the result X-Git-Tag: llvmorg-7.0.0-rc1~5936 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4344c66aa6b6a76342dfd09ccb12fa3c037205d;p=platform%2Fupstream%2Fllvm.git [Debugfiy] Print the pass name next to the result CheckDebugify now prints the pass name right next to the result of the check. Differential Revision: https://reviews.llvm.org/D46908 llvm-svn: 332416 --- diff --git a/llvm/test/DebugInfo/debugify-each.ll b/llvm/test/DebugInfo/debugify-each.ll index 569c629..85e352f 100644 --- a/llvm/test/DebugInfo/debugify-each.ll +++ b/llvm/test/DebugInfo/debugify-each.ll @@ -11,14 +11,14 @@ define void @bar() { ; Verify that the module & function (check-)debugify passes run at least twice. -; CHECK-DAG: CheckModuleDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS +; CHECK-DAG: CheckModuleDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS -; CHECK-DAG: CheckModuleDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS -; CHECK-DAG: CheckFunctionDebugify: PASS +; CHECK-DAG: CheckModuleDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS +; CHECK-DAG: CheckFunctionDebugify [{{.*}}]: PASS diff --git a/llvm/test/DebugInfo/debugify.ll b/llvm/test/DebugInfo/debugify.ll index 6d81bb8..c31105b 100644 --- a/llvm/test/DebugInfo/debugify.ll +++ b/llvm/test/DebugInfo/debugify.ll @@ -80,6 +80,6 @@ define weak_odr zeroext i1 @baz() { ; CHECK-FAIL: WARNING: Missing line 3 ; CHECK-FAIL: WARNING: Missing line 4 ; CHECK-FAIL: ERROR: Missing variable 1 -; CHECK-FAIL: CheckModuleDebugify: FAIL +; CHECK-FAIL: CheckModuleDebugify [{{.*}}]: FAIL -; PASS: CheckModuleDebugify: PASS +; PASS: CheckModuleDebugify [{{.*}}]: PASS diff --git a/llvm/tools/opt/Debugify.cpp b/llvm/tools/opt/Debugify.cpp index 135a026..6d12b7e 100644 --- a/llvm/tools/opt/Debugify.cpp +++ b/llvm/tools/opt/Debugify.cpp @@ -126,6 +126,7 @@ bool applyDebugifyMetadata(Module &M, bool checkDebugifyMetadata(Module &M, iterator_range Functions, + StringRef NameOfWrappedPass, StringRef Banner, bool Strip) { // Skip modules without debugify metadata. @@ -190,7 +191,8 @@ bool checkDebugifyMetadata(Module &M, outs() << "ERROR: Missing variable " << Idx + 1 << "\n"; HasErrors |= MissingVars.count() > 0; - outs() << Banner << (HasErrors ? "FAIL" : "PASS") << '\n'; + outs() << Banner << " [" << NameOfWrappedPass << "]: " + << (HasErrors ? "FAIL" : "PASS") << '\n'; if (HasErrors) { outs() << "Module IR Dump\n"; M.print(outs(), nullptr, false); @@ -245,16 +247,18 @@ struct DebugifyFunctionPass : public FunctionPass { /// legacy module pass manager. struct CheckDebugifyModulePass : public ModulePass { bool runOnModule(Module &M) override { - return checkDebugifyMetadata(M, M.functions(), "CheckModuleDebugify: ", - Strip); + return checkDebugifyMetadata(M, M.functions(), NameOfWrappedPass, + "CheckModuleDebugify", Strip); } - CheckDebugifyModulePass(bool Strip = false) : ModulePass(ID), Strip(Strip) {} + CheckDebugifyModulePass(bool Strip = false, StringRef NameOfWrappedPass = "") + : ModulePass(ID), Strip(Strip), NameOfWrappedPass(NameOfWrappedPass) {} static char ID; // Pass identification. private: bool Strip; + StringRef NameOfWrappedPass; }; /// FunctionPass for checking debug info inserted by -debugify-function, used @@ -264,10 +268,11 @@ struct CheckDebugifyFunctionPass : public FunctionPass { Module &M = *F.getParent(); auto FuncIt = F.getIterator(); return checkDebugifyMetadata(M, make_range(FuncIt, std::next(FuncIt)), - "CheckFunctionDebugify: ", Strip); + NameOfWrappedPass, "CheckFunctionDebugify", Strip); } - CheckDebugifyFunctionPass(bool Strip = false) : FunctionPass(ID), Strip(Strip) {} + CheckDebugifyFunctionPass(bool Strip = false, StringRef NameOfWrappedPass = "") + : FunctionPass(ID), Strip(Strip), NameOfWrappedPass(NameOfWrappedPass) {} void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); @@ -277,6 +282,7 @@ struct CheckDebugifyFunctionPass : public FunctionPass { private: bool Strip; + StringRef NameOfWrappedPass; }; } // end anonymous namespace @@ -294,17 +300,17 @@ PreservedAnalyses NewPMDebugifyPass::run(Module &M, ModuleAnalysisManager &) { return PreservedAnalyses::all(); } -ModulePass *createCheckDebugifyModulePass(bool Strip) { - return new CheckDebugifyModulePass(Strip); +ModulePass *createCheckDebugifyModulePass(bool Strip, StringRef NameOfWrappedPass) { + return new CheckDebugifyModulePass(Strip, NameOfWrappedPass); } -FunctionPass *createCheckDebugifyFunctionPass(bool Strip) { - return new CheckDebugifyFunctionPass(Strip); +FunctionPass *createCheckDebugifyFunctionPass(bool Strip, StringRef NameOfWrappedPass) { + return new CheckDebugifyFunctionPass(Strip, NameOfWrappedPass); } PreservedAnalyses NewPMCheckDebugifyPass::run(Module &M, ModuleAnalysisManager &) { - checkDebugifyMetadata(M, M.functions(), "CheckModuleDebugify: ", false); + checkDebugifyMetadata(M, M.functions(), "", "CheckModuleDebugify", false); return PreservedAnalyses::all(); } diff --git a/llvm/tools/opt/PassPrinters.h b/llvm/tools/opt/PassPrinters.h index e5c4110..96a0ef2 100644 --- a/llvm/tools/opt/PassPrinters.h +++ b/llvm/tools/opt/PassPrinters.h @@ -56,8 +56,13 @@ struct NewPMDebugifyPass : public llvm::PassInfoMixin { llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM); }; -llvm::ModulePass *createCheckDebugifyModulePass(bool Strip = false); -llvm::FunctionPass *createCheckDebugifyFunctionPass(bool Strip = false); +llvm::ModulePass * +createCheckDebugifyModulePass(bool Strip = false, + llvm::StringRef NameOfWrappedPass = ""); + +llvm::FunctionPass * +createCheckDebugifyFunctionPass(bool Strip = false, + llvm::StringRef NameOfWrappedPass = ""); struct NewPMCheckDebugifyPass : public llvm::PassInfoMixin { diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp index f55509d..677ddc6 100644 --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -278,12 +278,12 @@ public: case PT_Function: super::add(createDebugifyFunctionPass()); super::add(P); - super::add(createCheckDebugifyFunctionPass(true)); + super::add(createCheckDebugifyFunctionPass(true, P->getPassName())); break; case PT_Module: super::add(createDebugifyModulePass()); super::add(P); - super::add(createCheckDebugifyModulePass(true)); + super::add(createCheckDebugifyModulePass(true, P->getPassName())); break; default: super::add(P);