-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Revert "[DebugInfo][BPF] Add 'annotations' field for DIBasicType & DI… #96172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "[DebugInfo][BPF] Add 'annotations' field for DIBasicType & DI… #96172
Conversation
…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)
@llvm/pr-subscribers-debuginfo Author: None (eddyz87) Changes…SubroutineType (#91422)" This reverts commit 3ca1744. As reported in [1,2] the commit above causes CI failure for powerpc-aix target. [1] #91422 (comment) Patch is 31.95 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/96172.diff 11 Files Affected:
diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h
index 848e7c57938e3..524945862e8d4 100644
--- a/llvm/include/llvm/IR/DebugInfoMetadata.h
+++ b/llvm/include/llvm/IR/DebugInfoMetadata.h
@@ -828,45 +828,40 @@ class DIBasicType : public DIType {
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
StringRef Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, DINodeArray Annotations,
- StorageType Storage, bool ShouldCreate = true) {
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate = true) {
return getImpl(Context, Tag, getCanonicalMDString(Context, Name),
- SizeInBits, AlignInBits, Encoding, Flags, Annotations.get(),
- Storage, ShouldCreate);
+ SizeInBits, AlignInBits, Encoding, Flags, Storage,
+ ShouldCreate);
}
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
MDString *Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, Metadata *Annotations,
- StorageType Storage, bool ShouldCreate = true);
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate = true);
TempDIBasicType cloneImpl() const {
return getTemporary(getContext(), getTag(), getName(), getSizeInBits(),
- getAlignInBits(), getEncoding(), getFlags(),
- getAnnotations());
+ getAlignInBits(), getEncoding(), getFlags());
}
public:
DEFINE_MDNODE_GET(DIBasicType, (unsigned Tag, StringRef Name),
- (Tag, Name, 0, 0, 0, FlagZero, {}))
+ (Tag, Name, 0, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, StringRef Name, uint64_t SizeInBits),
- (Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
+ (Tag, Name, SizeInBits, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, MDString *Name, uint64_t SizeInBits),
- (Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
+ (Tag, Name, SizeInBits, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, StringRef Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
- DINodeArray Annotations = {}),
- (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
- Annotations))
+ uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, MDString *Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
- Metadata *Annotations = nullptr),
- (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
- Annotations))
+ uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
TempDIBasicType clone() const { return cloneImpl(); }
@@ -878,16 +873,6 @@ class DIBasicType : public DIType {
/// neither signed nor unsigned.
std::optional<Signedness> getSignedness() const;
- Metadata *getRawAnnotations() const { return getOperand(3); }
-
- DINodeArray getAnnotations() const {
- return cast_or_null<MDTuple>(getRawAnnotations());
- }
-
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(3, Annotations.get());
- }
-
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == DIBasicTypeKind;
}
@@ -1127,10 +1112,6 @@ class DIDerivedType : public DIType {
}
Metadata *getRawAnnotations() const { return getOperand(5); }
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(5, Annotations.get());
- }
-
/// Get casted version of extra data.
/// @{
DIType *getClassType() const;
@@ -1358,10 +1339,6 @@ class DICompositeType : public DIType {
return cast_or_null<MDTuple>(getRawAnnotations());
}
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(13, Annotations.get());
- }
-
/// Replace operands.
///
/// If this \a isUniqued() and not \a isResolved(), on a uniquing collision
@@ -1408,30 +1385,26 @@ class DISubroutineType : public DIType {
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, DITypeRefArray TypeArray,
- DINodeArray Annotations, StorageType Storage,
+ StorageType Storage,
bool ShouldCreate = true) {
- return getImpl(Context, Flags, CC, TypeArray.get(), Annotations.get(),
- Storage, ShouldCreate);
+ return getImpl(Context, Flags, CC, TypeArray.get(), Storage, ShouldCreate);
}
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations, StorageType Storage,
+ StorageType Storage,
bool ShouldCreate = true);
TempDISubroutineType cloneImpl() const {
- return getTemporary(getContext(), getFlags(), getCC(), getTypeArray(),
- getAnnotations());
+ return getTemporary(getContext(), getFlags(), getCC(), getTypeArray());
}
public:
DEFINE_MDNODE_GET(DISubroutineType,
- (DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray,
- DINodeArray Annotations = nullptr),
- (Flags, CC, TypeArray, Annotations))
+ (DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray),
+ (Flags, CC, TypeArray))
DEFINE_MDNODE_GET(DISubroutineType,
- (DIFlags Flags, uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations = nullptr),
- (Flags, CC, TypeArray, Annotations))
+ (DIFlags Flags, uint8_t CC, Metadata *TypeArray),
+ (Flags, CC, TypeArray))
TempDISubroutineType clone() const { return cloneImpl(); }
// Returns a new temporary DISubroutineType with updated CC
@@ -1449,15 +1422,6 @@ class DISubroutineType : public DIType {
Metadata *getRawTypeArray() const { return getOperand(3); }
- Metadata *getRawAnnotations() const { return getOperand(4); }
- DINodeArray getAnnotations() const {
- return cast_or_null<MDTuple>(getRawAnnotations());
- }
-
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(4, Annotations.get());
- }
-
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == DISubroutineTypeKind;
}
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 6c97e9e943b3f..7f36febbc7fda 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -5251,7 +5251,7 @@ bool LLParser::parseDIEnumerator(MDNode *&Result, bool IsDistinct) {
/// parseDIBasicType:
/// ::= !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32,
-/// encoding: DW_ATE_encoding, flags: 0, annotations: !1)
+/// encoding: DW_ATE_encoding, flags: 0)
bool LLParser::parseDIBasicType(MDNode *&Result, bool IsDistinct) {
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
OPTIONAL(tag, DwarfTagField, (dwarf::DW_TAG_base_type)); \
@@ -5259,14 +5259,12 @@ bool LLParser::parseDIBasicType(MDNode *&Result, bool IsDistinct) {
OPTIONAL(size, MDUnsignedField, (0, UINT64_MAX)); \
OPTIONAL(align, MDUnsignedField, (0, UINT32_MAX)); \
OPTIONAL(encoding, DwarfAttEncodingField, ); \
- OPTIONAL(flags, DIFlagField, ); \
- OPTIONAL(annotations, MDField, );
+ OPTIONAL(flags, DIFlagField, );
PARSE_MD_FIELDS();
#undef VISIT_MD_FIELDS
- Result = GET_OR_DISTINCT(DIBasicType,
- (Context, tag.Val, name.Val, size.Val, align.Val,
- encoding.Val, flags.Val, annotations.Val));
+ Result = GET_OR_DISTINCT(DIBasicType, (Context, tag.Val, name.Val, size.Val,
+ align.Val, encoding.Val, flags.Val));
return false;
}
@@ -5403,13 +5401,12 @@ bool LLParser::parseDISubroutineType(MDNode *&Result, bool IsDistinct) {
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
OPTIONAL(flags, DIFlagField, ); \
OPTIONAL(cc, DwarfCCField, ); \
- REQUIRED(types, MDField, ); \
- OPTIONAL(annotations, MDField, );
+ REQUIRED(types, MDField, );
PARSE_MD_FIELDS();
#undef VISIT_MD_FIELDS
- Result = GET_OR_DISTINCT(DISubroutineType, (Context, flags.Val, cc.Val,
- types.Val, annotations.Val));
+ Result = GET_OR_DISTINCT(DISubroutineType,
+ (Context, flags.Val, cc.Val, types.Val));
return false;
}
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index bc06c55f1662c..9102f3a60cffc 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -1527,7 +1527,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
break;
}
case bitc::METADATA_BASIC_TYPE: {
- if (Record.size() < 6 || Record.size() > 8)
+ if (Record.size() < 6 || Record.size() > 7)
return error("Invalid record");
IsDistinct = Record[0];
@@ -1535,14 +1535,10 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
? static_cast<DINode::DIFlags>(Record[6])
: DINode::FlagZero;
- Metadata *Annotations = nullptr;
- if (Record.size() > 7 && Record[7])
- Annotations = getMDOrNull(Record[7]);
-
MetadataList.assignValue(
GET_OR_DISTINCT(DIBasicType,
(Context, Record[1], getMDString(Record[2]), Record[3],
- Record[4], Record[5], Flags, Annotations)),
+ Record[4], Record[5], Flags)),
NextMetadataNo);
NextMetadataNo++;
break;
@@ -1707,7 +1703,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
break;
}
case bitc::METADATA_SUBROUTINE_TYPE: {
- if (Record.size() < 3 || Record.size() > 5)
+ if (Record.size() < 3 || Record.size() > 4)
return error("Invalid record");
bool IsOldTypeRefArray = Record[0] < 2;
unsigned CC = (Record.size() > 3) ? Record[3] : 0;
@@ -1717,13 +1713,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
Metadata *Types = getMDOrNull(Record[2]);
if (LLVM_UNLIKELY(IsOldTypeRefArray))
Types = MetadataList.upgradeTypeRefArray(Types);
- Metadata *Annotations = nullptr;
- if (Record.size() > 4 && Record[4])
- Annotations = getMDOrNull(Record[4]);
MetadataList.assignValue(
- GET_OR_DISTINCT(DISubroutineType,
- (Context, Flags, CC, Types, Annotations)),
+ GET_OR_DISTINCT(DISubroutineType, (Context, Flags, CC, Types)),
NextMetadataNo);
NextMetadataNo++;
break;
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index f3e87310310ec..b08d5c50e5ae3 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -1816,7 +1816,6 @@ void ModuleBitcodeWriter::writeDIBasicType(const DIBasicType *N,
Record.push_back(N->getAlignInBits());
Record.push_back(N->getEncoding());
Record.push_back(N->getFlags());
- Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
Stream.EmitRecord(bitc::METADATA_BASIC_TYPE, Record, Abbrev);
Record.clear();
@@ -1912,7 +1911,6 @@ void ModuleBitcodeWriter::writeDISubroutineType(
Record.push_back(N->getFlags());
Record.push_back(VE.getMetadataOrNullID(N->getTypeArray().get()));
Record.push_back(N->getCC());
- Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
Stream.EmitRecord(bitc::METADATA_SUBROUTINE_TYPE, Record, Abbrev);
Record.clear();
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 08be3a51862ca..6c04fa1c67a95 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -712,9 +712,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIBasicType *BTy) {
if (!Name.empty())
addString(Buffer, dwarf::DW_AT_name, Name);
- addAnnotation(Buffer, BTy->getAnnotations());
-
- // An unspecified type only has a name attribute & annotations.
+ // An unspecified type only has a name attribute.
if (BTy->getTag() == dwarf::DW_TAG_unspecified_type)
return;
@@ -883,8 +881,6 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DISubroutineType *CTy) {
if (CTy->isRValueReference())
addFlag(Buffer, dwarf::DW_AT_rvalue_reference);
-
- addAnnotation(Buffer, CTy->getAnnotations());
}
void DwarfUnit::addAnnotation(DIE &Buffer, DINodeArray Annotations) {
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index 16e51307ddb71..0bf8be9ac55f9 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -2122,9 +2122,9 @@ static void writeDIEnumerator(raw_ostream &Out, const DIEnumerator *N,
}
static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
- AsmWriterContext &WriterCtx) {
+ AsmWriterContext &) {
Out << "!DIBasicType(";
- MDFieldPrinter Printer(Out, WriterCtx);
+ MDFieldPrinter Printer(Out);
if (N->getTag() != dwarf::DW_TAG_base_type)
Printer.printTag(N);
Printer.printString("name", N->getName());
@@ -2133,7 +2133,6 @@ static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
Printer.printDwarfEnum("encoding", N->getEncoding(),
dwarf::AttributeEncodingString);
Printer.printDIFlags("flags", N->getFlags());
- Printer.printMetadata("annotations", N->getRawAnnotations());
Out << ")";
}
@@ -2229,7 +2228,6 @@ static void writeDISubroutineType(raw_ostream &Out, const DISubroutineType *N,
Printer.printDwarfEnum("cc", N->getCC(), dwarf::ConventionString);
Printer.printMetadata("types", N->getRawTypeArray(),
/* ShouldSkipNull */ false);
- Printer.printMetadata("annotations", N->getRawAnnotations());
Out << ")";
}
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp
index 7c677b78c577a..161a30dfb3828 100644
--- a/llvm/lib/IR/DebugInfoMetadata.cpp
+++ b/llvm/lib/IR/DebugInfoMetadata.cpp
@@ -663,12 +663,12 @@ DIEnumerator *DIEnumerator::getImpl(LLVMContext &Context, const APInt &Value,
DIBasicType *DIBasicType::getImpl(LLVMContext &Context, unsigned Tag,
MDString *Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, Metadata *Annotations,
- StorageType Storage, bool ShouldCreate) {
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate) {
assert(isCanonical(Name) && "Expected canonical MDString");
- DEFINE_GETIMPL_LOOKUP(DIBasicType, (Tag, Name, SizeInBits, AlignInBits,
- Encoding, Flags, Annotations));
- Metadata *Ops[] = {nullptr, nullptr, Name, Annotations};
+ DEFINE_GETIMPL_LOOKUP(DIBasicType,
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags));
+ Metadata *Ops[] = {nullptr, nullptr, Name};
DEFINE_GETIMPL_STORE(DIBasicType,
(Tag, SizeInBits, AlignInBits, Encoding, Flags), Ops);
}
@@ -872,11 +872,10 @@ DISubroutineType::DISubroutineType(LLVMContext &C, StorageType Storage,
DISubroutineType *DISubroutineType::getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations,
StorageType Storage,
bool ShouldCreate) {
- DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray, Annotations));
- Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray, Annotations};
+ DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray));
+ Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray};
DEFINE_GETIMPL_STORE(DISubroutineType, (Flags, CC), Ops);
}
diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h
index 8fb55d9c719d1..392e0d16f1761 100644
--- a/llvm/lib/IR/LLVMContextImpl.h
+++ b/llvm/lib/IR/LLVMContextImpl.h
@@ -465,29 +465,25 @@ template <> struct MDNodeKeyImpl<DIBasicType> {
uint32_t AlignInBits;
unsigned Encoding;
unsigned Flags;
- Metadata *Annotations;
MDNodeKeyImpl(unsigned Tag, MDString *Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, unsigned Flags,
- Metadata *Annotations)
+ uint32_t AlignInBits, unsigned Encoding, unsigned Flags)
: Tag(Tag), Name(Name), SizeInBits(SizeInBits), AlignInBits(AlignInBits),
- Encoding(Encoding), Flags(Flags), Annotations(Annotations) {}
+ Encoding(Encoding), Flags(Flags) {}
MDNodeKeyImpl(const DIBasicType *N)
: Tag(N->getTag()), Name(N->getRawName()), SizeInBits(N->getSizeInBits()),
AlignInBits(N->getAlignInBits()), Encoding(N->getEncoding()),
- Flags(N->getFlags()), Annotations(N->getRawAnnotations()) {}
+ Flags(N->getFlags()) {}
bool isKeyOf(const DIBasicType *RHS) const {
return Tag == RHS->getTag() && Name == RHS->getRawName() &&
SizeInBits == RHS->getSizeInBits() &&
AlignInBits == RHS->getAlignInBits() &&
- Encoding == RHS->getEncoding() && Flags == RHS->getFlags() &&
- Annotations == RHS->getRawAnnotations();
+ Encoding == RHS->getEncoding() && Flags == RHS->getFlags();
}
unsigned getHashValue() const {
- return hash_combine(Tag, Name, SizeInBits, AlignInBits, Encoding,
- Annotations);
+ return hash_combine(Tag, Name, SizeInBits, AlignInBits, Encoding);
}
};
@@ -716,24 +712,18 @@ template <> struct MDNodeKeyImpl<DISubroutineType> {
unsigned Flags;
uint8_t CC;
Metadata *TypeArray;
- Metadata *Annotations;
- MDNodeKeyImpl(unsigned Flags, uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations)
- : Flags(Flags), CC(CC), TypeArray(TypeArray), Annotations(Annotations) {}
+ MDNodeKeyImpl(unsigned Flags, uint8_t CC, Metadata *TypeArray)
+ : Flags(Flags), CC(CC), TypeArray(TypeArray) {}
MDNodeKeyImpl(const DISubroutineType *N)
- : Flags(N->getFlags()), CC(N->getCC()), TypeArray(N->getRawTypeArray()),
- Annotations(N->getRawAnnotations()) {}
+ : Flags(N->getFlags()), CC(N->getCC()), TypeArray(N->getRawTypeArray()) {}
bool isKeyOf(const DISubroutineType *RHS) const {
return Flags == RHS->getFlags() && CC == RHS->getCC() &&
- TypeArray == RHS->getRawTypeArray() &&
- Annotations == RHS->getRawAnnotations();
+ TypeArray == RHS->getRawTypeArray();
}
- unsigned getHashValue() const {
- return hash_combine(Flags, CC, TypeArray, Annotations);
- }
+ unsigned getHashValue() const { return hash_combine(Flags, CC,...
[truncated]
|
@llvm/pr-subscribers-llvm-ir Author: None (eddyz87) Changes…SubroutineType (#91422)" This reverts commit 3ca1744. As reported in [1,2] the commit above causes CI failure for powerpc-aix target. [1] #91422 (comment) Patch is 31.95 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/96172.diff 11 Files Affected:
diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h
index 848e7c57938e3..524945862e8d4 100644
--- a/llvm/include/llvm/IR/DebugInfoMetadata.h
+++ b/llvm/include/llvm/IR/DebugInfoMetadata.h
@@ -828,45 +828,40 @@ class DIBasicType : public DIType {
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
StringRef Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, DINodeArray Annotations,
- StorageType Storage, bool ShouldCreate = true) {
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate = true) {
return getImpl(Context, Tag, getCanonicalMDString(Context, Name),
- SizeInBits, AlignInBits, Encoding, Flags, Annotations.get(),
- Storage, ShouldCreate);
+ SizeInBits, AlignInBits, Encoding, Flags, Storage,
+ ShouldCreate);
}
static DIBasicType *getImpl(LLVMContext &Context, unsigned Tag,
MDString *Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, Metadata *Annotations,
- StorageType Storage, bool ShouldCreate = true);
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate = true);
TempDIBasicType cloneImpl() const {
return getTemporary(getContext(), getTag(), getName(), getSizeInBits(),
- getAlignInBits(), getEncoding(), getFlags(),
- getAnnotations());
+ getAlignInBits(), getEncoding(), getFlags());
}
public:
DEFINE_MDNODE_GET(DIBasicType, (unsigned Tag, StringRef Name),
- (Tag, Name, 0, 0, 0, FlagZero, {}))
+ (Tag, Name, 0, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, StringRef Name, uint64_t SizeInBits),
- (Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
+ (Tag, Name, SizeInBits, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, MDString *Name, uint64_t SizeInBits),
- (Tag, Name, SizeInBits, 0, 0, FlagZero, {}))
+ (Tag, Name, SizeInBits, 0, 0, FlagZero))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, StringRef Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
- DINodeArray Annotations = {}),
- (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
- Annotations))
+ uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
DEFINE_MDNODE_GET(DIBasicType,
(unsigned Tag, MDString *Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, DIFlags Flags,
- Metadata *Annotations = nullptr),
- (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags,
- Annotations))
+ uint32_t AlignInBits, unsigned Encoding, DIFlags Flags),
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags))
TempDIBasicType clone() const { return cloneImpl(); }
@@ -878,16 +873,6 @@ class DIBasicType : public DIType {
/// neither signed nor unsigned.
std::optional<Signedness> getSignedness() const;
- Metadata *getRawAnnotations() const { return getOperand(3); }
-
- DINodeArray getAnnotations() const {
- return cast_or_null<MDTuple>(getRawAnnotations());
- }
-
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(3, Annotations.get());
- }
-
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == DIBasicTypeKind;
}
@@ -1127,10 +1112,6 @@ class DIDerivedType : public DIType {
}
Metadata *getRawAnnotations() const { return getOperand(5); }
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(5, Annotations.get());
- }
-
/// Get casted version of extra data.
/// @{
DIType *getClassType() const;
@@ -1358,10 +1339,6 @@ class DICompositeType : public DIType {
return cast_or_null<MDTuple>(getRawAnnotations());
}
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(13, Annotations.get());
- }
-
/// Replace operands.
///
/// If this \a isUniqued() and not \a isResolved(), on a uniquing collision
@@ -1408,30 +1385,26 @@ class DISubroutineType : public DIType {
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, DITypeRefArray TypeArray,
- DINodeArray Annotations, StorageType Storage,
+ StorageType Storage,
bool ShouldCreate = true) {
- return getImpl(Context, Flags, CC, TypeArray.get(), Annotations.get(),
- Storage, ShouldCreate);
+ return getImpl(Context, Flags, CC, TypeArray.get(), Storage, ShouldCreate);
}
static DISubroutineType *getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations, StorageType Storage,
+ StorageType Storage,
bool ShouldCreate = true);
TempDISubroutineType cloneImpl() const {
- return getTemporary(getContext(), getFlags(), getCC(), getTypeArray(),
- getAnnotations());
+ return getTemporary(getContext(), getFlags(), getCC(), getTypeArray());
}
public:
DEFINE_MDNODE_GET(DISubroutineType,
- (DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray,
- DINodeArray Annotations = nullptr),
- (Flags, CC, TypeArray, Annotations))
+ (DIFlags Flags, uint8_t CC, DITypeRefArray TypeArray),
+ (Flags, CC, TypeArray))
DEFINE_MDNODE_GET(DISubroutineType,
- (DIFlags Flags, uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations = nullptr),
- (Flags, CC, TypeArray, Annotations))
+ (DIFlags Flags, uint8_t CC, Metadata *TypeArray),
+ (Flags, CC, TypeArray))
TempDISubroutineType clone() const { return cloneImpl(); }
// Returns a new temporary DISubroutineType with updated CC
@@ -1449,15 +1422,6 @@ class DISubroutineType : public DIType {
Metadata *getRawTypeArray() const { return getOperand(3); }
- Metadata *getRawAnnotations() const { return getOperand(4); }
- DINodeArray getAnnotations() const {
- return cast_or_null<MDTuple>(getRawAnnotations());
- }
-
- void replaceAnnotations(DINodeArray Annotations) {
- replaceOperandWith(4, Annotations.get());
- }
-
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == DISubroutineTypeKind;
}
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 6c97e9e943b3f..7f36febbc7fda 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -5251,7 +5251,7 @@ bool LLParser::parseDIEnumerator(MDNode *&Result, bool IsDistinct) {
/// parseDIBasicType:
/// ::= !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32,
-/// encoding: DW_ATE_encoding, flags: 0, annotations: !1)
+/// encoding: DW_ATE_encoding, flags: 0)
bool LLParser::parseDIBasicType(MDNode *&Result, bool IsDistinct) {
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
OPTIONAL(tag, DwarfTagField, (dwarf::DW_TAG_base_type)); \
@@ -5259,14 +5259,12 @@ bool LLParser::parseDIBasicType(MDNode *&Result, bool IsDistinct) {
OPTIONAL(size, MDUnsignedField, (0, UINT64_MAX)); \
OPTIONAL(align, MDUnsignedField, (0, UINT32_MAX)); \
OPTIONAL(encoding, DwarfAttEncodingField, ); \
- OPTIONAL(flags, DIFlagField, ); \
- OPTIONAL(annotations, MDField, );
+ OPTIONAL(flags, DIFlagField, );
PARSE_MD_FIELDS();
#undef VISIT_MD_FIELDS
- Result = GET_OR_DISTINCT(DIBasicType,
- (Context, tag.Val, name.Val, size.Val, align.Val,
- encoding.Val, flags.Val, annotations.Val));
+ Result = GET_OR_DISTINCT(DIBasicType, (Context, tag.Val, name.Val, size.Val,
+ align.Val, encoding.Val, flags.Val));
return false;
}
@@ -5403,13 +5401,12 @@ bool LLParser::parseDISubroutineType(MDNode *&Result, bool IsDistinct) {
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
OPTIONAL(flags, DIFlagField, ); \
OPTIONAL(cc, DwarfCCField, ); \
- REQUIRED(types, MDField, ); \
- OPTIONAL(annotations, MDField, );
+ REQUIRED(types, MDField, );
PARSE_MD_FIELDS();
#undef VISIT_MD_FIELDS
- Result = GET_OR_DISTINCT(DISubroutineType, (Context, flags.Val, cc.Val,
- types.Val, annotations.Val));
+ Result = GET_OR_DISTINCT(DISubroutineType,
+ (Context, flags.Val, cc.Val, types.Val));
return false;
}
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index bc06c55f1662c..9102f3a60cffc 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -1527,7 +1527,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
break;
}
case bitc::METADATA_BASIC_TYPE: {
- if (Record.size() < 6 || Record.size() > 8)
+ if (Record.size() < 6 || Record.size() > 7)
return error("Invalid record");
IsDistinct = Record[0];
@@ -1535,14 +1535,10 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
? static_cast<DINode::DIFlags>(Record[6])
: DINode::FlagZero;
- Metadata *Annotations = nullptr;
- if (Record.size() > 7 && Record[7])
- Annotations = getMDOrNull(Record[7]);
-
MetadataList.assignValue(
GET_OR_DISTINCT(DIBasicType,
(Context, Record[1], getMDString(Record[2]), Record[3],
- Record[4], Record[5], Flags, Annotations)),
+ Record[4], Record[5], Flags)),
NextMetadataNo);
NextMetadataNo++;
break;
@@ -1707,7 +1703,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
break;
}
case bitc::METADATA_SUBROUTINE_TYPE: {
- if (Record.size() < 3 || Record.size() > 5)
+ if (Record.size() < 3 || Record.size() > 4)
return error("Invalid record");
bool IsOldTypeRefArray = Record[0] < 2;
unsigned CC = (Record.size() > 3) ? Record[3] : 0;
@@ -1717,13 +1713,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
Metadata *Types = getMDOrNull(Record[2]);
if (LLVM_UNLIKELY(IsOldTypeRefArray))
Types = MetadataList.upgradeTypeRefArray(Types);
- Metadata *Annotations = nullptr;
- if (Record.size() > 4 && Record[4])
- Annotations = getMDOrNull(Record[4]);
MetadataList.assignValue(
- GET_OR_DISTINCT(DISubroutineType,
- (Context, Flags, CC, Types, Annotations)),
+ GET_OR_DISTINCT(DISubroutineType, (Context, Flags, CC, Types)),
NextMetadataNo);
NextMetadataNo++;
break;
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index f3e87310310ec..b08d5c50e5ae3 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -1816,7 +1816,6 @@ void ModuleBitcodeWriter::writeDIBasicType(const DIBasicType *N,
Record.push_back(N->getAlignInBits());
Record.push_back(N->getEncoding());
Record.push_back(N->getFlags());
- Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
Stream.EmitRecord(bitc::METADATA_BASIC_TYPE, Record, Abbrev);
Record.clear();
@@ -1912,7 +1911,6 @@ void ModuleBitcodeWriter::writeDISubroutineType(
Record.push_back(N->getFlags());
Record.push_back(VE.getMetadataOrNullID(N->getTypeArray().get()));
Record.push_back(N->getCC());
- Record.push_back(VE.getMetadataOrNullID(N->getRawAnnotations()));
Stream.EmitRecord(bitc::METADATA_SUBROUTINE_TYPE, Record, Abbrev);
Record.clear();
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 08be3a51862ca..6c04fa1c67a95 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -712,9 +712,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIBasicType *BTy) {
if (!Name.empty())
addString(Buffer, dwarf::DW_AT_name, Name);
- addAnnotation(Buffer, BTy->getAnnotations());
-
- // An unspecified type only has a name attribute & annotations.
+ // An unspecified type only has a name attribute.
if (BTy->getTag() == dwarf::DW_TAG_unspecified_type)
return;
@@ -883,8 +881,6 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DISubroutineType *CTy) {
if (CTy->isRValueReference())
addFlag(Buffer, dwarf::DW_AT_rvalue_reference);
-
- addAnnotation(Buffer, CTy->getAnnotations());
}
void DwarfUnit::addAnnotation(DIE &Buffer, DINodeArray Annotations) {
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index 16e51307ddb71..0bf8be9ac55f9 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -2122,9 +2122,9 @@ static void writeDIEnumerator(raw_ostream &Out, const DIEnumerator *N,
}
static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
- AsmWriterContext &WriterCtx) {
+ AsmWriterContext &) {
Out << "!DIBasicType(";
- MDFieldPrinter Printer(Out, WriterCtx);
+ MDFieldPrinter Printer(Out);
if (N->getTag() != dwarf::DW_TAG_base_type)
Printer.printTag(N);
Printer.printString("name", N->getName());
@@ -2133,7 +2133,6 @@ static void writeDIBasicType(raw_ostream &Out, const DIBasicType *N,
Printer.printDwarfEnum("encoding", N->getEncoding(),
dwarf::AttributeEncodingString);
Printer.printDIFlags("flags", N->getFlags());
- Printer.printMetadata("annotations", N->getRawAnnotations());
Out << ")";
}
@@ -2229,7 +2228,6 @@ static void writeDISubroutineType(raw_ostream &Out, const DISubroutineType *N,
Printer.printDwarfEnum("cc", N->getCC(), dwarf::ConventionString);
Printer.printMetadata("types", N->getRawTypeArray(),
/* ShouldSkipNull */ false);
- Printer.printMetadata("annotations", N->getRawAnnotations());
Out << ")";
}
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp
index 7c677b78c577a..161a30dfb3828 100644
--- a/llvm/lib/IR/DebugInfoMetadata.cpp
+++ b/llvm/lib/IR/DebugInfoMetadata.cpp
@@ -663,12 +663,12 @@ DIEnumerator *DIEnumerator::getImpl(LLVMContext &Context, const APInt &Value,
DIBasicType *DIBasicType::getImpl(LLVMContext &Context, unsigned Tag,
MDString *Name, uint64_t SizeInBits,
uint32_t AlignInBits, unsigned Encoding,
- DIFlags Flags, Metadata *Annotations,
- StorageType Storage, bool ShouldCreate) {
+ DIFlags Flags, StorageType Storage,
+ bool ShouldCreate) {
assert(isCanonical(Name) && "Expected canonical MDString");
- DEFINE_GETIMPL_LOOKUP(DIBasicType, (Tag, Name, SizeInBits, AlignInBits,
- Encoding, Flags, Annotations));
- Metadata *Ops[] = {nullptr, nullptr, Name, Annotations};
+ DEFINE_GETIMPL_LOOKUP(DIBasicType,
+ (Tag, Name, SizeInBits, AlignInBits, Encoding, Flags));
+ Metadata *Ops[] = {nullptr, nullptr, Name};
DEFINE_GETIMPL_STORE(DIBasicType,
(Tag, SizeInBits, AlignInBits, Encoding, Flags), Ops);
}
@@ -872,11 +872,10 @@ DISubroutineType::DISubroutineType(LLVMContext &C, StorageType Storage,
DISubroutineType *DISubroutineType::getImpl(LLVMContext &Context, DIFlags Flags,
uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations,
StorageType Storage,
bool ShouldCreate) {
- DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray, Annotations));
- Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray, Annotations};
+ DEFINE_GETIMPL_LOOKUP(DISubroutineType, (Flags, CC, TypeArray));
+ Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray};
DEFINE_GETIMPL_STORE(DISubroutineType, (Flags, CC), Ops);
}
diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h
index 8fb55d9c719d1..392e0d16f1761 100644
--- a/llvm/lib/IR/LLVMContextImpl.h
+++ b/llvm/lib/IR/LLVMContextImpl.h
@@ -465,29 +465,25 @@ template <> struct MDNodeKeyImpl<DIBasicType> {
uint32_t AlignInBits;
unsigned Encoding;
unsigned Flags;
- Metadata *Annotations;
MDNodeKeyImpl(unsigned Tag, MDString *Name, uint64_t SizeInBits,
- uint32_t AlignInBits, unsigned Encoding, unsigned Flags,
- Metadata *Annotations)
+ uint32_t AlignInBits, unsigned Encoding, unsigned Flags)
: Tag(Tag), Name(Name), SizeInBits(SizeInBits), AlignInBits(AlignInBits),
- Encoding(Encoding), Flags(Flags), Annotations(Annotations) {}
+ Encoding(Encoding), Flags(Flags) {}
MDNodeKeyImpl(const DIBasicType *N)
: Tag(N->getTag()), Name(N->getRawName()), SizeInBits(N->getSizeInBits()),
AlignInBits(N->getAlignInBits()), Encoding(N->getEncoding()),
- Flags(N->getFlags()), Annotations(N->getRawAnnotations()) {}
+ Flags(N->getFlags()) {}
bool isKeyOf(const DIBasicType *RHS) const {
return Tag == RHS->getTag() && Name == RHS->getRawName() &&
SizeInBits == RHS->getSizeInBits() &&
AlignInBits == RHS->getAlignInBits() &&
- Encoding == RHS->getEncoding() && Flags == RHS->getFlags() &&
- Annotations == RHS->getRawAnnotations();
+ Encoding == RHS->getEncoding() && Flags == RHS->getFlags();
}
unsigned getHashValue() const {
- return hash_combine(Tag, Name, SizeInBits, AlignInBits, Encoding,
- Annotations);
+ return hash_combine(Tag, Name, SizeInBits, AlignInBits, Encoding);
}
};
@@ -716,24 +712,18 @@ template <> struct MDNodeKeyImpl<DISubroutineType> {
unsigned Flags;
uint8_t CC;
Metadata *TypeArray;
- Metadata *Annotations;
- MDNodeKeyImpl(unsigned Flags, uint8_t CC, Metadata *TypeArray,
- Metadata *Annotations)
- : Flags(Flags), CC(CC), TypeArray(TypeArray), Annotations(Annotations) {}
+ MDNodeKeyImpl(unsigned Flags, uint8_t CC, Metadata *TypeArray)
+ : Flags(Flags), CC(CC), TypeArray(TypeArray) {}
MDNodeKeyImpl(const DISubroutineType *N)
- : Flags(N->getFlags()), CC(N->getCC()), TypeArray(N->getRawTypeArray()),
- Annotations(N->getRawAnnotations()) {}
+ : Flags(N->getFlags()), CC(N->getCC()), TypeArray(N->getRawTypeArray()) {}
bool isKeyOf(const DISubroutineType *RHS) const {
return Flags == RHS->getFlags() && CC == RHS->getCC() &&
- TypeArray == RHS->getRawTypeArray() &&
- Annotations == RHS->getRawAnnotations();
+ TypeArray == RHS->getRawTypeArray();
}
- unsigned getHashValue() const {
- return hash_combine(Flags, CC, TypeArray, Annotations);
- }
+ unsigned getHashValue() const { return hash_combine(Flags, CC,...
[truncated]
|
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)
…SubroutineType (#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] #91422 (comment)
[2] https://lab.llvm.org/buildbot/#/builders/64/builds/62
[3] #91422 (comment)