[llvm] r193589 - Debug Info: instead of calling addToContextOwner which constructs the context
David Blaikie
dblaikie at gmail.com
Tue Oct 29 13:09:03 PDT 2013
On Tue, Oct 29, 2013 at 12:05 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
> Eric mentioned the same thing, getOrCreateContextDIE is also used in
> DwarfDebug where we check if the return value is null
> void DwarfDebug::constructImportedEntityDIE(CompileUnit *TheCU,
> const MDNode *N) {
> DIImportedEntity Module(N);
> if (!Module.Verify())
> return;
> if (DIE *D = TheCU->getOrCreateContextDIE(Module.getContext()))
> constructImportedEntityDIE(TheCU, Module, D);
> }
>
> So most of the times, we can return the CU, except the above case
>
It's possible that this is just a bug or a condition that never actually
fires. Looking at a simple example of a top-level scoped imported_module:
namespace x {
int i;
}
using namespace x;
int main() {
i = 3;
}
the IR produced has an imported_module that has a parent context of the
compile_unit. This seems to work fine - we don't silently ignore the
imported_module just because it's at the top level.
Seems like we could remove that conditional and the functionality that
powers it, allowing the cleanup suggested.
> (I am not an expert on imported entity :).
>
Sure enough - but a little experimentation/examination can be helpful so we
don't preserve behavior/complexity that isn't needed.
- David
>
> Thanks,
> Manman
>
>
> On Tue, Oct 29, 2013 at 10:49 AM, David Blaikie <dblaikie at gmail.com>wrote:
>
>>
>>
>>
>> On Mon, Oct 28, 2013 at 10:49 PM, Manman Ren <manman.ren at gmail.com>wrote:
>>
>>> Author: mren
>>> Date: Tue Oct 29 00:49:41 2013
>>> New Revision: 193589
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=193589&view=rev
>>> Log:
>>> Debug Info: instead of calling addToContextOwner which constructs the
>>> context
>>> after the DIE creation, we construct the context first.
>>>
>>> This touches creation of namespaces and global variables. The purpose is
>>> to
>>> handle all DIE creations similarly: constructs the context first, then
>>> creates
>>> the DIE and immediately adds the DIE to its parent.
>>>
>>> We use createAndAddDIE to wrap around "new DIE(".
>>>
>>> Modified:
>>> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>>> llvm/trunk/test/DebugInfo/X86/2010-08-10-DbgConstant.ll
>>> llvm/trunk/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
>>> llvm/trunk/test/DebugInfo/X86/DW_TAG_friend.ll
>>> llvm/trunk/test/DebugInfo/X86/empty-array.ll
>>> llvm/trunk/test/DebugInfo/X86/enum-class.ll
>>> llvm/trunk/test/DebugInfo/X86/fission-cu.ll
>>> llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll
>>> llvm/trunk/test/DebugInfo/X86/nondefault-subrange-array.ll
>>> llvm/trunk/test/DebugInfo/X86/objc-fwd-decl.ll
>>> llvm/trunk/test/DebugInfo/X86/stringpool.ll
>>> llvm/trunk/test/DebugInfo/X86/struct-loc.ll
>>> llvm/trunk/test/DebugInfo/template-recursive-void.ll
>>>
>>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (original)
>>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp Tue Oct 29
>>> 00:49:41 2013
>>> @@ -1327,11 +1327,19 @@ CompileUnit::constructTemplateValueParam
>>>
>>> /// getOrCreateNameSpace - Create a DIE for DINameSpace.
>>> DIE *CompileUnit::getOrCreateNameSpace(DINameSpace NS) {
>>> + // Construct the context before querying for the existence of the DIE
>>> in case
>>> + // such construction creates the DIE.
>>> + DIE *ContextDIE = getOrCreateContextDIE(NS.getContext());
>>> + if (!ContextDIE)
>>> + // If the context is null, DIE should belong to the CU we call
>>> construct
>>> + // function on.
>>> + ContextDIE = CUDie.get();
>>>
>>
>> Should we just build in the "fall back to CU" behavior in
>> "getOrCreateContextDIE" instead of having each caller deal with this? (in
>> the same way that addtoContextOwner probably handles this case already for
>> all users)
>>
>>
>>> +
>>> DIE *NDie = getDIE(NS);
>>> if (NDie)
>>> return NDie;
>>> - NDie = new DIE(dwarf::DW_TAG_namespace);
>>> - insertDIE(NS, NDie);
>>> + NDie = createAndAddDIE(dwarf::DW_TAG_namespace, *ContextDIE, NS);
>>> +
>>> if (!NS.getName().empty()) {
>>> addString(NDie, dwarf::DW_AT_name, NS.getName());
>>> addAccelNamespace(NS.getName(), NDie);
>>> @@ -1339,7 +1347,6 @@ DIE *CompileUnit::getOrCreateNameSpace(D
>>> } else
>>> addAccelNamespace("(anonymous namespace)", NDie);
>>> addSourceLine(NDie, NS);
>>> - addToContextOwner(NDie, NS.getContext());
>>> return NDie;
>>> }
>>>
>>> @@ -1506,9 +1513,14 @@ void CompileUnit::createGlobalVariableDI
>>> // If this is not a static data member definition, create the variable
>>> // DIE and add the initial set of attributes to it.
>>> if (!VariableDIE) {
>>> - VariableDIE = new DIE(GV.getTag());
>>> + // Construct the context before querying for the existence of the
>>> DIE in
>>> + // case such construction creates the DIE.
>>> + DIE *ContextDIE = getOrCreateContextDIE(GVContext);
>>> + if (!ContextDIE)
>>> + ContextDIE = CUDie.get();
>>> +
>>> // Add to map.
>>> - insertDIE(N, VariableDIE);
>>> + VariableDIE = createAndAddDIE(GV.getTag(), *ContextDIE, N);
>>>
>>> // Add name and type.
>>> addString(VariableDIE, dwarf::DW_AT_name, GV.getDisplayName());
>>> @@ -1520,8 +1532,6 @@ void CompileUnit::createGlobalVariableDI
>>>
>>> // Add line number info.
>>> addSourceLine(VariableDIE, GV);
>>> - // Add to context owner.
>>> - addToContextOwner(VariableDIE, GVContext);
>>> }
>>>
>>> // Add location.
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/2010-08-10-DbgConstant.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/2010-08-10-DbgConstant.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/2010-08-10-DbgConstant.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/2010-08-10-DbgConstant.ll Tue Oct 29
>>> 00:49:41 2013
>>> @@ -1,7 +1,7 @@
>>> ; RUN: llc -mtriple=i686-linux -O0 -filetype=obj -o %t %s
>>> ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
>>> -; CHECK: DW_TAG_constant [4]
>>> -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000002c] = "ro")
>>> +; CHECK: DW_TAG_constant
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] =
>>> "ro")
>>>
>>> define void @foo() nounwind ssp {
>>> entry:
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
>>> (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll Tue Oct
>>> 29 00:49:41 2013
>>> @@ -37,13 +37,13 @@ declare void @llvm.dbg.declare(metadata,
>>> !19 = metadata !{i32 5, i32 5, metadata !16, null}
>>> !20 = metadata !{metadata !"test.c", metadata
>>> !"/work/llvm/vanilla/test/DebugInfo"}
>>>
>>> -; CHECK: DW_TAG_variable [3]
>>> -; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000043] =
>>> "GLB")
>>> +; CHECK: DW_TAG_variable
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] (
>>> .debug_str[0x{{[0-9a-f]*}}] = "GLB")
>>> ; CHECK: DW_AT_decl_file [DW_FORM_data1] (0x01)
>>> ; CHECK: DW_AT_decl_line [DW_FORM_data1] (0x01)
>>>
>>> -; CHECK: DW_TAG_variable [6]
>>> -; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000004d] = "LOC")
>>> +; CHECK: DW_TAG_variable
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}]
>>> = "LOC")
>>> ; CHECK: DW_AT_decl_file [DW_FORM_data1] (0x01)
>>> ; CHECK: DW_AT_decl_line [DW_FORM_data1] (0x04)
>>>
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/DW_TAG_friend.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/DW_TAG_friend.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/DW_TAG_friend.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/DW_TAG_friend.ll Tue Oct 29 00:49:41
>>> 2013
>>> @@ -3,10 +3,10 @@
>>>
>>> ; Check that the friend tag is there and is followed by a DW_AT_friend
>>> that has a reference back.
>>>
>>> -; CHECK: [[BACK:0x[0-9a-f]*]]: DW_TAG_class_type [4]
>>> +; CHECK: [[BACK:0x[0-9a-f]*]]: DW_TAG_class_type
>>> ; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[{{.*}}] =
>>> "A")
>>> -; CHECK: DW_TAG_friend [9]
>>> -; CHECK-NEXT: DW_AT_friend [DW_FORM_ref4] (cu + 0x0032 => {[[BACK]]})
>>> +; CHECK: DW_TAG_friend
>>> +; CHECK-NEXT: DW_AT_friend [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} =>
>>> {[[BACK]]})
>>>
>>>
>>> %class.A = type { i32 }
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/empty-array.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/empty-array.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/empty-array.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/empty-array.ll Tue Oct 29 00:49:41 2013
>>> @@ -6,21 +6,22 @@
>>>
>>> @a = global %class.A zeroinitializer, align 4
>>>
>>> -; CHECK: 0x0000002d: DW_TAG_base_type [3]
>>> +; CHECK: [[BASETYPE:0x[0-9a-f]*]]: DW_TAG_base_type
>>> +; CHECK: [[BASE2:0x[0-9a-f]*]]: DW_TAG_base_type
>>> ; CHECK-NEXT: DW_AT_name
>>> ; CHECK-NEXT: DW_AT_byte_size [DW_FORM_data1] (0x04)
>>> ; CHECK-NEXT: DW_AT_encoding [DW_FORM_data1] (0x05)
>>>
>>> -; CHECK: 0x00000034: DW_TAG_array_type [4] *
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x0026 => {0x00000026})
>>> +; CHECK: [[ARRAY:0x[0-9a-f]*]]: DW_TAG_array_type [{{.*}}] *
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} =>
>>> {[[BASETYPE]]})
>>>
>>> -; CHECK: 0x00000039: DW_TAG_subrange_type [5]
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x002d => {0x0000002d})
>>> +; CHECK: DW_TAG_subrange_type
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} =>
>>> {[[BASE2]]})
>>> ; CHECK-NOT: DW_AT_upper_bound
>>>
>>> -; CHECK: DW_TAG_member [8]
>>> -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000003f] = "x")
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x0034 => {0x00000034})
>>> +; CHECK: DW_TAG_member
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}]
>>> = "x")
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} =>
>>> {[[ARRAY]]})
>>>
>>> !llvm.dbg.cu = !{!0}
>>>
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/enum-class.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/enum-class.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/enum-class.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/enum-class.ll Tue Oct 29 00:49:41 2013
>>> @@ -28,12 +28,12 @@
>>> !21 = metadata !{i32 786484, i32 0, null, metadata !"c", metadata !"c",
>>> metadata !"", metadata !4, i32 6, metadata !12, i32 0, i32 1, i32* @c,
>>> null} ; [ DW_TAG_variable ]
>>> !22 = metadata !{metadata !"foo.cpp", metadata !"/Users/echristo/tmp"}
>>>
>>> -; CHECK: DW_TAG_enumeration_type [3]
>>> +; CHECK: DW_TAG_enumeration_type [{{.*}}]
>>> ; CHECK: DW_AT_type [DW_FORM_ref4]
>>> ; CHECK: DW_AT_enum_class [DW_FORM_flag_present] (true)
>>> ; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[{{.*}}] = "A")
>>>
>>> -; CHECK: DW_TAG_enumeration_type [3] *
>>> +; CHECK: DW_TAG_enumeration_type [{{.*}}] *
>>> ; CHECK: DW_AT_type [DW_FORM_ref4]
>>> ; CHECK: DW_AT_enum_class [DW_FORM_flag_present] (true)
>>> ; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[{{.*}}] = "B")
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/fission-cu.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/fission-cu.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/fission-cu.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/fission-cu.ll Tue Oct 29 00:49:41 2013
>>> @@ -54,12 +54,7 @@
>>> ; CHECK-NOT: DW_AT_comp_dir
>>> ; CHECK: DW_AT_GNU_dwo_id DW_FORM_data8
>>>
>>> -; CHECK: [2] DW_TAG_base_type DW_CHILDREN_no
>>> -; CHECK: DW_AT_name DW_FORM_GNU_str_index
>>> -; CHECK: DW_AT_encoding DW_FORM_data1
>>> -; CHECK: DW_AT_byte_size DW_FORM_data1
>>> -
>>> -; CHECK: [3] DW_TAG_variable DW_CHILDREN_no
>>> +; CHECK: [2] DW_TAG_variable DW_CHILDREN_no
>>> ; CHECK: DW_AT_name DW_FORM_GNU_str_index
>>> ; CHECK: DW_AT_type DW_FORM_ref4
>>> ; CHECK: DW_AT_external DW_FORM_flag_present
>>> @@ -67,6 +62,11 @@
>>> ; CHECK: DW_AT_decl_line DW_FORM_data1
>>> ; CHECK: DW_AT_location DW_FORM_block1
>>>
>>> +; CHECK: [3] DW_TAG_base_type DW_CHILDREN_no
>>> +; CHECK: DW_AT_name DW_FORM_GNU_str_index
>>> +; CHECK: DW_AT_encoding DW_FORM_data1
>>> +; CHECK: DW_AT_byte_size DW_FORM_data1
>>> +
>>> ; Check that the rest of the compile units have information.
>>> ; CHECK: .debug_info.dwo contents:
>>> ; CHECK: DW_TAG_compile_unit
>>> @@ -77,15 +77,15 @@
>>> ; CHECK-NOT: DW_AT_stmt_list
>>> ; CHECK-NOT: DW_AT_comp_dir
>>> ; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0x0000000000000000)
>>> -; CHECK: DW_TAG_base_type
>>> -; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000003)
>>> string = "int")
>>> ; CHECK: DW_TAG_variable
>>> ; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000002)
>>> string = "a")
>>> -; CHECK: DW_AT_type [DW_FORM_ref4] (cu + 0x0018 => {0x00000018})
>>> +; CHECK: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} =>
>>> {[[TYPE:0x[0-9a-f]*]]})
>>> ; CHECK: DW_AT_external [DW_FORM_flag_present] (true)
>>> ; CHECK: DW_AT_decl_file [DW_FORM_data1] (0x01)
>>> ; CHECK: DW_AT_decl_line [DW_FORM_data1] (0x01)
>>> ; CHECK: DW_AT_location [DW_FORM_block1] (<0x02> fb 00 )
>>> +; CHECK: [[TYPE]]: DW_TAG_base_type
>>> +; CHECK: DW_AT_name [DW_FORM_GNU_str_index] ( indexed (00000003)
>>> string = "int")
>>>
>>>
>>> ; CHECK: .debug_str.dwo contents:
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/gnu-public-names.ll Tue Oct 29
>>> 00:49:41 2013
>>> @@ -77,12 +77,12 @@
>>> ; CHECK: [[GLOB_NS_VAR_DECL:[0-9a-f]+]]: DW_TAG_variable
>>> ; CHECK-NEXT: DW_AT_name {{.*}} "global_namespace_variable"
>>>
>>> -; CHECK: [[D:[0-9a-f]+]]: DW_TAG_structure_type
>>> -; CHECK-NEXT: DW_AT_name {{.*}} "D"
>>> -
>>> ; CHECK: [[D_VAR_DECL:[0-9a-f]+]]: DW_TAG_variable
>>> ; CHECK-NEXT: DW_AT_name {{.*}} "d"
>>>
>>> +; CHECK: [[D:[0-9a-f]+]]: DW_TAG_structure_type
>>> +; CHECK-NEXT: DW_AT_name {{.*}} "D"
>>> +
>>> ; CHECK: [[GLOB_NS_FUNC:[0-9a-f]+]]: DW_TAG_subprogram
>>> ; CHECK-NEXT: DW_AT_MIPS_linkage_name
>>> ; CHECK-NEXT: DW_AT_name {{.*}} "global_namespace_function"
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/nondefault-subrange-array.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/nondefault-subrange-array.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/nondefault-subrange-array.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/nondefault-subrange-array.ll Tue Oct
>>> 29 00:49:41 2013
>>> @@ -8,22 +8,23 @@
>>> ; Check that we can handle non-default array bounds. In this case, the
>>> array
>>> ; goes from [-3, 38].
>>>
>>> -; CHECK: 0x0000002d: DW_TAG_base_type [3]
>>> -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] (
>>> .debug_str[0x00000041] = "int")
>>> +; CHECK: [[BASE:0x[0-9a-f]*]]: DW_TAG_base_type
>>> +; CHECK: [[BASE2:0x[0-9a-f]*]]: DW_TAG_base_type
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] (
>>> .debug_str[0x{{[0-9a-f]*}}] = "int")
>>> ; CHECK-NEXT: DW_AT_byte_size [DW_FORM_data1] (0x04)
>>> ; CHECK-NEXT: DW_AT_encoding [DW_FORM_data1] (0x05)
>>>
>>> -; CHECK: 0x00000034: DW_TAG_array_type [4] *
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x0026
>>> => {0x00000026})
>>> +; CHECK: [[ARRAY:0x[0-9a-f]*]]: DW_TAG_array_type [{{.*}}] *
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu +
>>> 0x{{[0-9a-f]*}} => {[[BASE]]})
>>>
>>> -; CHECK: 0x00000039: DW_TAG_subrange_type [5]
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x002d
>>> => {0x0000002d})
>>> +; CHECK: DW_TAG_subrange_type
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu +
>>> 0x{{[0-9a-f]*}} => {[[BASE2]]})
>>> ; CHECK-NEXT: DW_AT_lower_bound [DW_FORM_data8]
>>> (0xfffffffffffffffd)
>>> ; CHECK-NEXT: DW_AT_upper_bound [DW_FORM_data1]
>>> (0x26)
>>>
>>> -; CHECK: 0x00000055: DW_TAG_member [8]
>>> -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] (
>>> .debug_str[0x0000003f] = "x")
>>> -; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu +
>>> 0x0034 => {0x00000034})
>>> +; CHECK: DW_TAG_member
>>> +; CHECK-NEXT: DW_AT_name [DW_FORM_strp] (
>>> .debug_str[0x{{[0-9a-f]*}}] = "x")
>>> +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu +
>>> 0x{{[0-9a-f]*}} => {[[ARRAY]]})
>>>
>>> !llvm.dbg.cu = !{!0}
>>>
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/objc-fwd-decl.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/objc-fwd-decl.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/objc-fwd-decl.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/objc-fwd-decl.ll Tue Oct 29 00:49:41
>>> 2013
>>> @@ -1,7 +1,7 @@
>>> ; RUN: llc -mtriple=x86_64-macosx %s -o %t -filetype=obj
>>> ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
>>>
>>> -; CHECK: 0x00000027: DW_TAG_structure_type
>>> +; CHECK: DW_TAG_structure_type
>>> ; CHECK: DW_AT_declaration
>>> ; CHECK: DW_AT_APPLE_runtime_class
>>>
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/stringpool.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/stringpool.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/stringpool.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/stringpool.ll Tue Oct 29 00:49:41 2013
>>> @@ -21,7 +21,7 @@
>>>
>>> ; Verify that we refer to 'yyyy' with a relocation.
>>> ; LINUX: .long .Linfo_string3 # DW_AT_name
>>> -; LINUX-NEXT: .long 38 # DW_AT_type
>>> +; LINUX-NEXT: .long {{[0-9]+}} # DW_AT_type
>>> ; LINUX-NEXT: # DW_AT_external
>>> ; LINUX-NEXT: .byte 1 # DW_AT_decl_file
>>> ; LINUX-NEXT: .byte 1 # DW_AT_decl_line
>>> @@ -30,9 +30,9 @@
>>> ; LINUX-NEXT: .quad yyyy
>>>
>>> ; Verify that we refer to 'yyyy' without a relocation.
>>> -; DARWIN: Lset5 = Linfo_string3-Linfo_string ## DW_AT_name
>>> -; DARWIN-NEXT: .long Lset5
>>> -; DARWIN-NEXT: .long 38 ## DW_AT_type
>>> +; DARWIN: Lset[[ID:[0-9]+]] = Linfo_string3-Linfo_string ## DW_AT_name
>>> +; DARWIN-NEXT: .long Lset[[ID]]
>>> +; DARWIN-NEXT: .long {{[0-9]+}} ## DW_AT_type
>>> ; DARWIN-NEXT: ## DW_AT_external
>>> ; DARWIN-NEXT: .byte 1 ## DW_AT_decl_file
>>> ; DARWIN-NEXT: .byte 1 ## DW_AT_decl_line
>>>
>>> Modified: llvm/trunk/test/DebugInfo/X86/struct-loc.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/struct-loc.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/X86/struct-loc.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/X86/struct-loc.ll Tue Oct 29 00:49:41 2013
>>> @@ -2,7 +2,7 @@
>>> ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
>>>
>>> ; Make sure that structures have a decl file and decl line attached.
>>> -; CHECK: DW_TAG_structure_type [3]
>>> +; CHECK: DW_TAG_structure_type
>>> ; CHECK: DW_AT_decl_file
>>> ; CHECK: DW_AT_decl_line
>>> ; CHECK: DW_TAG_member
>>>
>>> Modified: llvm/trunk/test/DebugInfo/template-recursive-void.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/template-recursive-void.ll?rev=193589&r1=193588&r2=193589&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/DebugInfo/template-recursive-void.ll (original)
>>> +++ llvm/trunk/test/DebugInfo/template-recursive-void.ll Tue Oct 29
>>> 00:49:41 2013
>>> @@ -13,7 +13,7 @@
>>> ; class bar : public foo<void> { };
>>> ; bar filters;
>>>
>>> -; CHECK: DW_TAG_template_type_parameter [10]
>>> +; CHECK: DW_TAG_template_type_parameter [{{.*}}]
>>> ; CHECK-NEXT: DW_AT_name{{.*}}"T"
>>> ; CHECK-NOT: DW_AT_type
>>> ; CHECK: NULL
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131029/5543fe8b/attachment.html>
More information about the llvm-commits
mailing list