|  | //===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file defines the enums for the .ll lexer. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef LLVM_LIB_ASMPARSER_LLTOKEN_H | 
|  | #define LLVM_LIB_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,     // | | 
|  |  | 
|  | kw_x, | 
|  | kw_true, | 
|  | kw_false, | 
|  | kw_declare, | 
|  | kw_define, | 
|  | kw_global, | 
|  | kw_constant, | 
|  |  | 
|  | 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_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_deplibs, // FIXME: Remove in 4.0 | 
|  | kw_datalayout, | 
|  | kw_volatile, | 
|  | kw_atomic, | 
|  | kw_unordered, | 
|  | kw_monotonic, | 
|  | kw_acquire, | 
|  | kw_release, | 
|  | kw_acq_rel, | 
|  | kw_seq_cst, | 
|  | kw_singlethread, | 
|  | kw_nnan, | 
|  | kw_ninf, | 
|  | kw_nsz, | 
|  | kw_arcp, | 
|  | kw_fast, | 
|  | kw_nuw, | 
|  | kw_nsw, | 
|  | kw_exact, | 
|  | kw_inbounds, | 
|  | kw_inrange, | 
|  | kw_align, | 
|  | kw_addrspace, | 
|  | kw_section, | 
|  | kw_alias, | 
|  | kw_ifunc, | 
|  | kw_module, | 
|  | kw_asm, | 
|  | kw_sideeffect, | 
|  | kw_alignstack, | 
|  | kw_inteldialect, | 
|  | kw_gc, | 
|  | kw_prefix, | 
|  | kw_prologue, | 
|  | kw_c, | 
|  |  | 
|  | kw_cc, | 
|  | kw_ccc, | 
|  | kw_fastcc, | 
|  | kw_coldcc, | 
|  | kw_intel_ocl_bicc, | 
|  | 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_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_x86_64_win64cc, | 
|  | kw_webkit_jscc, | 
|  | kw_anyregcc, | 
|  | kw_swiftcc, | 
|  | 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_gs, | 
|  | kw_amdgpu_ps, | 
|  | kw_amdgpu_cs, | 
|  | kw_amdgpu_kernel, | 
|  |  | 
|  | // Attributes: | 
|  | kw_attributes, | 
|  | kw_allocsize, | 
|  | kw_alwaysinline, | 
|  | kw_argmemonly, | 
|  | kw_sanitize_address, | 
|  | kw_builtin, | 
|  | kw_byval, | 
|  | kw_inalloca, | 
|  | kw_cold, | 
|  | kw_convergent, | 
|  | kw_dereferenceable, | 
|  | kw_dereferenceable_or_null, | 
|  | kw_inaccessiblememonly, | 
|  | kw_inaccessiblemem_or_argmemonly, | 
|  | kw_inlinehint, | 
|  | kw_inreg, | 
|  | kw_jumptable, | 
|  | kw_minsize, | 
|  | kw_naked, | 
|  | kw_nest, | 
|  | kw_noalias, | 
|  | kw_nobuiltin, | 
|  | kw_nocapture, | 
|  | kw_noduplicate, | 
|  | kw_noimplicitfloat, | 
|  | kw_noinline, | 
|  | kw_norecurse, | 
|  | kw_nonlazybind, | 
|  | kw_nonnull, | 
|  | kw_noredzone, | 
|  | kw_noreturn, | 
|  | kw_nounwind, | 
|  | kw_optnone, | 
|  | kw_optsize, | 
|  | kw_readnone, | 
|  | kw_readonly, | 
|  | kw_returned, | 
|  | kw_returns_twice, | 
|  | kw_signext, | 
|  | kw_ssp, | 
|  | kw_sspreq, | 
|  | kw_sspstrong, | 
|  | kw_safestack, | 
|  | kw_sret, | 
|  | kw_sanitize_thread, | 
|  | kw_sanitize_memory, | 
|  | kw_swifterror, | 
|  | kw_swiftself, | 
|  | kw_uwtable, | 
|  | kw_writeonly, | 
|  | kw_zeroext, | 
|  |  | 
|  | kw_type, | 
|  | kw_opaque, | 
|  |  | 
|  | kw_comdat, | 
|  |  | 
|  | // Comdat types | 
|  | kw_any, | 
|  | kw_exactmatch, | 
|  | kw_largest, | 
|  | kw_noduplicates, | 
|  | 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, | 
|  |  | 
|  | // Instruction Opcodes (Opcode in UIntVal). | 
|  | 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_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, | 
|  |  | 
|  | // Metadata types. | 
|  | kw_distinct, | 
|  |  | 
|  | // Use-list order directives. | 
|  | kw_uselistorder, | 
|  | kw_uselistorder_bb, | 
|  |  | 
|  | // Unsigned Valued tokens (UIntVal). | 
|  | GlobalID,   // @42 | 
|  | LocalVarID, // %42 | 
|  | AttrGrpID,  // #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 | 
|  | DwarfOp,          // DW_OP_foo | 
|  | DIFlag,           // DIFlagFoo | 
|  | DwarfMacinfo,     // DW_MACINFO_foo | 
|  | ChecksumKind,     // CSK_foo | 
|  |  | 
|  | // Type valued tokens (TyVal). | 
|  | Type, | 
|  |  | 
|  | APFloat, // APFloatVal | 
|  | APSInt   // APSInt | 
|  | }; | 
|  | } // end namespace lltok | 
|  | } // end namespace llvm | 
|  |  | 
|  | #endif |