aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser/llvmAsmParser.h.cvs
blob: bf20cd5422603bb26e8ff7fb837d2a39ae1d2073 (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	SHL	332
#define	LSHR	333
#define	ASHR	334
#define	ICMP	335
#define	FCMP	336
#define	EQ	337
#define	NE	338
#define	SLT	339
#define	SGT	340
#define	SLE	341
#define	SGE	342
#define	ULT	343
#define	UGT	344
#define	ULE	345
#define	UGE	346
#define	OEQ	347
#define	ONE	348
#define	OLT	349
#define	OGT	350
#define	OLE	351
#define	OGE	352
#define	ORD	353
#define	UNO	354
#define	UEQ	355
#define	UNE	356
#define	MALLOC	357
#define	ALLOCA	358
#define	FREE	359
#define	LOAD	360
#define	STORE	361
#define	GETELEMENTPTR	362
#define	TRUNC	363
#define	ZEXT	364
#define	SEXT	365
#define	FPTRUNC	366
#define	FPEXT	367
#define	BITCAST	368
#define	UITOFP	369
#define	SITOFP	370
#define	FPTOUI	371
#define	FPTOSI	372
#define	INTTOPTR	373
#define	PTRTOINT	374
#define	PHI_TOK	375
#define	SELECT	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;