Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 14 | pmbaty | 1 | //===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===// | 
| 2 | // | ||
| 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
| 4 | // See https://llvm.org/LICENSE.txt for license information. | ||
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
| 6 | // | ||
| 7 | //===----------------------------------------------------------------------===// | ||
| 8 | // | ||
| 9 | // This file defines the enums for the .ll lexer. | ||
| 10 | // | ||
| 11 | //===----------------------------------------------------------------------===// | ||
| 12 | |||
| 13 | #ifndef LLVM_ASMPARSER_LLTOKEN_H | ||
| 14 | #define LLVM_ASMPARSER_LLTOKEN_H | ||
| 15 | |||
| 16 | namespace llvm { | ||
| 17 | namespace lltok { | ||
| 18 | enum Kind { | ||
| 19 |   // Markers | ||
| 20 | Eof, | ||
| 21 | Error, | ||
| 22 | |||
| 23 |   // Tokens with no info. | ||
| 24 |   dotdotdot, // ... | ||
| 25 | equal, | ||
| 26 |   comma, // =  , | ||
| 27 |   star,  // * | ||
| 28 | lsquare, | ||
| 29 |   rsquare, // [  ] | ||
| 30 | lbrace, | ||
| 31 |   rbrace, // {  } | ||
| 32 | less, | ||
| 33 |   greater, // <  > | ||
| 34 | lparen, | ||
| 35 |   rparen,  // (  ) | ||
| 36 |   exclaim, // ! | ||
| 37 |   bar,     // | | ||
| 38 |   colon,   // : | ||
| 39 | |||
| 40 | kw_vscale, | ||
| 41 | kw_x, | ||
| 42 | kw_true, | ||
| 43 | kw_false, | ||
| 44 | kw_declare, | ||
| 45 | kw_define, | ||
| 46 | kw_global, | ||
| 47 | kw_constant, | ||
| 48 | |||
| 49 | kw_dso_local, | ||
| 50 | kw_dso_preemptable, | ||
| 51 | |||
| 52 | kw_private, | ||
| 53 | kw_internal, | ||
| 54 | kw_linkonce, | ||
| 55 | kw_linkonce_odr, | ||
| 56 |   kw_weak, // Used as a linkage, and a modifier for "cmpxchg". | ||
| 57 | kw_weak_odr, | ||
| 58 | kw_appending, | ||
| 59 | kw_dllimport, | ||
| 60 | kw_dllexport, | ||
| 61 | kw_common, | ||
| 62 | kw_available_externally, | ||
| 63 | kw_default, | ||
| 64 | kw_hidden, | ||
| 65 | kw_protected, | ||
| 66 | kw_unnamed_addr, | ||
| 67 | kw_local_unnamed_addr, | ||
| 68 | kw_externally_initialized, | ||
| 69 | kw_extern_weak, | ||
| 70 | kw_external, | ||
| 71 | kw_thread_local, | ||
| 72 | kw_localdynamic, | ||
| 73 | kw_initialexec, | ||
| 74 | kw_localexec, | ||
| 75 | kw_zeroinitializer, | ||
| 76 | kw_undef, | ||
| 77 | kw_poison, | ||
| 78 | kw_null, | ||
| 79 | kw_none, | ||
| 80 | kw_to, | ||
| 81 | kw_caller, | ||
| 82 | kw_within, | ||
| 83 | kw_from, | ||
| 84 | kw_tail, | ||
| 85 | kw_musttail, | ||
| 86 | kw_notail, | ||
| 87 | kw_target, | ||
| 88 | kw_triple, | ||
| 89 | kw_source_filename, | ||
| 90 | kw_unwind, | ||
| 91 | kw_datalayout, | ||
| 92 | kw_volatile, | ||
| 93 | kw_atomic, | ||
| 94 | kw_unordered, | ||
| 95 | kw_monotonic, | ||
| 96 | kw_acquire, | ||
| 97 | kw_release, | ||
| 98 | kw_acq_rel, | ||
| 99 | kw_seq_cst, | ||
| 100 | kw_syncscope, | ||
| 101 | kw_nnan, | ||
| 102 | kw_ninf, | ||
| 103 | kw_nsz, | ||
| 104 | kw_arcp, | ||
| 105 | kw_contract, | ||
| 106 | kw_reassoc, | ||
| 107 | kw_afn, | ||
| 108 | kw_fast, | ||
| 109 | kw_nuw, | ||
| 110 | kw_nsw, | ||
| 111 | kw_exact, | ||
| 112 | kw_inbounds, | ||
| 113 | kw_inrange, | ||
| 114 | kw_addrspace, | ||
| 115 | kw_section, | ||
| 116 | kw_partition, | ||
| 117 | kw_alias, | ||
| 118 | kw_ifunc, | ||
| 119 | kw_module, | ||
| 120 | kw_asm, | ||
| 121 | kw_sideeffect, | ||
| 122 | kw_inteldialect, | ||
| 123 | kw_gc, | ||
| 124 | kw_prefix, | ||
| 125 | kw_prologue, | ||
| 126 | kw_c, | ||
| 127 | |||
| 128 | kw_cc, | ||
| 129 | kw_ccc, | ||
| 130 | kw_fastcc, | ||
| 131 | kw_coldcc, | ||
| 132 | kw_intel_ocl_bicc, | ||
| 133 | kw_cfguard_checkcc, | ||
| 134 | kw_x86_stdcallcc, | ||
| 135 | kw_x86_fastcallcc, | ||
| 136 | kw_x86_thiscallcc, | ||
| 137 | kw_x86_vectorcallcc, | ||
| 138 | kw_x86_regcallcc, | ||
| 139 | kw_arm_apcscc, | ||
| 140 | kw_arm_aapcscc, | ||
| 141 | kw_arm_aapcs_vfpcc, | ||
| 142 | kw_aarch64_vector_pcs, | ||
| 143 | kw_aarch64_sve_vector_pcs, | ||
| 144 | kw_aarch64_sme_preservemost_from_x0, | ||
| 145 | kw_aarch64_sme_preservemost_from_x2, | ||
| 146 | kw_msp430_intrcc, | ||
| 147 | kw_avr_intrcc, | ||
| 148 | kw_avr_signalcc, | ||
| 149 | kw_ptx_kernel, | ||
| 150 | kw_ptx_device, | ||
| 151 | kw_spir_kernel, | ||
| 152 | kw_spir_func, | ||
| 153 | kw_x86_64_sysvcc, | ||
| 154 | kw_win64cc, | ||
| 155 | kw_webkit_jscc, | ||
| 156 | kw_anyregcc, | ||
| 157 | kw_swiftcc, | ||
| 158 | kw_swifttailcc, | ||
| 159 | kw_preserve_mostcc, | ||
| 160 | kw_preserve_allcc, | ||
| 161 | kw_ghccc, | ||
| 162 | kw_x86_intrcc, | ||
| 163 | kw_hhvmcc, | ||
| 164 | kw_hhvm_ccc, | ||
| 165 | kw_cxx_fast_tlscc, | ||
| 166 | kw_amdgpu_vs, | ||
| 167 | kw_amdgpu_ls, | ||
| 168 | kw_amdgpu_hs, | ||
| 169 | kw_amdgpu_es, | ||
| 170 | kw_amdgpu_gs, | ||
| 171 | kw_amdgpu_ps, | ||
| 172 | kw_amdgpu_cs, | ||
| 173 | kw_amdgpu_kernel, | ||
| 174 | kw_amdgpu_gfx, | ||
| 175 | kw_tailcc, | ||
| 176 | |||
| 177 |   // Attributes: | ||
| 178 | kw_attributes, | ||
| 179 | kw_sync, | ||
| 180 | kw_async, | ||
| 181 | #define GET_ATTR_NAMES | ||
| 182 | #define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \ | ||
| 183 |   kw_##DISPLAY_NAME, | ||
| 184 | #include "llvm/IR/Attributes.inc" | ||
| 185 | |||
| 186 |   // Memory attribute: | ||
| 187 | kw_read, | ||
| 188 | kw_write, | ||
| 189 | kw_readwrite, | ||
| 190 | kw_argmem, | ||
| 191 | kw_inaccessiblemem, | ||
| 192 | |||
| 193 |   // Legacy memory attributes: | ||
| 194 | kw_argmemonly, | ||
| 195 | kw_inaccessiblememonly, | ||
| 196 | kw_inaccessiblemem_or_argmemonly, | ||
| 197 | |||
| 198 | kw_type, | ||
| 199 | kw_opaque, | ||
| 200 | |||
| 201 | kw_comdat, | ||
| 202 | |||
| 203 |   // Comdat types | ||
| 204 | kw_any, | ||
| 205 | kw_exactmatch, | ||
| 206 | kw_largest, | ||
| 207 | kw_nodeduplicate, | ||
| 208 | kw_samesize, | ||
| 209 | |||
| 210 | kw_eq, | ||
| 211 | kw_ne, | ||
| 212 | kw_slt, | ||
| 213 | kw_sgt, | ||
| 214 | kw_sle, | ||
| 215 | kw_sge, | ||
| 216 | kw_ult, | ||
| 217 | kw_ugt, | ||
| 218 | kw_ule, | ||
| 219 | kw_uge, | ||
| 220 | kw_oeq, | ||
| 221 | kw_one, | ||
| 222 | kw_olt, | ||
| 223 | kw_ogt, | ||
| 224 | kw_ole, | ||
| 225 | kw_oge, | ||
| 226 | kw_ord, | ||
| 227 | kw_uno, | ||
| 228 | kw_ueq, | ||
| 229 | kw_une, | ||
| 230 | |||
| 231 |   // atomicrmw operations that aren't also instruction keywords. | ||
| 232 | kw_xchg, | ||
| 233 | kw_nand, | ||
| 234 | kw_max, | ||
| 235 | kw_min, | ||
| 236 | kw_umax, | ||
| 237 | kw_umin, | ||
| 238 | kw_fmax, | ||
| 239 | kw_fmin, | ||
| 240 | kw_uinc_wrap, | ||
| 241 | kw_udec_wrap, | ||
| 242 | |||
| 243 |   // Instruction Opcodes (Opcode in UIntVal). | ||
| 244 | kw_fneg, | ||
| 245 | kw_add, | ||
| 246 | kw_fadd, | ||
| 247 | kw_sub, | ||
| 248 | kw_fsub, | ||
| 249 | kw_mul, | ||
| 250 | kw_fmul, | ||
| 251 | kw_udiv, | ||
| 252 | kw_sdiv, | ||
| 253 | kw_fdiv, | ||
| 254 | kw_urem, | ||
| 255 | kw_srem, | ||
| 256 | kw_frem, | ||
| 257 | kw_shl, | ||
| 258 | kw_lshr, | ||
| 259 | kw_ashr, | ||
| 260 | kw_and, | ||
| 261 | kw_or, | ||
| 262 | kw_xor, | ||
| 263 | kw_icmp, | ||
| 264 | kw_fcmp, | ||
| 265 | |||
| 266 | kw_phi, | ||
| 267 | kw_call, | ||
| 268 | kw_trunc, | ||
| 269 | kw_zext, | ||
| 270 | kw_sext, | ||
| 271 | kw_fptrunc, | ||
| 272 | kw_fpext, | ||
| 273 | kw_uitofp, | ||
| 274 | kw_sitofp, | ||
| 275 | kw_fptoui, | ||
| 276 | kw_fptosi, | ||
| 277 | kw_inttoptr, | ||
| 278 | kw_ptrtoint, | ||
| 279 | kw_bitcast, | ||
| 280 | kw_addrspacecast, | ||
| 281 | kw_select, | ||
| 282 | kw_va_arg, | ||
| 283 | |||
| 284 | kw_landingpad, | ||
| 285 | kw_personality, | ||
| 286 | kw_cleanup, | ||
| 287 | kw_catch, | ||
| 288 | kw_filter, | ||
| 289 | |||
| 290 | kw_ret, | ||
| 291 | kw_br, | ||
| 292 | kw_switch, | ||
| 293 | kw_indirectbr, | ||
| 294 | kw_invoke, | ||
| 295 | kw_resume, | ||
| 296 | kw_unreachable, | ||
| 297 | kw_cleanupret, | ||
| 298 | kw_catchswitch, | ||
| 299 | kw_catchret, | ||
| 300 | kw_catchpad, | ||
| 301 | kw_cleanuppad, | ||
| 302 | kw_callbr, | ||
| 303 | |||
| 304 | kw_alloca, | ||
| 305 | kw_load, | ||
| 306 | kw_store, | ||
| 307 | kw_fence, | ||
| 308 | kw_cmpxchg, | ||
| 309 | kw_atomicrmw, | ||
| 310 | kw_getelementptr, | ||
| 311 | |||
| 312 | kw_extractelement, | ||
| 313 | kw_insertelement, | ||
| 314 | kw_shufflevector, | ||
| 315 | kw_extractvalue, | ||
| 316 | kw_insertvalue, | ||
| 317 | kw_blockaddress, | ||
| 318 | kw_dso_local_equivalent, | ||
| 319 | kw_no_cfi, | ||
| 320 | |||
| 321 | kw_freeze, | ||
| 322 | |||
| 323 |   // Metadata types. | ||
| 324 | kw_distinct, | ||
| 325 | |||
| 326 |   // Use-list order directives. | ||
| 327 | kw_uselistorder, | ||
| 328 | kw_uselistorder_bb, | ||
| 329 | |||
| 330 |   // Summary index keywords | ||
| 331 | kw_path, | ||
| 332 | kw_hash, | ||
| 333 | kw_gv, | ||
| 334 | kw_guid, | ||
| 335 | kw_name, | ||
| 336 | kw_summaries, | ||
| 337 | kw_flags, | ||
| 338 | kw_blockcount, | ||
| 339 | kw_linkage, | ||
| 340 | kw_visibility, | ||
| 341 | kw_notEligibleToImport, | ||
| 342 | kw_live, | ||
| 343 | kw_dsoLocal, | ||
| 344 | kw_canAutoHide, | ||
| 345 | kw_function, | ||
| 346 | kw_insts, | ||
| 347 | kw_funcFlags, | ||
| 348 | kw_readNone, | ||
| 349 | kw_readOnly, | ||
| 350 | kw_noRecurse, | ||
| 351 | kw_returnDoesNotAlias, | ||
| 352 | kw_noInline, | ||
| 353 | kw_alwaysInline, | ||
| 354 | kw_noUnwind, | ||
| 355 | kw_mayThrow, | ||
| 356 | kw_hasUnknownCall, | ||
| 357 | kw_mustBeUnreachable, | ||
| 358 | kw_calls, | ||
| 359 | kw_callee, | ||
| 360 | kw_params, | ||
| 361 | kw_param, | ||
| 362 | kw_hotness, | ||
| 363 | kw_unknown, | ||
| 364 | kw_critical, | ||
| 365 | kw_relbf, | ||
| 366 | kw_variable, | ||
| 367 | kw_vTableFuncs, | ||
| 368 | kw_virtFunc, | ||
| 369 | kw_aliasee, | ||
| 370 | kw_refs, | ||
| 371 | kw_typeIdInfo, | ||
| 372 | kw_typeTests, | ||
| 373 | kw_typeTestAssumeVCalls, | ||
| 374 | kw_typeCheckedLoadVCalls, | ||
| 375 | kw_typeTestAssumeConstVCalls, | ||
| 376 | kw_typeCheckedLoadConstVCalls, | ||
| 377 | kw_vFuncId, | ||
| 378 | kw_offset, | ||
| 379 | kw_args, | ||
| 380 | kw_typeid, | ||
| 381 | kw_typeidCompatibleVTable, | ||
| 382 | kw_summary, | ||
| 383 | kw_typeTestRes, | ||
| 384 | kw_kind, | ||
| 385 | kw_unsat, | ||
| 386 | kw_byteArray, | ||
| 387 | kw_inline, | ||
| 388 | kw_single, | ||
| 389 | kw_allOnes, | ||
| 390 | kw_sizeM1BitWidth, | ||
| 391 | kw_alignLog2, | ||
| 392 | kw_sizeM1, | ||
| 393 | kw_bitMask, | ||
| 394 | kw_inlineBits, | ||
| 395 | kw_vcall_visibility, | ||
| 396 | kw_wpdResolutions, | ||
| 397 | kw_wpdRes, | ||
| 398 | kw_indir, | ||
| 399 | kw_singleImpl, | ||
| 400 | kw_branchFunnel, | ||
| 401 | kw_singleImplName, | ||
| 402 | kw_resByArg, | ||
| 403 | kw_byArg, | ||
| 404 | kw_uniformRetVal, | ||
| 405 | kw_uniqueRetVal, | ||
| 406 | kw_virtualConstProp, | ||
| 407 | kw_info, | ||
| 408 | kw_byte, | ||
| 409 | kw_bit, | ||
| 410 | kw_varFlags, | ||
| 411 |   // The following are used by MemProf summary info. | ||
| 412 | kw_callsites, | ||
| 413 | kw_clones, | ||
| 414 | kw_stackIds, | ||
| 415 | kw_allocs, | ||
| 416 | kw_versions, | ||
| 417 | kw_memProf, | ||
| 418 | kw_notcold, | ||
| 419 | kw_notcoldandcold, | ||
| 420 | |||
| 421 |   // GV's with __attribute__((no_sanitize("address"))), or things in | ||
| 422 |   // -fsanitize-ignorelist when built with ASan. | ||
| 423 | kw_no_sanitize_address, | ||
| 424 |   // GV's with __attribute__((no_sanitize("hwaddress"))), or things in | ||
| 425 |   // -fsanitize-ignorelist when built with HWASan. | ||
| 426 | kw_no_sanitize_hwaddress, | ||
| 427 |   // GV's where the clang++ frontend (when ASan is used) notes that this is | ||
| 428 |   // dynamically initialized, and thus needs ODR detection. | ||
| 429 | kw_sanitize_address_dyninit, | ||
| 430 | |||
| 431 |   // Unsigned Valued tokens (UIntVal). | ||
| 432 |   LabelID,    // 42: | ||
| 433 |   GlobalID,   // @42 | ||
| 434 |   LocalVarID, // %42 | ||
| 435 |   AttrGrpID,  // #42 | ||
| 436 |   SummaryID,  // ^42 | ||
| 437 | |||
| 438 |   // String valued tokens (StrVal). | ||
| 439 |   LabelStr,         // foo: | ||
| 440 |   GlobalVar,        // @foo @"foo" | ||
| 441 |   ComdatVar,        // $foo | ||
| 442 |   LocalVar,         // %foo %"foo" | ||
| 443 |   MetadataVar,      // !foo | ||
| 444 |   StringConstant,   // "foo" | ||
| 445 |   DwarfTag,         // DW_TAG_foo | ||
| 446 |   DwarfAttEncoding, // DW_ATE_foo | ||
| 447 |   DwarfVirtuality,  // DW_VIRTUALITY_foo | ||
| 448 |   DwarfLang,        // DW_LANG_foo | ||
| 449 |   DwarfCC,          // DW_CC_foo | ||
| 450 |   EmissionKind,     // lineTablesOnly | ||
| 451 |   NameTableKind,    // GNU | ||
| 452 |   DwarfOp,          // DW_OP_foo | ||
| 453 |   DIFlag,           // DIFlagFoo | ||
| 454 |   DISPFlag,         // DISPFlagFoo | ||
| 455 |   DwarfMacinfo,     // DW_MACINFO_foo | ||
| 456 |   ChecksumKind,     // CSK_foo | ||
| 457 | |||
| 458 |   // Type valued tokens (TyVal). | ||
| 459 | Type, | ||
| 460 | |||
| 461 |   APFloat, // APFloatVal | ||
| 462 |   APSInt   // APSInt | ||
| 463 | }; | ||
| 464 | } // end namespace lltok | ||
| 465 | } // end namespace llvm | ||
| 466 | |||
| 467 | #endif |