aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser/llvmAsmParser.h.cvs
blob: 322b4582662517458fa07f3776e4363f2aa80150 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
typedef union {
  llvm::Module                           *ModuleVal;
  llvm::Function                         *FunctionVal;
  llvm::BasicBlock                       *BasicBlockVal;
  llvm::TerminatorInst                   *TermInstVal;
  llvm::Instruction                      *InstVal;
  llvm::Constant                         *ConstVal;

  const llvm::Type                       *PrimType;
  std::list<llvm::PATypeHolder>          *TypeList;
  llvm::PATypeHolder                     *TypeVal;
  llvm::Value                            *ValueVal;
  std::vector<llvm::Value*>              *ValueList;
  llvm::ArgListType                      *ArgList;
  llvm::TypeWithAttrs                     TypeWithAttrs;
  llvm::TypeWithAttrsList                *TypeWithAttrsList;
  llvm::ValueRefList                     *ValueRefList;

  // Represent the RHS of PHI node
  std::list<std::pair<llvm::Value*,
                      llvm::BasicBlock*> > *PHIList;
  std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
  std::vector<llvm::Constant*>           *ConstVector;

  llvm::GlobalValue::LinkageTypes         Linkage;
  llvm::GlobalValue::VisibilityTypes      Visibility;
  uint16_t                          ParamAttrs;
  llvm::APInt                       *APIntVal;
  int64_t                           SInt64Val;
  uint64_t                          UInt64Val;
  int                               SIntVal;
  unsigned                          UIntVal;
  double                            FPVal;
  bool                              BoolVal;

  std::string                      *StrVal;   // This memory must be deleted
  llvm::ValID                       ValIDVal;

  llvm::Instruction::BinaryOps      BinaryOpVal;
  llvm::Instruction::TermOps        TermOpVal;
  llvm::Instruction::MemoryOps      MemOpVal;
  llvm::Instruction::CastOps        CastOpVal;
  llvm::Instruction::OtherOps       OtherOpVal;
  llvm::ICmpInst::Predicate         IPredicate;
  llvm::FCmpInst::Predicate         FPredicate;
} YYSTYPE;
#define	ESINT64VAL	257
#define	EUINT64VAL	258
#define	ESAPINTVAL	259
#define	EUAPINTVAL	260
#define	LOCALVAL_ID	261
#define	GLOBALVAL_ID	262
#define	FPVAL	263
#define	VOID	264
#define	INTTYPE	265
#define	FLOAT	266
#define	DOUBLE	267
#define	X86_FP80	268
#define	FP128	269
#define	PPC_FP128	270
#define	LABEL	271
#define	TYPE	272
#define	LOCALVAR	273
#define	GLOBALVAR	274
#define	LABELSTR	275
#define	STRINGCONSTANT	276
#define	ATSTRINGCONSTANT	277
#define	PCTSTRINGCONSTANT	278
#define	ZEROINITIALIZER	279
#define	TRUETOK	280
#define	FALSETOK	281
#define	BEGINTOK	282
#define	ENDTOK	283
#define	DECLARE	284
#define	DEFINE	285
#define	GLOBAL	286
#define	CONSTANT	287
#define	SECTION	288
#define	ALIAS	289
#define	VOLATILE	290
#define	THREAD_LOCAL	291
#define	TO	292
#define	DOTDOTDOT	293
#define	NULL_TOK	294
#define	UNDEF	295
#define	INTERNAL	296
#define	LINKONCE	297
#define	WEAK	298
#define	APPENDING	299
#define	DLLIMPORT	300
#define	DLLEXPORT	301
#define	EXTERN_WEAK	302
#define	OPAQUE	303
#define	EXTERNAL	304
#define	TARGET	305
#define	TRIPLE	306
#define	ALIGN	307
#define	DEPLIBS	308
#define	CALL	309
#define	TAIL	310
#define	ASM_TOK	311
#define	MODULE	312
#define	SIDEEFFECT	313
#define	CC_TOK	314
#define	CCC_TOK	315
#define	FASTCC_TOK	316
#define	COLDCC_TOK	317
#define	X86_STDCALLCC_TOK	318
#define	X86_FASTCALLCC_TOK	319
#define	DATALAYOUT	320
#define	RET	321
#define	BR	322
#define	SWITCH	323
#define	INVOKE	324
#define	UNWIND	325
#define	UNREACHABLE	326
#define	ADD	327
#define	SUB	328
#define	MUL	329
#define	UDIV	330
#define	SDIV	331
#define	FDIV	332
#define	UREM	333
#define	SREM	334
#define	FREM	335
#define	AND	336
#define	OR	337
#define	XOR	338
#define	SHL	339
#define	LSHR	340
#define	ASHR	341
#define	ICMP	342
#define	FCMP	343
#define	EQ	344
#define	NE	345
#define	SLT	346
#define	SGT	347
#define	SLE	348
#define	SGE	349
#define	ULT	350
#define	UGT	351
#define	ULE	352
#define	UGE	353
#define	OEQ	354
#define	ONE	355
#define	OLT	356
#define	OGT	357
#define	OLE	358
#define	OGE	359
#define	ORD	360
#define	UNO	361
#define	UEQ	362
#define	UNE	363
#define	MALLOC	364
#define	ALLOCA	365
#define	FREE	366
#define	LOAD	367
#define	STORE	368
#define	GETELEMENTPTR	369
#define	TRUNC	370
#define	ZEXT	371
#define	SEXT	372
#define	FPTRUNC	373
#define	FPEXT	374
#define	BITCAST	375
#define	UITOFP	376
#define	SITOFP	377
#define	FPTOUI	378
#define	FPTOSI	379
#define	INTTOPTR	380
#define	PTRTOINT	381
#define	PHI_TOK	382
#define	SELECT	383
#define	VAARG	384
#define	EXTRACTELEMENT	385
#define	INSERTELEMENT	386
#define	SHUFFLEVECTOR	387
#define	SIGNEXT	388
#define	ZEROEXT	389
#define	NORETURN	390
#define	INREG	391
#define	SRET	392
#define	NOUNWIND	393
#define	NOALIAS	394
#define	BYVAL	395
#define	NEST	396
#define	DEFAULT	397
#define	HIDDEN	398
#define	PROTECTED	399


extern YYSTYPE llvmAsmlval;