OSDN Git Service

Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type
authorManman Ren <manman.ren@gmail.com>
Tue, 1 Oct 2013 23:45:54 +0000 (23:45 +0000)
committerManman Ren <manman.ren@gmail.com>
Tue, 1 Oct 2013 23:45:54 +0000 (23:45 +0000)
commit2b53089bd017139f0125b870ace94ff27dffd2ff
tree41f0243fd8d9f2480e93554180518c19e00d7bb5
parent76502a756da8fbc3cf6f2f26bc09cce598a9fc03
Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type
is updated to use DITypeRef.

Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static
helper functions in DwarfCompileUnit. We already have a static helper function
"isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to
resolve the derived-from field. All three functions need to go across link
for derived-from fields, so we need to get hold of a type identifier map.

A pointer to DwarfDebug is also added to DbgVariable in order to resolve the
derived-from field.

Debug info verifier is updated to check a derived-from field is a TypeRef.
Verifier will not go across link for derived-from fields, in debug info finder,
we go across the link to add derived-from fields to types.

Function getDICompositeType is only used by dragonegg and since dragonegg does
not generate identifier for types, we use an empty map to resolve the
derived-from field.

When printing a derived-from field, we use DITypeRef::getName to either return
the type identifier or getName of the DIType.

A paired commit at clang is required due to changes to DIBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191800 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/DebugInfo.h
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h
lib/IR/DIBuilder.cpp
lib/IR/DebugInfo.cpp
test/Linker/Inputs/type-unique-simple2-a.ll [new file with mode: 0644]
test/Linker/Inputs/type-unique-simple2-b.ll [new file with mode: 0644]
test/Linker/type-unique-simple2.ll [new file with mode: 0644]
test/Transforms/LICM/debug-value.ll