History log of /external/llvm/lib/IR/DIBuilder.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/IR/DIBuilder.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/IR/DIBuilder.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/IR/DIBuilder.cpp
4adba52570723c2e1654b1c01feddf759893f096 19-Nov-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Simplify a few more explicit constructions, underconstrained types, and make DIType(MDNode*) explicit like all the other DI* node ctors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4159733c1a9a6f4aea6ea4d558ca4806a3f959d2 16-Oct-2013 Eric Christopher <echristo@gmail.com> Add an assert that we have a scope that matters for methods
and remove a call to getNonCompileUnitScope as a method
shouldn't be in the compile unit scope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
ff64b7d7e36b55ecb3cce38f08f60fce7892b269 16-Oct-2013 Eric Christopher <echristo@gmail.com> Clean up, formatting, comments. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
b8e48a636e7ee6c13140382eb93d9695a65b0624 10-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context field of subprogram is updated to use
DIScopeRef.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
b4d9c11f6c7e0a38e750f946d5cea3ffa5ae8f61 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context and type fields of template_type and
template_value are updated to use DIRef.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
5e5d494ce00741858d5a2f8c305bcd0b341988d2 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context field of a forward decl is updated
to use DIScopeRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
456e5e55213c4564a44b8494ff230f8bf12caba7 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context field of a DICompositeType is updated
to use DIScopeRef.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
b6f74f06682df931631b9ac3de945b72e526f64e 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context fields of a static member and a
typedef are updated to use DIScopeRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c1e2b2582c151be5a819705f20f6a7167db90cfa 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the derived-from field of DICompositeType
is updated to use DITypeRef.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
78c2f9b8cf7cd4492212c792d7ae3b21535d0a1d 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the derived-from field of DIDerivedType
is updated to use DITypeRef.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c664d76716ba87577b6c2a513ce4fe0712a2d3e2 05-Oct-2013 Manman Ren <manman.ren@gmail.com> 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@192018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
3f045005bf96b6521b2769fc824283589bfa133a 04-Oct-2013 Eric Christopher <echristo@gmail.com> Temporarily revert r191792 as it is causing some LTO debug failures
on platforms with relocations in debug info and also temporarily
revert r191800 due to conflicts with the revert of r191792.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
2b53089bd017139f0125b870ace94ff27dffd2ff 02-Oct-2013 Manman Ren <manman.ren@gmail.com> 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
/external/llvm/lib/IR/DIBuilder.cpp
e5388399c795edd3687b08f33446a253d65247d6 30-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: constify and rename from generateRef to getRef.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
d4fc36f2644283c710400adfb0d6ddebea622753 10-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: In DIBuilder, the context fields of a TAG_inheritance and a
TAG_friend are updated to use scope reference.

Added testing cases to verify that class with inheritance can be uniqued.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
2c9905a1f3bcf22cc2f93332cc8411d11798ba07 09-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Use DIScopeRef for DIType::getContext.

In DIBuilder, the context field of a TAG_member is updated to use the
scope reference. Verifier is updated accordingly.

DebugInfoFinder now needs to generate a type identifier map to have
access to the actual scope. Same applies for BreakpointPrinter.

processModule of DebugInfoFinder is called during initialization phase
of the verifier to make sure the type identifier map is constructed early
enough.

We are now able to unique a simple class as demonstrated by the added
testing case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c7a25acefa43adba6623b2cc5b456151531dc7f4 08-Sep-2013 Manman Ren <manman.ren@gmail.com> Revert r190269 to fix dragonegg failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4fa214b2b9b4db9aaeb82467caddb303725fa91d 08-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: use null instead of "i32 0" in DIBuilder.

For context field of subroutine_type and when creating artificial types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
d372889eabcd10a9d8ce8fe9a4b2678d3a51d823 08-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: pass in DIScope instead of DIDescriptor in createMemberType.

Improve readability. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
0e85f6e391990cc20be98263640b843edfa32bef 07-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Use identifier to reference DIType in containing type field of
a DISubprogram.

Verifier is updated accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
8b56ca61e1f174d08d78f5aab3c83633c48af3a5 07-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: pass in VTableHolder as DIType instead of MDNode *.

Remove one cast and improve readability. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
e42279cda481b48138d2119f4a4bbce7077f0a72 06-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Use identifier to reference DIType in containing type field of
a DICompositeType.

Verifier is updated accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
5930eabe0fdc48c02c5af500aa5b1c5b732848b1 06-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Move a helper function getTypeIdentifier from DIBuilder to be part
of DIType.

Implement DIType::generateRef to return a type reference. This function will be
used in setContaintingType and in DIBuilder to generete the type reference.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
bc66071baa3153ba95d673b8084383835221eef6 05-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Use identifier to reference DIType in base type field of
ptr_to_member.

We introduce a new class DITypeRef that represents a reference to a DIType.
It wraps around a Value*, which can be either an identifier in MDString
or an actual MDNode. The class has a helper function "resolve" that
finds the actual MDNode for a given DITypeRef.

We specialize getFieldAs to return a field that is a reference to a
DIType. To correctly access the base type field of ptr_to_member,
getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef.

Also add a typedef for DITypeIdentifierMap and a helper
generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep
a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually
populate the map.

Verifier is updated accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
3a0e9b50f3a9031217a8fe209398ec37c54774eb 30-Aug-2013 Manman Ren <manman.ren@gmail.com> DIBuilder: retain a type when created with a unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will retain a type when created with a unique identifier,
to make sure they are treated as used even when all uses are replaced with
the identifiers.

Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created
node can later be updated.

The change will be tested when clients of DIBuilder start to pass in non-empty
unique identifier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
23f84cb1406b0f26f5bd808afa1828d427a40a2f 28-Aug-2013 Manman Ren <manman.ren@gmail.com> DIBuilder: take an optional StringRef to pass in unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will take an optional StringRef to pass in
the unique identifier.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6e3cd0ebe22a7cc959ed301de7f2f09d7a9307c8 27-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: add an identifier field to DICompositeType.

DICompositeType will have an identifier field at position 14. For now, the
field is set to null in DIBuilder.
For DICompositeTypes where the template argument field (the 13th field)
was optional, modify DIBuilder to make sure the template argument field is set.
Now DICompositeType has 15 fields.

Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode.
Update verifier to check that DICompositeType has 15 fields and the last
field is null or a MDString.

Update testing cases to include an extra field for DICompositeType.
The identifier field will be used by type uniquing so a front end can
genearte a DICompositeType with a unique identifer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
692062f18023979c0f8d5a155c14cf1f1616a2b0 16-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Allow the addition of other (such as static data) members to a record type after construction

Plus a type cleanup & minor fix to enumerate members of declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
dc1363f5af47542a602c80e726749bc06d8ef3f8 08-Aug-2013 Eric Christopher <echristo@gmail.com> Make sure that if we're going to attempt to add a type to a DIE that
the type exists.

Fix up cases where we weren't checking for optional types and add
an assert to addType to make sure we catch this in the future.

Fix up a testcase that was using the tag for DW_TAG_array_type
when it meant DW_TAG_enumeration_type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
1fe3f9af7ff385c28b96cc46ee1ed3737c813c3a 19-Jul-2013 Eric Christopher <echristo@gmail.com> Remove DIBuilder cache of variable TheCU and change the few
uses that wanted it. Also change the interface for createCompileUnit
to compensate. Fix comments that refer to TheCU as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
7c05da187c9fd7ac83b97ecbe207b88a711667da 18-Jul-2013 Eric Christopher <echristo@gmail.com> Revert "Remove DIBuilder cache of variable TheCU and change the few"

This reverts commit r186599 as I didn't want to commit this yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6abb4d2ef28f2c688498a10dfe0e4bd1b36882e3 18-Jul-2013 Eric Christopher <echristo@gmail.com> Remove DIBuilder cache of variable TheCU and change the few
uses that wanted it. Also change the interface for createCompileUnit
to compensate. Fix comments that refer to TheCU as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
88328d2ff47670314a1007a4c81c42adf026ee9f 02-Jul-2013 Manman Ren <mren@apple.com> Debug Info: cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
89c83b76329ad8eb383a72f14e03dd13b5d780b7 01-Jul-2013 Manman Ren <mren@apple.com> Debug Info: clean up usage of Verify.

No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
da91817d40dad85a15e0f2a7e11d4d302949586b 29-Jun-2013 Manman Ren <mren@apple.com> Debug Info: clean up usage of Verify.

No functionality change.
It should suffice to check the type of a debug info metadata, instead of
calling Verify. For cases where we know the type of a DI metadata, use
assert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
03ccdb5b1dbb95714f2fd86540292567c8442a6b 28-Jun-2013 Peter Collingbourne <peter@pcc.me.uk> Rename DIBuilder::createNullPtrType to createUnspecifiedType and introduce
a zero-argument createNullPtrType function for creating the canonical
nullptr type.

Differential Revision: http://llvm-reviews.chandlerc.com/D1050

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
a7e4d19dac9f9fbe9fa83ccb49a622e80a079b6a 26-Jun-2013 Adrian Prantl <aprantl@apple.com> s/C++0x/C++11/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
e06db0c6f83c284814a89d5b9792cba7209977d9 24-Jun-2013 Adrian Prantl <aprantl@apple.com> typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
8de0a465b832052d975dc9fdced1adcf3336fabc 24-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: DIBuilder changes to match DIEnumerator changes in r184694

Representing enumerators by int64 instead of uint64 for now. At some
point we need to address the underlying issue of representation
depending on the specific enumeration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
e88939cfebbc98133553c6fc03a52b8fb1adbb70 22-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Support (using GNU extensions) for template template parameters and parameter packs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
576d49a775043931d81bba172b9b11f40d858cb6 07-Jun-2013 Manman Ren <mren@apple.com> DIBuilder: No functionality change.

Use the correct DIType when creating types in DIBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
37bfb18f8f0557611fbdf238abe200813f07d298 07-Jun-2013 Manman Ren <mren@apple.com> DIBuilder: No functionality change.

Use the correct DIType when creating vector types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
3d33184d9da02fb699827249e0631106252f72fa 23-May-2013 David Blaikie <dblaikie@gmail.com> Solidify the assumption that a DW_TAG_subprogram's type is a DW_TAG_subroutine_type

There were bits & pieces of code lying around that may've given the
impression that debug info metadata supported the possibility that a
subprogram's type could be specified by a non-subroutine type describing
the return type of a void function. This support was incomplete &
unnecessary. Asserts & API have been changed to make the desired usage
more clear.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
7b72cc7782716f469eb1b0963423a5b414215705 21-May-2013 David Blaikie <dblaikie@gmail.com> PR14606: Debug Info for namespace aliases/DW_TAG_imported_module

This resolves the last of the PR14606 failures in the GDB 7.5 test
suite by implementing an optional name field for
DW_TAG_imported_modules/DIImportedEntities and using that to implement
C++ namespace aliases (eg: "namespace X = Y;").

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4de9d72883eebe4e86bffdaad89483dfe822e2a5 10-May-2013 David Blaikie <dblaikie@gmail.com> PR14492: Debug Info: Support for values of non-integer non-type template parameters.

This is only tested for global variables at the moment (& includes tests
for the unnamed parameter case, since apparently this entire function
was completely untested previously)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
20d9e41ddb3f531267680819b5cac4cac1c6b231 07-May-2013 David Blaikie <dblaikie@gmail.com> Rename DIImportedModule to DIImportedEntity and allow imported declarations

DIBuilder::createImportedDeclaration isn't fully plumbed through (note,
lacking in AsmPrinter/DwarfDebug support) but this seemed like a
sufficiently useful division of code to make the subsequent patch(es)
easier to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c462db6d66e683fb837c03d661483106a869a407 22-Apr-2013 David Blaikie <dblaikie@gmail.com> Revert "Revert "PR14606: debug info imported_module support""

This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll

I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even
though the debug info was clearly invalid on all of them, but this ought to fix
it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
09b798180340487e4397069e9fa22568099fd9b6 19-Apr-2013 Eric Christopher <echristo@gmail.com> 80-col fixup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
2f445be5a75b4d1a907dd694c9e5c518229df48e 19-Apr-2013 Adrian Prantl <aprantl@apple.com> Rename ClassType to the more accurate UnderlyingType and document its purpose.
rdar://problem/13463793

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
41201ed06fa4fb246f5a7e9e2b62168814eca6ff 19-Apr-2013 Eric Christopher <echristo@gmail.com> Revert "PR14606: debug info imported_module support"

This reverts commit r179836 as it seems to have caused test failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
bcb81360a26cba066fae3acbe25b8ac161af6881 19-Apr-2013 David Blaikie <dblaikie@gmail.com> PR14606: debug info imported_module support

Adding another CU-wide list, in this case of imported_modules (since they
should be relatively rare, it seemed better to add a list where each element
had a "context" value, rather than add a (usually empty) list to every scope).
This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll
need to expand this to cover DW_TAG_imported_declaration too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c656fda3aeba9fd8b09d98ed72e75b6c25a1ad49 03-Apr-2013 Eric Christopher <echristo@gmail.com> Support and test template arguments for unions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
cf0623bba4abb8612a61229e672ac8ea8ed20c4e 03-Apr-2013 Eric Christopher <echristo@gmail.com> Reformat arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
72dfb052ab74a9e642256212a50c9b805ce5c943 28-Mar-2013 David Blaikie <dblaikie@gmail.com> Revert "Adding DIImportedModules to DIScopes."

This reverts commit 342d92c7a0adeabc9ab00f3f0d88d739fe7da4c7.

Turns out we're going with a different schema design to represent
DW_TAG_imported_modules so we won't need this extra field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
342d92c7a0adeabc9ab00f3f0d88d739fe7da4c7 27-Mar-2013 David Blaikie <dblaikie@gmail.com> Adding DIImportedModules to DIScopes.

This is just the basic groundwork for supporting DW_TAG_imported_module but I
wanted to commit this before pushing support further into Clang or LLVM so that
this rather churny change is isolated from the rest of the work. The major
churn here is obviously adding another field (within the common DIScope prefix)
to all DIScopes (files, classes, namespaces, lexical scopes, etc). This should
be the last big churny change needed for DW_TAG_imported_module/using directive
support/PR14606.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
ca442a4a1aabf6199e5aee09ec604e79916d9b92 27-Mar-2013 David Blaikie <dblaikie@gmail.com> Make DIBuilder::createClassType more type safe by returning DICompositeType rather than DIType

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
8faed2745c849fb35f6edf411263dfa564ef3643 22-Mar-2013 David Blaikie <dblaikie@gmail.com> Swap the DIFile in DILexicalBlockFile out for the raw name/directory pair

This is the last change in transitioning all DIScopes to have a common prefix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
7b246860bdf4c6b3ea4e09f6437537941cc0d1d4 22-Mar-2013 David Blaikie <dblaikie@gmail.com> reorder the fields in DILexicalBlockFile to match the common prefix for DIScopes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4b52a88e90b341ff2a3d1dbad6eb5ea731228156 22-Mar-2013 David Blaikie <dblaikie@gmail.com> Refactor out the DIFile parameter to DILexicalBlock to refer to the raw file/directory pair

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c204410d6bc435e7cb8ea768759a54135e8e92b5 22-Mar-2013 David Blaikie <dblaikie@gmail.com> Reorder the DIFile field in DILexicalBlock to become a prefix common with other DIScopes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
bb4e619cd9ff34708e3baaf0aac70275a917e0ba 22-Mar-2013 David Blaikie <dblaikie@gmail.com> Refactor the filename/directory information in DISubprogram to refer directly to the pair rather than the DIFile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
ced228dec30f088367d622720d6ccf7a22cd11e4 21-Mar-2013 David Blaikie <dblaikie@gmail.com> Move the DIFile in DISubprogram to the beginning to be a common prefix along with other DIScopes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
ebb5183a2f16abc7c88241bb42412465f52c2a61 21-Mar-2013 David Blaikie <dblaikie@gmail.com> Remove unused field in DISubprogram

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
00c5c5d46731834caa0ca3280e0dcc43202dd3c8 21-Mar-2013 David Blaikie <dblaikie@gmail.com> Debug info: refactor the first field of DICompileUnit to be a raw file/directory pair

This removes the DICompileUnit special case from DIScope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
162c800384353b639aa5bc94242e6307dcfae2d3 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Swap the 2nd and 3rd parameters to DICompileUnit to match the common DIScope prefix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
404ecce8903f83271c82e368c834a9697799c296 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Remove unused field in DICompileUnit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6115ed0e4347f17504f72e4d37545b4230b2cb50 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Refactor file/directory path in namespace debug info to refer directly to the pair rather than the DIFile

(paired to a Clang test - excuse the buildbot skew/fallout)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
3fac43d8b4111feca59d77941ac2ebd1f858dd33 20-Mar-2013 David Blaikie <dblaikie@gmail.com> DIBuilder: allow linkage name to be specified for global variables

Patch by Kai Nacke (kai@redstar.de)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4cf132fccd8338f9aab4bd34a2f0108a13f46d6c 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Reorder the DIFile parameter in DINameSpace

Moving the DIFile parameter to immediately proceed the tag so that it will be a
common prefix with other DIScopes (once the DIFile is replaced with the raw
file/directory pair).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4776bce28cb7d669329222c3d9cf6a97d6881c96 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Refactor the DIFile (2nd) parameter to DITypes to be an MDNode reference to a raw directory/file pair

This makes DIType's first non-tag parameter the same as DIFile's, allowing them
to both share the common implementation of getFilename/getDirectory in DIScope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
a13f3cdb01c4900528018eebfe1b6c98dc607f99 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Move the DIFile operand to DITypes from the 4th operand to the 2nd.

This is another step along the way to making all DIScopes have a common prefix
which can be added to in a general manner to support using directives
(DW_TAG_imported_module).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
4d0cdca6f6e73c38115cfd1e9770cb78006077d6 17-Mar-2013 David Blaikie <dblaikie@gmail.com> Fix the build broken in r177239

Seems some accidental C++11 crept in there. Reported by the C++98 buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
b4cf0ab22b5a3ebb720f0b7287fdccfb465b6b7c 17-Mar-2013 David Blaikie <dblaikie@gmail.com> Split out filename & directory from DIFile to start generalizing over DIScopes

This is the first step to making all DIScopes have a common metadata prefix (so
that things (using directives, for example) that can appear in any scope can be
added to that common prefix). DIFile is itself a DIScope so the common prefix
of all DIScopes cannot be a DIFile - instead it's the raw filename/directory
name pair.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
e0805a992ddd2823604969c8aac61a2f339f3c01 13-Mar-2013 David Blaikie <dblaikie@gmail.com> Remove the unused 4th operand for DIFile debug info metadata

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
de3077ae6b5ad8e6f417a8f6aa0ca1ae980f6272 13-Mar-2013 David Blaikie <dblaikie@gmail.com> Refactor filename/directory in DICompileUnit into a DIFile

This is the next step towards making the metadata for DIScopes have a common
prefix rather than having to delegate based on their tag type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
46561ce249984ddea405ce837b53367a59fd9f3b 12-Mar-2013 David Blaikie <dblaikie@gmail.com> Remove unused "isMain" field from DICompileUnit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6643868498043d373384e0befaff3b5a8a8574f7 12-Mar-2013 David Blaikie <dblaikie@gmail.com> Add asserts to DIBuilder & fix DINameSpace::Verify to allow unnamed namespaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6172f0298391e00cb669cc246e70ae2531f2cdec 25-Feb-2013 David Blaikie <dblaikie@gmail.com> DIBuilder: support structs with vtable pointers in the same way as classes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
e4b67906d3cc5ea365359f9b034189aaa51ca1e9 23-Feb-2013 Eric Christopher <echristo@gmail.com> Add a field to the compile unit of where we plan on splitting out
the debug info for -gsplit-dwarf so we can encode that location
in the skeleton cu.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
1683b304e0487700c2f4447e7c72c62fb9f3a24c 23-Feb-2013 Eric Christopher <echristo@gmail.com> Add a TODO and explain when we can get rid of the isMain field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
d4f92fd0d1f22af553db08416b476241e4372d9a 18-Feb-2013 David Blaikie <dblaikie@gmail.com> DIBuilder: Correct the null/0 type of trailing fields in struct debug info.

Paired with an Clang commit so this may cause temporary build failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
139f7e50688ce120b275ae368f563d03d9c18184 18-Feb-2013 David Blaikie <dblaikie@gmail.com> DIBuilder: Add function and method definitions to the list of all subprograms

Previously we seemed to be assuming that all functions were definitions and all
methods were declarations. This may be consistent with how Clang uses DIBuilder
but doesn't have to be true of all clients (such as DragonEgg).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
d67c5cab3b770b0709dcb05256aef51b35f3f113 18-Feb-2013 David Blaikie <dblaikie@gmail.com> Narrow the return types of a few DIBuilder utility functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
2ce067a9fb5b2d046c92519428cafa71fae81ed4 12-Feb-2013 David Blaikie <dblaikie@gmail.com> DIBuilder: make the return type of createBasicType more specific

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
f839eed5ea2bfd395256d60e15d1e31dbad6ca8b 04-Feb-2013 David Blaikie <dblaikie@gmail.com> [DebugInfo] remove more node indirection (this time from the subprogram's variable lists)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
a8eefc7cc7c6e8be06d570fff76dc42b43a23392 02-Feb-2013 David Blaikie <dblaikie@gmail.com> Remove the (apparently) unnecessary debug info metadata indirection.

The main lists of debug info metadata attached to the compile_unit had an extra
layer of metadata nodes they went through for no apparent reason. This patch
removes that (& still passes just as much of the GDB 7.5 test suite). If anyone
can show evidence as to why these extra metadata nodes are there I'm open to
reverting this patch & documenting why they're there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
6b6061f01171bd3d4e32022efa45428d4f9941ee 16-Jan-2013 Eric Christopher <echristo@gmail.com> Define metadata interfaces for describing a static data member
of a class. Emit static data member declarations and definitions
through correctly.

Part of PR14471.

Patch by Paul Robinson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
9a1e0e252a7ede548acaac98cf304d4bb135fb97 08-Jan-2013 Eric Christopher <echristo@gmail.com> Remove the llvm-local DW_TAG_vector_type tag and add a test to
make sure that vector types do work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
1f55eb4c5766fd6a6fa53c17f7bb9e7d4ea03500 08-Jan-2013 Eric Christopher <echristo@gmail.com> Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
62fdfb5fa7efdfd61339e4abe6fd87e60e939e58 07-Jan-2013 David Blaikie <dblaikie@gmail.com> PR14759: Debug info support for C++ member pointers.

This works fine with GDB for member variable pointers, but GDB's support for
member function pointers seems to be quite unrelated to
DW_TAG_ptr_to_member_type. (see GDB bug 14998 for details)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp
c2c50cdcdc19a1bca993c06d13d8cdca87083ce4 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Rename VMCore directory to IR.

Aside from moving the actual files, this patch only updates the build
system and the source file comments under lib/... that are relevant.

I'll be updating other docs and other files in smaller subsequnet
commits.

While I've tried to test this, but it is entirely possible that there
will still be some build system fallout.

Also, note that I've not changed the library name itself: libLLVMCore.a
is still the library name. I'd be interested in others' opinions about
whether we should rename this as well (I think we should, just not sure
what it might break)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/DIBuilder.cpp