[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