[llvm] r331114 - [LLVM-C] Miscellaneous Cleanups in DIBuilder Bindings
Robert Widmann via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 28 11:13:39 PDT 2018
Author: codafi
Date: Sat Apr 28 11:13:39 2018
New Revision: 331114
URL: http://llvm.org/viewvc/llvm-project?rev=331114&view=rev
Log:
[LLVM-C] Miscellaneous Cleanups in DIBuilder Bindings
Summary:
* rL328953 does not include bindings for LLVMDIBuilderCreateClassType and LLVMDIBuilderCreateBitFieldMemberType despite declaring their prototypes. Provide these bindings now.
* Switch to more precise types with specific numeric limits matching the DIBuilder's C++ API.
Reviewers: harlanhaskins, whitequark, deadalnix
Reviewed By: whitequark
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D46168
Modified:
llvm/trunk/include/llvm-c/DebugInfo.h
llvm/trunk/lib/IR/DebugInfo.cpp
Modified: llvm/trunk/include/llvm-c/DebugInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/DebugInfo.h?rev=331114&r1=331113&r2=331114&view=diff
==============================================================================
--- llvm/trunk/include/llvm-c/DebugInfo.h (original)
+++ llvm/trunk/include/llvm-c/DebugInfo.h Sat Apr 28 11:13:39 2018
@@ -362,7 +362,7 @@ LLVMDIBuilderCreateSubroutineType(LLVMDI
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMMetadataRef *Elements,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements,
unsigned NumElements, LLVMMetadataRef ClassTy);
/**
@@ -385,7 +385,7 @@ LLVMMetadataRef LLVMDIBuilderCreateEnume
LLVMMetadataRef LLVMDIBuilderCreateUnionType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang,
const char *UniqueId, size_t UniqueIdLen);
@@ -400,8 +400,8 @@ LLVMMetadataRef LLVMDIBuilderCreateUnion
* \param NumSubscripts Number of subscripts.
*/
LLVMMetadataRef
-LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size,
- unsigned AlignInBits, LLVMMetadataRef Ty,
+LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, uint64_t Size,
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts,
unsigned NumSubscripts);
@@ -415,8 +415,8 @@ LLVMDIBuilderCreateArrayType(LLVMDIBuild
* \param NumSubscripts Number of subscripts.
*/
LLVMMetadataRef
-LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, unsigned Size,
- unsigned AlignInBits, LLVMMetadataRef Ty,
+LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, uint64_t Size,
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts,
unsigned NumSubscripts);
@@ -441,7 +441,7 @@ LLVMDIBuilderCreateUnspecifiedType(LLVMD
*/
LLVMMetadataRef
LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
- size_t NameLen, unsigned SizeInBits,
+ size_t NameLen, uint64_t SizeInBits,
LLVMDWARFTypeEncoding Encoding);
/**
@@ -456,7 +456,7 @@ LLVMDIBuilderCreateBasicType(LLVMDIBuild
*/
LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
- unsigned SizeInBits, unsigned AlignInBits, unsigned AddressSpace,
+ uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace,
const char *Name, size_t NameLen);
/**
@@ -480,7 +480,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePoint
LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements,
unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder,
const char *UniqueId, size_t UniqueIdLen);
@@ -502,7 +502,7 @@ LLVMMetadataRef LLVMDIBuilderCreateStruc
LLVMMetadataRef LLVMDIBuilderCreateMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
- unsigned SizeInBits, unsigned AlignInBits, unsigned OffsetInBits,
+ uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,
LLVMDIFlags Flags, LLVMMetadataRef Ty);
/**
@@ -524,7 +524,7 @@ LLVMDIBuilderCreateStaticMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
- unsigned AlignInBits);
+ uint32_t AlignInBits);
/**
* Create debugging information entry for a pointer to member.
@@ -539,8 +539,8 @@ LLVMMetadataRef
LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
LLVMMetadataRef PointeeType,
LLVMMetadataRef ClassType,
- unsigned SizeInBits,
- unsigned AlignInBits,
+ uint64_t SizeInBits,
+ uint32_t AlignInBits,
LLVMDIFlags Flags);
/**
@@ -602,7 +602,7 @@ LLVMDIBuilderCreateNullPtrType(LLVMDIBui
LLVMMetadataRef LLVMDIBuilderCreateForwardDecl(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
- unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits,
+ unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
const char *UniqueIdentifier, size_t UniqueIdentifierLen);
/**
@@ -626,7 +626,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateReplaceableCompositeType(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
- unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits,
+ unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
LLVMDIFlags Flags, const char *UniqueIdentifier,
size_t UniqueIdentifierLen);
@@ -649,32 +649,41 @@ LLVMDIBuilderCreateBitFieldMemberType(LL
LLVMMetadataRef Scope,
const char *Name, size_t NameLen,
LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits,
- unsigned OffsetInBits,
- unsigned StorageOffsetInBits,
+ uint64_t SizeInBits,
+ uint64_t OffsetInBits,
+ uint64_t StorageOffsetInBits,
LLVMDIFlags Flags, LLVMMetadataRef Type);
/**
* Create debugging information entry for a class.
- * \param Scope Scope in which this class is defined.
- * \param Name class name.
- * \param File File where this member is defined.
- * \param LineNumber Line number.
- * \param SizeInBits Member size.
- * \param AlignInBits Member alignment.
- * \param OffsetInBits Member offset.
- * \param Flags Flags to encode member attribute, e.g. private
- * \param Elements class members.
- * \param NumElements Number of class elements.
- * \param DerivedFrom Debug info of the base class of this type.
- * \param TemplateParamsNode Template type parameters.
+ * \param Scope Scope in which this class is defined.
+ * \param Name Class name.
+ * \param NameLen The length of the C string passed to \c Name.
+ * \param File File where this member is defined.
+ * \param LineNumber Line number.
+ * \param SizeInBits Member size.
+ * \param AlignInBits Member alignment.
+ * \param OffsetInBits Member offset.
+ * \param Flags Flags to encode member attribute, e.g. private.
+ * \param DerivedFrom Debug info of the base class of this type.
+ * \param Elements Class members.
+ * \param NumElements Number of class elements.
+ * \param VTableHolder Debug info of the base class that contains vtable
+ * for this type. This is used in
+ * DW_AT_containing_type. See DWARF documentation
+ * for more info.
+ * \param TemplateParamsNode Template type parameters.
+ * \param UniqueIdentifier A unique identifier for the type.
+ * \param UniqueIdentifierLen Length of the unique identifier.
*/
LLVMMetadataRef LLVMDIBuilderCreateClassType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Scope, const char *Name, size_t NameLen,
- LLVMMetadataRef File, unsigned LineNumber, unsigned SizeInBits,
- unsigned AlignInBits, unsigned OffsetInBits, LLVMDIFlags Flags,
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
+ uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
+ LLVMMetadataRef DerivedFrom,
LLVMMetadataRef *Elements, unsigned NumElements,
- LLVMMetadataRef DerivedFrom, LLVMMetadataRef TemplateParamsNode);
+ LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode,
+ const char *UniqueIdentifier, size_t UniqueIdentifierLen);
/**
* Create a new DIType* with "artificial" flag set.
Modified: llvm/trunk/lib/IR/DebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfo.cpp?rev=331114&r1=331113&r2=331114&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DebugInfo.cpp (original)
+++ llvm/trunk/lib/IR/DebugInfo.cpp Sat Apr 28 11:13:39 2018
@@ -839,7 +839,7 @@ LLVMDIBuilderCreateDebugLocation(LLVMCon
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMMetadataRef *Elements,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements,
unsigned NumElements, LLVMMetadataRef ClassTy) {
auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
NumElements});
@@ -851,7 +851,7 @@ return wrap(unwrap(Builder)->createEnume
LLVMMetadataRef LLVMDIBuilderCreateUnionType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang,
const char *UniqueId, size_t UniqueIdLen) {
auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
@@ -864,8 +864,8 @@ LLVMMetadataRef LLVMDIBuilderCreateUnion
LLVMMetadataRef
-LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size,
- unsigned AlignInBits, LLVMMetadataRef Ty,
+LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, uint64_t Size,
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts,
unsigned NumSubscripts) {
auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts),
@@ -875,8 +875,8 @@ LLVMDIBuilderCreateArrayType(LLVMDIBuild
}
LLVMMetadataRef
-LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, unsigned Size,
- unsigned AlignInBits, LLVMMetadataRef Ty,
+LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, uint64_t Size,
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts,
unsigned NumSubscripts) {
auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts),
@@ -887,7 +887,7 @@ LLVMDIBuilderCreateVectorType(LLVMDIBuil
LLVMMetadataRef
LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
- size_t NameLen, unsigned SizeInBits,
+ size_t NameLen, uint64_t SizeInBits,
LLVMDWARFTypeEncoding Encoding) {
return wrap(unwrap(Builder)->createBasicType({Name, NameLen},
SizeInBits, Encoding));
@@ -895,7 +895,7 @@ LLVMDIBuilderCreateBasicType(LLVMDIBuild
LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
- unsigned SizeInBits, unsigned AlignInBits, unsigned AddressSpace,
+ uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace,
const char *Name, size_t NameLen) {
return wrap(unwrap(Builder)->createPointerType(unwrapDI<DIType>(PointeeTy),
SizeInBits, AlignInBits,
@@ -905,7 +905,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePoint
LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
- unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags,
+ uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements,
unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder,
const char *UniqueId, size_t UniqueIdLen) {
@@ -920,8 +920,8 @@ LLVMMetadataRef LLVMDIBuilderCreateStruc
LLVMMetadataRef LLVMDIBuilderCreateMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
- size_t NameLen, LLVMMetadataRef File, unsigned LineNo, unsigned SizeInBits,
- unsigned AlignInBits, unsigned OffsetInBits, LLVMDIFlags Flags,
+ size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
+ uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
LLVMMetadataRef Ty) {
return wrap(unwrap(Builder)->createMemberType(unwrapDI<DIScope>(Scope),
{Name, NameLen}, unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits,
@@ -939,7 +939,7 @@ LLVMDIBuilderCreateStaticMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
- unsigned AlignInBits) {
+ uint32_t AlignInBits) {
return wrap(unwrap(Builder)->createStaticMemberType(
unwrapDI<DIScope>(Scope), {Name, NameLen},
unwrapDI<DIFile>(File), LineNumber, unwrapDI<DIType>(Type),
@@ -957,7 +957,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateForwardDecl(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
- unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits,
+ unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
const char *UniqueIdentifier, size_t UniqueIdentifierLen) {
return wrap(unwrap(Builder)->createForwardDecl(
Tag, {Name, NameLen}, unwrapDI<DIScope>(Scope),
@@ -969,7 +969,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateReplaceableCompositeType(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
- unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits,
+ unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
LLVMDIFlags Flags, const char *UniqueIdentifier,
size_t UniqueIdentifierLen) {
return wrap(unwrap(Builder)->createReplaceableCompositeType(
@@ -1002,8 +1002,8 @@ LLVMMetadataRef
LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
LLVMMetadataRef PointeeType,
LLVMMetadataRef ClassType,
- unsigned SizeInBits,
- unsigned AlignInBits,
+ uint64_t SizeInBits,
+ uint32_t AlignInBits,
LLVMDIFlags Flags) {
return wrap(unwrap(Builder)->createMemberPointerType(
unwrapDI<DIType>(PointeeType),
@@ -1012,6 +1012,42 @@ LLVMDIBuilderCreateMemberPointerType(LLV
}
LLVMMetadataRef
+LLVMDIBuilderCreateBitFieldMemberType(LLVMDIBuilderRef Builder,
+ LLVMMetadataRef Scope,
+ const char *Name, size_t NameLen,
+ LLVMMetadataRef File, unsigned LineNumber,
+ uint64_t SizeInBits,
+ uint64_t OffsetInBits,
+ uint64_t StorageOffsetInBits,
+ LLVMDIFlags Flags, LLVMMetadataRef Type) {
+ return wrap(unwrap(Builder)->createBitFieldMemberType(
+ unwrapDI<DIScope>(Scope), {Name, NameLen},
+ unwrapDI<DIFile>(File), LineNumber,
+ SizeInBits, OffsetInBits, StorageOffsetInBits,
+ map_from_llvmDIFlags(Flags), unwrapDI<DIType>(Type)));
+}
+
+LLVMMetadataRef LLVMDIBuilderCreateClassType(LLVMDIBuilderRef Builder,
+ LLVMMetadataRef Scope, const char *Name, size_t NameLen,
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
+ uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
+ LLVMMetadataRef DerivedFrom,
+ LLVMMetadataRef *Elements, unsigned NumElements,
+ LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode,
+ const char *UniqueIdentifier, size_t UniqueIdentifierLen) {
+ auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
+ NumElements});
+ return wrap(unwrap(Builder)->createClassType(
+ unwrapDI<DIScope>(Scope), {Name, NameLen},
+ unwrapDI<DIFile>(File), LineNumber,
+ SizeInBits, AlignInBits, OffsetInBits,
+ map_from_llvmDIFlags(Flags), unwrapDI<DIType>(DerivedFrom),
+ Elts, unwrapDI<DIType>(VTableHolder),
+ unwrapDI<MDNode>(TemplateParamsNode),
+ {UniqueIdentifier, UniqueIdentifierLen}));
+}
+
+LLVMMetadataRef
LLVMDIBuilderCreateArtificialType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Type) {
return wrap(unwrap(Builder)->createArtificialType(unwrapDI<DIType>(Type)));
More information about the llvm-commits
mailing list