-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 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,
- SINTVAL = 260,
- UINTVAL = 261,
- FPVAL = 262,
- VOID = 263,
- BOOL = 264,
- SBYTE = 265,
- UBYTE = 266,
- SHORT = 267,
- USHORT = 268,
- INT = 269,
- UINT = 270,
- LONG = 271,
- ULONG = 272,
- FLOAT = 273,
- DOUBLE = 274,
- TYPE = 275,
- LABEL = 276,
- VAR_ID = 277,
- LABELSTR = 278,
- STRINGCONSTANT = 279,
- IMPLEMENTATION = 280,
- ZEROINITIALIZER = 281,
- TRUETOK = 282,
- FALSETOK = 283,
- BEGINTOK = 284,
- ENDTOK = 285,
- DECLARE = 286,
- GLOBAL = 287,
- CONSTANT = 288,
- SECTION = 289,
- VOLATILE = 290,
- TO = 291,
- DOTDOTDOT = 292,
- NULL_TOK = 293,
- UNDEF = 294,
- CONST = 295,
- INTERNAL = 296,
- LINKONCE = 297,
- WEAK = 298,
- APPENDING = 299,
- OPAQUE = 300,
- NOT = 301,
- EXTERNAL = 302,
- TARGET = 303,
- TRIPLE = 304,
- ENDIAN = 305,
- POINTERSIZE = 306,
- LITTLE = 307,
- BIG = 308,
- ALIGN = 309,
- DEPLIBS = 310,
- CALL = 311,
- TAIL = 312,
- ASM_TOK = 313,
- MODULE = 314,
- SIDEEFFECT = 315,
- CC_TOK = 316,
- CCC_TOK = 317,
- CSRETCC_TOK = 318,
- FASTCC_TOK = 319,
- COLDCC_TOK = 320,
- RET = 321,
- BR = 322,
- SWITCH = 323,
- INVOKE = 324,
- UNWIND = 325,
- UNREACHABLE = 326,
- ADD = 327,
- SUB = 328,
- MUL = 329,
- DIV = 330,
- REM = 331,
- AND = 332,
- OR = 333,
- XOR = 334,
- SETLE = 335,
- SETGE = 336,
- SETLT = 337,
- SETGT = 338,
- SETEQ = 339,
- SETNE = 340,
- MALLOC = 341,
- ALLOCA = 342,
- FREE = 343,
- LOAD = 344,
- STORE = 345,
- GETELEMENTPTR = 346,
- PHI_TOK = 347,
- CAST = 348,
- SELECT = 349,
- SHL = 350,
- SHR = 351,
- VAARG = 352,
- EXTRACTELEMENT = 353,
- INSERTELEMENT = 354,
- SHUFFLEVECTOR = 355,
- VAARG_old = 356,
- VANEXT_old = 357
- };
-#endif
-/* Tokens. */
-#define ESINT64VAL 258
-#define EUINT64VAL 259
-#define SINTVAL 260
-#define UINTVAL 261
-#define FPVAL 262
-#define VOID 263
-#define BOOL 264
-#define SBYTE 265
-#define UBYTE 266
-#define SHORT 267
-#define USHORT 268
-#define INT 269
-#define UINT 270
-#define LONG 271
-#define ULONG 272
-#define FLOAT 273
-#define DOUBLE 274
-#define TYPE 275
-#define LABEL 276
-#define VAR_ID 277
-#define LABELSTR 278
-#define STRINGCONSTANT 279
-#define IMPLEMENTATION 280
-#define ZEROINITIALIZER 281
-#define TRUETOK 282
-#define FALSETOK 283
-#define BEGINTOK 284
-#define ENDTOK 285
-#define DECLARE 286
-#define GLOBAL 287
-#define CONSTANT 288
-#define SECTION 289
-#define VOLATILE 290
-#define TO 291
-#define DOTDOTDOT 292
-#define NULL_TOK 293
-#define UNDEF 294
-#define CONST 295
-#define INTERNAL 296
-#define LINKONCE 297
-#define WEAK 298
-#define APPENDING 299
-#define OPAQUE 300
-#define NOT 301
-#define EXTERNAL 302
-#define TARGET 303
-#define TRIPLE 304
-#define ENDIAN 305
-#define POINTERSIZE 306
-#define LITTLE 307
-#define BIG 308
-#define ALIGN 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 CSRETCC_TOK 318
-#define FASTCC_TOK 319
-#define COLDCC_TOK 320
-#define RET 321
-#define BR 322
-#define SWITCH 323
-#define INVOKE 324
-#define UNWIND 325
-#define UNREACHABLE 326
-#define ADD 327
-#define SUB 328
-#define MUL 329
-#define DIV 330
-#define REM 331
-#define AND 332
-#define OR 333
-#define XOR 334
-#define SETLE 335
-#define SETGE 336
-#define SETLT 337
-#define SETGT 338
-#define SETEQ 339
-#define SETNE 340
-#define MALLOC 341
-#define ALLOCA 342
-#define FREE 343
-#define LOAD 344
-#define STORE 345
-#define GETELEMENTPTR 346
-#define PHI_TOK 347
-#define CAST 348
-#define SELECT 349
-#define SHL 350
-#define SHR 351
-#define VAARG 352
-#define EXTRACTELEMENT 353
-#define INSERTELEMENT 354
-#define SHUFFLEVECTOR 355
-#define VAARG_old 356
-#define VANEXT_old 357
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 897 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-typedef union YYSTYPE {
+typedef union {
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!
+ 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::OtherOps OtherOpVal;
- llvm::Module::Endianness Endianness;
+ 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;
} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 282 "llvmAsmParser.tab.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE llvmAsmlval;
-
+#define ESINT64VAL 257
+#define EUINT64VAL 258
+#define ESAPINTVAL 259
+#define EUAPINTVAL 260
+#define LOCALVAL_ID 261
+#define GLOBALVAL_ID 262
+#define FPVAL 263
+#define VOID 264
+#define INTTYPE 265
+#define FLOAT 266
+#define DOUBLE 267
+#define X86_FP80 268
+#define FP128 269
+#define PPC_FP128 270
+#define LABEL 271
+#define TYPE 272
+#define LOCALVAR 273
+#define GLOBALVAR 274
+#define LABELSTR 275
+#define STRINGCONSTANT 276
+#define ATSTRINGCONSTANT 277
+#define PCTSTRINGCONSTANT 278
+#define ZEROINITIALIZER 279
+#define TRUETOK 280
+#define FALSETOK 281
+#define BEGINTOK 282
+#define ENDTOK 283
+#define DECLARE 284
+#define DEFINE 285
+#define GLOBAL 286
+#define CONSTANT 287
+#define SECTION 288
+#define ALIAS 289
+#define VOLATILE 290
+#define THREAD_LOCAL 291
+#define TO 292
+#define DOTDOTDOT 293
+#define NULL_TOK 294
+#define UNDEF 295
+#define INTERNAL 296
+#define LINKONCE 297
+#define WEAK 298
+#define APPENDING 299
+#define DLLIMPORT 300
+#define DLLEXPORT 301
+#define EXTERN_WEAK 302
+#define OPAQUE 303
+#define EXTERNAL 304
+#define TARGET 305
+#define TRIPLE 306
+#define ALIGN 307
+#define DEPLIBS 308
+#define CALL 309
+#define TAIL 310
+#define ASM_TOK 311
+#define MODULE 312
+#define SIDEEFFECT 313
+#define CC_TOK 314
+#define CCC_TOK 315
+#define FASTCC_TOK 316
+#define COLDCC_TOK 317
+#define X86_STDCALLCC_TOK 318
+#define X86_FASTCALLCC_TOK 319
+#define DATALAYOUT 320
+#define RET 321
+#define BR 322
+#define SWITCH 323
+#define INVOKE 324
+#define UNWIND 325
+#define UNREACHABLE 326
+#define ADD 327
+#define SUB 328
+#define MUL 329
+#define UDIV 330
+#define SDIV 331
+#define FDIV 332
+#define UREM 333
+#define SREM 334
+#define FREM 335
+#define AND 336
+#define OR 337
+#define XOR 338
+#define SHL 339
+#define LSHR 340
+#define ASHR 341
+#define ICMP 342
+#define FCMP 343
+#define EQ 344
+#define NE 345
+#define SLT 346
+#define SGT 347
+#define SLE 348
+#define SGE 349
+#define ULT 350
+#define UGT 351
+#define ULE 352
+#define UGE 353
+#define OEQ 354
+#define ONE 355
+#define OLT 356
+#define OGT 357
+#define OLE 358
+#define OGE 359
+#define ORD 360
+#define UNO 361
+#define UEQ 362
+#define UNE 363
+#define MALLOC 364
+#define ALLOCA 365
+#define FREE 366
+#define LOAD 367
+#define STORE 368
+#define GETELEMENTPTR 369
+#define TRUNC 370
+#define ZEXT 371
+#define SEXT 372
+#define FPTRUNC 373
+#define FPEXT 374
+#define BITCAST 375
+#define UITOFP 376
+#define SITOFP 377
+#define FPTOUI 378
+#define FPTOSI 379
+#define INTTOPTR 380
+#define PTRTOINT 381
+#define PHI_TOK 382
+#define SELECT 383
+#define VAARG 384
+#define EXTRACTELEMENT 385
+#define INSERTELEMENT 386
+#define SHUFFLEVECTOR 387
+#define SIGNEXT 388
+#define ZEROEXT 389
+#define NORETURN 390
+#define INREG 391
+#define SRET 392
+#define NOUNWIND 393
+#define NOALIAS 394
+#define BYVAL 395
+#define NEST 396
+#define DEFAULT 397
+#define HIDDEN 398
+#define PROTECTED 399
+extern YYSTYPE llvmAsmlval;