Apply feedback from previous patch.
[oota-llvm.git] / lib / AsmParser / llvmAsmParser.h.cvs
index 4661132712b53a83cf5f25b01850ae9cb9d15f1a..d6cf28d31e8a780f6df36a709cecf00afe1cabb7 100644 (file)
-/* 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,
-     DLLIMPORT = 300,
-     DLLEXPORT = 301,
-     EXTERN_WEAK = 302,
-     OPAQUE = 303,
-     NOT = 304,
-     EXTERNAL = 305,
-     TARGET = 306,
-     TRIPLE = 307,
-     ENDIAN = 308,
-     POINTERSIZE = 309,
-     LITTLE = 310,
-     BIG = 311,
-     ALIGN = 312,
-     DEPLIBS = 313,
-     CALL = 314,
-     TAIL = 315,
-     ASM_TOK = 316,
-     MODULE = 317,
-     SIDEEFFECT = 318,
-     CC_TOK = 319,
-     CCC_TOK = 320,
-     CSRETCC_TOK = 321,
-     FASTCC_TOK = 322,
-     COLDCC_TOK = 323,
-     X86_STDCALLCC_TOK = 324,
-     X86_FASTCALLCC_TOK = 325,
-     DATALAYOUT = 326,
-     RET = 327,
-     BR = 328,
-     SWITCH = 329,
-     INVOKE = 330,
-     UNWIND = 331,
-     UNREACHABLE = 332,
-     ADD = 333,
-     SUB = 334,
-     MUL = 335,
-     UDIV = 336,
-     SDIV = 337,
-     FDIV = 338,
-     UREM = 339,
-     SREM = 340,
-     FREM = 341,
-     AND = 342,
-     OR = 343,
-     XOR = 344,
-     SETLE = 345,
-     SETGE = 346,
-     SETLT = 347,
-     SETGT = 348,
-     SETEQ = 349,
-     SETNE = 350,
-     ICMP = 351,
-     FCMP = 352,
-     EQ = 353,
-     NE = 354,
-     SLT = 355,
-     SGT = 356,
-     SLE = 357,
-     SGE = 358,
-     ULT = 359,
-     UGT = 360,
-     ULE = 361,
-     UGE = 362,
-     OEQ = 363,
-     ONE = 364,
-     OLT = 365,
-     OGT = 366,
-     OLE = 367,
-     OGE = 368,
-     ORD = 369,
-     UNO = 370,
-     UEQ = 371,
-     UNE = 372,
-     MALLOC = 373,
-     ALLOCA = 374,
-     FREE = 375,
-     LOAD = 376,
-     STORE = 377,
-     GETELEMENTPTR = 378,
-     TRUNC = 379,
-     ZEXT = 380,
-     SEXT = 381,
-     FPTRUNC = 382,
-     FPEXT = 383,
-     BITCAST = 384,
-     UITOFP = 385,
-     SITOFP = 386,
-     FPTOUI = 387,
-     FPTOSI = 388,
-     INTTOPTR = 389,
-     PTRTOINT = 390,
-     PHI_TOK = 391,
-     SELECT = 392,
-     SHL = 393,
-     LSHR = 394,
-     ASHR = 395,
-     VAARG = 396,
-     EXTRACTELEMENT = 397,
-     INSERTELEMENT = 398,
-     SHUFFLEVECTOR = 399
-   };
-#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 DLLIMPORT 300
-#define DLLEXPORT 301
-#define EXTERN_WEAK 302
-#define OPAQUE 303
-#define NOT 304
-#define EXTERNAL 305
-#define TARGET 306
-#define TRIPLE 307
-#define ENDIAN 308
-#define POINTERSIZE 309
-#define LITTLE 310
-#define BIG 311
-#define ALIGN 312
-#define DEPLIBS 313
-#define CALL 314
-#define TAIL 315
-#define ASM_TOK 316
-#define MODULE 317
-#define SIDEEFFECT 318
-#define CC_TOK 319
-#define CCC_TOK 320
-#define CSRETCC_TOK 321
-#define FASTCC_TOK 322
-#define COLDCC_TOK 323
-#define X86_STDCALLCC_TOK 324
-#define X86_FASTCALLCC_TOK 325
-#define DATALAYOUT 326
-#define RET 327
-#define BR 328
-#define SWITCH 329
-#define INVOKE 330
-#define UNWIND 331
-#define UNREACHABLE 332
-#define ADD 333
-#define SUB 334
-#define MUL 335
-#define UDIV 336
-#define SDIV 337
-#define FDIV 338
-#define UREM 339
-#define SREM 340
-#define FREM 341
-#define AND 342
-#define OR 343
-#define XOR 344
-#define SETLE 345
-#define SETGE 346
-#define SETLT 347
-#define SETGT 348
-#define SETEQ 349
-#define SETNE 350
-#define ICMP 351
-#define FCMP 352
-#define EQ 353
-#define NE 354
-#define SLT 355
-#define SGT 356
-#define SLE 357
-#define SGE 358
-#define ULT 359
-#define UGT 360
-#define ULE 361
-#define UGE 362
-#define OEQ 363
-#define ONE 364
-#define OLT 365
-#define OGT 366
-#define OLE 367
-#define OGE 368
-#define ORD 369
-#define UNO 370
-#define UEQ 371
-#define UNE 372
-#define MALLOC 373
-#define ALLOCA 374
-#define FREE 375
-#define LOAD 376
-#define STORE 377
-#define GETELEMENTPTR 378
-#define TRUNC 379
-#define ZEXT 380
-#define SEXT 381
-#define FPTRUNC 382
-#define FPEXT 383
-#define BITCAST 384
-#define UITOFP 385
-#define SITOFP 386
-#define FPTOUI 387
-#define FPTOSI 388
-#define INTTOPTR 389
-#define PTRTOINT 390
-#define PHI_TOK 391
-#define SELECT 392
-#define SHL 393
-#define LSHR 394
-#define ASHR 395
-#define VAARG 396
-#define EXTRACTELEMENT 397
-#define INSERTELEMENT 398
-#define SHUFFLEVECTOR 399
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 855 "/proj/llvm/llvm-1/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::ValueRefList                     *ValueRefList;
+
   // Represent the RHS of PHI node
   std::list<std::pair<llvm::Value*,
                       llvm::BasicBlock*> > *PHIList;
@@ -345,33 +23,170 @@ typedef union YYSTYPE {
   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::CastOps        CastOpVal;
   llvm::Instruction::OtherOps       OtherOpVal;
-  llvm::Module::Endianness          Endianness;
   llvm::ICmpInst::Predicate         IPredicate;
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
-/* Line 1447 of yacc.c.  */
-#line 369 "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;