| //===- 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_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, // | |
| colon, // : |
| |
| 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_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_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_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_aarch64_vector_pcs, |
| 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_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, |
| |
| // Attributes: |
| kw_attributes, |
| kw_allocsize, |
| kw_alwaysinline, |
| kw_argmemonly, |
| kw_sanitize_address, |
| kw_sanitize_hwaddress, |
| 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_nocf_check, |
| kw_nounwind, |
| kw_optforfuzzing, |
| kw_optnone, |
| kw_optsize, |
| kw_readnone, |
| kw_readonly, |
| kw_returned, |
| kw_returns_twice, |
| kw_signext, |
| kw_speculatable, |
| kw_ssp, |
| kw_sspreq, |
| kw_sspstrong, |
| kw_safestack, |
| kw_shadowcallstack, |
| kw_sret, |
| kw_sanitize_thread, |
| kw_sanitize_memory, |
| kw_speculative_load_hardening, |
| kw_strictfp, |
| 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_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, |
| |
| // 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_linkage, |
| kw_notEligibleToImport, |
| kw_live, |
| kw_dsoLocal, |
| kw_function, |
| kw_insts, |
| kw_funcFlags, |
| kw_readNone, |
| kw_readOnly, |
| kw_noRecurse, |
| kw_returnDoesNotAlias, |
| kw_noInline, |
| kw_calls, |
| kw_callee, |
| kw_hotness, |
| kw_unknown, |
| kw_hot, |
| kw_critical, |
| kw_relbf, |
| kw_variable, |
| 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_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_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, |
| |
| // Unsigned Valued tokens (UIntVal). |
| 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 |