LLVM: lib/CodeGen/MIRParser/MILexer.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_LIB_CODEGEN_MIRPARSER_MILEXER_H
15#define LLVM_LIB_CODEGEN_MIRPARSER_MILEXER_H
16
19#include
20
21namespace llvm {
22
24
25
28
32
33
49
50
149
150
152
153
161
162
174
175
190 };
191
192private:
193 TokenKind Kind = Error;
196 std::string StringValueStorage;
198
199public:
201
203
207
209
211
213
215
220
228
234
236
238
240
242
243
245
247
255};
256
257
258
262
263}
264
265#endif
This file implements the APSInt class, which is a simple class that represents an arbitrary sized int...
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
An arbitrary precision integer that knows its signedness.
Lightweight error class with error context and mandatory checking.
StringRef - Represent a constant reference to a string, i.e.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
StringRef lexMIToken(StringRef Source, MIToken &Token, function_ref< void(StringRef::iterator, const Twine &)> ErrorCallback)
Consume a single machine instruction token in the given source and return the remaining source string...
A token produced by the machine instruction lexer.
Definition MILexer.h:26
bool isRegisterFlag() const
Definition MILexer.h:221
MIToken & setStringValue(StringRef StrVal)
TokenKind kind() const
Definition MILexer.h:208
bool isNewlineOrEOF() const
Definition MILexer.h:212
bool hasIntegerValue() const
Definition MILexer.h:248
bool isNot(TokenKind K) const
Definition MILexer.h:237
bool is(TokenKind K) const
Definition MILexer.h:235
bool isMemoryOperandFlag() const
Definition MILexer.h:229
StringRef stringValue() const
Return the token's string value.
Definition MILexer.h:244
TokenKind
Definition MILexer.h:27
@ kw_float
Definition MILexer.h:107
@ StackObject
Definition MILexer.h:168
@ kw_target_flags
Definition MILexer.h:112
@ kw_landing_pad
Definition MILexer.h:127
@ kw_addrspace
Definition MILexer.h:118
@ kw_half
Definition MILexer.h:105
@ kw_stack
Definition MILexer.h:119
@ kw_blockaddress
Definition MILexer.h:102
@ kw_contract
Definition MILexer.h:69
@ kw_pre_instr_symbol
Definition MILexer.h:135
@ md_alias_scope
Definition MILexer.h:155
@ comma
Definition MILexer.h:34
@ rbrace
Definition MILexer.h:44
@ kw_volatile
Definition MILexer.h:113
@ underscore
Definition MILexer.h:36
@ kw_intrinsic
Definition MILexer.h:103
@ kw_x86_fp80
Definition MILexer.h:109
@ NamedGlobalValue
Definition MILexer.h:170
@ kw_deactivation_symbol
Definition MILexer.h:140
@ kw_call_frame_size
Definition MILexer.h:147
@ kw_nuw
Definition MILexer.h:73
@ kw_align
Definition MILexer.h:116
@ kw_distinct
Definition MILexer.h:151
@ SubRegisterIndex
Definition MILexer.h:188
@ kw_frame_setup
Definition MILexer.h:63
@ kw_exact
Definition MILexer.h:75
@ kw_cfi_aarch64_negate_ra_sign_state
Definition MILexer.h:100
@ ConstantPoolItem
Definition MILexer.h:181
@ kw_afn
Definition MILexer.h:70
@ kw_bb_id
Definition MILexer.h:142
@ Newline
Definition MILexer.h:31
@ kw_dead
Definition MILexer.h:54
@ kw_cfi_llvm_def_aspace_cfa
Definition MILexer.h:93
@ kw_nneg
Definition MILexer.h:78
@ MachineBasicBlock
Definition MILexer.h:167
@ kw_dbg_instr_ref
Definition MILexer.h:84
@ md_diexpr
Definition MILexer.h:159
@ greater
Definition MILexer.h:48
@ kw_ninf
Definition MILexer.h:66
@ NamedVirtualRegister
Definition MILexer.h:165
@ kw_early_clobber
Definition MILexer.h:59
@ kw_cfi_offset
Definition MILexer.h:86
@ less
Definition MILexer.h:47
@ VectorLiteral
Definition MILexer.h:179
@ IRValue
Definition MILexer.h:186
@ kw_nusw
Definition MILexer.h:72
@ kw_liveins
Definition MILexer.h:130
@ kw_bfloat
Definition MILexer.h:106
@ kw_jump_table
Definition MILexer.h:121
@ kw_nnan
Definition MILexer.h:65
@ kw_tied_def
Definition MILexer.h:62
@ kw_arcp
Definition MILexer.h:68
@ kw_unpredictable
Definition MILexer.h:77
@ Error
Definition MILexer.h:30
@ FloatingPointLiteral
Definition MILexer.h:177
@ kw_debug_use
Definition MILexer.h:60
@ kw_call_entry
Definition MILexer.h:123
@ kw_cfi_window_save
Definition MILexer.h:99
@ dot
Definition MILexer.h:39
@ coloncolon
Definition MILexer.h:38
@ kw_constant_pool
Definition MILexer.h:122
@ kw_double
Definition MILexer.h:108
@ kw_frame_destroy
Definition MILexer.h:64
@ kw_cfi_undefined
Definition MILexer.h:98
@ StringConstant
Definition MILexer.h:189
@ MachineBasicBlockLabel
Definition MILexer.h:166
@ lbrace
Definition MILexer.h:43
@ plus
Definition MILexer.h:45
@ kw_nsz
Definition MILexer.h:67
@ kw_cfi_restore
Definition MILexer.h:96
@ GlobalValue
Definition MILexer.h:171
@ kw_ppc_fp128
Definition MILexer.h:111
@ kw_disjoint
Definition MILexer.h:79
@ kw_cfi_type
Definition MILexer.h:139
@ NamedIRBlock
Definition MILexer.h:183
@ kw_non_temporal
Definition MILexer.h:114
@ kw_intpred
Definition MILexer.h:133
@ kw_cfi_register
Definition MILexer.h:94
@ kw_basealign
Definition MILexer.h:117
@ kw_inlineasm_br_indirect_target
Definition MILexer.h:128
@ Eof
Definition MILexer.h:29
@ kw_cfi_rel_offset
Definition MILexer.h:87
@ kw_ehfunclet_entry
Definition MILexer.h:129
@ minus
Definition MILexer.h:46
@ NamedIRValue
Definition MILexer.h:185
@ kw_cfi_aarch64_negate_ra_sign_state_with_pc
Definition MILexer.h:101
@ Identifier
Definition MILexer.h:163
@ kw_cfi_def_cfa_register
Definition MILexer.h:88
@ FixedStackObject
Definition MILexer.h:169
@ kw_cfi_same_value
Definition MILexer.h:85
@ lparen
Definition MILexer.h:41
@ kw_target_index
Definition MILexer.h:104
@ kw_nsw
Definition MILexer.h:74
@ kw_cfi_adjust_cfa_offset
Definition MILexer.h:90
@ kw_dereferenceable
Definition MILexer.h:55
@ kw_implicit_define
Definition MILexer.h:52
@ kw_invariant
Definition MILexer.h:115
@ kw_cfi_def_cfa
Definition MILexer.h:92
@ kw_cfi_escape
Definition MILexer.h:91
@ kw_inbounds
Definition MILexer.h:81
@ kw_liveout
Definition MILexer.h:126
@ VirtualRegister
Definition MILexer.h:180
@ kw_cfi_def_cfa_offset
Definition MILexer.h:89
@ md_noalias
Definition MILexer.h:156
@ kw_implicit
Definition MILexer.h:51
@ equal
Definition MILexer.h:35
@ md_range
Definition MILexer.h:158
@ HexLiteral
Definition MILexer.h:178
@ kw_lanemask
Definition MILexer.h:125
@ IRBlock
Definition MILexer.h:184
@ kw_custom
Definition MILexer.h:124
@ kw_machine_block_address_taken
Definition MILexer.h:146
@ md_dilocation
Definition MILexer.h:160
@ kw_floatpred
Definition MILexer.h:132
@ kw_renamable
Definition MILexer.h:61
@ ExternalSymbol
Definition MILexer.h:172
@ kw_unknown_size
Definition MILexer.h:143
@ IntegerLiteral
Definition MILexer.h:176
@ kw_reassoc
Definition MILexer.h:71
@ colon
Definition MILexer.h:37
@ kw_successors
Definition MILexer.h:131
@ kw_samesign
Definition MILexer.h:80
@ kw_got
Definition MILexer.h:120
@ MCSymbol
Definition MILexer.h:173
@ NamedRegister
Definition MILexer.h:164
@ kw_def
Definition MILexer.h:53
@ kw_fp128
Definition MILexer.h:110
@ kw_cfi_remember_state
Definition MILexer.h:95
@ kw_debug_instr_number
Definition MILexer.h:83
@ kw_killed
Definition MILexer.h:56
@ kw_pcsections
Definition MILexer.h:138
@ kw_internal
Definition MILexer.h:58
@ QuotedIRValue
Definition MILexer.h:187
@ exclaim
Definition MILexer.h:40
@ kw_post_instr_symbol
Definition MILexer.h:136
@ md_tbaa
Definition MILexer.h:154
@ kw_cfi_restore_state
Definition MILexer.h:97
@ rparen
Definition MILexer.h:42
@ kw_nofpexcept
Definition MILexer.h:76
@ kw_ir_block_address_taken
Definition MILexer.h:145
@ kw_unknown_address
Definition MILexer.h:144
@ JumpTableIndex
Definition MILexer.h:182
@ kw_undef
Definition MILexer.h:57
@ md_noalias_addrspace
Definition MILexer.h:157
@ kw_shufflemask
Definition MILexer.h:134
@ kw_debug_location
Definition MILexer.h:82
@ kw_noconvergent
Definition MILexer.h:148
@ kw_heap_alloc_marker
Definition MILexer.h:137
@ kw_bbsections
Definition MILexer.h:141
StringRef range() const
Definition MILexer.h:241
bool isRegister() const
Definition MILexer.h:216
MIToken & setIntegerValue(APSInt IntVal)
bool isErrorOrEOF() const
Definition MILexer.h:214
MIToken & reset(TokenKind Kind, StringRef Range)
bool isError() const
Definition MILexer.h:210
MIToken & setOwnedStringValue(std::string StrVal)
StringRef::iterator location() const
Definition MILexer.h:239
const APSInt & integerValue() const
Definition MILexer.h:246