diff options
Diffstat (limited to 'lib/AsmParser/llvmAsmParser.cpp.cvs')
-rw-r--r-- | lib/AsmParser/llvmAsmParser.cpp.cvs | 7699 |
1 files changed, 4408 insertions, 3291 deletions
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs index d205eaf312..5d3843c6f8 100644 --- a/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -1,161 +1,374 @@ +/* A Bison parser, made by GNU Bison 2.3. */ -/* A Bison parser, made from /Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y - by GNU Bison version 1.28 */ +/* Skeleton implementation for Bison's Yacc-like parsers in C -#define YYBISON 1 /* Identify Bison output. */ + 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. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ #define yyparse llvmAsmparse -#define yylex llvmAsmlex +#define yylex llvmAsmlex #define yyerror llvmAsmerror -#define yylval llvmAsmlval -#define yychar llvmAsmchar +#define yylval llvmAsmlval +#define yychar llvmAsmchar #define yydebug llvmAsmdebug #define yynerrs llvmAsmnerrs -#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 - -#line 14 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" + + +/* 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, + DEPLIBS = 309, + CALL = 310, + TAIL = 311, + ASM_TOK = 312, + MODULE = 313, + SIDEEFFECT = 314, + CC_TOK = 315, + CCC_TOK = 316, + FASTCC_TOK = 317, + COLDCC_TOK = 318, + X86_STDCALLCC_TOK = 319, + X86_FASTCALLCC_TOK = 320, + DATALAYOUT = 321, + RET = 322, + BR = 323, + SWITCH = 324, + INVOKE = 325, + UNWIND = 326, + UNREACHABLE = 327, + ADD = 328, + SUB = 329, + MUL = 330, + UDIV = 331, + SDIV = 332, + FDIV = 333, + UREM = 334, + SREM = 335, + FREM = 336, + AND = 337, + OR = 338, + XOR = 339, + SHL = 340, + LSHR = 341, + ASHR = 342, + ICMP = 343, + FCMP = 344, + EQ = 345, + NE = 346, + SLT = 347, + SGT = 348, + SLE = 349, + SGE = 350, + ULT = 351, + UGT = 352, + ULE = 353, + UGE = 354, + OEQ = 355, + ONE = 356, + OLT = 357, + OGT = 358, + OLE = 359, + OGE = 360, + ORD = 361, + UNO = 362, + UEQ = 363, + UNE = 364, + MALLOC = 365, + ALLOCA = 366, + FREE = 367, + LOAD = 368, + STORE = 369, + GETELEMENTPTR = 370, + TRUNC = 371, + ZEXT = 372, + SEXT = 373, + FPTRUNC = 374, + FPEXT = 375, + BITCAST = 376, + UITOFP = 377, + SITOFP = 378, + FPTOUI = 379, + FPTOSI = 380, + INTTOPTR = 381, + PTRTOINT = 382, + PHI_TOK = 383, + SELECT = 384, + VAARG = 385, + EXTRACTELEMENT = 386, + INSERTELEMENT = 387, + SHUFFLEVECTOR = 388, + SIGNEXT = 389, + ZEROEXT = 390, + NORETURN = 391, + INREG = 392, + SRET = 393, + NOUNWIND = 394, + NOALIAS = 395, + BYVAL = 396, + NEST = 397, + DEFAULT = 398, + HIDDEN = 399, + PROTECTED = 400 + }; +#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 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 X86_STDCALLCC_TOK 319 +#define X86_FASTCALLCC_TOK 320 +#define DATALAYOUT 321 +#define RET 322 +#define BR 323 +#define SWITCH 324 +#define INVOKE 325 +#define UNWIND 326 +#define UNREACHABLE 327 +#define ADD 328 +#define SUB 329 +#define MUL 330 +#define UDIV 331 +#define SDIV 332 +#define FDIV 333 +#define UREM 334 +#define SREM 335 +#define FREM 336 +#define AND 337 +#define OR 338 +#define XOR 339 +#define SHL 340 +#define LSHR 341 +#define ASHR 342 +#define ICMP 343 +#define FCMP 344 +#define EQ 345 +#define NE 346 +#define SLT 347 +#define SGT 348 +#define SLE 349 +#define SGE 350 +#define ULT 351 +#define UGT 352 +#define ULE 353 +#define UGE 354 +#define OEQ 355 +#define ONE 356 +#define OLT 357 +#define OGT 358 +#define OLE 359 +#define OGE 360 +#define ORD 361 +#define UNO 362 +#define UEQ 363 +#define UNE 364 +#define MALLOC 365 +#define ALLOCA 366 +#define FREE 367 +#define LOAD 368 +#define STORE 369 +#define GETELEMENTPTR 370 +#define TRUNC 371 +#define ZEXT 372 +#define SEXT 373 +#define FPTRUNC 374 +#define FPEXT 375 +#define BITCAST 376 +#define UITOFP 377 +#define SITOFP 378 +#define FPTOUI 379 +#define FPTOSI 380 +#define INTTOPTR 381 +#define PTRTOINT 382 +#define PHI_TOK 383 +#define SELECT 384 +#define VAARG 385 +#define EXTRACTELEMENT 386 +#define INSERTELEMENT 387 +#define SHUFFLEVECTOR 388 +#define SIGNEXT 389 +#define ZEROEXT 390 +#define NORETURN 391 +#define INREG 392 +#define SRET 393 +#define NOUNWIND 394 +#define NOALIAS 395 +#define BYVAL 396 +#define NEST 397 +#define DEFAULT 398 +#define HIDDEN 399 +#define PROTECTED 400 + + + + +/* Copy the first part of user declarations. */ +#line 14 "/home/chandlerc/code/compilers/llvm/lib/AsmParser/llvmAsmParser.y" #include "ParserInternals.h" #include "llvm/CallingConv.h" @@ -163,6 +376,7 @@ #include "llvm/Instructions.h" #include "llvm/Module.h" #include "llvm/ValueSymbolTable.h" +#include "llvm/AutoUpgrade.h" #include "llvm/Support/GetElementPtrTypeIterator.h" #include "llvm/Support/CommandLine.h" #include "llvm/ADT/SmallVector.h" @@ -276,6 +490,11 @@ static struct PerModuleInfo { return; } + // Look for intrinsic functions and CallInst that need to be upgraded + for (Module::iterator FI = CurrentModule->begin(), + FE = CurrentModule->end(); FI != FE; ) + UpgradeCallsToIntrinsic(FI++); // must be post-increment, as we remove + Values.clear(); // Clear out function local definitions Types.clear(); CurrentModule = 0; @@ -1098,8 +1317,29 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { } -#line 957 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" -typedef union { + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 963 "/home/chandlerc/code/compilers/llvm/lib/AsmParser/llvmAsmParser.y" +{ llvm::Module *ModuleVal; llvm::Function *FunctionVal; llvm::BasicBlock *BasicBlockVal; @@ -1144,1138 +1384,1822 @@ typedef union { llvm::Instruction::OtherOps OtherOpVal; llvm::ICmpInst::Predicate IPredicate; llvm::FCmpInst::Predicate FPredicate; -} YYSTYPE; -#include <stdio.h> +} +/* Line 187 of yacc.c. */ +#line 1390 "llvmAsmParser.tab.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + -#ifndef __cplusplus -#ifndef __STDC__ -#define const +/* Line 216 of yacc.c. */ +#line 1403 "llvmAsmParser.tab.c" + +#ifdef short +# undef short #endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; #endif +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif -#define YYFINAL 594 -#define YYFLAG -32768 -#define YYNTBASE 160 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 399 ? yytranslate[x] : 241) - -static const short yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 150, - 151, 148, 2, 147, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 155, - 146, 156, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 152, 149, 154, 2, 2, 2, 2, 2, 159, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 153, - 2, 2, 157, 2, 158, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145 -}; +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, - 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, - 120, 122, 124, 126, 127, 130, 131, 133, 135, 137, - 138, 141, 143, 145, 147, 149, 151, 153, 155, 157, - 158, 160, 162, 164, 165, 167, 169, 170, 172, 174, - 176, 178, 179, 181, 183, 184, 186, 188, 190, 192, - 194, 197, 199, 201, 203, 205, 207, 209, 211, 213, - 215, 216, 219, 221, 223, 225, 227, 228, 231, 232, - 235, 236, 240, 243, 244, 246, 247, 251, 253, 256, - 258, 260, 262, 264, 266, 268, 270, 272, 274, 277, - 279, 282, 288, 294, 300, 306, 310, 313, 319, 324, - 327, 329, 331, 333, 337, 339, 343, 345, 346, 348, - 352, 357, 361, 365, 370, 375, 379, 386, 392, 395, - 398, 401, 404, 407, 410, 413, 416, 419, 422, 425, - 428, 435, 441, 450, 457, 464, 472, 480, 487, 496, - 505, 509, 511, 513, 515, 517, 518, 521, 528, 530, - 531, 533, 536, 537, 541, 542, 546, 550, 554, 558, - 559, 567, 568, 577, 578, 587, 593, 596, 600, 602, - 606, 610, 614, 618, 620, 621, 627, 631, 633, 637, - 639, 640, 650, 652, 654, 659, 661, 663, 666, 670, - 671, 673, 675, 677, 679, 681, 683, 685, 687, 689, - 693, 695, 701, 703, 705, 707, 709, 711, 713, 716, - 719, 722, 726, 729, 730, 732, 735, 738, 742, 752, - 762, 771, 786, 788, 790, 797, 803, 806, 813, 821, - 825, 831, 832, 833, 837, 840, 842, 848, 854, 861, - 868, 873, 880, 885, 890, 897, 904, 907, 916, 918, - 920, 921, 925, 932, 936, 943, 946, 952, 960 -}; +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif -static const short yyrhs[] = { 73, - 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, - 0, 79, 0, 80, 0, 81, 0, 85, 0, 86, - 0, 87, 0, 82, 0, 83, 0, 84, 0, 116, - 0, 117, 0, 118, 0, 119, 0, 120, 0, 121, - 0, 122, 0, 123, 0, 124, 0, 125, 0, 126, - 0, 127, 0, 90, 0, 91, 0, 92, 0, 93, - 0, 94, 0, 95, 0, 96, 0, 97, 0, 98, - 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, - 0, 104, 0, 105, 0, 106, 0, 107, 0, 108, - 0, 109, 0, 96, 0, 97, 0, 98, 0, 99, - 0, 26, 0, 27, 0, 11, 0, 12, 0, 13, - 0, 16, 0, 15, 0, 14, 0, 19, 0, 22, - 0, 24, 0, 167, 0, 0, 167, 146, 0, 0, - 20, 0, 23, 0, 172, 0, 0, 170, 146, 0, - 42, 0, 44, 0, 43, 0, 45, 0, 47, 0, - 46, 0, 48, 0, 50, 0, 0, 143, 0, 144, - 0, 145, 0, 0, 46, 0, 48, 0, 0, 42, - 0, 43, 0, 44, 0, 47, 0, 0, 44, 0, - 42, 0, 0, 61, 0, 62, 0, 63, 0, 64, - 0, 65, 0, 60, 4, 0, 135, 0, 117, 0, - 134, 0, 118, 0, 137, 0, 138, 0, 140, 0, - 141, 0, 142, 0, 0, 181, 180, 0, 136, 0, - 139, 0, 135, 0, 134, 0, 0, 183, 182, 0, - 0, 53, 4, 0, 0, 147, 53, 4, 0, 34, - 22, 0, 0, 186, 0, 0, 147, 189, 188, 0, - 186, 0, 53, 4, 0, 11, 0, 12, 0, 13, - 0, 16, 0, 15, 0, 14, 0, 17, 0, 49, - 0, 190, 0, 191, 148, 0, 225, 0, 149, 4, - 0, 191, 150, 195, 151, 183, 0, 10, 150, 195, - 151, 183, 0, 152, 4, 153, 191, 154, 0, 155, - 4, 153, 191, 156, 0, 157, 196, 158, 0, 157, - 158, 0, 155, 157, 196, 158, 156, 0, 155, 157, - 158, 156, 0, 191, 181, 0, 191, 0, 10, 0, - 192, 0, 194, 147, 192, 0, 194, 0, 194, 147, - 39, 0, 39, 0, 0, 191, 0, 196, 147, 191, - 0, 191, 152, 199, 154, 0, 191, 152, 154, 0, - 191, 159, 22, 0, 191, 155, 199, 156, 0, 191, - 157, 199, 158, 0, 191, 157, 158, 0, 191, 155, - 157, 199, 158, 156, 0, 191, 155, 157, 158, 156, - 0, 191, 40, 0, 191, 41, 0, 191, 225, 0, - 191, 198, 0, 191, 25, 0, 165, 3, 0, 165, - 5, 0, 165, 4, 0, 165, 6, 0, 11, 26, - 0, 11, 27, 0, 166, 9, 0, 162, 150, 197, - 38, 191, 151, 0, 115, 150, 197, 236, 151, 0, - 129, 150, 197, 147, 197, 147, 197, 151, 0, 160, - 150, 197, 147, 197, 151, 0, 161, 150, 197, 147, - 197, 151, 0, 88, 163, 150, 197, 147, 197, 151, - 0, 89, 164, 150, 197, 147, 197, 151, 0, 131, - 150, 197, 147, 197, 151, 0, 132, 150, 197, 147, - 197, 147, 197, 151, 0, 133, 150, 197, 147, 197, - 147, 197, 151, 0, 199, 147, 197, 0, 197, 0, - 32, 0, 33, 0, 37, 0, 0, 193, 225, 0, - 121, 150, 202, 38, 191, 151, 0, 204, 0, 0, - 205, 0, 204, 205, 0, 0, 31, 206, 221, 0, - 0, 30, 207, 222, 0, 58, 57, 211, 0, 169, - 18, 191, 0, 169, 18, 10, 0, 0, 171, 175, - 201, 200, 197, 208, 188, 0, 0, 171, 173, 175, - 201, 200, 197, 209, 188, 0, 0, 171, 174, 175, - 201, 200, 191, 210, 188, 0, 171, 175, 35, 178, - 202, 0, 51, 212, 0, 54, 146, 213, 0, 22, - 0, 52, 146, 22, 0, 66, 146, 22, 0, 152, - 214, 154, 0, 214, 147, 22, 0, 22, 0, 0, - 215, 147, 191, 181, 168, 0, 191, 181, 168, 0, - 215, 0, 215, 147, 39, 0, 39, 0, 0, 179, - 193, 170, 150, 216, 151, 183, 187, 184, 0, 28, - 0, 157, 0, 177, 175, 217, 218, 0, 29, 0, - 158, 0, 228, 220, 0, 176, 175, 217, 0, 0, - 59, 0, 3, 0, 4, 0, 9, 0, 26, 0, - 27, 0, 40, 0, 41, 0, 25, 0, 155, 199, - 156, 0, 198, 0, 57, 223, 22, 147, 22, 0, - 7, 0, 8, 0, 167, 0, 170, 0, 225, 0, - 224, 0, 191, 226, 0, 228, 229, 0, 219, 229, - 0, 230, 169, 231, 0, 230, 233, 0, 0, 21, - 0, 67, 227, 0, 67, 10, 0, 68, 17, 226, - 0, 68, 11, 226, 147, 17, 226, 147, 17, 226, - 0, 69, 165, 226, 147, 17, 226, 152, 232, 154, - 0, 69, 165, 226, 147, 17, 226, 152, 154, 0, - 70, 179, 193, 226, 150, 235, 151, 183, 38, 17, - 226, 71, 17, 226, 0, 71, 0, 72, 0, 232, - 165, 224, 147, 17, 226, 0, 165, 224, 147, 17, - 226, 0, 169, 238, 0, 191, 152, 226, 147, 226, - 154, 0, 234, 147, 152, 226, 147, 226, 154, 0, - 191, 226, 181, 0, 235, 147, 191, 226, 181, 0, - 0, 0, 236, 147, 227, 0, 56, 55, 0, 55, - 0, 160, 191, 226, 147, 226, 0, 161, 191, 226, - 147, 226, 0, 88, 163, 191, 226, 147, 226, 0, - 89, 164, 191, 226, 147, 226, 0, 162, 227, 38, - 191, 0, 129, 227, 147, 227, 147, 227, 0, 130, - 227, 147, 191, 0, 131, 227, 147, 227, 0, 132, - 227, 147, 227, 147, 227, 0, 133, 227, 147, 227, - 147, 227, 0, 128, 234, 0, 237, 179, 193, 226, - 150, 235, 151, 183, 0, 240, 0, 36, 0, 0, - 110, 191, 185, 0, 110, 191, 147, 11, 226, 185, - 0, 111, 191, 185, 0, 111, 191, 147, 11, 226, - 185, 0, 112, 227, 0, 239, 113, 191, 226, 185, - 0, 239, 114, 227, 147, 191, 226, 185, 0, 115, - 191, 226, 236, 0 -}; +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ #endif -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117, - 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1122, 1122, 1123, - 1123, 1124, 1124, 1125, 1125, 1126, 1126, 1130, 1130, 1131, - 1131, 1132, 1132, 1133, 1133, 1134, 1134, 1135, 1135, 1136, - 1136, 1137, 1138, 1143, 1144, 1144, 1144, 1144, 1144, 1146, - 1146, 1146, 1147, 1147, 1151, 1155, 1160, 1160, 1162, 1163, - 1168, 1174, 1175, 1176, 1177, 1178, 1182, 1183, 1184, 1188, - 1189, 1190, 1191, 1195, 1196, 1197, 1201, 1202, 1203, 1204, - 1205, 1209, 1210, 1211, 1214, 1214, 1215, 1216, 1217, 1218, - 1219, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, - 1238, 1239, 1244, 1245, 1246, 1247, 1250, 1251, 1258, 1258, - 1265, 1265, 1274, 1282, 1282, 1288, 1288, 1290, 1295, 1308, - 1308, 1308, 1308, 1308, 1308, 1308, 1311, 1315, 1319, 1326, - 1331, 1339, 1369, 1400, 1405, 1417, 1427, 1431, 1441, 1448, - 1455, 1462, 1467, 1472, 1479, 1480, 1487, 1494, 1502, 1508, - 1520, 1548, 1564, 1591, 1619, 1645, 1665, 1691, 1711, 1723, - 1730, 1796, 1806, 1816, 1822, 1832, 1838, 1848, 1853, 1858, - 1866, 1878, 1900, 1908, 1914, 1925, 1930, 1935, 1941, 1947, - 1956, 1960, 1968, 1968, 1971, 1971, 1974, 1985, 2006, 2011, - 2019, 2020, 2024, 2024, 2028, 2028, 2031, 2034, 2058, 2069, - 2076, 2079, 2085, 2088, 2095, 2099, 2118, 2121, 2127, 2137, - 2141, 2146, 2148, 2153, 2158, 2167, 2177, 2188, 2192, 2201, - 2210, 2215, 2336, 2336, 2338, 2347, 2347, 2349, 2354, 2366, - 2370, 2375, 2379, 2383, 2387, 2391, 2395, 2399, 2403, 2407, - 2432, 2436, 2446, 2450, 2454, 2459, 2466, 2466, 2472, 2481, - 2485, 2494, 2503, 2512, 2516, 2523, 2527, 2531, 2536, 2546, - 2565, 2574, 2654, 2658, 2665, 2676, 2689, 2699, 2710, 2720, - 2729, 2738, 2741, 2742, 2749, 2753, 2758, 2779, 2796, 2810, - 2824, 2836, 2844, 2851, 2857, 2863, 2869, 2884, 2969, 2974, - 2978, 2985, 2992, 3000, 3007, 3015, 3023, 3037, 3054 -}; +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; #endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","ESINT64VAL", -"EUINT64VAL","ESAPINTVAL","EUAPINTVAL","LOCALVAL_ID","GLOBALVAL_ID","FPVAL", -"VOID","INTTYPE","FLOAT","DOUBLE","X86_FP80","FP128","PPC_FP128","LABEL","TYPE", -"LOCALVAR","GLOBALVAR","LABELSTR","STRINGCONSTANT","ATSTRINGCONSTANT","PCTSTRINGCONSTANT", -"ZEROINITIALIZER","TRUETOK","FALSETOK","BEGINTOK","ENDTOK","DECLARE","DEFINE", -"GLOBAL","CONSTANT","SECTION","ALIAS","VOLATILE","THREAD_LOCAL","TO","DOTDOTDOT", -"NULL_TOK","UNDEF","INTERNAL","LINKONCE","WEAK","APPENDING","DLLIMPORT","DLLEXPORT", -"EXTERN_WEAK","OPAQUE","EXTERNAL","TARGET","TRIPLE","ALIGN","DEPLIBS","CALL", -"TAIL","ASM_TOK","MODULE","SIDEEFFECT","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK", -"X86_STDCALLCC_TOK","X86_FASTCALLCC_TOK","DATALAYOUT","RET","BR","SWITCH","INVOKE", -"UNWIND","UNREACHABLE","ADD","SUB","MUL","UDIV","SDIV","FDIV","UREM","SREM", -"FREM","AND","OR","XOR","SHL","LSHR","ASHR","ICMP","FCMP","EQ","NE","SLT","SGT", -"SLE","SGE","ULT","UGT","ULE","UGE","OEQ","ONE","OLT","OGT","OLE","OGE","ORD", -"UNO","UEQ","UNE","MALLOC","ALLOCA","FREE","LOAD","STORE","GETELEMENTPTR","TRUNC", -"ZEXT","SEXT","FPTRUNC","FPEXT","BITCAST","UITOFP","SITOFP","FPTOUI","FPTOSI", -"INTTOPTR","PTRTOINT","PHI_TOK","SELECT","VAARG","EXTRACTELEMENT","INSERTELEMENT", -"SHUFFLEVECTOR","SIGNEXT","ZEROEXT","NORETURN","INREG","SRET","NOUNWIND","NOALIAS", -"BYVAL","NEST","DEFAULT","HIDDEN","PROTECTED","'='","','","'*'","'\\\\'","'('", -"')'","'['" |