summaryrefslogtreecommitdiff
path: root/lib/AsmParser/llvmAsmParser.h.cvs
blob: 2b79ec49e3d4e5b09ef0d32880f243c527c36334 (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
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;
  llvm::FunctionType::ParameterAttributes ParamAttrs;
  int64_t                           SInt64Val;
  uint64_t                          UInt64Val;
  int                               SIntVal;
  unsigned                          UIntVal;
  double                            FPVal;
  bool                              BoolVal;

  char                             *StrVal;   // This memory is strdup'd!
  llvm::ValID                       ValIDVal; // strdup'd memory maybe!

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


extern YYSTYPE llvmAsmlval;