[PATCH] Debug Info Verifier pass

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Apr 14 17:56:10 PDT 2014


On Apr 11, 2014, at 11:31 AM, Manman Ren <manman.ren at gmail.com> wrote:

> Hi Duncan,
> 
> Thanks for working on this. The patches look great overall.
> 0001: LGTM
> 0002: There is some inconsistency in creating debug info verifier pass.
> 1>
> tools/opt/opt.cpp:  if (VerifyEach) PM.add(createVerifierPass());
> Should VerifyEach guard debug info verifier as well given that we are using NoVerify to guard debug info verifier?
> I am okay with not using VerifyEach for debug info verifier, but please add comments there to explain why.

I just changed it to line up with Verifier for now.  Probably it will
be too slow, but if it is, we'll probably want to add a separate flag
so we can --verify-di-each on demand.

> 2> What about these two places? Should we add debug info verifier?
> tools/clang/lib/CodeGen/BackendUtil.cpp:    FPM->add(createVerifierPass());
> unittests/Bitcode/BitReaderTest.cpp:  passes.add(createVerifierPass());

I just missed those.  Thanks!  Note that one of those is in cfe, so
I've added a third patch for that one.

> 3> Could you turn debug info verifier on by default and make sure it is working correctly with "make check-all"?

I'm seeing 225 failures with make check-all when I turn --verify-di
and --verify-each on by default (configured with X86;ARM;ARM64):

  Expected Passes    : 14993
  Expected Failures  : 58
  Unsupported Tests  : 2341
  Unexpected Failures: 225

make check gives:

  Expected Passes    : 7893
  Expected Failures  : 39
  Unsupported Tests  : 2288
  Unexpected Failures: 225

so they're all in LLVM proper.

Is this expected?  Given that I know next to nothing about debug
info, I'm probably not the right person to diagnose them.

Should they be fixed before commit?  I'm thinking it would be
better to tackle them incrementally.

(For clarity, in case someone else on the list isn't following
closely, check-all is clean unless I *force* these options on.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-verify-di-split-out-VerifierSupport.patch
Type: application/octet-stream
Size: 6371 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140414/22b18b15/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-verify-di-Implement-DebugInfoVerifier.patch
Type: application/octet-stream
Size: 30639 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140414/22b18b15/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-verify-di-Call-debug-info-verifier-from-clang.patch
Type: application/octet-stream
Size: 1575 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140414/22b18b15/attachment-0002.obj>


More information about the llvm-commits mailing list