[llvm] r332416 - [Debugfiy] Print the pass name next to the result
Vedant Kumar via llvm-commits
llvm-commits at lists.llvm.org
Wed May 16 10:35:07 PDT 2018
See r332497.
> On May 16, 2018, at 10:24 AM, Vedant Kumar via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
> Thanks for catching this. I'll tighten this test up.
>
> vedant
>
>> On May 16, 2018, at 8:00 AM, via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>>
>>
>>
>>> -----Original Message-----
>>> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org <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 <mailto: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 <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 <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- <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 <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- <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- <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- <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- <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 <mailto:llvm-commits at lists.llvm.org>
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180516/74376a66/attachment-0001.html>
More information about the llvm-commits
mailing list