blob: 0324b0d2ac292d308cc4c1900a4625ba502f1a47 [file] [log] [blame]
Chris Lattnerf49c1762006-11-08 05:58:47 +00001typedef union {
Reid Spencer68a24bd2005-08-27 18:50:39 +00002 llvm::Module *ModuleVal;
3 llvm::Function *FunctionVal;
4 std::pair<llvm::PATypeHolder*, char*> *ArgVal;
5 llvm::BasicBlock *BasicBlockVal;
6 llvm::TerminatorInst *TermInstVal;
7 llvm::Instruction *InstVal;
8 llvm::Constant *ConstVal;
9
10 const llvm::Type *PrimType;
11 llvm::PATypeHolder *TypeVal;
12 llvm::Value *ValueVal;
13
14 std::vector<std::pair<llvm::PATypeHolder*,char*> > *ArgList;
15 std::vector<llvm::Value*> *ValueList;
16 std::list<llvm::PATypeHolder> *TypeList;
17 // Represent the RHS of PHI node
18 std::list<std::pair<llvm::Value*,
19 llvm::BasicBlock*> > *PHIList;
20 std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
21 std::vector<llvm::Constant*> *ConstVector;
22
23 llvm::GlobalValue::LinkageTypes Linkage;
24 int64_t SInt64Val;
25 uint64_t UInt64Val;
26 int SIntVal;
27 unsigned UIntVal;
28 double FPVal;
29 bool BoolVal;
30
31 char *StrVal; // This memory is strdup'd!
Reid Spencer1628cec2006-10-26 06:15:43 +000032 llvm::ValID ValIDVal; // strdup'd memory maybe!
Reid Spencer68a24bd2005-08-27 18:50:39 +000033
Reid Spencer1628cec2006-10-26 06:15:43 +000034 BinaryOpInfo BinaryOpVal;
35 TermOpInfo TermOpVal;
36 MemOpInfo MemOpVal;
37 OtherOpInfo OtherOpVal;
38 llvm::Module::Endianness Endianness;
Reid Spencer5b7e7532006-09-28 19:28:24 +000039} YYSTYPE;
Chris Lattnerf49c1762006-11-08 05:58:47 +000040#define ESINT64VAL 257
41#define EUINT64VAL 258
42#define SINTVAL 259
43#define UINTVAL 260
44#define FPVAL 261
45#define VOID 262
46#define BOOL 263
47#define SBYTE 264
48#define UBYTE 265
49#define SHORT 266
50#define USHORT 267
51#define INT 268
52#define UINT 269
53#define LONG 270
54#define ULONG 271
55#define FLOAT 272
56#define DOUBLE 273
57#define TYPE 274
58#define LABEL 275
59#define VAR_ID 276
60#define LABELSTR 277
61#define STRINGCONSTANT 278
62#define IMPLEMENTATION 279
63#define ZEROINITIALIZER 280
64#define TRUETOK 281
65#define FALSETOK 282
66#define BEGINTOK 283
67#define ENDTOK 284
68#define DECLARE 285
69#define GLOBAL 286
70#define CONSTANT 287
71#define SECTION 288
72#define VOLATILE 289
73#define TO 290
74#define DOTDOTDOT 291
75#define NULL_TOK 292
76#define UNDEF 293
77#define CONST 294
78#define INTERNAL 295
79#define LINKONCE 296
80#define WEAK 297
81#define APPENDING 298
82#define DLLIMPORT 299
83#define DLLEXPORT 300
84#define EXTERN_WEAK 301
85#define OPAQUE 302
86#define NOT 303
87#define EXTERNAL 304
88#define TARGET 305
89#define TRIPLE 306
90#define ENDIAN 307
91#define POINTERSIZE 308
92#define LITTLE 309
93#define BIG 310
94#define ALIGN 311
95#define DEPLIBS 312
96#define CALL 313
97#define TAIL 314
98#define ASM_TOK 315
99#define MODULE 316
100#define SIDEEFFECT 317
101#define CC_TOK 318
102#define CCC_TOK 319
103#define CSRETCC_TOK 320
104#define FASTCC_TOK 321
105#define COLDCC_TOK 322
106#define X86_STDCALLCC_TOK 323
107#define X86_FASTCALLCC_TOK 324
108#define DATALAYOUT 325
109#define RET 326
110#define BR 327
111#define SWITCH 328
112#define INVOKE 329
113#define UNWIND 330
114#define UNREACHABLE 331
115#define ADD 332
116#define SUB 333
117#define MUL 334
118#define UDIV 335
119#define SDIV 336
120#define FDIV 337
121#define UREM 338
122#define SREM 339
123#define FREM 340
124#define AND 341
125#define OR 342
126#define XOR 343
127#define SETLE 344
128#define SETGE 345
129#define SETLT 346
130#define SETGT 347
131#define SETEQ 348
132#define SETNE 349
133#define MALLOC 350
134#define ALLOCA 351
135#define FREE 352
136#define LOAD 353
137#define STORE 354
138#define GETELEMENTPTR 355
139#define PHI_TOK 356
140#define CAST 357
141#define SELECT 358
142#define SHL 359
143#define SHR 360
144#define VAARG 361
145#define EXTRACTELEMENT 362
146#define INSERTELEMENT 363
147#define SHUFFLEVECTOR 364
148#define VAARG_old 365
149#define VANEXT_old 366
150
Reid Spencer68a24bd2005-08-27 18:50:39 +0000151
152extern YYSTYPE llvmAsmlval;