- //===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===// 
- // 
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
- // See https://llvm.org/LICENSE.txt for license information. 
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
- // 
- //===----------------------------------------------------------------------===// 
- // 
- // This file defines the enums for the .ll lexer. 
- // 
- //===----------------------------------------------------------------------===// 
-   
- #ifndef LLVM_ASMPARSER_LLTOKEN_H 
- #define LLVM_ASMPARSER_LLTOKEN_H 
-   
- namespace llvm { 
- namespace lltok { 
- enum Kind { 
-   // Markers 
-   Eof, 
-   Error, 
-   
-   // Tokens with no info. 
-   dotdotdot, // ... 
-   equal, 
-   comma, // =  , 
-   star,  // * 
-   lsquare, 
-   rsquare, // [  ] 
-   lbrace, 
-   rbrace, // {  } 
-   less, 
-   greater, // <  > 
-   lparen, 
-   rparen,  // (  ) 
-   exclaim, // ! 
-   bar,     // | 
-   colon,   // : 
-   
-   kw_vscale, 
-   kw_x, 
-   kw_true, 
-   kw_false, 
-   kw_declare, 
-   kw_define, 
-   kw_global, 
-   kw_constant, 
-   
-   kw_dso_local, 
-   kw_dso_preemptable, 
-   
-   kw_private, 
-   kw_internal, 
-   kw_linkonce, 
-   kw_linkonce_odr, 
-   kw_weak, // Used as a linkage, and a modifier for "cmpxchg". 
-   kw_weak_odr, 
-   kw_appending, 
-   kw_dllimport, 
-   kw_dllexport, 
-   kw_common, 
-   kw_available_externally, 
-   kw_default, 
-   kw_hidden, 
-   kw_protected, 
-   kw_unnamed_addr, 
-   kw_local_unnamed_addr, 
-   kw_externally_initialized, 
-   kw_extern_weak, 
-   kw_external, 
-   kw_thread_local, 
-   kw_localdynamic, 
-   kw_initialexec, 
-   kw_localexec, 
-   kw_zeroinitializer, 
-   kw_undef, 
-   kw_poison, 
-   kw_null, 
-   kw_none, 
-   kw_to, 
-   kw_caller, 
-   kw_within, 
-   kw_from, 
-   kw_tail, 
-   kw_musttail, 
-   kw_notail, 
-   kw_target, 
-   kw_triple, 
-   kw_source_filename, 
-   kw_unwind, 
-   kw_datalayout, 
-   kw_volatile, 
-   kw_atomic, 
-   kw_unordered, 
-   kw_monotonic, 
-   kw_acquire, 
-   kw_release, 
-   kw_acq_rel, 
-   kw_seq_cst, 
-   kw_syncscope, 
-   kw_nnan, 
-   kw_ninf, 
-   kw_nsz, 
-   kw_arcp, 
-   kw_contract, 
-   kw_reassoc, 
-   kw_afn, 
-   kw_fast, 
-   kw_nuw, 
-   kw_nsw, 
-   kw_exact, 
-   kw_inbounds, 
-   kw_inrange, 
-   kw_addrspace, 
-   kw_section, 
-   kw_partition, 
-   kw_alias, 
-   kw_ifunc, 
-   kw_module, 
-   kw_asm, 
-   kw_sideeffect, 
-   kw_inteldialect, 
-   kw_gc, 
-   kw_prefix, 
-   kw_prologue, 
-   kw_c, 
-   
-   kw_cc, 
-   kw_ccc, 
-   kw_fastcc, 
-   kw_coldcc, 
-   kw_intel_ocl_bicc, 
-   kw_cfguard_checkcc, 
-   kw_x86_stdcallcc, 
-   kw_x86_fastcallcc, 
-   kw_x86_thiscallcc, 
-   kw_x86_vectorcallcc, 
-   kw_x86_regcallcc, 
-   kw_arm_apcscc, 
-   kw_arm_aapcscc, 
-   kw_arm_aapcs_vfpcc, 
-   kw_aarch64_vector_pcs, 
-   kw_aarch64_sve_vector_pcs, 
-   kw_aarch64_sme_preservemost_from_x0, 
-   kw_aarch64_sme_preservemost_from_x2, 
-   kw_msp430_intrcc, 
-   kw_avr_intrcc, 
-   kw_avr_signalcc, 
-   kw_ptx_kernel, 
-   kw_ptx_device, 
-   kw_spir_kernel, 
-   kw_spir_func, 
-   kw_x86_64_sysvcc, 
-   kw_win64cc, 
-   kw_webkit_jscc, 
-   kw_anyregcc, 
-   kw_swiftcc, 
-   kw_swifttailcc, 
-   kw_preserve_mostcc, 
-   kw_preserve_allcc, 
-   kw_ghccc, 
-   kw_x86_intrcc, 
-   kw_hhvmcc, 
-   kw_hhvm_ccc, 
-   kw_cxx_fast_tlscc, 
-   kw_amdgpu_vs, 
-   kw_amdgpu_ls, 
-   kw_amdgpu_hs, 
-   kw_amdgpu_es, 
-   kw_amdgpu_gs, 
-   kw_amdgpu_ps, 
-   kw_amdgpu_cs, 
-   kw_amdgpu_kernel, 
-   kw_amdgpu_gfx, 
-   kw_tailcc, 
-   
-   // Attributes: 
-   kw_attributes, 
-   kw_sync, 
-   kw_async, 
- #define GET_ATTR_NAMES 
- #define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \ 
-   kw_##DISPLAY_NAME, 
- #include "llvm/IR/Attributes.inc" 
-   
-   // Memory attribute: 
-   kw_read, 
-   kw_write, 
-   kw_readwrite, 
-   kw_argmem, 
-   kw_inaccessiblemem, 
-   
-   // Legacy memory attributes: 
-   kw_argmemonly, 
-   kw_inaccessiblememonly, 
-   kw_inaccessiblemem_or_argmemonly, 
-   
-   kw_type, 
-   kw_opaque, 
-   
-   kw_comdat, 
-   
-   // Comdat types 
-   kw_any, 
-   kw_exactmatch, 
-   kw_largest, 
-   kw_nodeduplicate, 
-   kw_samesize, 
-   
-   kw_eq, 
-   kw_ne, 
-   kw_slt, 
-   kw_sgt, 
-   kw_sle, 
-   kw_sge, 
-   kw_ult, 
-   kw_ugt, 
-   kw_ule, 
-   kw_uge, 
-   kw_oeq, 
-   kw_one, 
-   kw_olt, 
-   kw_ogt, 
-   kw_ole, 
-   kw_oge, 
-   kw_ord, 
-   kw_uno, 
-   kw_ueq, 
-   kw_une, 
-   
-   // atomicrmw operations that aren't also instruction keywords. 
-   kw_xchg, 
-   kw_nand, 
-   kw_max, 
-   kw_min, 
-   kw_umax, 
-   kw_umin, 
-   kw_fmax, 
-   kw_fmin, 
-   kw_uinc_wrap, 
-   kw_udec_wrap, 
-   
-   // Instruction Opcodes (Opcode in UIntVal). 
-   kw_fneg, 
-   kw_add, 
-   kw_fadd, 
-   kw_sub, 
-   kw_fsub, 
-   kw_mul, 
-   kw_fmul, 
-   kw_udiv, 
-   kw_sdiv, 
-   kw_fdiv, 
-   kw_urem, 
-   kw_srem, 
-   kw_frem, 
-   kw_shl, 
-   kw_lshr, 
-   kw_ashr, 
-   kw_and, 
-   kw_or, 
-   kw_xor, 
-   kw_icmp, 
-   kw_fcmp, 
-   
-   kw_phi, 
-   kw_call, 
-   kw_trunc, 
-   kw_zext, 
-   kw_sext, 
-   kw_fptrunc, 
-   kw_fpext, 
-   kw_uitofp, 
-   kw_sitofp, 
-   kw_fptoui, 
-   kw_fptosi, 
-   kw_inttoptr, 
-   kw_ptrtoint, 
-   kw_bitcast, 
-   kw_addrspacecast, 
-   kw_select, 
-   kw_va_arg, 
-   
-   kw_landingpad, 
-   kw_personality, 
-   kw_cleanup, 
-   kw_catch, 
-   kw_filter, 
-   
-   kw_ret, 
-   kw_br, 
-   kw_switch, 
-   kw_indirectbr, 
-   kw_invoke, 
-   kw_resume, 
-   kw_unreachable, 
-   kw_cleanupret, 
-   kw_catchswitch, 
-   kw_catchret, 
-   kw_catchpad, 
-   kw_cleanuppad, 
-   kw_callbr, 
-   
-   kw_alloca, 
-   kw_load, 
-   kw_store, 
-   kw_fence, 
-   kw_cmpxchg, 
-   kw_atomicrmw, 
-   kw_getelementptr, 
-   
-   kw_extractelement, 
-   kw_insertelement, 
-   kw_shufflevector, 
-   kw_extractvalue, 
-   kw_insertvalue, 
-   kw_blockaddress, 
-   kw_dso_local_equivalent, 
-   kw_no_cfi, 
-   
-   kw_freeze, 
-   
-   // Metadata types. 
-   kw_distinct, 
-   
-   // Use-list order directives. 
-   kw_uselistorder, 
-   kw_uselistorder_bb, 
-   
-   // Summary index keywords 
-   kw_path, 
-   kw_hash, 
-   kw_gv, 
-   kw_guid, 
-   kw_name, 
-   kw_summaries, 
-   kw_flags, 
-   kw_blockcount, 
-   kw_linkage, 
-   kw_visibility, 
-   kw_notEligibleToImport, 
-   kw_live, 
-   kw_dsoLocal, 
-   kw_canAutoHide, 
-   kw_function, 
-   kw_insts, 
-   kw_funcFlags, 
-   kw_readNone, 
-   kw_readOnly, 
-   kw_noRecurse, 
-   kw_returnDoesNotAlias, 
-   kw_noInline, 
-   kw_alwaysInline, 
-   kw_noUnwind, 
-   kw_mayThrow, 
-   kw_hasUnknownCall, 
-   kw_mustBeUnreachable, 
-   kw_calls, 
-   kw_callee, 
-   kw_params, 
-   kw_param, 
-   kw_hotness, 
-   kw_unknown, 
-   kw_critical, 
-   kw_relbf, 
-   kw_variable, 
-   kw_vTableFuncs, 
-   kw_virtFunc, 
-   kw_aliasee, 
-   kw_refs, 
-   kw_typeIdInfo, 
-   kw_typeTests, 
-   kw_typeTestAssumeVCalls, 
-   kw_typeCheckedLoadVCalls, 
-   kw_typeTestAssumeConstVCalls, 
-   kw_typeCheckedLoadConstVCalls, 
-   kw_vFuncId, 
-   kw_offset, 
-   kw_args, 
-   kw_typeid, 
-   kw_typeidCompatibleVTable, 
-   kw_summary, 
-   kw_typeTestRes, 
-   kw_kind, 
-   kw_unsat, 
-   kw_byteArray, 
-   kw_inline, 
-   kw_single, 
-   kw_allOnes, 
-   kw_sizeM1BitWidth, 
-   kw_alignLog2, 
-   kw_sizeM1, 
-   kw_bitMask, 
-   kw_inlineBits, 
-   kw_vcall_visibility, 
-   kw_wpdResolutions, 
-   kw_wpdRes, 
-   kw_indir, 
-   kw_singleImpl, 
-   kw_branchFunnel, 
-   kw_singleImplName, 
-   kw_resByArg, 
-   kw_byArg, 
-   kw_uniformRetVal, 
-   kw_uniqueRetVal, 
-   kw_virtualConstProp, 
-   kw_info, 
-   kw_byte, 
-   kw_bit, 
-   kw_varFlags, 
-   // The following are used by MemProf summary info. 
-   kw_callsites, 
-   kw_clones, 
-   kw_stackIds, 
-   kw_allocs, 
-   kw_versions, 
-   kw_memProf, 
-   kw_notcold, 
-   kw_notcoldandcold, 
-   
-   // GV's with __attribute__((no_sanitize("address"))), or things in 
-   // -fsanitize-ignorelist when built with ASan. 
-   kw_no_sanitize_address, 
-   // GV's with __attribute__((no_sanitize("hwaddress"))), or things in 
-   // -fsanitize-ignorelist when built with HWASan. 
-   kw_no_sanitize_hwaddress, 
-   // GV's where the clang++ frontend (when ASan is used) notes that this is 
-   // dynamically initialized, and thus needs ODR detection. 
-   kw_sanitize_address_dyninit, 
-   
-   // Unsigned Valued tokens (UIntVal). 
-   LabelID,    // 42: 
-   GlobalID,   // @42 
-   LocalVarID, // %42 
-   AttrGrpID,  // #42 
-   SummaryID,  // ^42 
-   
-   // String valued tokens (StrVal). 
-   LabelStr,         // foo: 
-   GlobalVar,        // @foo @"foo" 
-   ComdatVar,        // $foo 
-   LocalVar,         // %foo %"foo" 
-   MetadataVar,      // !foo 
-   StringConstant,   // "foo" 
-   DwarfTag,         // DW_TAG_foo 
-   DwarfAttEncoding, // DW_ATE_foo 
-   DwarfVirtuality,  // DW_VIRTUALITY_foo 
-   DwarfLang,        // DW_LANG_foo 
-   DwarfCC,          // DW_CC_foo 
-   EmissionKind,     // lineTablesOnly 
-   NameTableKind,    // GNU 
-   DwarfOp,          // DW_OP_foo 
-   DIFlag,           // DIFlagFoo 
-   DISPFlag,         // DISPFlagFoo 
-   DwarfMacinfo,     // DW_MACINFO_foo 
-   ChecksumKind,     // CSK_foo 
-   
-   // Type valued tokens (TyVal). 
-   Type, 
-   
-   APFloat, // APFloatVal 
-   APSInt   // APSInt 
- }; 
- } // end namespace lltok 
- } // end namespace llvm 
-   
- #endif 
-