/* 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,
     ESAPINTVAL = 260,
     EUAPINTVAL = 261,
     LOCALVAL_ID = 262,
     GLOBALVAL_ID = 263,
     FPVAL = 264,
     VOID = 265,
     INTTYPE = 266,
     FLOAT = 267,
     DOUBLE = 268,
     LABEL = 269,
     TYPE = 270,
     LOCALVAR = 271,
     GLOBALVAR = 272,
     LABELSTR = 273,
     STRINGCONSTANT = 274,
     ATSTRINGCONSTANT = 275,
     IMPLEMENTATION = 276,
     ZEROINITIALIZER = 277,
     TRUETOK = 278,
     FALSETOK = 279,
     BEGINTOK = 280,
     ENDTOK = 281,
     DECLARE = 282,
     DEFINE = 283,
     GLOBAL = 284,
     CONSTANT = 285,
     SECTION = 286,
     VOLATILE = 287,
     TO = 288,
     DOTDOTDOT = 289,
     NULL_TOK = 290,
     UNDEF = 291,
     INTERNAL = 292,
     LINKONCE = 293,
     WEAK = 294,
     APPENDING = 295,
     DLLIMPORT = 296,
     DLLEXPORT = 297,
     EXTERN_WEAK = 298,
     OPAQUE = 299,
     EXTERNAL = 300,
     TARGET = 301,
     TRIPLE = 302,
     ALIGN = 303,
     DEPLIBS = 304,
     CALL = 305,
     TAIL = 306,
     ASM_TOK = 307,
     MODULE = 308,
     SIDEEFFECT = 309,
     CC_TOK = 310,
     CCC_TOK = 311,
     FASTCC_TOK = 312,
     COLDCC_TOK = 313,
     X86_STDCALLCC_TOK = 314,
     X86_FASTCALLCC_TOK = 315,
     DATALAYOUT = 316,
     RET = 317,
     BR = 318,
     SWITCH = 319,
     INVOKE = 320,
     UNWIND = 321,
     UNREACHABLE = 322,
     ADD = 323,
     SUB = 324,
     MUL = 325,
     UDIV = 326,
     SDIV = 327,
     FDIV = 328,
     UREM = 329,
     SREM = 330,
     FREM = 331,
     AND = 332,
     OR = 333,
     XOR = 334,
     SHL = 335,
     LSHR = 336,
     ASHR = 337,
     ICMP = 338,
     FCMP = 339,
     EQ = 340,
     NE = 341,
     SLT = 342,
     SGT = 343,
     SLE = 344,
     SGE = 345,
     ULT = 346,
     UGT = 347,
     ULE = 348,
     UGE = 349,
     OEQ = 350,
     ONE = 351,
     OLT = 352,
     OGT = 353,
     OLE = 354,
     OGE = 355,
     ORD = 356,
     UNO = 357,
     UEQ = 358,
     UNE = 359,
     MALLOC = 360,
     ALLOCA = 361,
     FREE = 362,
     LOAD = 363,
     STORE = 364,
     GETELEMENTPTR = 365,
     TRUNC = 366,
     ZEXT = 367,
     SEXT = 368,
     FPTRUNC = 369,
     FPEXT = 370,
     BITCAST = 371,
     UITOFP = 372,
     SITOFP = 373,
     FPTOUI = 374,
     FPTOSI = 375,
     INTTOPTR = 376,
     PTRTOINT = 377,
     PHI_TOK = 378,
     SELECT = 379,
     VAARG = 380,
     EXTRACTELEMENT = 381,
     INSERTELEMENT = 382,
     SHUFFLEVECTOR = 383,
     NORETURN = 384,
     INREG = 385,
     SRET = 386,
     NOUNWIND = 387,
     DEFAULT = 388,
     HIDDEN = 389
   };
#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 LABEL 269
#define TYPE 270
#define LOCALVAR 271
#define GLOBALVAR 272
#define LABELSTR 273
#define STRINGCONSTANT 274
#define ATSTRINGCONSTANT 275
#define IMPLEMENTATION 276
#define ZEROINITIALIZER 277
#define TRUETOK 278
#define FALSETOK 279
#define BEGINTOK 280
#define ENDTOK 281
#define DECLARE 282
#define DEFINE 283
#define GLOBAL 284
#define CONSTANT 285
#define SECTION 286
#define VOLATILE 287
#define TO 288
#define DOTDOTDOT 289
#define NULL_TOK 290
#define UNDEF 291
#define INTERNAL 292
#define LINKONCE 293
#define WEAK 294
#define APPENDING 295
#define DLLIMPORT 296
#define DLLEXPORT 297
#define EXTERN_WEAK 298
#define OPAQUE 299
#define EXTERNAL 300
#define TARGET 301
#define TRIPLE 302
#define ALIGN 303
#define DEPLIBS 304
#define CALL 305
#define TAIL 306
#define ASM_TOK 307
#define MODULE 308
#define SIDEEFFECT 309
#define CC_TOK 310
#define CCC_TOK 311
#define FASTCC_TOK 312
#define COLDCC_TOK 313
#define X86_STDCALLCC_TOK 314
#define X86_FASTCALLCC_TOK 315
#define DATALAYOUT 316
#define RET 317
#define BR 318
#define SWITCH 319
#define INVOKE 320
#define UNWIND 321
#define UNREACHABLE 322
#define ADD 323
#define SUB 324
#define MUL 325
#define UDIV 326
#define SDIV 327
#define FDIV 328
#define UREM 329
#define SREM 330
#define FREM 331
#define AND 332
#define OR 333
#define XOR 334
#define SHL 335
#define LSHR 336
#define ASHR 337
#define ICMP 338
#define FCMP 339
#define EQ 340
#define NE 341
#define SLT 342
#define SGT 343
#define SLE 344
#define SGE 345
#define ULT 346
#define UGT 347
#define ULE 348
#define UGE 349
#define OEQ 350
#define ONE 351
#define OLT 352
#define OGT 353
#define OLE 354
#define OGE 355
#define ORD 356
#define UNO 357
#define UEQ 358
#define UNE 359
#define MALLOC 360
#define ALLOCA 361
#define FREE 362
#define LOAD 363
#define STORE 364
#define GETELEMENTPTR 365
#define TRUNC 366
#define ZEXT 367
#define SEXT 368
#define FPTRUNC 369
#define FPEXT 370
#define BITCAST 371
#define UITOFP 372
#define SITOFP 373
#define FPTOUI 374
#define FPTOSI 375
#define INTTOPTR 376
#define PTRTOINT 377
#define PHI_TOK 378
#define SELECT 379
#define VAARG 380
#define EXTRACTELEMENT 381
#define INSERTELEMENT 382
#define SHUFFLEVECTOR 383
#define NORETURN 384
#define INREG 385
#define SRET 386
#define NOUNWIND 387
#define DEFAULT 388
#define HIDDEN 389




#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
typedef union YYSTYPE {
  llvm::Module                           *ModuleVal;
  llvm::Function                         *FunctionVal;
  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<llvm::Value*>              *ValueList;
  llvm::ArgListType                      *ArgList;
  llvm::TypeWithAttrs                     TypeWithAttrs;
  llvm::TypeWithAttrsList                *TypeWithAttrsList;
  llvm::ValueRefList                     *ValueRefList;

  // Represent the RHS of PHI node
  std::list<std::pair<llvm::Value*,
                      llvm::BasicBlock*> > *PHIList;
  std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
  std::vector<llvm::Constant*>           *ConstVector;

  llvm::GlobalValue::LinkageTypes         Linkage;
  llvm::GlobalValue::VisibilityTypes      Visibility;
  llvm::FunctionType::ParameterAttributes ParamAttrs;
  llvm::APInt                       *APIntVal;
  int64_t                           SInt64Val;
  uint64_t                          UInt64Val;
  int                               SIntVal;
  unsigned                          UIntVal;
  double                            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::CastOps        CastOpVal;
  llvm::Instruction::OtherOps       OtherOpVal;
  llvm::ICmpInst::Predicate         IPredicate;
  llvm::FCmpInst::Predicate         FPredicate;
} YYSTYPE;
/* Line 1447 of yacc.c.  */
#line 353 "llvmAsmParser.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

extern YYSTYPE llvmAsmlval;



