Skip to content

Commit 93ae443

Browse files
authored
Merge amd-debug into amd-staging (llvm#2883)
2 parents c838624 + 389fd7e commit 93ae443

File tree

15 files changed

+810
-414
lines changed

15 files changed

+810
-414
lines changed

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -891,8 +891,8 @@ llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) {
891891
auto *ISATy = DBuilder.createPointerType(ClassTy, Size);
892892

893893
ObjTy = DBuilder.createStructType(TheCU, "objc_object", TheCU->getFile(), 0,
894-
0, 0, llvm::DINode::FlagZero, nullptr,
895-
llvm::DINodeArray());
894+
(uint64_t)0, 0, llvm::DINode::FlagZero,
895+
nullptr, llvm::DINodeArray());
896896

897897
DBuilder.replaceArrays(
898898
ObjTy, DBuilder.getOrCreateArray(&*DBuilder.createMemberType(

llvm/include/llvm/BinaryFormat/Dwarf.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,6 +1046,7 @@ LLVM_ABI unsigned getSubOperationEncoding(unsigned OpEncoding,
10461046
LLVM_ABI unsigned getVirtuality(StringRef VirtualityString);
10471047
LLVM_ABI unsigned getEnumKind(StringRef EnumKindString);
10481048
LLVM_ABI unsigned getLanguage(StringRef LanguageString);
1049+
LLVM_ABI unsigned getMemorySpace(StringRef LanguageString);
10491050
LLVM_ABI unsigned getCallingConvention(StringRef LanguageString);
10501051
LLVM_ABI unsigned getMemorySpace(StringRef LanguageString);
10511052
LLVM_ABI unsigned getAttributeEncoding(StringRef EncodingString);

llvm/include/llvm/IR/DIBuilder.h

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,12 +295,11 @@ namespace llvm {
295295
/// \param DWARFMemorySpace DWARF memory space. (optional)
296296
/// \param Name Pointer type name. (optional)
297297
/// \param Annotations Member annotations.
298-
LLVM_ABI DIDerivedType *
299-
createPointerType(DIType *PointeeTy, uint64_t SizeInBits,
300-
uint32_t AlignInBits = 0,
301-
std::optional<unsigned> DWARFAddressSpace = std::nullopt,
302-
dwarf::MemorySpace DWARFMemorySpace = dwarf::DW_MSPACE_LLVM_none,
303-
StringRef Name = "", DINodeArray Annotations = nullptr);
298+
LLVM_ABI DIDerivedType *createPointerType(
299+
DIType *PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits = 0,
300+
std::optional<unsigned> DWARFAddressSpace = std::nullopt,
301+
dwarf::MemorySpace DWARFMemorySpace = dwarf::DW_MSPACE_LLVM_none,
302+
StringRef Name = "", DINodeArray Annotations = nullptr);
304303

305304
/// Create a __ptrauth qualifier.
306305
LLVM_ABI DIDerivedType *
@@ -376,6 +375,22 @@ namespace llvm {
376375
uint32_t VBPtrOffset,
377376
DINode::DIFlags Flags);
378377

378+
/// Create debugging information entry for a member.
379+
/// \param Scope Member scope.
380+
/// \param Name Member name.
381+
/// \param File File where this member is defined.
382+
/// \param LineNo Line number.
383+
/// \param SizeInBits Member size.
384+
/// \param AlignInBits Member alignment.
385+
/// \param OffsetInBits Member offset.
386+
/// \param Flags Flags to encode member attribute, e.g. private
387+
/// \param Ty Parent type.
388+
/// \param Annotations Member annotations.
389+
LLVM_ABI DIDerivedType *createMemberType(
390+
DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
391+
Metadata *SizeInBits, uint32_t AlignInBits, Metadata *OffsetInBits,
392+
DINode::DIFlags Flags, DIType *Ty, DINodeArray Annotations = nullptr);
393+
379394
/// Create debugging information entry for a member.
380395
/// \param Scope Member scope.
381396
/// \param Name Member name.
@@ -428,6 +443,23 @@ namespace llvm {
428443
Constant *Discriminant,
429444
DIType *Ty);
430445

446+
/// Create debugging information entry for a bit field member.
447+
/// \param Scope Member scope.
448+
/// \param Name Member name.
449+
/// \param File File where this member is defined.
450+
/// \param LineNo Line number.
451+
/// \param SizeInBits Member size.
452+
/// \param OffsetInBits Member offset.
453+
/// \param StorageOffsetInBits Member storage offset.
454+
/// \param Flags Flags to encode member attribute.
455+
/// \param Ty Parent type.
456+
/// \param Annotations Member annotations.
457+
LLVM_ABI DIDerivedType *createBitFieldMemberType(
458+
DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
459+
Metadata *SizeInBits, Metadata *OffsetInBits,
460+
uint64_t StorageOffsetInBits, DINode::DIFlags Flags, DIType *Ty,
461+
DINodeArray Annotations = nullptr);
462+
431463
/// Create debugging information entry for a bit field member.
432464
/// \param Scope Member scope.
433465
/// \param Name Member name.
@@ -519,6 +551,29 @@ namespace llvm {
519551
unsigned RunTimeLang = 0, DIType *VTableHolder = nullptr,
520552
MDNode *TemplateParms = nullptr, StringRef UniqueIdentifier = "");
521553

554+
/// Create debugging information entry for a struct.
555+
/// \param Scope Scope in which this struct is defined.
556+
/// \param Name Struct name.
557+
/// \param File File where this member is defined.
558+
/// \param LineNumber Line number.
559+
/// \param SizeInBits Member size.
560+
/// \param AlignInBits Member alignment.
561+
/// \param Flags Flags to encode member attribute, e.g. private
562+
/// \param Elements Struct elements.
563+
/// \param RunTimeLang Optional parameter, Objective-C runtime version.
564+
/// \param UniqueIdentifier A unique identifier for the struct.
565+
/// \param Specification The type that this type completes. This is used by
566+
/// Swift to represent generic types.
567+
/// \param NumExtraInhabitants The number of extra inhabitants of the type.
568+
/// An extra inhabitant is a bit pattern that does not represent a valid
569+
/// value for instances of a given type. This is used by the Swift language.
570+
LLVM_ABI DICompositeType *createStructType(
571+
DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber,
572+
Metadata *SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags,
573+
DIType *DerivedFrom, DINodeArray Elements, unsigned RunTimeLang = 0,
574+
DIType *VTableHolder = nullptr, StringRef UniqueIdentifier = "",
575+
DIType *Specification = nullptr, uint32_t NumExtraInhabitants = 0);
576+
522577
/// Create debugging information entry for a struct.
523578
/// \param Scope Scope in which this struct is defined.
524579
/// \param Name Struct name.

0 commit comments

Comments
 (0)