diff --git a/llvm/include/llvm/Support/AArch64BuildAttributes.h b/llvm/include/llvm/Support/AArch64BuildAttributes.h index ea293b72f9bb..2479992cf8e7 100644 --- a/llvm/include/llvm/Support/AArch64BuildAttributes.h +++ b/llvm/include/llvm/Support/AArch64BuildAttributes.h @@ -22,7 +22,7 @@ namespace llvm { -namespace AArch64BuildAttributes { +namespace AArch64BuildAttrs { /// AArch64 build attributes vendors IDs (a.k.a subsection name) enum VendorID : unsigned { @@ -69,7 +69,7 @@ enum FeatureAndBitsFlag : unsigned { Feature_PAC_Flag = 1 << 1, Feature_GCS_Flag = 1 << 2 }; -} // namespace AArch64BuildAttributes +} // namespace AArch64BuildAttrs } // namespace llvm #endif // LLVM_SUPPORT_AARCH64BUILDATTRIBUTES_H \ No newline at end of file diff --git a/llvm/lib/Support/AArch64BuildAttributes.cpp b/llvm/lib/Support/AArch64BuildAttributes.cpp index 4a6b2fd53880..e36667ca711e 100644 --- a/llvm/lib/Support/AArch64BuildAttributes.cpp +++ b/llvm/lib/Support/AArch64BuildAttributes.cpp @@ -10,9 +10,9 @@ #include "llvm/ADT/StringSwitch.h" using namespace llvm; -using namespace llvm::AArch64BuildAttributes; +using namespace llvm::AArch64BuildAttrs; -StringRef AArch64BuildAttributes::getVendorName(unsigned Vendor) { +StringRef AArch64BuildAttrs::getVendorName(unsigned Vendor) { switch (Vendor) { case AEABI_FEATURE_AND_BITS: return "aeabi_feature_and_bits"; @@ -25,14 +25,14 @@ StringRef AArch64BuildAttributes::getVendorName(unsigned Vendor) { return ""; } } -VendorID AArch64BuildAttributes::getVendorID(StringRef Vendor) { +VendorID AArch64BuildAttrs::getVendorID(StringRef Vendor) { return StringSwitch(Vendor) .Case("aeabi_feature_and_bits", AEABI_FEATURE_AND_BITS) .Case("aeabi_pauthabi", AEABI_PAUTHABI) .Default(VENDOR_UNKNOWN); } -StringRef AArch64BuildAttributes::getOptionalStr(unsigned Optional) { +StringRef AArch64BuildAttrs::getOptionalStr(unsigned Optional) { switch (Optional) { case REQUIRED: return "required"; @@ -43,18 +43,18 @@ StringRef AArch64BuildAttributes::getOptionalStr(unsigned Optional) { return ""; } } -SubsectionOptional AArch64BuildAttributes::getOptionalID(StringRef Optional) { +SubsectionOptional AArch64BuildAttrs::getOptionalID(StringRef Optional) { return StringSwitch(Optional) .Case("required", REQUIRED) .Case("optional", OPTIONAL) .Default(OPTIONAL_NOT_FOUND); } -StringRef AArch64BuildAttributes::getSubsectionOptionalUnknownError() { +StringRef AArch64BuildAttrs::getSubsectionOptionalUnknownError() { return "unknown AArch64 build attributes optionality, expected " "required|optional"; } -StringRef AArch64BuildAttributes::getTypeStr(unsigned Type) { +StringRef AArch64BuildAttrs::getTypeStr(unsigned Type) { switch (Type) { case ULEB128: return "uleb128"; @@ -65,17 +65,17 @@ StringRef AArch64BuildAttributes::getTypeStr(unsigned Type) { return ""; } } -SubsectionType AArch64BuildAttributes::getTypeID(StringRef Type) { +SubsectionType AArch64BuildAttrs::getTypeID(StringRef Type) { return StringSwitch(Type) .Cases("uleb128", "ULEB128", ULEB128) .Cases("ntbs", "NTBS", NTBS) .Default(TYPE_NOT_FOUND); } -StringRef AArch64BuildAttributes::getSubsectionTypeUnknownError() { +StringRef AArch64BuildAttrs::getSubsectionTypeUnknownError() { return "unknown AArch64 build attributes type, expected uleb128|ntbs"; } -StringRef AArch64BuildAttributes::getPauthABITagsStr(unsigned PauthABITag) { +StringRef AArch64BuildAttrs::getPauthABITagsStr(unsigned PauthABITag) { switch (PauthABITag) { case TAG_PAUTH_PLATFORM: return "Tag_PAuth_Platform"; @@ -87,7 +87,7 @@ StringRef AArch64BuildAttributes::getPauthABITagsStr(unsigned PauthABITag) { } } -PauthABITags AArch64BuildAttributes::getPauthABITagsID(StringRef PauthABITag) { +PauthABITags AArch64BuildAttrs::getPauthABITagsID(StringRef PauthABITag) { return StringSwitch(PauthABITag) .Case("Tag_PAuth_Platform", TAG_PAUTH_PLATFORM) .Case("Tag_PAuth_Schema", TAG_PAUTH_SCHEMA) @@ -95,7 +95,7 @@ PauthABITags AArch64BuildAttributes::getPauthABITagsID(StringRef PauthABITag) { } StringRef -AArch64BuildAttributes::getFeatureAndBitsTagsStr(unsigned FeatureAndBitsTag) { +AArch64BuildAttrs::getFeatureAndBitsTagsStr(unsigned FeatureAndBitsTag) { switch (FeatureAndBitsTag) { case TAG_FEATURE_BTI: return "Tag_Feature_BTI"; @@ -110,7 +110,7 @@ AArch64BuildAttributes::getFeatureAndBitsTagsStr(unsigned FeatureAndBitsTag) { } FeatureAndBitsTags -AArch64BuildAttributes::getFeatureAndBitsTagsID(StringRef FeatureAndBitsTag) { +AArch64BuildAttrs::getFeatureAndBitsTagsID(StringRef FeatureAndBitsTag) { return StringSwitch(FeatureAndBitsTag) .Case("Tag_Feature_BTI", TAG_FEATURE_BTI) .Case("Tag_Feature_PAC", TAG_FEATURE_PAC) diff --git a/llvm/lib/Support/ARMBuildAttrs.cpp b/llvm/lib/Support/ARMBuildAttributes.cpp similarity index 100% rename from llvm/lib/Support/ARMBuildAttrs.cpp rename to llvm/lib/Support/ARMBuildAttributes.cpp diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt index 122240c27b1f..a6d8a2581886 100644 --- a/llvm/lib/Support/CMakeLists.txt +++ b/llvm/lib/Support/CMakeLists.txt @@ -143,7 +143,7 @@ add_llvm_component_library(LLVMSupport APFloat.cpp APInt.cpp APSInt.cpp - ARMBuildAttrs.cpp + ARMBuildAttributes.cpp AArch64BuildAttributes.cpp ARMAttributeParser.cpp ARMWinEH.cpp diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp index 8d8520c68232..c6b4a219d201 100644 --- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp +++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp @@ -359,7 +359,7 @@ void AArch64AsmPrinter::emitStartOfAsmFile(Module &M) { if (const auto *BTE = mdconst::extract_or_null( M.getModuleFlag("branch-target-enforcement"))) { if (!BTE->isZero()) { - BAFlags |= AArch64BuildAttributes::FeatureAndBitsFlag::Feature_BTI_Flag; + BAFlags |= AArch64BuildAttrs::FeatureAndBitsFlag::Feature_BTI_Flag; GNUFlags |= ELF::GNU_PROPERTY_AARCH64_FEATURE_1_BTI; } } @@ -367,7 +367,7 @@ void AArch64AsmPrinter::emitStartOfAsmFile(Module &M) { if (const auto *GCS = mdconst::extract_or_null( M.getModuleFlag("guarded-control-stack"))) { if (!GCS->isZero()) { - BAFlags |= AArch64BuildAttributes::FeatureAndBitsFlag::Feature_GCS_Flag; + BAFlags |= AArch64BuildAttrs::FeatureAndBitsFlag::Feature_GCS_Flag; GNUFlags |= ELF::GNU_PROPERTY_AARCH64_FEATURE_1_GCS; } } @@ -375,7 +375,7 @@ void AArch64AsmPrinter::emitStartOfAsmFile(Module &M) { if (const auto *Sign = mdconst::extract_or_null( M.getModuleFlag("sign-return-address"))) { if (!Sign->isZero()) { - BAFlags |= AArch64BuildAttributes::FeatureAndBitsFlag::Feature_PAC_Flag; + BAFlags |= AArch64BuildAttrs::FeatureAndBitsFlag::Feature_PAC_Flag; GNUFlags |= ELF::GNU_PROPERTY_AARCH64_FEATURE_1_PAC; } } @@ -478,45 +478,35 @@ void AArch64AsmPrinter::emitAttributes(unsigned Flags, if (PAuthABIPlatform || PAuthABIVersion) { TS->emitAtributesSubsection( - AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_PAUTHABI), - AArch64BuildAttributes::SubsectionOptional::REQUIRED, - AArch64BuildAttributes::SubsectionType::ULEB128); - TS->emitAttribute(AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_PAUTHABI), - AArch64BuildAttributes::TAG_PAUTH_PLATFORM, - PAuthABIPlatform, "", false); - TS->emitAttribute(AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_PAUTHABI), - AArch64BuildAttributes::TAG_PAUTH_SCHEMA, PAuthABIVersion, - "", false); + AArch64BuildAttrs::getVendorName(AArch64BuildAttrs::AEABI_PAUTHABI), + AArch64BuildAttrs::SubsectionOptional::REQUIRED, + AArch64BuildAttrs::SubsectionType::ULEB128); + TS->emitAttribute( + AArch64BuildAttrs::getVendorName(AArch64BuildAttrs::AEABI_PAUTHABI), + AArch64BuildAttrs::TAG_PAUTH_PLATFORM, PAuthABIPlatform, "", false); + TS->emitAttribute( + AArch64BuildAttrs::getVendorName(AArch64BuildAttrs::AEABI_PAUTHABI), + AArch64BuildAttrs::TAG_PAUTH_SCHEMA, PAuthABIVersion, "", false); } - unsigned BTIValue = - (Flags & AArch64BuildAttributes::Feature_BTI_Flag) ? 1 : 0; - unsigned PACValue = - (Flags & AArch64BuildAttributes::Feature_PAC_Flag) ? 1 : 0; - unsigned GCSValue = - (Flags & AArch64BuildAttributes::Feature_GCS_Flag) ? 1 : 0; + unsigned BTIValue = (Flags & AArch64BuildAttrs::Feature_BTI_Flag) ? 1 : 0; + unsigned PACValue = (Flags & AArch64BuildAttrs::Feature_PAC_Flag) ? 1 : 0; + unsigned GCSValue = (Flags & AArch64BuildAttrs::Feature_GCS_Flag) ? 1 : 0; if (BTIValue || PACValue || GCSValue) { - TS->emitAtributesSubsection( - AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_FEATURE_AND_BITS), - AArch64BuildAttributes::SubsectionOptional::OPTIONAL, - AArch64BuildAttributes::SubsectionType::ULEB128); - TS->emitAttribute(AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_FEATURE_AND_BITS), - AArch64BuildAttributes::TAG_FEATURE_BTI, BTIValue, "", - false); - TS->emitAttribute(AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_FEATURE_AND_BITS), - AArch64BuildAttributes::TAG_FEATURE_PAC, PACValue, "", - false); - TS->emitAttribute(AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_FEATURE_AND_BITS), - AArch64BuildAttributes::TAG_FEATURE_GCS, GCSValue, "", - false); + TS->emitAtributesSubsection(AArch64BuildAttrs::getVendorName( + AArch64BuildAttrs::AEABI_FEATURE_AND_BITS), + AArch64BuildAttrs::SubsectionOptional::OPTIONAL, + AArch64BuildAttrs::SubsectionType::ULEB128); + TS->emitAttribute(AArch64BuildAttrs::getVendorName( + AArch64BuildAttrs::AEABI_FEATURE_AND_BITS), + AArch64BuildAttrs::TAG_FEATURE_BTI, BTIValue, "", false); + TS->emitAttribute(AArch64BuildAttrs::getVendorName( + AArch64BuildAttrs::AEABI_FEATURE_AND_BITS), + AArch64BuildAttrs::TAG_FEATURE_PAC, PACValue, "", false); + TS->emitAttribute(AArch64BuildAttrs::getVendorName( + AArch64BuildAttrs::AEABI_FEATURE_AND_BITS), + AArch64BuildAttrs::TAG_FEATURE_GCS, GCSValue, "", false); } } diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp index 27b052825d21..43f07be15e9d 100644 --- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -7843,10 +7843,10 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { // Consume the name (subsection name) StringRef SubsectionName; - AArch64BuildAttributes::VendorID SubsectionNameID; + AArch64BuildAttrs::VendorID SubsectionNameID; if (Parser.getTok().is(AsmToken::Identifier)) { SubsectionName = Parser.getTok().getIdentifier(); - SubsectionNameID = AArch64BuildAttributes::getVendorID(SubsectionName); + SubsectionNameID = AArch64BuildAttrs::getVendorID(SubsectionName); } else { Error(Parser.getTok().getLoc(), "subsection name not found"); return true; @@ -7863,14 +7863,14 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { getTargetStreamer().getAtributesSubsectionByName(SubsectionName); // Consume the first parameter (optionality parameter) - AArch64BuildAttributes::SubsectionOptional IsOptional; + AArch64BuildAttrs::SubsectionOptional IsOptional; // options: optional/required if (Parser.getTok().is(AsmToken::Identifier)) { StringRef Optionality = Parser.getTok().getIdentifier(); - IsOptional = AArch64BuildAttributes::getOptionalID(Optionality); - if (AArch64BuildAttributes::OPTIONAL_NOT_FOUND == IsOptional) { + IsOptional = AArch64BuildAttrs::getOptionalID(Optionality); + if (AArch64BuildAttrs::OPTIONAL_NOT_FOUND == IsOptional) { Error(Parser.getTok().getLoc(), - AArch64BuildAttributes::getSubsectionOptionalUnknownError() + ": " + + AArch64BuildAttrs::getSubsectionOptionalUnknownError() + ": " + Optionality); return true; } @@ -7879,10 +7879,10 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { Error(Parser.getTok().getLoc(), "optionality mismatch! subsection '" + SubsectionName + "' already exists with optionality defined as '" + - AArch64BuildAttributes::getOptionalStr( + AArch64BuildAttrs::getOptionalStr( SubsectionExists->IsOptional) + "' and not '" + - AArch64BuildAttributes::getOptionalStr(IsOptional) + "'"); + AArch64BuildAttrs::getOptionalStr(IsOptional) + "'"); return true; } } @@ -7892,15 +7892,15 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { return true; } // Check for possible IsOptional unaccepted values for known subsections - if (AArch64BuildAttributes::AEABI_FEATURE_AND_BITS == SubsectionNameID) { - if (AArch64BuildAttributes::REQUIRED == IsOptional) { + if (AArch64BuildAttrs::AEABI_FEATURE_AND_BITS == SubsectionNameID) { + if (AArch64BuildAttrs::REQUIRED == IsOptional) { Error(Parser.getTok().getLoc(), "aeabi_feature_and_bits must be marked as optional"); return true; } } - if (AArch64BuildAttributes::AEABI_PAUTHABI == SubsectionNameID) { - if (AArch64BuildAttributes::OPTIONAL == IsOptional) { + if (AArch64BuildAttrs::AEABI_PAUTHABI == SubsectionNameID) { + if (AArch64BuildAttrs::OPTIONAL == IsOptional) { Error(Parser.getTok().getLoc(), "aeabi_pauthabi must be marked as required"); return true; @@ -7913,25 +7913,23 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { } // Consume the second parameter (type parameter) - AArch64BuildAttributes::SubsectionType Type; + AArch64BuildAttrs::SubsectionType Type; if (Parser.getTok().is(AsmToken::Identifier)) { StringRef Name = Parser.getTok().getIdentifier(); - Type = AArch64BuildAttributes::getTypeID(Name); - if (AArch64BuildAttributes::TYPE_NOT_FOUND == Type) { + Type = AArch64BuildAttrs::getTypeID(Name); + if (AArch64BuildAttrs::TYPE_NOT_FOUND == Type) { Error(Parser.getTok().getLoc(), - AArch64BuildAttributes::getSubsectionTypeUnknownError() + ": " + - Name); + AArch64BuildAttrs::getSubsectionTypeUnknownError() + ": " + Name); return true; } if (SubsectionExists) { if (Type != SubsectionExists->ParameterType) { - Error(Parser.getTok().getLoc(), - "type mismatch! subsection '" + SubsectionName + - "' already exists with type defined as '" + - AArch64BuildAttributes::getTypeStr( - SubsectionExists->ParameterType) + - "' and not '" + AArch64BuildAttributes::getTypeStr(Type) + - "'"); + Error( + Parser.getTok().getLoc(), + "type mismatch! subsection '" + SubsectionName + + "' already exists with type defined as '" + + AArch64BuildAttrs::getTypeStr(SubsectionExists->ParameterType) + + "' and not '" + AArch64BuildAttrs::getTypeStr(Type) + "'"); return true; } } @@ -7941,9 +7939,9 @@ bool AArch64AsmParser::parseDirectiveAeabiSubSectionHeader(SMLoc L) { return true; } // Check for possible unaccepted 'type' values for known subsections - if (AArch64BuildAttributes::AEABI_FEATURE_AND_BITS == SubsectionNameID || - AArch64BuildAttributes::AEABI_PAUTHABI == SubsectionNameID) { - if (AArch64BuildAttributes::NTBS == Type) { + if (AArch64BuildAttrs::AEABI_FEATURE_AND_BITS == SubsectionNameID || + AArch64BuildAttrs::AEABI_PAUTHABI == SubsectionNameID) { + if (AArch64BuildAttrs::NTBS == Type) { Error(Parser.getTok().getLoc(), SubsectionName + " must be marked as ULEB128"); return true; @@ -7978,14 +7976,13 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { StringRef ActiveSubsectionName = ActiveSubsection->VendorName; unsigned ActiveSubsectionType = ActiveSubsection->ParameterType; - unsigned ActiveSubsectionID = AArch64BuildAttributes::VENDOR_UNKNOWN; - if (AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_PAUTHABI) == ActiveSubsectionName) - ActiveSubsectionID = AArch64BuildAttributes::AEABI_PAUTHABI; - if (AArch64BuildAttributes::getVendorName( - AArch64BuildAttributes::AEABI_FEATURE_AND_BITS) == + unsigned ActiveSubsectionID = AArch64BuildAttrs::VENDOR_UNKNOWN; + if (AArch64BuildAttrs::getVendorName(AArch64BuildAttrs::AEABI_PAUTHABI) == ActiveSubsectionName) - ActiveSubsectionID = AArch64BuildAttributes::AEABI_FEATURE_AND_BITS; + ActiveSubsectionID = AArch64BuildAttrs::AEABI_PAUTHABI; + if (AArch64BuildAttrs::getVendorName( + AArch64BuildAttrs::AEABI_FEATURE_AND_BITS) == ActiveSubsectionName) + ActiveSubsectionID = AArch64BuildAttrs::AEABI_FEATURE_AND_BITS; StringRef TagStr = ""; unsigned Tag; @@ -7995,21 +7992,21 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { default: assert(0 && "Subsection name error"); break; - case AArch64BuildAttributes::VENDOR_UNKNOWN: + case AArch64BuildAttrs::VENDOR_UNKNOWN: // Private subsection, accept any tag. break; - case AArch64BuildAttributes::AEABI_PAUTHABI: - Tag = AArch64BuildAttributes::getPauthABITagsID(TagStr); - if (AArch64BuildAttributes::PAUTHABI_TAG_NOT_FOUND == Tag) { + case AArch64BuildAttrs::AEABI_PAUTHABI: + Tag = AArch64BuildAttrs::getPauthABITagsID(TagStr); + if (AArch64BuildAttrs::PAUTHABI_TAG_NOT_FOUND == Tag) { Error(Parser.getTok().getLoc(), "unknown AArch64 build attribute '" + TagStr + "' for subsection '" + ActiveSubsectionName + "'"); return true; } break; - case AArch64BuildAttributes::AEABI_FEATURE_AND_BITS: - Tag = AArch64BuildAttributes::getFeatureAndBitsTagsID(TagStr); - if (AArch64BuildAttributes::FEATURE_AND_BITS_TAG_NOT_FOUND == Tag) { + case AArch64BuildAttrs::AEABI_FEATURE_AND_BITS: + Tag = AArch64BuildAttrs::getFeatureAndBitsTagsID(TagStr); + if (AArch64BuildAttrs::FEATURE_AND_BITS_TAG_NOT_FOUND == Tag) { Error(Parser.getTok().getLoc(), "unknown AArch64 build attribute '" + TagStr + "' for subsection '" + ActiveSubsectionName + "'"); @@ -8035,7 +8032,7 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { unsigned ValueInt = unsigned(-1); std::string ValueStr = ""; if (Parser.getTok().is(AsmToken::Integer)) { - if (AArch64BuildAttributes::NTBS == ActiveSubsectionType) { + if (AArch64BuildAttrs::NTBS == ActiveSubsectionType) { Error( Parser.getTok().getLoc(), "active subsection type is NTBS (string), found ULEB128 (unsigned)"); @@ -8043,7 +8040,7 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { } ValueInt = getTok().getIntVal(); } else if (Parser.getTok().is(AsmToken::Identifier)) { - if (AArch64BuildAttributes::ULEB128 == ActiveSubsectionType) { + if (AArch64BuildAttrs::ULEB128 == ActiveSubsectionType) { Error( Parser.getTok().getLoc(), "active subsection type is ULEB128 (unsigned), found NTBS (string)"); @@ -8051,7 +8048,7 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { } ValueStr = Parser.getTok().getIdentifier(); } else if (Parser.getTok().is(AsmToken::String)) { - if (AArch64BuildAttributes::ULEB128 == ActiveSubsectionType) { + if (AArch64BuildAttrs::ULEB128 == ActiveSubsectionType) { Error( Parser.getTok().getLoc(), "active subsection type is ULEB128 (unsigned), found NTBS (string)"); @@ -8064,7 +8061,7 @@ bool AArch64AsmParser::parseDirectiveAeabiAArch64Attr(SMLoc L) { } // Check for possible unaccepted values for known tags (AEABI_PAUTHABI, // AEABI_FEATURE_AND_BITS) - if (!(ActiveSubsectionID == AArch64BuildAttributes::VENDOR_UNKNOWN) && + if (!(ActiveSubsectionID == AArch64BuildAttrs::VENDOR_UNKNOWN) && TagStr != "") { // TagStr was a recognized string if (0 != ValueInt && 1 != ValueInt) { Error(Parser.getTok().getLoc(), diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp index 9f7a60074dae..6b5c5f36cbd4 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp @@ -160,13 +160,13 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { return; } - unsigned VendorID = AArch64BuildAttributes::getVendorID(VendorName); + unsigned VendorID = AArch64BuildAttrs::getVendorID(VendorName); switch (VendorID) { default: assert(0 && "Subsection name error"); break; - case AArch64BuildAttributes::VENDOR_UNKNOWN: + case AArch64BuildAttrs::VENDOR_UNKNOWN: if (unsigned(-1) != Value) { OS << "\t.aeabi_attribute" << "\t" << Tag << ", " << Value; AArch64TargetStreamer::emitAttribute(VendorName, Tag, Value, "", @@ -179,7 +179,7 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { } break; // Note: AEABI_FEATURE_AND_BITS takes only unsigned values - case AArch64BuildAttributes::AEABI_FEATURE_AND_BITS: + case AArch64BuildAttrs::AEABI_FEATURE_AND_BITS: switch (Tag) { default: // allow emitting any attribute by number OS << "\t.aeabi_attribute" << "\t" << Tag << ", " << Value; @@ -188,19 +188,18 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { AArch64TargetStreamer::emitAttribute(VendorName, Tag, Value, "", Override); break; - case AArch64BuildAttributes::TAG_FEATURE_BTI: - case AArch64BuildAttributes::TAG_FEATURE_GCS: - case AArch64BuildAttributes::TAG_FEATURE_PAC: + case AArch64BuildAttrs::TAG_FEATURE_BTI: + case AArch64BuildAttrs::TAG_FEATURE_GCS: + case AArch64BuildAttrs::TAG_FEATURE_PAC: OS << "\t.aeabi_attribute" << "\t" - << AArch64BuildAttributes::getFeatureAndBitsTagsStr(Tag) << ", " - << Value; + << AArch64BuildAttrs::getFeatureAndBitsTagsStr(Tag) << ", " << Value; AArch64TargetStreamer::emitAttribute(VendorName, Tag, Value, "", Override); break; } break; // Note: AEABI_PAUTHABI takes only unsigned values - case AArch64BuildAttributes::AEABI_PAUTHABI: + case AArch64BuildAttrs::AEABI_PAUTHABI: switch (Tag) { default: // allow emitting any attribute by number OS << "\t.aeabi_attribute" << "\t" << Tag << ", " << Value; @@ -209,10 +208,10 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { AArch64TargetStreamer::emitAttribute(VendorName, Tag, Value, "", Override); break; - case AArch64BuildAttributes::TAG_PAUTH_PLATFORM: - case AArch64BuildAttributes::TAG_PAUTH_SCHEMA: + case AArch64BuildAttrs::TAG_PAUTH_PLATFORM: + case AArch64BuildAttrs::TAG_PAUTH_SCHEMA: OS << "\t.aeabi_attribute" << "\t" - << AArch64BuildAttributes::getPauthABITagsStr(Tag) << ", " << Value; + << AArch64BuildAttrs::getPauthABITagsStr(Tag) << ", " << Value; AArch64TargetStreamer::emitAttribute(VendorName, Tag, Value, "", Override); break; @@ -223,19 +222,18 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { } void emitAtributesSubsection( - StringRef SubsectionName, - AArch64BuildAttributes::SubsectionOptional Optional, - AArch64BuildAttributes::SubsectionType ParameterType) override { + StringRef SubsectionName, AArch64BuildAttrs::SubsectionOptional Optional, + AArch64BuildAttrs::SubsectionType ParameterType) override { // The AArch64 build attributes assembly subsection header format: // ".aeabi_subsection name, optional, parameter type" // optional: required (0) optional (1) // parameter type: uleb128 or ULEB128 (0) ntbs or NTBS (1) - unsigned SubsectionID = AArch64BuildAttributes::getVendorID(SubsectionName); + unsigned SubsectionID = AArch64BuildAttrs::getVendorID(SubsectionName); assert((0 == Optional || 1 == Optional) && - AArch64BuildAttributes::getSubsectionOptionalUnknownError().data()); + AArch64BuildAttrs::getSubsectionOptionalUnknownError().data()); assert((0 == ParameterType || 1 == ParameterType) && - AArch64BuildAttributes::getSubsectionTypeUnknownError().data()); + AArch64BuildAttrs::getSubsectionTypeUnknownError().data()); std::string SubsectionTag = ".aeabi_subsection"; StringRef OptionalStr = getOptionalStr(Optional); @@ -246,20 +244,20 @@ class AArch64TargetAsmStreamer : public AArch64TargetStreamer { // Treated as a private subsection break; } - case AArch64BuildAttributes::AEABI_PAUTHABI: { - assert(AArch64BuildAttributes::REQUIRED == Optional && + case AArch64BuildAttrs::AEABI_PAUTHABI: { + assert(AArch64BuildAttrs::REQUIRED == Optional && "subsection .aeabi-pauthabi should be marked as " "required and not as optional"); - assert(AArch64BuildAttributes::ULEB128 == ParameterType && + assert(AArch64BuildAttrs::ULEB128 == ParameterType && "subsection .aeabi-pauthabi should be " "marked as uleb128 and not as ntbs"); break; } - case AArch64BuildAttributes::AEABI_FEATURE_AND_BITS: { - assert(AArch64BuildAttributes::OPTIONAL == Optional && + case AArch64BuildAttrs::AEABI_FEATURE_AND_BITS: { + assert(AArch64BuildAttrs::OPTIONAL == Optional && "subsection .aeabi_feature_and_bits should be " "marked as optional and not as required"); - assert(AArch64BuildAttributes::ULEB128 == ParameterType && + assert(AArch64BuildAttrs::ULEB128 == ParameterType && "subsection .aeabi_feature_and_bits should " "be marked as uleb128 and not as ntbs"); break; @@ -421,8 +419,8 @@ AArch64ELFStreamer &AArch64TargetELFStreamer::getStreamer() { } void AArch64TargetELFStreamer::emitAtributesSubsection( - StringRef VendorName, AArch64BuildAttributes::SubsectionOptional IsOptional, - AArch64BuildAttributes::SubsectionType ParameterType) { + StringRef VendorName, AArch64BuildAttrs::SubsectionOptional IsOptional, + AArch64BuildAttrs::SubsectionType ParameterType) { AArch64TargetStreamer::emitAtributesSubsection(VendorName, IsOptional, ParameterType); } diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp index 74ffe5f97f1b..1ed4a81a9767 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp @@ -153,8 +153,8 @@ MCTargetStreamer *llvm::createAArch64NullTargetStreamer(MCStreamer &S) { } void AArch64TargetStreamer::emitAtributesSubsection( - StringRef VendorName, AArch64BuildAttributes::SubsectionOptional IsOptional, - AArch64BuildAttributes::SubsectionType ParameterType) { + StringRef VendorName, AArch64BuildAttrs::SubsectionOptional IsOptional, + AArch64BuildAttrs::SubsectionType ParameterType) { // If exists, return. for (MCELFStreamer::AttributeSubSection &SubSection : AttributeSubSections) { diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h index b2b9afe86707..a33f0bc78c21 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h @@ -97,8 +97,8 @@ public: /// Build attributes implementation virtual void emitAtributesSubsection(StringRef VendorName, - AArch64BuildAttributes::SubsectionOptional IsOptional, - AArch64BuildAttributes::SubsectionType ParameterType); + AArch64BuildAttrs::SubsectionOptional IsOptional, + AArch64BuildAttrs::SubsectionType ParameterType); virtual void emitAttribute(StringRef VendorName, unsigned Tag, unsigned Value, std::string String, bool Override); void activateAtributesSubsection(StringRef VendorName); @@ -124,9 +124,8 @@ private: /// Build attributes implementation void emitAtributesSubsection( - StringRef VendorName, - AArch64BuildAttributes::SubsectionOptional IsOptional, - AArch64BuildAttributes::SubsectionType ParameterType) override; + StringRef VendorName, AArch64BuildAttrs::SubsectionOptional IsOptional, + AArch64BuildAttrs::SubsectionType ParameterType) override; void emitAttribute(StringRef VendorName, unsigned Tag, unsigned Value, std::string String, bool Override = false) override; void emitInst(uint32_t Inst) override;