blob: bf20cd5422603bb26e8ff7fb837d2a39ae1d2073 [file] [log] [blame]
Chris Lattner9d2fda62007-02-13 05:53:56 +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 Spencera132e042006-12-03 05:46:11 +000043 llvm::ICmpInst::Predicate IPredicate;
44 llvm::FCmpInst::Predicate FPredicate;
Chris Lattner9d2fda62007-02-13 05:53:56 +000045} YYSTYPE;
46#define ESINT64VAL 257
47#define EUINT64VAL 258
48#define LOCALVAL_ID 259
49#define GLOBALVAL_ID 260
50#define FPVAL 261
51#define VOID 262
52#define INTTYPE 263
53#define FLOAT 264
54#define DOUBLE 265
55#define LABEL 266
56#define TYPE 267
57#define LOCALVAR 268
58#define GLOBALVAR 269
59#define LABELSTR 270
60#define STRINGCONSTANT 271
61#define ATSTRINGCONSTANT 272
62#define IMPLEMENTATION 273
63#define ZEROINITIALIZER 274
64#define TRUETOK 275
65#define FALSETOK 276
66#define BEGINTOK 277
67#define ENDTOK 278
68#define DECLARE 279
69#define DEFINE 280
70#define GLOBAL 281
71#define CONSTANT 282
72#define SECTION 283
73#define VOLATILE 284
74#define TO 285
75#define DOTDOTDOT 286
76#define NULL_TOK 287
77#define UNDEF 288
78#define INTERNAL 289
79#define LINKONCE 290
80#define WEAK 291
81#define APPENDING 292
82#define DLLIMPORT 293
83#define DLLEXPORT 294
84#define EXTERN_WEAK 295
85#define OPAQUE 296
86#define EXTERNAL 297
87#define TARGET 298
88#define TRIPLE 299
89#define ALIGN 300
90#define DEPLIBS 301
91#define CALL 302
92#define TAIL 303
93#define ASM_TOK 304
94#define MODULE 305
95#define SIDEEFFECT 306
96#define CC_TOK 307
97#define CCC_TOK 308
98#define FASTCC_TOK 309
99#define COLDCC_TOK 310
100#define X86_STDCALLCC_TOK 311
101#define X86_FASTCALLCC_TOK 312
102#define DATALAYOUT 313
103#define RET 314
104#define BR 315
105#define SWITCH 316
106#define INVOKE 317
107#define UNWIND 318
108#define UNREACHABLE 319
109#define ADD 320
110#define SUB 321
111#define MUL 322
112#define UDIV 323
113#define SDIV 324
114#define FDIV 325
115#define UREM 326
116#define SREM 327
117#define FREM 328
118#define AND 329
119#define OR 330
120#define XOR 331
121#define SHL 332
122#define LSHR 333
123#define ASHR 334
124#define ICMP 335
125#define FCMP 336
126#define EQ 337
127#define NE 338
128#define SLT 339
129#define SGT 340
130#define SLE 341
131#define SGE 342
132#define ULT 343
133#define UGT 344
134#define ULE 345
135#define UGE 346
136#define OEQ 347
137#define ONE 348
138#define OLT 349
139#define OGT 350
140#define OLE 351
141#define OGE 352
142#define ORD 353
143#define UNO 354
144#define UEQ 355
145#define UNE 356
146#define MALLOC 357
147#define ALLOCA 358
148#define FREE 359
149#define LOAD 360
150#define STORE 361
151#define GETELEMENTPTR 362
152#define TRUNC 363
153#define ZEXT 364
154#define SEXT 365
155#define FPTRUNC 366
156#define FPEXT 367
157#define BITCAST 368
158#define UITOFP 369
159#define SITOFP 370
160#define FPTOUI 371
161#define FPTOSI 372
162#define INTTOPTR 373
163#define PTRTOINT 374
164#define PHI_TOK 375
165#define SELECT 376
166#define VAARG 377
167#define EXTRACTELEMENT 378
168#define INSERTELEMENT 379
169#define SHUFFLEVECTOR 380
170#define NORETURN 381
171#define INREG 382
172#define SRET 383
173#define DEFAULT 384
174#define HIDDEN 385
175
Reid Spencer68a24bd2005-08-27 18:50:39 +0000176
177extern YYSTYPE llvmAsmlval;