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 |