forked from OSchip/llvm-project
[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
This commit is contained in:
parent
9de7b93bc0
commit
86c770346c
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue