[clang] [NFC] Rename hlsl semantics to hlsl annotations (PR #89309)
Joshua Batista via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 22 10:29:47 PDT 2024
https://github.com/bob80905 updated https://github.com/llvm/llvm-project/pull/89309
>From 58f7f1c7f99f29fea39b5bd83bb74d3770a6f985 Mon Sep 17 00:00:00 2001
From: Joshua Batista <jbatista at microsoft.com>
Date: Thu, 18 Apr 2024 13:38:51 -0700
Subject: [PATCH 1/2] rename hlsl semantics to hlsl annotations
---
clang/include/clang/Basic/Attr.td | 10 ++--
.../include/clang/Basic/AttributeCommonInfo.h | 6 +--
clang/include/clang/Parse/Parser.h | 20 ++++----
clang/lib/Parse/ParseDecl.cpp | 6 +--
clang/lib/Parse/ParseHLSL.cpp | 18 ++++----
clang/utils/TableGen/ClangAttrEmitter.cpp | 46 ++++++++++---------
6 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td
index dc87a8c6f022dc..4408d517e70e58 100644
--- a/clang/include/clang/Basic/Attr.td
+++ b/clang/include/clang/Basic/Attr.td
@@ -368,8 +368,8 @@ class Clang<string name, bit allowInC = 1, int version = 1>
bit AllowInC = allowInC;
}
-// HLSL Semantic spellings
-class HLSLSemantic<string name> : Spelling<name, "HLSLSemantic">;
+// HLSL Annotation spellings
+class HLSLAnnotation<string name> : Spelling<name, "HLSLAnnotation">;
class Accessor<string name, list<Spelling> spellings> {
string Name = name;
@@ -4358,14 +4358,14 @@ def HLSLNumThreads: InheritableAttr {
}
def HLSLSV_GroupIndex: HLSLAnnotationAttr {
- let Spellings = [HLSLSemantic<"SV_GroupIndex">];
+ let Spellings = [HLSLAnnotation<"SV_GroupIndex">];
let Subjects = SubjectList<[ParmVar, GlobalVar]>;
let LangOpts = [HLSL];
let Documentation = [HLSLSV_GroupIndexDocs];
}
def HLSLResourceBinding: InheritableAttr {
- let Spellings = [HLSLSemantic<"register">];
+ let Spellings = [HLSLAnnotation<"register">];
let Subjects = SubjectList<[HLSLBufferObj, ExternalGlobalVar]>;
let LangOpts = [HLSL];
let Args = [StringArgument<"Slot">, StringArgument<"Space", 1>];
@@ -4373,7 +4373,7 @@ def HLSLResourceBinding: InheritableAttr {
}
def HLSLSV_DispatchThreadID: HLSLAnnotationAttr {
- let Spellings = [HLSLSemantic<"SV_DispatchThreadID">];
+ let Spellings = [HLSLAnnotation<"SV_DispatchThreadID">];
let Subjects = SubjectList<[ParmVar, Field]>;
let LangOpts = [HLSL];
let Documentation = [HLSLSV_DispatchThreadIDDocs];
diff --git a/clang/include/clang/Basic/AttributeCommonInfo.h b/clang/include/clang/Basic/AttributeCommonInfo.h
index ef2ddf525c9814..5f024b4b5fd782 100644
--- a/clang/include/clang/Basic/AttributeCommonInfo.h
+++ b/clang/include/clang/Basic/AttributeCommonInfo.h
@@ -52,8 +52,8 @@ class AttributeCommonInfo {
/// Context-sensitive version of a keyword attribute.
AS_ContextSensitiveKeyword,
- /// <vardecl> : <semantic>
- AS_HLSLSemantic,
+ /// <vardecl> : <annotation>
+ AS_HLSLAnnotation,
/// The attibute has no source code manifestation and is only created
/// implicitly.
@@ -120,7 +120,7 @@ class AttributeCommonInfo {
}
static Form Pragma() { return AS_Pragma; }
static Form ContextSensitiveKeyword() { return AS_ContextSensitiveKeyword; }
- static Form HLSLSemantic() { return AS_HLSLSemantic; }
+ static Form HLSLAnnotation() { return AS_HLSLAnnotation; }
static Form Implicit() { return AS_Implicit; }
private:
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h
index 23b268126de4e0..b4d13ec9d13b59 100644
--- a/clang/include/clang/Parse/Parser.h
+++ b/clang/include/clang/Parse/Parser.h
@@ -2967,25 +2967,25 @@ class Parser : public CodeCompletionHandler {
Sema::AttributeCompletion Completion = Sema::AttributeCompletion::None,
const IdentifierInfo *EnclosingScope = nullptr);
- void MaybeParseHLSLSemantics(Declarator &D,
- SourceLocation *EndLoc = nullptr) {
- assert(getLangOpts().HLSL && "MaybeParseHLSLSemantics is for HLSL only");
+ void MaybeParseHLSLAnnotations(Declarator &D,
+ SourceLocation *EndLoc = nullptr) {
+ assert(getLangOpts().HLSL && "MaybeParseHLSLAnnotations is for HLSL only");
if (Tok.is(tok::colon)) {
ParsedAttributes Attrs(AttrFactory);
- ParseHLSLSemantics(Attrs, EndLoc);
+ ParseHLSLAnnotations(Attrs, EndLoc);
D.takeAttributes(Attrs);
}
}
- void MaybeParseHLSLSemantics(ParsedAttributes &Attrs,
- SourceLocation *EndLoc = nullptr) {
- assert(getLangOpts().HLSL && "MaybeParseHLSLSemantics is for HLSL only");
+ void MaybeParseHLSLAnnotations(ParsedAttributes &Attrs,
+ SourceLocation *EndLoc = nullptr) {
+ assert(getLangOpts().HLSL && "MaybeParseHLSLAnnotations is for HLSL only");
if (getLangOpts().HLSL && Tok.is(tok::colon))
- ParseHLSLSemantics(Attrs, EndLoc);
+ ParseHLSLAnnotations(Attrs, EndLoc);
}
- void ParseHLSLSemantics(ParsedAttributes &Attrs,
- SourceLocation *EndLoc = nullptr);
+ void ParseHLSLAnnotations(ParsedAttributes &Attrs,
+ SourceLocation *EndLoc = nullptr);
Decl *ParseHLSLBuffer(SourceLocation &DeclEnd);
void MaybeParseMicrosoftAttributes(ParsedAttributes &Attrs) {
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 5f26b5a9e46bef..05ad5ecbfaa0cf 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -2222,7 +2222,7 @@ Parser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS,
}
if (getLangOpts().HLSL)
- MaybeParseHLSLSemantics(D);
+ MaybeParseHLSLAnnotations(D);
if (Tok.is(tok::kw_requires))
ParseTrailingRequiresClause(D);
@@ -2469,7 +2469,7 @@ Parser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS,
ParseDeclarator(D);
if (getLangOpts().HLSL)
- MaybeParseHLSLSemantics(D);
+ MaybeParseHLSLAnnotations(D);
if (!D.isInvalidType()) {
// C++2a [dcl.decl]p1
@@ -7699,7 +7699,7 @@ void Parser::ParseParameterDeclarationClause(
// Parse GNU attributes, if present.
MaybeParseGNUAttributes(ParmDeclarator);
if (getLangOpts().HLSL)
- MaybeParseHLSLSemantics(DS.getAttributes());
+ MaybeParseHLSLAnnotations(DS.getAttributes());
if (Tok.is(tok::kw_requires)) {
// User tried to define a requires clause in a parameter declaration,
diff --git a/clang/lib/Parse/ParseHLSL.cpp b/clang/lib/Parse/ParseHLSL.cpp
index d97985d42369ad..f4cbece31f1810 100644
--- a/clang/lib/Parse/ParseHLSL.cpp
+++ b/clang/lib/Parse/ParseHLSL.cpp
@@ -63,7 +63,7 @@ Decl *Parser::ParseHLSLBuffer(SourceLocation &DeclEnd) {
SourceLocation IdentifierLoc = ConsumeToken();
ParsedAttributes Attrs(AttrFactory);
- MaybeParseHLSLSemantics(Attrs, nullptr);
+ MaybeParseHLSLAnnotations(Attrs, nullptr);
ParseScope BufferScope(this, Scope::DeclScope);
BalancedDelimiterTracker T(*this, tok::l_brace);
@@ -118,12 +118,10 @@ static void fixSeparateAttrArgAndNumber(StringRef ArgStr, SourceLocation ArgLoc,
Slot = IdentifierLoc::create(Ctx, ArgLoc, PP.getIdentifierInfo(FixedArg));
}
-void Parser::ParseHLSLSemantics(ParsedAttributes &Attrs,
- SourceLocation *EndLoc) {
- // FIXME: HLSLSemantic is shared for Semantic and resource binding which is
- // confusing. Need a better name to avoid misunderstanding. Issue
- // https://github.com/llvm/llvm-project/issues/57882
- assert(Tok.is(tok::colon) && "Not a HLSL Semantic");
+void Parser::ParseHLSLAnnotations(ParsedAttributes &Attrs,
+ SourceLocation *EndLoc) {
+
+ assert(Tok.is(tok::colon) && "Not a HLSL Annotation");
ConsumeToken();
IdentifierInfo *II = nullptr;
@@ -141,7 +139,7 @@ void Parser::ParseHLSLSemantics(ParsedAttributes &Attrs,
if (EndLoc)
*EndLoc = Tok.getLocation();
ParsedAttr::Kind AttrKind =
- ParsedAttr::getParsedKind(II, nullptr, ParsedAttr::AS_HLSLSemantic);
+ ParsedAttr::getParsedKind(II, nullptr, ParsedAttr::AS_HLSLAnnotation);
ArgsVector ArgExprs;
switch (AttrKind) {
@@ -192,10 +190,10 @@ void Parser::ParseHLSLSemantics(ParsedAttributes &Attrs,
case ParsedAttr::AT_HLSLSV_DispatchThreadID:
break;
default:
- llvm_unreachable("invalid HLSL Semantic");
+ llvm_unreachable("invalid HLSL Annotation");
break;
}
Attrs.addNew(II, Loc, nullptr, SourceLocation(), ArgExprs.data(),
- ArgExprs.size(), ParsedAttr::Form::HLSLSemantic());
+ ArgExprs.size(), ParsedAttr::Form::HLSLAnnotation());
}
diff --git a/clang/utils/TableGen/ClangAttrEmitter.cpp b/clang/utils/TableGen/ClangAttrEmitter.cpp
index 765cbbf3b04bcf..357c4e5e852cf7 100644
--- a/clang/utils/TableGen/ClangAttrEmitter.cpp
+++ b/clang/utils/TableGen/ClangAttrEmitter.cpp
@@ -1618,7 +1618,7 @@ writePrettyPrintFunction(const Record &R,
Spelling += Namespace;
Spelling += " ";
}
- } else if (Variety == "HLSLSemantic") {
+ } else if (Variety == "HLSLAnnotation") {
Prefix = ":";
Suffix = "";
} else {
@@ -3608,7 +3608,7 @@ void EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS) {
// and declspecs. Then generate a big switch statement for each of them.
std::vector<Record *> Attrs = Records.getAllDerivedDefinitions("Attr");
std::vector<std::pair<const Record *, FlattenedSpelling>> Declspec, Microsoft,
- GNU, Pragma, HLSLSemantic;
+ GNU, Pragma, HLSLAnnotation;
std::map<std::string,
std::vector<std::pair<const Record *, FlattenedSpelling>>>
CXX, C23;
@@ -3631,8 +3631,8 @@ void EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS) {
C23[SI.nameSpace()].emplace_back(R, SI);
else if (Variety == "Pragma")
Pragma.emplace_back(R, SI);
- else if (Variety == "HLSLSemantic")
- HLSLSemantic.emplace_back(R, SI);
+ else if (Variety == "HLSLAnnotation")
+ HLSLAnnotation.emplace_back(R, SI);
}
}
@@ -3650,9 +3650,9 @@ void EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS) {
OS << "case AttributeCommonInfo::Syntax::AS_Pragma:\n";
OS << " return llvm::StringSwitch<int>(Name)\n";
GenerateHasAttrSpellingStringSwitch(Pragma, OS, "Pragma");
- OS << "case AttributeCommonInfo::Syntax::AS_HLSLSemantic:\n";
+ OS << "case AttributeCommonInfo::Syntax::AS_HLSLAnnotation:\n";
OS << " return llvm::StringSwitch<int>(Name)\n";
- GenerateHasAttrSpellingStringSwitch(HLSLSemantic, OS, "HLSLSemantic");
+ GenerateHasAttrSpellingStringSwitch(HLSLAnnotation, OS, "HLSLAnnotation");
auto fn = [&OS](const char *Spelling,
const std::map<
std::string,
@@ -4669,7 +4669,7 @@ void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS) {
std::vector<Record *> Attrs = Records.getAllDerivedDefinitions("Attr");
std::vector<StringMatcher::StringPair> GNU, Declspec, Microsoft, CXX11,
- Keywords, Pragma, C23, HLSLSemantic;
+ Keywords, Pragma, C23, HLSLAnnotation;
std::set<std::string> Seen;
for (const auto *A : Attrs) {
const Record &Attr = *A;
@@ -4720,8 +4720,8 @@ void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS) {
Matches = &Keywords;
else if (Variety == "Pragma")
Matches = &Pragma;
- else if (Variety == "HLSLSemantic")
- Matches = &HLSLSemantic;
+ else if (Variety == "HLSLAnnotation")
+ Matches = &HLSLAnnotation;
assert(Matches && "Unsupported spelling variety found");
@@ -4757,8 +4757,8 @@ void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS) {
StringMatcher("Name", Keywords, OS).Emit();
OS << " } else if (AttributeCommonInfo::AS_Pragma == Syntax) {\n";
StringMatcher("Name", Pragma, OS).Emit();
- OS << " } else if (AttributeCommonInfo::AS_HLSLSemantic == Syntax) {\n";
- StringMatcher("Name", HLSLSemantic, OS).Emit();
+ OS << " } else if (AttributeCommonInfo::AS_HLSLAnnotation == Syntax) {\n";
+ StringMatcher("Name", HLSLAnnotation, OS).Emit();
OS << " }\n";
OS << " return AttributeCommonInfo::UnknownAttribute;\n"
<< "}\n";
@@ -4876,7 +4876,7 @@ enum class SpellingKind : size_t {
Microsoft,
Keyword,
Pragma,
- HLSLSemantic,
+ HLSLAnnotation,
NumSpellingKinds
};
static const size_t NumSpellingKinds = (size_t)SpellingKind::NumSpellingKinds;
@@ -4890,15 +4890,16 @@ class SpellingList {
}
void add(const Record &Attr, FlattenedSpelling Spelling) {
- SpellingKind Kind = StringSwitch<SpellingKind>(Spelling.variety())
- .Case("GNU", SpellingKind::GNU)
- .Case("CXX11", SpellingKind::CXX11)
- .Case("C23", SpellingKind::C23)
- .Case("Declspec", SpellingKind::Declspec)
- .Case("Microsoft", SpellingKind::Microsoft)
- .Case("Keyword", SpellingKind::Keyword)
- .Case("Pragma", SpellingKind::Pragma)
- .Case("HLSLSemantic", SpellingKind::HLSLSemantic);
+ SpellingKind Kind =
+ StringSwitch<SpellingKind>(Spelling.variety())
+ .Case("GNU", SpellingKind::GNU)
+ .Case("CXX11", SpellingKind::CXX11)
+ .Case("C23", SpellingKind::C23)
+ .Case("Declspec", SpellingKind::Declspec)
+ .Case("Microsoft", SpellingKind::Microsoft)
+ .Case("Keyword", SpellingKind::Keyword)
+ .Case("Pragma", SpellingKind::Pragma)
+ .Case("HLSLAnnotation", SpellingKind::HLSLAnnotation);
std::string Name;
if (!Spelling.nameSpace().empty()) {
switch (Kind) {
@@ -5007,7 +5008,8 @@ static void WriteDocumentation(RecordKeeper &Records,
// so it must be last.
OS << ".. csv-table:: Supported Syntaxes\n";
OS << " :header: \"GNU\", \"C++11\", \"C23\", \"``__declspec``\",";
- OS << " \"Keyword\", \"``#pragma``\", \"HLSL Semantic\", \"``#pragma clang ";
+ OS << " \"Keyword\", \"``#pragma``\", \"HLSL Annotation\", \"``#pragma "
+ "clang ";
OS << "attribute``\"\n\n \"";
for (size_t Kind = 0; Kind != NumSpellingKinds; ++Kind) {
SpellingKind K = (SpellingKind)Kind;
>From f1bc688b098f41ff8515f4da4e0c08d882d67473 Mon Sep 17 00:00:00 2001
From: Joshua Batista <jbatista at microsoft.com>
Date: Mon, 22 Apr 2024 10:29:32 -0700
Subject: [PATCH 2/2] format
---
clang/lib/Serialization/ASTWriter.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index 2eb4adac53de2a..3aaad2381e36bf 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -5014,7 +5014,7 @@ void ASTWriter::WriteSpecialDeclRecords(Sema &SemaRef) {
if (!ModularCodegenDecls.empty())
Stream.EmitRecord(MODULAR_CODEGEN_DECLS, ModularCodegenDecls);
-
+
// Write the record containing tentative definitions.
RecordData TentativeDefinitions;
AddLazyVectorEmiitedDecls(*this, SemaRef.TentativeDefinitions,
@@ -5135,7 +5135,7 @@ void ASTWriter::WriteSpecialDeclRecords(Sema &SemaRef) {
}
if (!UndefinedButUsed.empty())
Stream.EmitRecord(UNDEFINED_BUT_USED, UndefinedButUsed);
-
+
// Write all delete-expressions that we would like to
// analyze later in AST.
RecordData DeleteExprsToAnalyze;
More information about the cfe-commits
mailing list