[llvm] r332416 - [Debugfiy] Print the pass name next to the result
via llvm-commits
llvm-commits at lists.llvm.org
Wed May 16 08:00:57 PDT 2018
> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf
> Of Anastasis Grammenos via llvm-commits
> Sent: Tuesday, May 15, 2018 7:38 PM
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r332416 - [Debugfiy] Print the pass name next to the
> result
>
> Author: gramanas
> Date: Tue May 15 16:38:05 2018
> New Revision: 332416
>
> URL: http://llvm.org/viewvc/llvm-project?rev=332416&view=rev
> Log:
> [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
>
> Modified:
> llvm/trunk/test/DebugInfo/debugify-each.ll
> llvm/trunk/test/DebugInfo/debugify.ll
> llvm/trunk/tools/opt/Debugify.cpp
> llvm/trunk/tools/opt/PassPrinters.h
> llvm/trunk/tools/opt/opt.cpp
>
> Modified: llvm/trunk/test/DebugInfo/debugify-each.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/DebugInfo/debugify-
> each.ll?rev=332416&r1=332415&r2=332416&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/test/DebugInfo/debugify-each.ll (original)
> +++ llvm/trunk/test/DebugInfo/debugify-each.ll Tue May 15 16:38:05 2018
> @@ -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
I won't say this change is wrong, but the test wasn't doing
the intuitive thing in the first place. Repeated CHECK-DAG
directives will match the same string over and over, not
verify that it occurs N times.
See Joel Denny's RFC about CHECK-DAG, with that change to
FileCheck this test will probably start doing what you want.
http://lists.llvm.org/pipermail/llvm-dev/2018-May/123010.html
--paulr
>
> -; 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
>
> Modified: llvm/trunk/test/DebugInfo/debugify.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/DebugInfo/debugify.ll?rev=332416&r1=332415&r2=3324
> 16&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/test/DebugInfo/debugify.ll (original)
> +++ llvm/trunk/test/DebugInfo/debugify.ll Tue May 15 16:38:05 2018
> @@ -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
>
> Modified: llvm/trunk/tools/opt/Debugify.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/tools/opt/Debugify.cpp?rev=332416&r1=332415&r2=332416&v
> iew=diff
> ==========================================================================
> ====
> --- llvm/trunk/tools/opt/Debugify.cpp (original)
> +++ llvm/trunk/tools/opt/Debugify.cpp Tue May 15 16:38:05 2018
> @@ -126,6 +126,7 @@ bool applyDebugifyMetadata(Module &M,
>
> bool checkDebugifyMetadata(Module &M,
> iterator_range<Module::iterator> 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 Fun
> /// 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 : publi
> 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 : publi
>
> private:
> bool Strip;
> + StringRef NameOfWrappedPass;
> };
>
> } // end anonymous namespace
> @@ -294,17 +300,17 @@ PreservedAnalyses NewPMDebugifyPass::run
> 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();
> }
>
>
> Modified: llvm/trunk/tools/opt/PassPrinters.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/tools/opt/PassPrinters.h?rev=332416&r1=332415&r2=332416
> &view=diff
> ==========================================================================
> ====
> --- llvm/trunk/tools/opt/PassPrinters.h (original)
> +++ llvm/trunk/tools/opt/PassPrinters.h Tue May 15 16:38:05 2018
> @@ -56,8 +56,13 @@ struct NewPMDebugifyPass : public llvm::
> 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<NewPMCheckDebugifyPass> {
>
> Modified: llvm/trunk/tools/opt/opt.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/tools/opt/opt.cpp?rev=332416&r1=332415&r2=332416&view=d
> iff
> ==========================================================================
> ====
> --- llvm/trunk/tools/opt/opt.cpp (original)
> +++ llvm/trunk/tools/opt/opt.cpp Tue May 15 16:38:05 2018
> @@ -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);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list