Skip to content

Commit 01ce74f

Browse files
authored
Revert "[DebugInfo][BPF] Add 'annotations' field for DIBasicType & DI… (llvm#96172)
…SubroutineType (llvm#91422)" This reverts commit 3ca1744. As reported in [1,2] the commit above causes CI failure for powerpc-aix target. There is also a performance regression reported in [3]. Reverting to comply with the developer policy. [1] llvm#91422 (comment) [2] https://lab.llvm.org/buildbot/#/builders/64/builds/62 [3] llvm#91422 (comment)
1 parent 88dae3d commit 01ce74f

File tree

11 files changed

+90
-295
lines changed

11 files changed

+90
-295
lines changed

llvm/include/llvm/IR/DebugInfoMetadata.h

Lines changed: 22 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -828,45 +828,40 @@ class DIBasicType : public DIType {
828828
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
829829
StringRef Name, uint64_t SizeInBits,
830830
uint32_t AlignInBits, unsigned Encoding,
831-
DIFlags Flags, DINodeArray Annotations,
832-
StorageType Storage, bool ShouldCreate = true) {
831+
DIFlags Flags, StorageType Storage,
832+
bool ShouldCreate = true) {
833833
return getImpl(Context, Tag, getCanonicalMDString(Context, Name),
834-
SizeInBits, AlignInBits, Encoding, Flags, Annotations.get(),
835-
Storage, ShouldCreate);
834+
SizeInBits, AlignInBits, Encoding, Flags, Storage,
835+
ShouldCreate);
836836
}
837837
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
838838
MDString *Name, uint64_t SizeInBits,
839839
uint32_t AlignInBits, unsigned Encoding,
840-
DIFlags Flags, Metadata *Annotations,
841-
StorageType Storage, bool ShouldCreate = true);
840+
DIFlags Flags, StorageType Storage,
841+
bool ShouldCreate = true);
842842

843843
TempDIBasicType cloneImpl() const {
844844
return getTemporary(getContext(), getTag(), getName(), getSizeInBits(),
845-
getAlignInBits(), getEncoding(), getFlags(),
846-
getAnnotations());
845+
getAlignInBits(), getEncoding(), getFlags());
847846
}
848847

849848
public:
850849
DEFINE_MDNODE_GET(DIBasicType, (unsigned Tag, StringRef Name),
851-
(Tag, Name, 0, 0, 0, FlagZero, {}))
850+
(Tag, Name, 0, 0, 0, FlagZero))
852851
DEFINE_MDNODE_GET(DIBasicType,
853852
(unsigned Tag, StringRef Name, uint64_t SizeInBits),
854-
(Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
853+
(Tag, Name, SizeInBits, 0, 0, FlagZero))
855854
DEFINE_MDNODE_GET(DIBasicType,
856855
(unsigned Tag, MDString *Name, uint64_t SizeInBits),
857-
(Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
856+
(Tag, Name, SizeInBits, 0, 0, FlagZero))
858857
DEFINE_MDNODE_GET(DIBasicType,
859858
(unsigned Tag, StringRef Name, uint64_t SizeInBits,
860-
uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
861-
DINodeArray Annotations = {}),
862-
(Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
863-
Annotations))
859+
uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
860+
(Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
864861
DEFINE_MDNODE_GET(DIBasicType,
865862
(unsigned Tag, MDString *Name, uint64_t SizeInBits,
866-
uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
867-
Metadata *Annotations = nullptr),
868-
(Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
869-
Annotations))
863+
uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
864+
(Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
870865

871866
TempDIBasicType clone() const { return cloneImpl(); }
872867

@@ -878,16 +873,6 @@ class DIBasicType : public DIType {
878873
/// neither signed nor unsigned.
879874
std::optional<Signedness> getSignedness() const;
880875

881-
Metadata *getRawAnnotations() const { return getOperand(3); }
882-
883-
DINodeArray getAnnotations() const {
884-
return cast_or_null<MDTuple>(getRawAnnotations());
885-
}
886-
887-
void replaceAnnotations(DINodeArray Annotations) {
888-
replaceOperandWith(3, Annotations.get());
889-
}
890-
891876
static bool classof(const Metadata *MD) {
892877
return MD->getMetadataID() == DIBasicTypeKind;
893878
}
@@ -1127,10 +1112,6 @@ class DIDerivedType : public DIType {
11271112
}
11281113
Metadata *getRawAnnotations() const { return getOperand(5); }
11291114

1130-
void replaceAnnotations(DINodeArray Annotations) {
1131-
replaceOperandWith(5, Annotations.get());
1132-
}
1133-
11341115
/// Get casted version of extra data.
11351116
/// @{
11361117
DIType *getClassType() const;
@@ -1358,10 +1339,6 @@ class DICompositeType : public DIType {
13581339
return cast_or_null<MDTuple>(getRawAnnotations());
13591340
}
13601341

1361-
void replaceAnnotations(DINodeArray Annotations) {
1362-
replaceOperandWith(13, Annotations.get());
1363-
}
1364-
13651342
/// Replace operands.
13661343
///
13671344
/// If this \a isUniqued() and not \a isResolved(), on a uniquing collision
@@ -1408,30 +1385,26 @@ class DISubroutineType : public DIType {
14081385

14091386
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
14101387
uint8_t CC, DITypeRefArray TypeArray,
1411-
DINodeArray Annotations, StorageType Storage,
1388+
StorageType Storage,
14121389
bool ShouldCreate = true) {
1413-
return getImpl(Context, Flags, CC, TypeArray.get(), Annotations.get(),
1414-
Storage, ShouldCreate);
1390+
return getImpl(Context, Flags, CC, TypeArray.get(), Storage, ShouldCreate);
14151391
}
14161392
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
14171393
uint8_t CC, Metadata *TypeArray,
1418-
Metadata *Annotations, StorageType Storage,
1394+
StorageType Storage,
14191395
bool ShouldCreate = true);
14201396

14211397
TempDISubroutineType cloneImpl() const {
1422-
return getTemporary(getContext(), getFlags(), getCC(), getTypeArray(),
1423-
getAnnotations());
1398+
return getTemporary(getContext(), getFlags(), getCC(), getTypeArray());
14241399
}
14251400

14261401
public:
14271402
DEFINE_MDNODE_GET(DISubroutineType,
1428-
(DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray,
1429-
DINodeArray Annotations = nullptr),
1430-
(Flags, CC, TypeArray, Annotations))
1403+
(DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray),
1404+
(Flags, CC, TypeArray))
14311405
DEFINE_MDNODE_GET(DISubroutineType,
1432-
(DIFlags Flags, uint8_t CC, Metadata *TypeArray,
1433-
Metadata *Annotations = nullptr),
1434-
(Flags, CC, TypeArray, Annotations))
1406+
(DIFlags Flags, uint8_t CC, Metadata *TypeArray),
1407+
(Flags, CC, TypeArray))
14351408

14361409
TempDISubroutineType clone() const { return cloneImpl(); }
14371410
// Returns a new temporary DISubroutineType with updated CC
@@ -1449,15 +1422,6 @@ class DISubroutineType : public DIType {
14491422

14501423
Metadata *getRawTypeArray() const { return getOperand(3); }
14511424

1452-
Metadata *getRawAnnotations() const { return getOperand(4); }
1453-
DINodeArray getAnnotations() const {
1454-
return cast_or_null<MDTuple>(getRawAnnotations());
1455-
}
1456-
1457-
void replaceAnnotations(DINodeArray Annotations) {
1458-
replaceOperandWith(4, Annotations.get());
1459-
}
1460-
14611425
static bool classof(const Metadata *MD) {
14621426
return MD->getMetadataID() == DISubroutineTypeKind;
14631427
}

llvm/lib/AsmParser/LLParser.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5251,22 +5251,20 @@ bool LLParser::parseDIEnumerator(MDNode *&Result, bool IsDistinct) {
52515251

52525252
/// parseDIBasicType:
52535253
/// ::= !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32,
5254-
/// encoding: DW_ATE_encoding, flags: 0, annotations: !1)
5254+
/// encoding: DW_ATE_encoding, flags: 0)
52555255
bool LLParser::parseDIBasicType(MDNode *&Result, bool IsDistinct) {
52565256
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
52575257
OPTIONAL(tag, DwarfTagField, (dwarf::DW_TAG_base_type)); \
52585258
OPTIONAL(name, MDStringField, ); \
52595259
OPTIONAL(size, MDUnsignedField, (0, UINT64_MAX)); \
52605260
OPTIONAL(align, MDUnsignedField, (0, UINT32_MAX)); \
52615261
OPTIONAL(encoding, DwarfAttEncodingField, ); \
5262-
OPTIONAL(flags, DIFlagField, ); \
5263-
OPTIONAL(annotations, MDField, );
5262+
OPTIONAL(flags, DIFlagField, );
52645263
PARSE_MD_FIELDS();
52655264
#undef VISIT_MD_FIELDS
52665265

5267-
Result = GET_OR_DISTINCT(DIBasicType,
5268-
(Context, tag.Val, name.Val, size.Val, align.Val,
5269-
encoding.Val, flags.Val, annotations.Val));
5266+
Result = GET_OR_DISTINCT(DIBasicType, (Context, tag.Val, name.Val, size.Val,
5267+
align.Val, encoding.Val, flags.Val));
52705268
return false;
52715269
}
52725270

@@ -5403,13 +5401,12 @@ bool LLParser::parseDISubroutineType(MDNode *&Result, bool IsDistinct) {
54035401
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
54045402
OPTIONAL(flags, DIFlagField, ); \
54055403
OPTIONAL(cc, DwarfCCField, ); \
5406-
REQUIRED(types, MDField, ); \
5407-
OPTIONAL(annotations, MDField, );
5404+
REQUIRED(types, MDField, );
54085405
PARSE_MD_FIELDS();
54095406
#undef VISIT_MD_FIELDS
54105407

5411-
Result = GET_OR_DISTINCT(DISubroutineType, (Context, flags.Val, cc.Val,
5412-
types.Val, annotations.Val));
5408+
Result = GET_OR_DISTINCT(DISubroutineType,
5409+
(Context, flags.Val, cc.Val, types.Val));
54135410
return false;
54145411
}
54155412

llvm/lib/Bitcode/Reader/MetadataLoader.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1527,22 +1527,18 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
15271527
break;
15281528
}
15291529
case bitc::METADATA_BASIC_TYPE: {
1530-
if (Record.size() < 6 || Record.size() > 8)
1530+
if (Record.size() < 6 || Record.size() > 7)
15311531
return error("Invalid record");
15321532

15331533
IsDistinct = Record[0];
15341534
DINode::DIFlags Flags = (Record.size() > 6)
15351535
? static_cast<DINode::DIFlags>(Record[6])
15361536
: DINode::FlagZero;
15371537

1538-
Metadata *Annotations = nullptr;
1539-
if (Record.size() > 7 && Record[7])
1540-
Annotations = getMDOrNull(Record[7]);
1541-
15421538
MetadataList.assignValue(
15431539
GET_OR_DISTINCT(DIBasicType,
15441540
(Context, Record[1], getMDString(Record[2]), Record[3],
1545-
Record[4], Record[5], Flags, Annotations)),
1541+
Record[4], Record[5], Flags)),
15461542
NextMetadataNo);
15471543
NextMetadataNo++;
15481544
break;
@@ -1707,7 +1703,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
17071703
break;
17081704
}
17091705
case bitc::METADATA_SUBROUTINE_TYPE: {
1710-
if (Record.size() < 3 || Record.size() > 5)
1706+
if (Record.size() < 3 || Record.size() > 4)
17111707
return error("Invalid record");
17121708
bool IsOldTypeRefArray = Record[0] < 2;
17131709
unsigned CC = (Record.size() > 3) ? Record[3] : 0;
@@ -1717,13 +1713,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
17171713
Metadata *Types = getMDOrNull(Record[2]);
17181714
if (LLVM_UNLIKELY(IsOldTypeRefArray))
17191715
Types = MetadataList.upgradeTypeRefArray(Types);
1720-
Metadata *Annotations = nullptr;
1721-
if (Record.size() > 4 && Record[4])
1722-
Annotations = getMDOrNull(Record[4]);
17231716

17241717
MetadataList.assignValue(
1725-
GET_OR_DISTINCT(DISubroutineType,
1726-
(Context, Flags, CC, Types, Annotations)),
1718+
GET_OR_DISTINCT(DISubroutineType, (Context, Flags, CC, Types)),
17271719
NextMetadataNo);
17281720
NextMetadataNo++;
17291721
break;

llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1816,7 +1816,6 @@ void ModuleBitcodeWriter::writeDIBasicType(const DIBasicType *N,
18161816
Record.push_back(N->getAlignInBits());
18171817
Record.push_back(N->getEncoding());
18181818
Record.push_back(N->getFlags());
1819-
Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
18201819

18211820
Stream.EmitRecord(bitc::METADATA_BASIC_TYPE, Record, Abbrev);
18221821
Record.clear();
@@ -1912,7 +1911,6 @@ void ModuleBitcodeWriter::writeDISubroutineType(
19121911
Record.push_back(N->getFlags());
19131912
Record.push_back(VE.getMetadataOrNullID(N->getTypeArray().get()));
19141913
Record.push_back(N->getCC());
1915-
Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
19161914

19171915
Stream.EmitRecord(bitc::METADATA_SUBROUTINE_TYPE, Record, Abbrev);
19181916
Record.clear();

llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -712,9 +712,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIBasicType *BTy) {
712712
if (!Name.empty())
713713
addString(Buffer, dwarf::DW_AT_name, Name);
714714

715-
addAnnotation(Buffer, BTy->getAnnotations());
716-
717-
// An unspecified type only has a name attribute & annotations.
715+
// An unspecified type only has a name attribute.
718716
if (BTy->getTag() == dwarf::DW_TAG_unspecified_type)
719717
return;
720718

@@ -883,8 +881,6 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DISubroutineType *CTy) {
883881

884882
if (CTy->isRValueReference())
885883
addFlag(Buffer, dwarf::DW_AT_rvalue_reference);
886-
887-
addAnnotation(Buffer, CTy->getAnnotations());
888884
}
889885

890886
void DwarfUnit::addAnnotation(DIE &Buffer, DINodeArray Annotations) {

llvm/lib/IR/AsmWriter.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2122,9 +2122,9 @@ static void writeDIEnumerator(raw_ostream &Out, const DIEnumerator *N,
21222122
}
21232123

21242124
static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
2125-
AsmWriterContext &WriterCtx) {
2125+
AsmWriterContext &) {
21262126
Out << "!DIBasicType(";
2127-
MDFieldPrinter Printer(Out, WriterCtx);
2127+
MDFieldPrinter Printer(Out);
21282128
if (N->getTag() != dwarf::DW_TAG_base_type)
21292129
Printer.printTag(N);
21302130
Printer.printString("name", N->getName());
@@ -2133,7 +2133,6 @@ static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
21332133
Printer.printDwarfEnum("encoding", N->getEncoding(),
21342134
dwarf::AttributeEncodingString);
21352135
Printer.printDIFlags("flags", N->getFlags());
2136-
Printer.printMetadata("annotations", N->getRawAnnotations());
21372136
Out << ")";
21382137
}
21392138

@@ -2229,7 +2228,6 @@ static void writeDISubroutineType(raw_ostream &Out, const DISubroutineType *N,
22292228
Printer.printDwarfEnum("cc", N->getCC(), dwarf::ConventionString);
22302229
Printer.printMetadata("types", N->getRawTypeArray(),
22312230
/* ShouldSkipNull */ false);
2232-
Printer.printMetadata("annotations", N->getRawAnnotations());
22332231
Out << ")";
22342232
}
22352233

llvm/lib/IR/DebugInfoMetadata.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -663,12 +663,12 @@ DIEnumerator *DIEnumerator::getImpl(LLVMContext &Context, const APInt &Value,
663663
DIBasicType *DIBasicType::getImpl(LLVMContext &Context, unsigned Tag,
664664
MDString *Name, uint64_t SizeInBits,
665665
uint32_t AlignInBits, unsigned Encoding,
666-
DIFlags Flags, Metadata *Annotations,
667-
StorageType Storage, bool ShouldCreate) {
666+
DIFlags Flags, StorageType Storage,
667+
bool ShouldCreate) {
668668
assert(isCanonical(Name) && "Expected canonical MDString");
669-
DEFINE_GETIMPL_LOOKUP(DIBasicType, (Tag, Name, SizeInBits, AlignInBits,
670-
Encoding, Flags, Annotations));
671-
Metadata *Ops[] = {nullptr, nullptr, Name, Annotations};
669+
DEFINE_GETIMPL_LOOKUP(DIBasicType,
670+
(Tag, Name, SizeInBits, AlignInBits, Encoding, Flags));
671+
Metadata *Ops[] = {nullptr, nullptr, Name};
672672
DEFINE_GETIMPL_STORE(DIBasicType,
673673
(Tag, SizeInBits, AlignInBits, Encoding, Flags), Ops);
674674
}
@@ -872,11 +872,10 @@ DISubroutineType::DISubroutineType(LLVMContext &C, StorageType Storage,
872872

873873
DISubroutineType *DISubroutineType::getImpl(LLVMContext &Context, DIFlags Flags,
874874
uint8_t CC, Metadata *TypeArray,
875-
Metadata *Annotations,
876875
StorageType Storage,
877876
bool ShouldCreate) {
878-
DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray, Annotations));
879-
Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray, Annotations};
877+
DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray));
878+
Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray};
880879
DEFINE_GETIMPL_STORE(DISubroutineType, (Flags, CC), Ops);
881880
}
882881

0 commit comments

Comments
 (0)