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