LLVM 24.0.0git
LLToken.h
Go to the documentation of this file.
1//===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the enums for the .ll lexer.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_ASMPARSER_LLTOKEN_H
14#define LLVM_ASMPARSER_LLTOKEN_H
15
16namespace llvm {
17namespace lltok {
18enum Kind {
19 // Markers
22
23 // Tokens with no info.
24 dotdotdot, // ...
26 comma, // = ,
27 star, // *
29 rsquare, // [ ]
31 rbrace, // { }
33 greater, // < >
35 rparen, // ( )
36 exclaim, // !
37 bar, // |
38 colon, // :
39 hash, // #
40
49
52
57 kw_weak, // Used as a linkage, and a modifier for "cmpxchg".
135
196
197 // Attributes:
201#define GET_ATTR_NAMES
202#define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \
203 kw_##DISPLAY_NAME,
204#include "llvm/IR/Attributes.inc"
205
206 // Memory attribute:
216
217 // Legacy attributes:
222
223 // Captures attribute:
228
229 // denormal_fpenv attribute:
234
235 // nofpclass attribute:
241 // kw_ninf, - already an fmf
246 // kw_sub, - already an instruction
252
255
257
258 // Comdat types
264
285
286 // atomicrmw operations that aren't also instruction keywords.
303
304 // Instruction Opcodes (Opcode in UIntVal).
326
345
351
365
373
386
388
389 // Metadata types.
391
392 // Use-list order directives.
394
395 // Summary index keywords
480 // The following are used by MemProf summary info.
488
489 // GV's with __attribute__((no_sanitize("address"))), or things in
490 // -fsanitize-ignorelist when built with ASan.
492 // GV's with __attribute__((no_sanitize("hwaddress"))), or things in
493 // -fsanitize-ignorelist when built with HWASan.
495 // GV's where the clang++ frontend (when ASan is used) notes that this is
496 // dynamically initialized, and thus needs ODR detection.
498
499 // Unsigned Valued tokens (UIntVal).
500 LabelID, // 42:
501 GlobalID, // @42
503 AttrGrpID, // #42
504 SummaryID, // ^42
505
506 // String valued tokens (StrVal).
507 LabelStr, // foo:
508 GlobalVar, // @foo @"foo"
509 ComdatVar, // $foo
510 LocalVar, // %foo %"foo"
511 MetadataVar, // !foo
513 DwarfTag, // DW_TAG_foo
514 DwarfAttEncoding, // DW_ATE_foo
515 DwarfVirtuality, // DW_VIRTUALITY_foo
516 DwarfLang, // DW_LANG_foo
517 DwarfSourceLangName, // DW_LNAME_foo
518 DwarfLangDialect, // DW_LLVM_LANG_DIALECT_foo
519 DwarfCC, // DW_CC_foo
520 EmissionKind, // lineTablesOnly
522 FixedPointKind, // Fixed point
523 DwarfOp, // DW_OP_foo
524 DIFlag, // DIFlagFoo
525 DISPFlag, // DISPFlagFoo
526 DwarfMacinfo, // DW_MACINFO_foo
527 ChecksumKind, // CSK_foo
528 DbgRecordType, // dbg_foo
529 DwarfEnumKind, // DW_APPLE_ENUM_KIND_foo
530 FloatLiteral, // Unparsed float literal
531
532 // Type valued tokens (TyVal).
534
535 FloatHexLiteral, // f0x..., stored as APSInt
536 APFloat, // APFloatVal
537 APSInt // APSInt
538};
539} // end namespace lltok
540} // end namespace llvm
541
542#endif
@ kw_msp430_intrcc
Definition LLToken.h:155
@ kw_riscv_vls_cc
Definition LLToken.h:192
@ kw_cxx_fast_tlscc
Definition LLToken.h:174
@ kw_extractvalue
Definition LLToken.h:378
@ kw_dso_preemptable
Definition LLToken.h:51
@ DwarfVirtuality
Definition LLToken.h:515
@ DwarfLangDialect
Definition LLToken.h:518
@ kw_arm_apcscc
Definition LLToken.h:147
@ kw_inteldialect
Definition LLToken.h:129
@ kw_x86_stdcallcc
Definition LLToken.h:142
@ kw_constant
Definition LLToken.h:48
@ kw_initialexec
Definition LLToken.h:74
@ kw_aarch64_sme_preservemost_from_x1
Definition LLToken.h:153
@ kw_provenance
Definition LLToken.h:226
@ kw_mustBeUnreachable
Definition LLToken.h:426
@ kw_internal
Definition LLToken.h:54
@ kw_wasm_emscripten_invokecc
Definition LLToken.h:189
@ kw_target_mem
Definition LLToken.h:212
@ kw_no_sanitize_hwaddress
Definition LLToken.h:494
@ kw_datalayout
Definition LLToken.h:92
@ kw_wpdResolutions
Definition LLToken.h:465
@ kw_canAutoHide
Definition LLToken.h:409
@ kw_alwaysInline
Definition LLToken.h:422
@ kw_insertelement
Definition LLToken.h:375
@ kw_linkonce
Definition LLToken.h:55
@ kw_cheriot_librarycallcc
Definition LLToken.h:195
@ kw_fmaximumnum
Definition LLToken.h:297
@ kw_inaccessiblememonly
Definition LLToken.h:219
@ kw_amdgpu_gfx
Definition LLToken.h:185
@ kw_getelementptr
Definition LLToken.h:372
@ FloatHexLiteral
Definition LLToken.h:535
@ kw_m68k_rtdcc
Definition LLToken.h:188
@ kw_preserve_nonecc
Definition LLToken.h:169
@ kw_x86_fastcallcc
Definition LLToken.h:143
@ kw_visibility
Definition LLToken.h:405
@ kw_cheriot_compartmentcalleecc
Definition LLToken.h:194
@ kw_positivezero
Definition LLToken.h:232
@ kw_unordered
Definition LLToken.h:96
@ kw_singleImpl
Definition LLToken.h:468
@ kw_localexec
Definition LLToken.h:75
@ kw_cfguard_checkcc
Definition LLToken.h:141
@ kw_typeCheckedLoadConstVCalls
Definition LLToken.h:445
@ kw_aarch64_sve_vector_pcs
Definition LLToken.h:151
@ kw_amdgpu_kernel
Definition LLToken.h:184
@ kw_uselistorder
Definition LLToken.h:393
@ kw_blockcount
Definition LLToken.h:403
@ kw_notEligibleToImport
Definition LLToken.h:406
@ kw_linkonce_odr
Definition LLToken.h:56
@ kw_protected
Definition LLToken.h:66
@ kw_dllexport
Definition LLToken.h:61
@ kw_x86_vectorcallcc
Definition LLToken.h:145
@ kw_ptx_device
Definition LLToken.h:159
@ kw_personality
Definition LLToken.h:347
@ DwarfEnumKind
Definition LLToken.h:529
@ kw_declaration
Definition LLToken.h:412
@ kw_elementwise
Definition LLToken.h:94
@ DwarfAttEncoding
Definition LLToken.h:514
@ kw_external
Definition LLToken.h:71
@ kw_spir_kernel
Definition LLToken.h:160
@ kw_local_unnamed_addr
Definition LLToken.h:68
@ kw_hasUnknownCall
Definition LLToken.h:425
@ kw_x86_intrcc
Definition LLToken.h:171
@ kw_addrspacecast
Definition LLToken.h:342
@ kw_zeroinitializer
Definition LLToken.h:76
@ StringConstant
Definition LLToken.h:512
@ kw_x86_thiscallcc
Definition LLToken.h:144
@ kw_cheriot_compartmentcallcc
Definition LLToken.h:193
@ kw_unnamed_addr
Definition LLToken.h:67
@ NameTableKind
Definition LLToken.h:521
@ kw_inlineBits
Definition LLToken.h:463
@ kw_weak_odr
Definition LLToken.h:58
@ kw_dllimport
Definition LLToken.h:60
@ kw_argmemonly
Definition LLToken.h:218
@ kw_blockaddress
Definition LLToken.h:380
@ kw_amdgpu_gfx_whole_wave
Definition LLToken.h:186
@ kw_landingpad
Definition LLToken.h:346
@ kw_aarch64_vector_pcs
Definition LLToken.h:150
@ kw_source_filename
Definition LLToken.h:90
@ kw_typeTestAssumeConstVCalls
Definition LLToken.h:444
@ FixedPointKind
Definition LLToken.h:522
@ kw_target_mem1
Definition LLToken.h:214
@ kw_ptx_kernel
Definition LLToken.h:158
@ kw_extractelement
Definition LLToken.h:374
@ kw_branchFunnel
Definition LLToken.h:469
@ kw_typeidCompatibleVTable
Definition LLToken.h:450
@ kw_vTableFuncs
Definition LLToken.h:436
@ kw_volatile
Definition LLToken.h:93
@ kw_typeCheckedLoadVCalls
Definition LLToken.h:443
@ kw_no_sanitize_address
Definition LLToken.h:491
@ kw_inaccessiblemem_or_argmemonly
Definition LLToken.h:220
@ kw_externally_initialized
Definition LLToken.h:69
@ kw_sanitize_address_dyninit
Definition LLToken.h:497
@ DwarfSourceLangName
Definition LLToken.h:517
@ kw_noRenameOnPromotion
Definition LLToken.h:413
@ kw_amdgpu_cs_chain_preserve
Definition LLToken.h:183
@ kw_thread_local
Definition LLToken.h:72
@ kw_catchswitch
Definition LLToken.h:360
@ kw_extern_weak
Definition LLToken.h:70
@ kw_arm_aapcscc
Definition LLToken.h:148
@ kw_read_provenance
Definition LLToken.h:227
@ kw_cleanuppad
Definition LLToken.h:363
@ kw_available_externally
Definition LLToken.h:63
@ kw_singleImplName
Definition LLToken.h:470
@ kw_target_mem0
Definition LLToken.h:213
@ kw_swifttailcc
Definition LLToken.h:166
@ kw_monotonic
Definition LLToken.h:97
@ kw_typeTestAssumeVCalls
Definition LLToken.h:442
@ kw_preservesign
Definition LLToken.h:231
@ kw_attributes
Definition LLToken.h:198
@ kw_code_model
Definition LLToken.h:123
@ kw_localdynamic
Definition LLToken.h:73
@ kw_uniformRetVal
Definition LLToken.h:473
@ kw_sideeffect
Definition LLToken.h:128
@ kw_sizeM1BitWidth
Definition LLToken.h:459
@ kw_nodeduplicate
Definition LLToken.h:262
@ kw_avr_signalcc
Definition LLToken.h:157
@ kw_bitextract
Definition LLToken.h:385
@ kw_exactmatch
Definition LLToken.h:260
@ kw_fminimumnum
Definition LLToken.h:298
@ kw_unreachable
Definition LLToken.h:358
@ kw_intel_ocl_bicc
Definition LLToken.h:140
@ kw_dso_local
Definition LLToken.h:50
@ kw_returnDoesNotAlias
Definition LLToken.h:420
@ kw_aarch64_sme_preservemost_from_x0
Definition LLToken.h:152
@ kw_preserve_allcc
Definition LLToken.h:168
@ kw_importType
Definition LLToken.h:410
@ kw_cleanupret
Definition LLToken.h:359
@ kw_shufflevector
Definition LLToken.h:376
@ kw_riscv_vector_cc
Definition LLToken.h:191
@ kw_avr_intrcc
Definition LLToken.h:156
@ kw_definition
Definition LLToken.h:411
@ kw_virtualConstProp
Definition LLToken.h:475
@ kw_vcall_visibility
Definition LLToken.h:464
@ kw_appending
Definition LLToken.h:59
@ kw_inaccessiblemem
Definition LLToken.h:211
@ kw_preserve_mostcc
Definition LLToken.h:167
@ kw_arm_aapcs_vfpcc
Definition LLToken.h:149
@ kw_typeTestRes
Definition LLToken.h:452
@ kw_x86_regcallcc
Definition LLToken.h:146
@ kw_typeIdInfo
Definition LLToken.h:440
@ kw_amdgpu_cs_chain
Definition LLToken.h:182
@ kw_dso_local_equivalent
Definition LLToken.h:381
@ kw_x86_64_sysvcc
Definition LLToken.h:162
@ DbgRecordType
Definition LLToken.h:528
@ kw_address_is_null
Definition LLToken.h:225
@ kw_musttail
Definition LLToken.h:86
@ kw_aarch64_sme_preservemost_from_x2
Definition LLToken.h:154
@ kw_uniqueRetVal
Definition LLToken.h:474
@ kw_insertvalue
Definition LLToken.h:379
@ kw_indirectbr
Definition LLToken.h:355
This is an optimization pass for GlobalISel generic memory operations.