1f4a2713aSLionel Sambuc //===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===// 2f4a2713aSLionel Sambuc // 3f4a2713aSLionel Sambuc // The LLVM Compiler Infrastructure 4f4a2713aSLionel Sambuc // 5f4a2713aSLionel Sambuc // This file is distributed under the University of Illinois Open Source 6f4a2713aSLionel Sambuc // License. See LICENSE.TXT for details. 7f4a2713aSLionel Sambuc // 8f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===// 9f4a2713aSLionel Sambuc // 10f4a2713aSLionel Sambuc // This file defines the enums for the .ll lexer. 11f4a2713aSLionel Sambuc // 12f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===// 13f4a2713aSLionel Sambuc 14*0a6a1f1dSLionel Sambuc #ifndef LLVM_LIB_ASMPARSER_LLTOKEN_H 15*0a6a1f1dSLionel Sambuc #define LLVM_LIB_ASMPARSER_LLTOKEN_H 16f4a2713aSLionel Sambuc 17f4a2713aSLionel Sambuc namespace llvm { 18f4a2713aSLionel Sambuc namespace lltok { 19f4a2713aSLionel Sambuc enum Kind { 20f4a2713aSLionel Sambuc // Markers 21f4a2713aSLionel Sambuc Eof, Error, 22f4a2713aSLionel Sambuc 23f4a2713aSLionel Sambuc // Tokens with no info. 24f4a2713aSLionel Sambuc dotdotdot, // ... 25f4a2713aSLionel Sambuc equal, comma, // = , 26f4a2713aSLionel Sambuc star, // * 27f4a2713aSLionel Sambuc lsquare, rsquare, // [ ] 28f4a2713aSLionel Sambuc lbrace, rbrace, // { } 29f4a2713aSLionel Sambuc less, greater, // < > 30f4a2713aSLionel Sambuc lparen, rparen, // ( ) 31f4a2713aSLionel Sambuc backslash, // \ (not /) 32f4a2713aSLionel Sambuc exclaim, // ! 33f4a2713aSLionel Sambuc hash, // # 34f4a2713aSLionel Sambuc 35f4a2713aSLionel Sambuc kw_x, 36f4a2713aSLionel Sambuc kw_true, kw_false, 37f4a2713aSLionel Sambuc kw_declare, kw_define, 38f4a2713aSLionel Sambuc kw_global, kw_constant, 39f4a2713aSLionel Sambuc 40*0a6a1f1dSLionel Sambuc kw_private, 41f4a2713aSLionel Sambuc kw_internal, 42f4a2713aSLionel Sambuc kw_linkonce, kw_linkonce_odr, 43*0a6a1f1dSLionel Sambuc kw_weak, // Used as a linkage, and a modifier for "cmpxchg". 44*0a6a1f1dSLionel Sambuc kw_weak_odr, kw_appending, 45f4a2713aSLionel Sambuc kw_dllimport, kw_dllexport, kw_common, kw_available_externally, 46f4a2713aSLionel Sambuc kw_default, kw_hidden, kw_protected, 47f4a2713aSLionel Sambuc kw_unnamed_addr, 48f4a2713aSLionel Sambuc kw_externally_initialized, 49f4a2713aSLionel Sambuc kw_extern_weak, 50f4a2713aSLionel Sambuc kw_external, kw_thread_local, 51f4a2713aSLionel Sambuc kw_localdynamic, kw_initialexec, kw_localexec, 52f4a2713aSLionel Sambuc kw_zeroinitializer, 53f4a2713aSLionel Sambuc kw_undef, kw_null, 54f4a2713aSLionel Sambuc kw_to, 55f4a2713aSLionel Sambuc kw_tail, 56*0a6a1f1dSLionel Sambuc kw_musttail, 57f4a2713aSLionel Sambuc kw_target, 58f4a2713aSLionel Sambuc kw_triple, 59f4a2713aSLionel Sambuc kw_unwind, 60f4a2713aSLionel Sambuc kw_deplibs, // FIXME: Remove in 4.0 61f4a2713aSLionel Sambuc kw_datalayout, 62f4a2713aSLionel Sambuc kw_volatile, 63f4a2713aSLionel Sambuc kw_atomic, 64f4a2713aSLionel Sambuc kw_unordered, kw_monotonic, kw_acquire, kw_release, kw_acq_rel, kw_seq_cst, 65f4a2713aSLionel Sambuc kw_singlethread, 66f4a2713aSLionel Sambuc kw_nnan, 67f4a2713aSLionel Sambuc kw_ninf, 68f4a2713aSLionel Sambuc kw_nsz, 69f4a2713aSLionel Sambuc kw_arcp, 70f4a2713aSLionel Sambuc kw_fast, 71f4a2713aSLionel Sambuc kw_nuw, 72f4a2713aSLionel Sambuc kw_nsw, 73f4a2713aSLionel Sambuc kw_exact, 74f4a2713aSLionel Sambuc kw_inbounds, 75f4a2713aSLionel Sambuc kw_align, 76f4a2713aSLionel Sambuc kw_addrspace, 77f4a2713aSLionel Sambuc kw_section, 78f4a2713aSLionel Sambuc kw_alias, 79f4a2713aSLionel Sambuc kw_module, 80f4a2713aSLionel Sambuc kw_asm, 81f4a2713aSLionel Sambuc kw_sideeffect, 82f4a2713aSLionel Sambuc kw_alignstack, 83f4a2713aSLionel Sambuc kw_inteldialect, 84f4a2713aSLionel Sambuc kw_gc, 85f4a2713aSLionel Sambuc kw_prefix, 86*0a6a1f1dSLionel Sambuc kw_prologue, 87f4a2713aSLionel Sambuc kw_c, 88f4a2713aSLionel Sambuc 89f4a2713aSLionel Sambuc kw_cc, kw_ccc, kw_fastcc, kw_coldcc, 90f4a2713aSLionel Sambuc kw_intel_ocl_bicc, 91*0a6a1f1dSLionel Sambuc kw_x86_stdcallcc, kw_x86_fastcallcc, kw_x86_thiscallcc, kw_x86_vectorcallcc, 92f4a2713aSLionel Sambuc kw_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc, 93f4a2713aSLionel Sambuc kw_msp430_intrcc, 94f4a2713aSLionel Sambuc kw_ptx_kernel, kw_ptx_device, 95f4a2713aSLionel Sambuc kw_spir_kernel, kw_spir_func, 96f4a2713aSLionel Sambuc kw_x86_64_sysvcc, kw_x86_64_win64cc, 97f4a2713aSLionel Sambuc kw_webkit_jscc, kw_anyregcc, 98*0a6a1f1dSLionel Sambuc kw_preserve_mostcc, kw_preserve_allcc, 99*0a6a1f1dSLionel Sambuc kw_ghccc, 100f4a2713aSLionel Sambuc 101f4a2713aSLionel Sambuc // Attributes: 102f4a2713aSLionel Sambuc kw_attributes, 103f4a2713aSLionel Sambuc kw_alwaysinline, 104f4a2713aSLionel Sambuc kw_sanitize_address, 105f4a2713aSLionel Sambuc kw_builtin, 106f4a2713aSLionel Sambuc kw_byval, 107*0a6a1f1dSLionel Sambuc kw_inalloca, 108f4a2713aSLionel Sambuc kw_cold, 109*0a6a1f1dSLionel Sambuc kw_dereferenceable, 110f4a2713aSLionel Sambuc kw_inlinehint, 111f4a2713aSLionel Sambuc kw_inreg, 112*0a6a1f1dSLionel Sambuc kw_jumptable, 113f4a2713aSLionel Sambuc kw_minsize, 114f4a2713aSLionel Sambuc kw_naked, 115f4a2713aSLionel Sambuc kw_nest, 116f4a2713aSLionel Sambuc kw_noalias, 117f4a2713aSLionel Sambuc kw_nobuiltin, 118f4a2713aSLionel Sambuc kw_nocapture, 119f4a2713aSLionel Sambuc kw_noduplicate, 120f4a2713aSLionel Sambuc kw_noimplicitfloat, 121f4a2713aSLionel Sambuc kw_noinline, 122f4a2713aSLionel Sambuc kw_nonlazybind, 123*0a6a1f1dSLionel Sambuc kw_nonnull, 124f4a2713aSLionel Sambuc kw_noredzone, 125f4a2713aSLionel Sambuc kw_noreturn, 126f4a2713aSLionel Sambuc kw_nounwind, 127f4a2713aSLionel Sambuc kw_optnone, 128f4a2713aSLionel Sambuc kw_optsize, 129f4a2713aSLionel Sambuc kw_readnone, 130f4a2713aSLionel Sambuc kw_readonly, 131f4a2713aSLionel Sambuc kw_returned, 132f4a2713aSLionel Sambuc kw_returns_twice, 133f4a2713aSLionel Sambuc kw_signext, 134f4a2713aSLionel Sambuc kw_ssp, 135f4a2713aSLionel Sambuc kw_sspreq, 136f4a2713aSLionel Sambuc kw_sspstrong, 137f4a2713aSLionel Sambuc kw_sret, 138f4a2713aSLionel Sambuc kw_sanitize_thread, 139f4a2713aSLionel Sambuc kw_sanitize_memory, 140f4a2713aSLionel Sambuc kw_uwtable, 141f4a2713aSLionel Sambuc kw_zeroext, 142f4a2713aSLionel Sambuc 143f4a2713aSLionel Sambuc kw_type, 144f4a2713aSLionel Sambuc kw_opaque, 145f4a2713aSLionel Sambuc 146*0a6a1f1dSLionel Sambuc kw_comdat, 147*0a6a1f1dSLionel Sambuc 148*0a6a1f1dSLionel Sambuc // Comdat types 149*0a6a1f1dSLionel Sambuc kw_any, 150*0a6a1f1dSLionel Sambuc kw_exactmatch, 151*0a6a1f1dSLionel Sambuc kw_largest, 152*0a6a1f1dSLionel Sambuc kw_noduplicates, 153*0a6a1f1dSLionel Sambuc kw_samesize, 154*0a6a1f1dSLionel Sambuc 155f4a2713aSLionel Sambuc kw_eq, kw_ne, kw_slt, kw_sgt, kw_sle, kw_sge, kw_ult, kw_ugt, kw_ule, 156f4a2713aSLionel Sambuc kw_uge, kw_oeq, kw_one, kw_olt, kw_ogt, kw_ole, kw_oge, kw_ord, kw_uno, 157f4a2713aSLionel Sambuc kw_ueq, kw_une, 158f4a2713aSLionel Sambuc 159f4a2713aSLionel Sambuc // atomicrmw operations that aren't also instruction keywords. 160f4a2713aSLionel Sambuc kw_xchg, kw_nand, kw_max, kw_min, kw_umax, kw_umin, 161f4a2713aSLionel Sambuc 162f4a2713aSLionel Sambuc // Instruction Opcodes (Opcode in UIntVal). 163f4a2713aSLionel Sambuc kw_add, kw_fadd, kw_sub, kw_fsub, kw_mul, kw_fmul, 164f4a2713aSLionel Sambuc kw_udiv, kw_sdiv, kw_fdiv, 165f4a2713aSLionel Sambuc kw_urem, kw_srem, kw_frem, kw_shl, kw_lshr, kw_ashr, 166f4a2713aSLionel Sambuc kw_and, kw_or, kw_xor, kw_icmp, kw_fcmp, 167f4a2713aSLionel Sambuc 168f4a2713aSLionel Sambuc kw_phi, kw_call, 169f4a2713aSLionel Sambuc kw_trunc, kw_zext, kw_sext, kw_fptrunc, kw_fpext, kw_uitofp, kw_sitofp, 170f4a2713aSLionel Sambuc kw_fptoui, kw_fptosi, kw_inttoptr, kw_ptrtoint, kw_bitcast, 171f4a2713aSLionel Sambuc kw_addrspacecast, 172f4a2713aSLionel Sambuc kw_select, kw_va_arg, 173f4a2713aSLionel Sambuc 174f4a2713aSLionel Sambuc kw_landingpad, kw_personality, kw_cleanup, kw_catch, kw_filter, 175f4a2713aSLionel Sambuc 176f4a2713aSLionel Sambuc kw_ret, kw_br, kw_switch, kw_indirectbr, kw_invoke, kw_resume, 177f4a2713aSLionel Sambuc kw_unreachable, 178f4a2713aSLionel Sambuc 179f4a2713aSLionel Sambuc kw_alloca, kw_load, kw_store, kw_fence, kw_cmpxchg, kw_atomicrmw, 180f4a2713aSLionel Sambuc kw_getelementptr, 181f4a2713aSLionel Sambuc 182f4a2713aSLionel Sambuc kw_extractelement, kw_insertelement, kw_shufflevector, 183f4a2713aSLionel Sambuc kw_extractvalue, kw_insertvalue, kw_blockaddress, 184f4a2713aSLionel Sambuc 185*0a6a1f1dSLionel Sambuc // Metadata types. 186*0a6a1f1dSLionel Sambuc kw_distinct, 187*0a6a1f1dSLionel Sambuc 188*0a6a1f1dSLionel Sambuc // Use-list order directives. 189*0a6a1f1dSLionel Sambuc kw_uselistorder, kw_uselistorder_bb, 190*0a6a1f1dSLionel Sambuc 191f4a2713aSLionel Sambuc // Unsigned Valued tokens (UIntVal). 192f4a2713aSLionel Sambuc GlobalID, // @42 193f4a2713aSLionel Sambuc LocalVarID, // %42 194f4a2713aSLionel Sambuc AttrGrpID, // #42 195f4a2713aSLionel Sambuc 196f4a2713aSLionel Sambuc // String valued tokens (StrVal). 197f4a2713aSLionel Sambuc LabelStr, // foo: 198f4a2713aSLionel Sambuc GlobalVar, // @foo @"foo" 199*0a6a1f1dSLionel Sambuc ComdatVar, // $foo 200f4a2713aSLionel Sambuc LocalVar, // %foo %"foo" 201f4a2713aSLionel Sambuc MetadataVar, // !foo 202f4a2713aSLionel Sambuc StringConstant, // "foo" 203f4a2713aSLionel Sambuc 204f4a2713aSLionel Sambuc // Type valued tokens (TyVal). 205f4a2713aSLionel Sambuc Type, 206f4a2713aSLionel Sambuc 207f4a2713aSLionel Sambuc APFloat, // APFloatVal 208f4a2713aSLionel Sambuc APSInt // APSInt 209f4a2713aSLionel Sambuc }; 210f4a2713aSLionel Sambuc } // end namespace lltok 211f4a2713aSLionel Sambuc } // end namespace llvm 212f4a2713aSLionel Sambuc 213f4a2713aSLionel Sambuc #endif 214