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