[llvm] r186634 - Debug Info: enable verifying by default and disable testing cases that fail.

Manman manman.ren at gmail.com
Thu Jul 18 23:18:14 PDT 2013



On Jul 18, 2013, at 11:02 PM, Eric Christopher <echristo at gmail.com> wrote:

>>> Cool, looks about like what I'd expected from when we discussed it.
>>> I'd have preferred you split out the change to verify :)
>>> 
>>>> Note that DebugInfoFinder does not list all debug info MDNode.
>>> 
>>> Seems like we should fix this? :)
>> Yes if it is true.'
> 
> You just said it was true?
I thought the temporary node was a debug info node. Since it is not listed in Finder, the commit log said some debug info nodes are not listed.

But after reading your reply, I was not sure about that. So I said if it is true :)

Manman
> 
>>> 
>>>> For example, clang can generate:
>>>> metadata !{i32 786468}, which will fail to verify.
>>> 
>>> This doesn't seem related to "not listing" all of the debug info, but
>>> a problem because of:
>>> 
>>>> This MDNode is used by debug info but not included in DebugInfoFinder.
>>>> This MDNode is generated as a temporary node in DIBuilder::createFunction
>>>> Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) };
>>>> MDNode::getTemporary(VMContext, TElts)
>>> 
>>> This is the "we need a temporary placeholder" problem basically.
>>> You'll see it in GVs, subprograms etc when we construct the CU as
>>> well. Theoretically the verifier should catch these as "not
>>> important". What's actually going on here that's causing it to fail?
>> 
>> Should this temporary node be treated as a debug info MDNode?
>> If yes it will fail verification since the tag says it is a base_type, but it has a single operand.
> 
> Should probably be treated as a debug info node at the moment. I think
> ideally we're going to want to treat these as either NULL terminators
> or just use NULL nodes here instead of something that we're just going
> to find and replace.
> 
> -eric
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list