-typedef union {
+/* A Bison parser, made by GNU Bison 2.3. */
+
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ ESINT64VAL = 258,
+ EUINT64VAL = 259,
+ ESAPINTVAL = 260,
+ EUAPINTVAL = 261,
+ LOCALVAL_ID = 262,
+ GLOBALVAL_ID = 263,
+ FPVAL = 264,
+ VOID = 265,
+ INTTYPE = 266,
+ FLOAT = 267,
+ DOUBLE = 268,
+ X86_FP80 = 269,
+ FP128 = 270,
+ PPC_FP128 = 271,
+ LABEL = 272,
+ TYPE = 273,
+ LOCALVAR = 274,
+ GLOBALVAR = 275,
+ LABELSTR = 276,
+ STRINGCONSTANT = 277,
+ ATSTRINGCONSTANT = 278,
+ PCTSTRINGCONSTANT = 279,
+ ZEROINITIALIZER = 280,
+ TRUETOK = 281,
+ FALSETOK = 282,
+ BEGINTOK = 283,
+ ENDTOK = 284,
+ DECLARE = 285,
+ DEFINE = 286,
+ GLOBAL = 287,
+ CONSTANT = 288,
+ SECTION = 289,
+ ALIAS = 290,
+ VOLATILE = 291,
+ THREAD_LOCAL = 292,
+ TO = 293,
+ DOTDOTDOT = 294,
+ NULL_TOK = 295,
+ UNDEF = 296,
+ INTERNAL = 297,
+ LINKONCE = 298,
+ WEAK = 299,
+ APPENDING = 300,
+ DLLIMPORT = 301,
+ DLLEXPORT = 302,
+ EXTERN_WEAK = 303,
+ OPAQUE = 304,
+ EXTERNAL = 305,
+ TARGET = 306,
+ TRIPLE = 307,
+ ALIGN = 308,
+ ADDRSPACE = 309,
+ DEPLIBS = 310,
+ CALL = 311,
+ TAIL = 312,
+ ASM_TOK = 313,
+ MODULE = 314,
+ SIDEEFFECT = 315,
+ CC_TOK = 316,
+ CCC_TOK = 317,
+ FASTCC_TOK = 318,
+ COLDCC_TOK = 319,
+ X86_STDCALLCC_TOK = 320,
+ X86_FASTCALLCC_TOK = 321,
+ DATALAYOUT = 322,
+ RET = 323,
+ BR = 324,
+ SWITCH = 325,
+ INVOKE = 326,
+ UNWIND = 327,
+ UNREACHABLE = 328,
+ ADD = 329,
+ SUB = 330,
+ MUL = 331,
+ UDIV = 332,
+ SDIV = 333,
+ FDIV = 334,
+ UREM = 335,
+ SREM = 336,
+ FREM = 337,
+ AND = 338,
+ OR = 339,
+ XOR = 340,
+ SHL = 341,
+ LSHR = 342,
+ ASHR = 343,
+ ICMP = 344,
+ FCMP = 345,
+ EQ = 346,
+ NE = 347,
+ SLT = 348,
+ SGT = 349,
+ SLE = 350,
+ SGE = 351,
+ ULT = 352,
+ UGT = 353,
+ ULE = 354,
+ UGE = 355,
+ OEQ = 356,
+ ONE = 357,
+ OLT = 358,
+ OGT = 359,
+ OLE = 360,
+ OGE = 361,
+ ORD = 362,
+ UNO = 363,
+ UEQ = 364,
+ UNE = 365,
+ MALLOC = 366,
+ ALLOCA = 367,
+ FREE = 368,
+ LOAD = 369,
+ STORE = 370,
+ GETELEMENTPTR = 371,
+ TRUNC = 372,
+ ZEXT = 373,
+ SEXT = 374,
+ FPTRUNC = 375,
+ FPEXT = 376,
+ BITCAST = 377,
+ UITOFP = 378,
+ SITOFP = 379,
+ FPTOUI = 380,
+ FPTOSI = 381,
+ INTTOPTR = 382,
+ PTRTOINT = 383,
+ PHI_TOK = 384,
+ SELECT = 385,
+ VAARG = 386,
+ EXTRACTELEMENT = 387,
+ INSERTELEMENT = 388,
+ SHUFFLEVECTOR = 389,
+ SIGNEXT = 390,
+ ZEROEXT = 391,
+ NORETURN = 392,
+ INREG = 393,
+ SRET = 394,
+ NOUNWIND = 395,
+ NOALIAS = 396,
+ BYVAL = 397,
+ NEST = 398,
+ READNONE = 399,
+ READONLY = 400,
+ GC = 401,
+ DEFAULT = 402,
+ HIDDEN = 403,
+ PROTECTED = 404
+ };
+#endif
+/* Tokens. */
+#define ESINT64VAL 258
+#define EUINT64VAL 259
+#define ESAPINTVAL 260
+#define EUAPINTVAL 261
+#define LOCALVAL_ID 262
+#define GLOBALVAL_ID 263
+#define FPVAL 264
+#define VOID 265
+#define INTTYPE 266
+#define FLOAT 267
+#define DOUBLE 268
+#define X86_FP80 269
+#define FP128 270
+#define PPC_FP128 271
+#define LABEL 272
+#define TYPE 273
+#define LOCALVAR 274
+#define GLOBALVAR 275
+#define LABELSTR 276
+#define STRINGCONSTANT 277
+#define ATSTRINGCONSTANT 278
+#define PCTSTRINGCONSTANT 279
+#define ZEROINITIALIZER 280
+#define TRUETOK 281
+#define FALSETOK 282
+#define BEGINTOK 283
+#define ENDTOK 284
+#define DECLARE 285
+#define DEFINE 286
+#define GLOBAL 287
+#define CONSTANT 288
+#define SECTION 289
+#define ALIAS 290
+#define VOLATILE 291
+#define THREAD_LOCAL 292
+#define TO 293
+#define DOTDOTDOT 294
+#define NULL_TOK 295
+#define UNDEF 296
+#define INTERNAL 297
+#define LINKONCE 298
+#define WEAK 299
+#define APPENDING 300
+#define DLLIMPORT 301
+#define DLLEXPORT 302
+#define EXTERN_WEAK 303
+#define OPAQUE 304
+#define EXTERNAL 305
+#define TARGET 306
+#define TRIPLE 307
+#define ALIGN 308
+#define ADDRSPACE 309
+#define DEPLIBS 310
+#define CALL 311
+#define TAIL 312
+#define ASM_TOK 313
+#define MODULE 314
+#define SIDEEFFECT 315
+#define CC_TOK 316
+#define CCC_TOK 317
+#define FASTCC_TOK 318
+#define COLDCC_TOK 319
+#define X86_STDCALLCC_TOK 320
+#define X86_FASTCALLCC_TOK 321
+#define DATALAYOUT 322
+#define RET 323
+#define BR 324
+#define SWITCH 325
+#define INVOKE 326
+#define UNWIND 327
+#define UNREACHABLE 328
+#define ADD 329
+#define SUB 330
+#define MUL 331
+#define UDIV 332
+#define SDIV 333
+#define FDIV 334
+#define UREM 335
+#define SREM 336
+#define FREM 337
+#define AND 338
+#define OR 339
+#define XOR 340
+#define SHL 341
+#define LSHR 342
+#define ASHR 343
+#define ICMP 344
+#define FCMP 345
+#define EQ 346
+#define NE 347
+#define SLT 348
+#define SGT 349
+#define SLE 350
+#define SGE 351
+#define ULT 352
+#define UGT 353
+#define ULE 354
+#define UGE 355
+#define OEQ 356
+#define ONE 357
+#define OLT 358
+#define OGT 359
+#define OLE 360
+#define OGE 361
+#define ORD 362
+#define UNO 363
+#define UEQ 364
+#define UNE 365
+#define MALLOC 366
+#define ALLOCA 367
+#define FREE 368
+#define LOAD 369
+#define STORE 370
+#define GETELEMENTPTR 371
+#define TRUNC 372
+#define ZEXT 373
+#define SEXT 374
+#define FPTRUNC 375
+#define FPEXT 376
+#define BITCAST 377
+#define UITOFP 378
+#define SITOFP 379
+#define FPTOUI 380
+#define FPTOSI 381
+#define INTTOPTR 382
+#define PTRTOINT 383
+#define PHI_TOK 384
+#define SELECT 385
+#define VAARG 386
+#define EXTRACTELEMENT 387
+#define INSERTELEMENT 388
+#define SHUFFLEVECTOR 389
+#define SIGNEXT 390
+#define ZEROEXT 391
+#define NORETURN 392
+#define INREG 393
+#define SRET 394
+#define NOUNWIND 395
+#define NOALIAS 396
+#define BYVAL 397
+#define NEST 398
+#define READNONE 399
+#define READONLY 400
+#define GC 401
+#define DEFAULT 402
+#define HIDDEN 403
+#define PROTECTED 404
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 947 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+{
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
- std::pair<llvm::PATypeHolder*, char*> *ArgVal;
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<std::pair<llvm::PATypeHolder*,char*> > *ArgList;
std::vector<llvm::Value*> *ValueList;
- std::list<llvm::PATypeHolder> *TypeList;
+ llvm::ArgListType *ArgList;
+ llvm::TypeWithAttrs TypeWithAttrs;
+ llvm::TypeWithAttrsList *TypeWithAttrsList;
+ llvm::ParamList *ParamList;
+
// Represent the RHS of PHI node
std::list<std::pair<llvm::Value*,
llvm::BasicBlock*> > *PHIList;
std::vector<llvm::Constant*> *ConstVector;
llvm::GlobalValue::LinkageTypes Linkage;
+ llvm::GlobalValue::VisibilityTypes Visibility;
+ uint16_t ParamAttrs;
+ llvm::APInt *APIntVal;
int64_t SInt64Val;
uint64_t UInt64Val;
int SIntVal;
unsigned UIntVal;
- double FPVal;
+ llvm::APFloat *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::OtherOps OtherOpVal;
- llvm::Module::Endianness Endianness;
-} YYSTYPE;
-#define ESINT64VAL 257
-#define EUINT64VAL 258
-#define SINTVAL 259
-#define UINTVAL 260
-#define FPVAL 261
-#define VOID 262
-#define BOOL 263
-#define SBYTE 264
-#define UBYTE 265
-#define SHORT 266
-#define USHORT 267
-#define INT 268
-#define UINT 269
-#define LONG 270
-#define ULONG 271
-#define FLOAT 272
-#define DOUBLE 273
-#define TYPE 274
-#define LABEL 275
-#define VAR_ID 276
-#define LABELSTR 277
-#define STRINGCONSTANT 278
-#define IMPLEMENTATION 279
-#define ZEROINITIALIZER 280
-#define TRUETOK 281
-#define FALSETOK 282
-#define BEGINTOK 283
-#define ENDTOK 284
-#define DECLARE 285
-#define GLOBAL 286
-#define CONSTANT 287
-#define SECTION 288
-#define VOLATILE 289
-#define TO 290
-#define DOTDOTDOT 291
-#define NULL_TOK 292
-#define UNDEF 293
-#define CONST 294
-#define INTERNAL 295
-#define LINKONCE 296
-#define WEAK 297
-#define APPENDING 298
-#define OPAQUE 299
-#define NOT 300
-#define EXTERNAL 301
-#define TARGET 302
-#define TRIPLE 303
-#define ENDIAN 304
-#define POINTERSIZE 305
-#define LITTLE 306
-#define BIG 307
-#define ALIGN 308
-#define DEPLIBS 309
-#define CALL 310
-#define TAIL 311
-#define ASM_TOK 312
-#define MODULE 313
-#define SIDEEFFECT 314
-#define CC_TOK 315
-#define CCC_TOK 316
-#define FASTCC_TOK 317
-#define COLDCC_TOK 318
-#define RET 319
-#define BR 320
-#define SWITCH 321
-#define INVOKE 322
-#define UNWIND 323
-#define UNREACHABLE 324
-#define ADD 325
-#define SUB 326
-#define MUL 327
-#define DIV 328
-#define REM 329
-#define AND 330
-#define OR 331
-#define XOR 332
-#define SETLE 333
-#define SETGE 334
-#define SETLT 335
-#define SETGT 336
-#define SETEQ 337
-#define SETNE 338
-#define MALLOC 339
-#define ALLOCA 340
-#define FREE 341
-#define LOAD 342
-#define STORE 343
-#define GETELEMENTPTR 344
-#define PHI_TOK 345
-#define CAST 346
-#define SELECT 347
-#define SHL 348
-#define SHR 349
-#define VAARG 350
-#define EXTRACTELEMENT 351
-#define INSERTELEMENT 352
-#define VAARG_old 353
-#define VANEXT_old 354
+ std::string *StrVal; // This memory must be deleted
+ llvm::ValID ValIDVal;
+ 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;
+}
+/* Line 1529 of yacc.c. */
+#line 394 "llvmAsmParser.tab.h"
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
extern YYSTYPE llvmAsmlval;
+