082a43791dcda423a0a8d2d48736dcbdb710d968
[oota-llvm.git] / lib / AsmParser / llvmAsmParser.h
1 typedef union {
2   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!
32   llvm::ValID                             ValIDVal; // strdup'd memory maybe!
33
34   llvm::Instruction::BinaryOps            BinaryOpVal;
35   llvm::Instruction::TermOps              TermOpVal;
36   llvm::Instruction::MemoryOps            MemOpVal;
37   llvm::Instruction::OtherOps             OtherOpVal;
38   llvm::Module::Endianness                Endianness;
39 } YYSTYPE;
40 #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 VOLATILE        288
72 #define TO      289
73 #define DOTDOTDOT       290
74 #define NULL_TOK        291
75 #define UNDEF   292
76 #define CONST   293
77 #define INTERNAL        294
78 #define LINKONCE        295
79 #define WEAK    296
80 #define APPENDING       297
81 #define OPAQUE  298
82 #define NOT     299
83 #define EXTERNAL        300
84 #define TARGET  301
85 #define TRIPLE  302
86 #define ENDIAN  303
87 #define POINTERSIZE     304
88 #define LITTLE  305
89 #define BIG     306
90 #define ALIGN   307
91 #define DEPLIBS 308
92 #define CALL    309
93 #define TAIL    310
94 #define CC_TOK  311
95 #define CCC_TOK 312
96 #define FASTCC_TOK      313
97 #define COLDCC_TOK      314
98 #define RET     315
99 #define BR      316
100 #define SWITCH  317
101 #define INVOKE  318
102 #define UNWIND  319
103 #define UNREACHABLE     320
104 #define ADD     321
105 #define SUB     322
106 #define MUL     323
107 #define DIV     324
108 #define REM     325
109 #define AND     326
110 #define OR      327
111 #define XOR     328
112 #define SETLE   329
113 #define SETGE   330
114 #define SETLT   331
115 #define SETGT   332
116 #define SETEQ   333
117 #define SETNE   334
118 #define MALLOC  335
119 #define ALLOCA  336
120 #define FREE    337
121 #define LOAD    338
122 #define STORE   339
123 #define GETELEMENTPTR   340
124 #define PHI_TOK 341
125 #define CAST    342
126 #define SELECT  343
127 #define SHL     344
128 #define SHR     345
129 #define VAARG   346
130 #define VAARG_old       347
131 #define VANEXT_old      348
132
133
134 extern YYSTYPE llvmAsmlval;