diff options
Diffstat (limited to 'contrib/llvm/lib/AsmParser/LLToken.h')
-rw-r--r-- | contrib/llvm/lib/AsmParser/LLToken.h | 554 |
1 files changed, 342 insertions, 212 deletions
diff --git a/contrib/llvm/lib/AsmParser/LLToken.h b/contrib/llvm/lib/AsmParser/LLToken.h index 29a7f16d3c20..37998e879503 100644 --- a/contrib/llvm/lib/AsmParser/LLToken.h +++ b/contrib/llvm/lib/AsmParser/LLToken.h @@ -16,218 +16,348 @@ 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_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_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_align, - kw_addrspace, - kw_section, - kw_alias, - 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_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc, - kw_msp430_intrcc, - 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_preserve_mostcc, kw_preserve_allcc, - kw_ghccc, - kw_x86_intrcc, - kw_hhvmcc, kw_hhvm_ccc, - kw_cxx_fast_tlscc, - - // Attributes: - kw_attributes, - 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_uwtable, - 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 - DwarfOp, // DW_OP_foo - DIFlag, // DIFlagFoo - DwarfMacinfo, // DW_MACINFO_foo - - // Type valued tokens (TyVal). - Type, - - APFloat, // APFloatVal - APSInt // APSInt - }; +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_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_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 + + // Type valued tokens (TyVal). + Type, + + APFloat, // APFloatVal + APSInt // APSInt +}; } // end namespace lltok } // end namespace llvm |