[llvm] 86c7703 - [AsmParser] Automatically declare and lex attribute keywords (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 27 00:27:34 PDT 2022
Author: Nikita Popov
Date: 2022-04-27T09:27:26+02:00
New Revision: 86c770346c26ce4c9abf5a5b7ab4b5bbfdcf9d78
URL: https://github.com/llvm/llvm-project/commit/86c770346c26ce4c9abf5a5b7ab4b5bbfdcf9d78
DIFF: https://github.com/llvm/llvm-project/commit/86c770346c26ce4c9abf5a5b7ab4b5bbfdcf9d78.diff
LOG: [AsmParser] Automatically declare and lex attribute keywords (NFC)
Rather than listing these by hand, include all enum attribute
keywords from Attributes.inc. This reduces the number of places
one has to update whenever an enum attribute is added.
Differential Revision: https://reviews.llvm.org/D124465
Added:
Modified:
llvm/include/llvm/AsmParser/LLToken.h
llvm/lib/AsmParser/LLLexer.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/AsmParser/LLToken.h b/llvm/include/llvm/AsmParser/LLToken.h
index 5a1cf34321147..715401f126be8 100644
--- a/llvm/include/llvm/AsmParser/LLToken.h
+++ b/llvm/include/llvm/AsmParser/LLToken.h
@@ -112,7 +112,6 @@ enum Kind {
kw_exact,
kw_inbounds,
kw_inrange,
- kw_align,
kw_addrspace,
kw_section,
kw_partition,
@@ -121,7 +120,6 @@ enum Kind {
kw_module,
kw_asm,
kw_sideeffect,
- kw_alignstack,
kw_inteldialect,
kw_gc,
kw_prefix,
@@ -177,86 +175,12 @@ enum Kind {
// Attributes:
kw_attributes,
- kw_allocalign,
- kw_allocsize,
- kw_alwaysinline,
- kw_argmemonly,
- kw_sanitize_address,
- kw_sanitize_hwaddress,
- kw_sanitize_memtag,
- kw_builtin,
- kw_byval,
- kw_inalloca,
- kw_cold,
- kw_convergent,
- kw_dereferenceable,
- kw_dereferenceable_or_null,
- kw_disable_sanitizer_instrumentation,
- kw_elementtype,
- kw_inaccessiblememonly,
- kw_inaccessiblemem_or_argmemonly,
- kw_inlinehint,
- kw_inreg,
- kw_jumptable,
- kw_minsize,
- kw_allocptr,
- kw_naked,
- kw_nest,
- kw_noalias,
- kw_noundef,
- kw_nobuiltin,
- kw_nocallback,
- kw_nocapture,
- kw_noduplicate,
- kw_nofree,
- kw_noimplicitfloat,
- kw_noinline,
- kw_norecurse,
- kw_nonlazybind,
- kw_nomerge,
- kw_nonnull,
- kw_noprofile,
- kw_noredzone,
- kw_noreturn,
- kw_nosync,
- kw_nocf_check,
- kw_nounwind,
- kw_nosanitize_bounds,
- kw_nosanitize_coverage,
- kw_null_pointer_is_valid,
- kw_optforfuzzing,
- kw_optnone,
- kw_optsize,
- kw_preallocated,
- kw_readnone,
- kw_readonly,
- kw_returned,
- kw_returns_twice,
- kw_signext,
- kw_speculatable,
- kw_ssp,
- kw_sspreq,
- kw_sspstrong,
- kw_safestack,
- kw_shadowcallstack,
- kw_sret,
- kw_sanitize_thread,
- kw_sanitize_memory,
- kw_speculative_load_hardening,
- kw_strictfp,
- kw_swifterror,
- kw_swiftself,
- kw_swiftasync,
- kw_uwtable,
- kw_vscale_range,
- kw_willreturn,
- kw_writeonly,
- kw_zeroext,
- kw_immarg,
- kw_byref,
- kw_mustprogress,
kw_sync,
kw_async,
+#define GET_ATTR_NAMES
+#define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \
+ kw_##DISPLAY_NAME,
+#include "llvm/IR/Attributes.inc"
kw_type,
kw_opaque,
@@ -420,7 +344,6 @@ enum Kind {
kw_param,
kw_hotness,
kw_unknown,
- kw_hot,
kw_critical,
kw_relbf,
kw_variable,
diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp
index f86504f16f296..f9c6d555e9d1a 100644
--- a/llvm/lib/AsmParser/LLLexer.cpp
+++ b/llvm/lib/AsmParser/LLLexer.cpp
@@ -567,7 +567,6 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(exact);
KEYWORD(inbounds);
KEYWORD(inrange);
- KEYWORD(align);
KEYWORD(addrspace);
KEYWORD(section);
KEYWORD(partition);
@@ -576,7 +575,6 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(module);
KEYWORD(asm);
KEYWORD(sideeffect);
- KEYWORD(alignstack);
KEYWORD(inteldialect);
KEYWORD(gc);
KEYWORD(prefix);
@@ -632,88 +630,14 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(c);
KEYWORD(attributes);
-
- KEYWORD(alwaysinline);
- KEYWORD(allocalign);
- KEYWORD(allocsize);
- KEYWORD(argmemonly);
- KEYWORD(builtin);
- KEYWORD(byval);
- KEYWORD(inalloca);
- KEYWORD(cold);
- KEYWORD(convergent);
- KEYWORD(dereferenceable);
- KEYWORD(dereferenceable_or_null);
- KEYWORD(disable_sanitizer_instrumentation);
- KEYWORD(elementtype);
- KEYWORD(inaccessiblememonly);
- KEYWORD(inaccessiblemem_or_argmemonly);
- KEYWORD(inlinehint);
- KEYWORD(inreg);
- KEYWORD(jumptable);
- KEYWORD(minsize);
- KEYWORD(allocptr);
- KEYWORD(naked);
- KEYWORD(nest);
- KEYWORD(noalias);
- KEYWORD(nobuiltin);
- KEYWORD(nocallback);
- KEYWORD(nocapture);
- KEYWORD(noduplicate);
- KEYWORD(nofree);
- KEYWORD(noimplicitfloat);
- KEYWORD(noinline);
- KEYWORD(norecurse);
- KEYWORD(nonlazybind);
- KEYWORD(nomerge);
- KEYWORD(nonnull);
- KEYWORD(noprofile);
- KEYWORD(noredzone);
- KEYWORD(noreturn);
- KEYWORD(nosync);
- KEYWORD(nocf_check);
- KEYWORD(noundef);
- KEYWORD(nounwind);
- KEYWORD(nosanitize_bounds);
- KEYWORD(nosanitize_coverage);
- KEYWORD(null_pointer_is_valid);
- KEYWORD(optforfuzzing);
- KEYWORD(optnone);
- KEYWORD(optsize);
- KEYWORD(preallocated);
- KEYWORD(readnone);
- KEYWORD(readonly);
- KEYWORD(returned);
- KEYWORD(returns_twice);
- KEYWORD(signext);
- KEYWORD(speculatable);
- KEYWORD(sret);
- KEYWORD(ssp);
- KEYWORD(sspreq);
- KEYWORD(sspstrong);
- KEYWORD(strictfp);
- KEYWORD(safestack);
- KEYWORD(shadowcallstack);
- KEYWORD(sanitize_address);
- KEYWORD(sanitize_hwaddress);
- KEYWORD(sanitize_memtag);
- KEYWORD(sanitize_thread);
- KEYWORD(sanitize_memory);
- KEYWORD(speculative_load_hardening);
- KEYWORD(swifterror);
- KEYWORD(swiftself);
- KEYWORD(swiftasync);
- KEYWORD(uwtable);
- KEYWORD(vscale_range);
- KEYWORD(willreturn);
- KEYWORD(writeonly);
- KEYWORD(zeroext);
- KEYWORD(immarg);
- KEYWORD(byref);
- KEYWORD(mustprogress);
KEYWORD(sync);
KEYWORD(async);
+#define GET_ATTR_NAMES
+#define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \
+ KEYWORD(DISPLAY_NAME);
+#include "llvm/IR/Attributes.inc"
+
KEYWORD(type);
KEYWORD(opaque);
@@ -786,7 +710,6 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(param);
KEYWORD(hotness);
KEYWORD(unknown);
- KEYWORD(hot);
KEYWORD(critical);
KEYWORD(relbf);
KEYWORD(variable);
More information about the llvm-commits
mailing list