blob: bf92ae025f8ee02b90eb974a3dd80b6a84b17ba8 [file] [log] [blame]
Chris Lattnerb25c4ca2007-01-15 02:12:07 +00001typedef union {
Reid Spencer68a24bd2005-08-27 18:50:39 +00002 llvm::Module *ModuleVal;
3 llvm::Function *FunctionVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +00004 llvm::BasicBlock *BasicBlockVal;
5 llvm::TerminatorInst *TermInstVal;
6 llvm::Instruction *InstVal;
Reid Spencera132e042006-12-03 05:46:11 +00007 llvm::Constant *ConstVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +00008
Reid Spencera132e042006-12-03 05:46:11 +00009 const llvm::Type *PrimType;
Reid Spencer14310612006-12-31 05:40:51 +000010 std::list<llvm::PATypeHolder> *TypeList;
Reid Spencera132e042006-12-03 05:46:11 +000011 llvm::PATypeHolder *TypeVal;
12 llvm::Value *ValueVal;
Reid Spencera132e042006-12-03 05:46:11 +000013 std::vector<llvm::Value*> *ValueList;
Reid Spencer14310612006-12-31 05:40:51 +000014 llvm::ArgListType *ArgList;
15 llvm::TypeWithAttrs TypeWithAttrs;
16 llvm::TypeWithAttrsList *TypeWithAttrsList;
17 llvm::ValueRefList *ValueRefList;
18
Reid Spencer68a24bd2005-08-27 18:50:39 +000019 // Represent the RHS of PHI node
Reid Spencera132e042006-12-03 05:46:11 +000020 std::list<std::pair<llvm::Value*,
21 llvm::BasicBlock*> > *PHIList;
Reid Spencer68a24bd2005-08-27 18:50:39 +000022 std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
Reid Spencera132e042006-12-03 05:46:11 +000023 std::vector<llvm::Constant*> *ConstVector;
Reid Spencer68a24bd2005-08-27 18:50:39 +000024
25 llvm::GlobalValue::LinkageTypes Linkage;
Anton Korobeynikov178a3522007-01-12 19:22:51 +000026 llvm::GlobalValue::VisibilityTypes Visibility;
Reid Spencer14310612006-12-31 05:40:51 +000027 llvm::FunctionType::ParameterAttributes ParamAttrs;
Reid Spencer68a24bd2005-08-27 18:50:39 +000028 int64_t SInt64Val;
29 uint64_t UInt64Val;
30 int SIntVal;
31 unsigned UIntVal;
32 double FPVal;
33 bool BoolVal;
34
35 char *StrVal; // This memory is strdup'd!
Reid Spencer1628cec2006-10-26 06:15:43 +000036 llvm::ValID ValIDVal; // strdup'd memory maybe!
Reid Spencer68a24bd2005-08-27 18:50:39 +000037
Reid Spencera132e042006-12-03 05:46:11 +000038 llvm::Instruction::BinaryOps BinaryOpVal;
39 llvm::Instruction::TermOps TermOpVal;
40 llvm::Instruction::MemoryOps MemOpVal;
41 llvm::Instruction::CastOps CastOpVal;
42 llvm::Instruction::OtherOps OtherOpVal;
Reid Spencer1628cec2006-10-26 06:15:43 +000043 llvm::Module::Endianness Endianness;
Reid Spencera132e042006-12-03 05:46:11 +000044 llvm::ICmpInst::Predicate IPredicate;
45 llvm::FCmpInst::Predicate FPredicate;
Reid Spencer6f407902007-01-13 05:00:46 +000046} YYSTYPE;
Chris Lattnerb25c4ca2007-01-15 02:12:07 +000047#define ESINT64VAL 257
48#define EUINT64VAL 258
49#define SINTVAL 259
50#define UINTVAL 260
51#define FPVAL 261
52#define VOID 262
53#define INTTYPE 263
54#define FLOAT 264
55#define DOUBLE 265
56#define LABEL 266
57#define TYPE 267
58#define VAR_ID 268
59#define LABELSTR 269
60#define STRINGCONSTANT 270
61#define IMPLEMENTATION 271
62#define ZEROINITIALIZER 272
63#define TRUETOK 273
64#define FALSETOK 274
65#define BEGINTOK 275
66#define ENDTOK 276
67#define DECLARE 277
68#define DEFINE 278
69#define GLOBAL 279
70#define CONSTANT 280
71#define SECTION 281
72#define VOLATILE 282
73#define TO 283
74#define DOTDOTDOT 284
75#define NULL_TOK 285
76#define UNDEF 286
77#define INTERNAL 287
78#define LINKONCE 288
79#define WEAK 289
80#define APPENDING 290
81#define DLLIMPORT 291
82#define DLLEXPORT 292
83#define EXTERN_WEAK 293
84#define OPAQUE 294
85#define EXTERNAL 295
86#define TARGET 296
87#define TRIPLE 297
88#define ENDIAN 298
89#define POINTERSIZE 299
90#define LITTLE 300
91#define BIG 301
92#define ALIGN 302
93#define DEPLIBS 303
94#define CALL 304
95#define TAIL 305
96#define ASM_TOK 306
97#define MODULE 307
98#define SIDEEFFECT 308
99#define CC_TOK 309
100#define CCC_TOK 310
101#define CSRETCC_TOK 311
102#define FASTCC_TOK 312
103#define COLDCC_TOK 313
104#define X86_STDCALLCC_TOK 314
105#define X86_FASTCALLCC_TOK 315
106#define DATALAYOUT 316
107#define RET 317
108#define BR 318
109#define SWITCH 319
110#define INVOKE 320
111#define UNWIND 321
112#define UNREACHABLE 322
113#define ADD 323
114#define SUB 324
115#define MUL 325
116#define UDIV 326
117#define SDIV 327
118#define FDIV 328
119#define UREM 329
120#define SREM 330
121#define FREM 331
122#define AND 332
123#define OR 333
124#define XOR 334
125#define ICMP 335
126#define FCMP 336
127#define EQ 337
128#define NE 338
129#define SLT 339
130#define SGT 340
131#define SLE 341
132#define SGE 342
133#define ULT 343
134#define UGT 344
135#define ULE 345
136#define UGE 346
137#define OEQ 347
138#define ONE 348
139#define OLT 349
140#define OGT 350
141#define OLE 351
142#define OGE 352
143#define ORD 353
144#define UNO 354
145#define UEQ 355
146#define UNE 356
147#define MALLOC 357
148#define ALLOCA 358
149#define FREE 359
150#define LOAD 360
151#define STORE 361
152#define GETELEMENTPTR 362
153#define TRUNC 363
154#define ZEXT 364
155#define SEXT 365
156#define FPTRUNC 366
157#define FPEXT 367
158#define BITCAST 368
159#define UITOFP 369
160#define SITOFP 370
161#define FPTOUI 371
162#define FPTOSI 372
163#define INTTOPTR 373
164#define PTRTOINT 374
165#define PHI_TOK 375
166#define SELECT 376
167#define SHL 377
168#define LSHR 378
169#define ASHR 379
170#define VAARG 380
171#define EXTRACTELEMENT 381
172#define INSERTELEMENT 382
173#define SHUFFLEVECTOR 383
174#define NORETURN 384
175#define DEFAULT 385
176#define HIDDEN 386
177
Reid Spencer68a24bd2005-08-27 18:50:39 +0000178
179extern YYSTYPE llvmAsmlval;