diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-02-02 02:16:23 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-02-02 02:16:23 +0000 |
commit | 832254e1c2387c0cbeb0a820b8315fbe85cb003a (patch) | |
tree | d3d0c15237b69dfda4ea152775417f2cc67b369b /tools/llvm-upgrade/UpgradeParser.cpp.cvs | |
parent | 9a2ef9509e76869c3d658fb3e321d9b9e9d479d9 (diff) |
Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-upgrade/UpgradeParser.cpp.cvs')
-rw-r--r-- | tools/llvm-upgrade/UpgradeParser.cpp.cvs | 1480 |
1 files changed, 745 insertions, 735 deletions
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/tools/llvm-upgrade/UpgradeParser.cpp.cvs index 515d2d6bab..e289939e24 100644 --- a/tools/llvm-upgrade/UpgradeParser.cpp.cvs +++ b/tools/llvm-upgrade/UpgradeParser.cpp.cvs @@ -154,26 +154,26 @@ AND = 345, OR = 346, XOR = 347, - SETLE = 348, - SETGE = 349, - SETLT = 350, - SETGT = 351, - SETEQ = 352, - SETNE = 353, - ICMP = 354, - FCMP = 355, - MALLOC = 356, - ALLOCA = 357, - FREE = 358, - LOAD = 359, - STORE = 360, - GETELEMENTPTR = 361, - PHI_TOK = 362, - SELECT = 363, - SHL = 364, - SHR = 365, - ASHR = 366, - LSHR = 367, + SHL = 348, + SHR = 349, + ASHR = 350, + LSHR = 351, + SETLE = 352, + SETGE = 353, + SETLT = 354, + SETGT = 355, + SETEQ = 356, + SETNE = 357, + ICMP = 358, + FCMP = 359, + MALLOC = 360, + ALLOCA = 361, + FREE = 362, + LOAD = 363, + STORE = 364, + GETELEMENTPTR = 365, + PHI_TOK = 366, + SELECT = 367, VAARG = 368, EXTRACTELEMENT = 369, INSERTELEMENT = 370, @@ -306,26 +306,26 @@ #define AND 345 #define OR 346 #define XOR 347 -#define SETLE 348 -#define SETGE 349 -#define SETLT 350 -#define SETGT 351 -#define SETEQ 352 -#define SETNE 353 -#define ICMP 354 -#define FCMP 355 -#define MALLOC 356 -#define ALLOCA 357 -#define FREE 358 -#define LOAD 359 -#define STORE 360 -#define GETELEMENTPTR 361 -#define PHI_TOK 362 -#define SELECT 363 -#define SHL 364 -#define SHR 365 -#define ASHR 366 -#define LSHR 367 +#define SHL 348 +#define SHR 349 +#define ASHR 350 +#define LSHR 351 +#define SETLE 352 +#define SETGE 353 +#define SETLT 354 +#define SETGT 355 +#define SETEQ 356 +#define SETNE 357 +#define ICMP 358 +#define FCMP 359 +#define MALLOC 360 +#define ALLOCA 361 +#define FREE 362 +#define LOAD 363 +#define STORE 364 +#define GETELEMENTPTR 365 +#define PHI_TOK 366 +#define SELECT 367 #define VAARG 368 #define EXTRACTELEMENT 369 #define INSERTELEMENT 370 @@ -370,7 +370,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" #include "UpgradeInternals.h" #include "llvm/CallingConv.h" @@ -1368,6 +1368,13 @@ getBinaryOp(BinaryOps op, const Type *Ty, Signedness Sign) { case URemOp : return Instruction::URem; case SRemOp : return Instruction::SRem; case FRemOp : return Instruction::FRem; + case LShrOp : return Instruction::LShr; + case AShrOp : return Instruction::AShr; + case ShlOp : return Instruction::Shl; + case ShrOp : + if (Sign == Signed) + return Instruction::AShr; + return Instruction::LShr; case AndOp : return Instruction::And; case OrOp : return Instruction::Or; case XorOp : return Instruction::Xor; @@ -1462,11 +1469,6 @@ getOtherOp(OtherOps op, Signedness Sign) { default : assert(0 && "Invalid OldOtherOps"); case PHIOp : return Instruction::PHI; case CallOp : return Instruction::Call; - case ShlOp : return Instruction::Shl; - case ShrOp : - if (Sign == Signed) - return Instruction::AShr; - return Instruction::LShr; case SelectOp : return Instruction::Select; case UserOp1 : return Instruction::UserOp1; case UserOp2 : return Instruction::UserOp2; @@ -1476,8 +1478,6 @@ getOtherOp(OtherOps op, Signedness Sign) { case ShuffleVectorOp : return Instruction::ShuffleVector; case ICmpOp : return Instruction::ICmp; case FCmpOp : return Instruction::FCmp; - case LShrOp : return Instruction::LShr; - case AShrOp : return Instruction::AShr; }; } @@ -1553,7 +1553,6 @@ upgradeIntrinsicCall(const Type* RetTy, const ValID &ID, error("Invalid prototype for " + Name + " prototype"); return new FCmpInst(FCmpInst::FCMP_UNO, Args[0], Args[1]); } else { - static unsigned upgradeCount = 1; const Type* PtrTy = PointerType::get(Type::Int8Ty); std::vector<const Type*> Params; if (Name == "llvm.va_start" || Name == "llvm.va_end") { @@ -1563,9 +1562,7 @@ upgradeIntrinsicCall(const Type* RetTy, const ValID &ID, const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false); const PointerType *PFTy = PointerType::get(FTy); Value* Func = getVal(PFTy, ID); - std::string InstName("va_upgrade"); - InstName += llvm::utostr(upgradeCount++); - Args[0] = new BitCastInst(Args[0], PtrTy, InstName, CurBB); + Args[0] = new BitCastInst(Args[0], PtrTy, makeNameUnique("va"), CurBB); return new CallInst(Func, Args); } else if (Name == "llvm.va_copy") { if (Args.size() != 2) @@ -1575,10 +1572,8 @@ upgradeIntrinsicCall(const Type* RetTy, const ValID &ID, const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false); const PointerType *PFTy = PointerType::get(FTy); Value* Func = getVal(PFTy, ID); - std::string InstName0("va_upgrade"); - InstName0 += llvm::utostr(upgradeCount++); - std::string InstName1("va_upgrade"); - InstName1 += llvm::utostr(upgradeCount++); + std::string InstName0(makeNameUnique("va0")); + std::string InstName1(makeNameUnique("va1")); Args[0] = new BitCastInst(Args[0], PtrTy, InstName0, CurBB); Args[1] = new BitCastInst(Args[1], PtrTy, InstName1, CurBB); return new CallInst(Func, Args); @@ -1623,7 +1618,7 @@ const Type* upgradeGEPIndices(const Type* PTy, cast<Constant>(Index), Type::Int64Ty); else Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty, - makeNameUnique("gep_upgrade"), CurBB); + makeNameUnique("gep"), CurBB); VIndices[i] = Index; } } @@ -1816,7 +1811,7 @@ using namespace llvm; #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 1440 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1435 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1859,7 +1854,7 @@ typedef union YYSTYPE { llvm::Module::Endianness Endianness; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 1863 "UpgradeParser.tab.c" +#line 1858 "UpgradeParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1871,7 +1866,7 @@ typedef union YYSTYPE { /* Line 219 of yacc.c. */ -#line 1875 "UpgradeParser.tab.c" +#line 1870 "UpgradeParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -2022,7 +2017,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1712 +#define YYLAST 1736 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 166 @@ -2130,14 +2125,14 @@ static const short int yyrhs[] = 200, 0, -1, 5, -1, 6, -1, 3, -1, 4, -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, - -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, - -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, + -1, 89, -1, 90, -1, 91, -1, 92, -1, 97, + -1, 98, -1, 99, -1, 100, -1, 101, -1, 102, -1, 119, -1, 120, -1, 121, -1, 122, -1, 123, -1, 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, 137, -1, 138, -1, 125, -1, 126, -1, 127, -1, 128, -1, 27, - -1, 28, -1, 109, -1, 110, -1, 111, -1, 112, + -1, 28, -1, 93, -1, 94, -1, 95, -1, 96, -1, 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, -1, 149, -1, 150, -1, 151, -1, 139, -1, 16, -1, 14, @@ -2166,11 +2161,11 @@ static const short int yyrhs[] = 191, 39, -1, 191, 227, -1, 191, 197, -1, 191, 26, -1, 176, 168, -1, 177, 4, -1, 9, 27, -1, 9, 28, -1, 179, 7, -1, 175, 155, 196, - 36, 191, 156, -1, 106, 155, 196, 242, 156, -1, - 108, 155, 196, 153, 196, 153, 196, 156, -1, 169, + 36, 191, 156, -1, 110, 155, 196, 242, 156, -1, + 112, 155, 196, 153, 196, 153, 196, 156, -1, 169, 155, 196, 153, 196, 156, -1, 170, 155, 196, 153, 196, 156, -1, 171, 155, 196, 153, 196, 156, -1, - 99, 172, 155, 196, 153, 196, 156, -1, 100, 173, + 103, 172, 155, 196, 153, 196, 156, -1, 104, 173, 155, 196, 153, 196, 156, -1, 174, 155, 196, 153, 196, 156, -1, 114, 155, 196, 153, 196, 156, -1, 115, 155, 196, 153, 196, 153, 196, 156, -1, 116, @@ -2211,55 +2206,55 @@ static const short int yyrhs[] = 238, 153, 229, -1, 238, -1, -1, 60, 59, -1, 59, -1, 169, 191, 228, 153, 228, -1, 170, 191, 228, 153, 228, -1, 171, 191, 228, 153, 228, -1, - 99, 172, 191, 228, 153, 228, -1, 100, 173, 191, + 103, 172, 191, 228, 153, 228, -1, 104, 173, 191, 228, 153, 228, -1, 49, 229, -1, 174, 229, 153, - 229, -1, 175, 229, 36, 191, -1, 108, 229, 153, + 229, -1, 175, 229, 36, 191, -1, 112, 229, 153, 229, 153, 229, -1, 113, 229, 153, 191, -1, 117, 229, 153, 191, -1, 118, 229, 153, 191, -1, 114, 229, 153, 229, -1, 115, 229, 153, 229, 153, 229, - -1, 116, 229, 153, 229, 153, 229, -1, 107, 237, + -1, 116, 229, 153, 229, 153, 229, -1, 111, 237, -1, 240, 182, 189, 228, 155, 239, 156, -1, 244, - -1, 153, 238, -1, -1, 35, -1, -1, 101, 191, - 184, -1, 101, 191, 153, 15, 228, 184, -1, 102, - 191, 184, -1, 102, 191, 153, 15, 228, 184, -1, - 103, 229, -1, 243, 104, 191, 228, -1, 243, 105, - 229, 153, 191, 228, -1, 106, 191, 228, 242, -1 + -1, 153, 238, -1, -1, 35, -1, -1, 105, 191, + 184, -1, 105, 191, 153, 15, 228, 184, -1, 106, + 191, 184, -1, 106, 191, 153, 15, 228, 184, -1, + 107, 229, -1, 243, 108, 191, 228, -1, 243, 109, + 229, 153, 191, 228, -1, 110, 191, 228, 242, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 1580, 1580, 1581, 1589, 1590, 1600, 1600, 1600, 1600, - 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1604, 1604, 1604, - 1608, 1608, 1608, 1608, 1608, 1608, 1612, 1612, 1613, 1613, - 1614, 1614, 1615, 1615, 1616, 1616, 1620, 1620, 1621, 1621, - 1622, 1622, 1623, 1623, 1624, 1624, 1625, 1625, 1626, 1626, - 1627, 1628, 1631, 1631, 1631, 1631, 1635, 1635, 1635, 1635, - 1635, 1635, 1635, 1636, 1636, 1636, 1636, 1636, 1636, 1642, - 1642, 1642, 1642, 1646, 1646, 1646, 1646, 1650, 1650, 1654, - 1654, 1659, 1662, 1667, 1668, 1669, 1670, 1671, 1672, 1673, - 1674, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1695, - 1696, 1704, 1705, 1713, 1722, 1723, 1730, 1731, 1735, 1739, - 1755, 1756, 1763, 1764, 1771, 1779, 1779, 1779, 1779, 1779, - 1779, 1779, 1780, 1780, 1780, 1780, 1780, 1785, 1789, 1793, - 1798, 1807, 1828, 1834, 1847, 1856, 1860, 1871, 1875, 1888, - 1892, 1899, 1900, 1906, 1913, 1925, 1955, 1968, 1991, 2019, - 2041, 2052, 2074, 2085, 2094, 2099, 2157, 2164, 2172, 2179, - 2186, 2190, 2194, 2203, 2218, 2231, 2240, 2268, 2281, 2290, - 2296, 2302, 2311, 2317, 2323, 2334, 2335, 2344, 2345, 2357, - 2366, 2367, 2368, 2369, 2370, 2386, 2406, 2408, 2410, 2410, - 2417, 2417, 2424, 2424, 2431, 2431, 2439, 2441, 2443, 2448, - 2462, 2463, 2467, 2470, 2478, 2482, 2489, 2493, 2497, 2501, - 2509, 2509, 2513, 2514, 2518, 2526, 2531, 2539, 2540, 2547, - 2554, 2558, 2673, 2673, 2677, 2687, 2687, 2691, 2695, 2697, - 2698, 2702, 2702, 2714, 2715, 2720, 2721, 2722, 2723, 2724, - 2725, 2726, 2727, 2728, 2749, 2752, 2767, 2768, 2773, 2773, - 2781, 2790, 2793, 2802, 2812, 2817, 2826, 2837, 2837, 2840, - 2843, 2846, 2850, 2856, 2871, 2877, 2933, 2936, 2942, 2952, - 2965, 2994, 3002, 3010, 3014, 3021, 3022, 3026, 3029, 3035, - 3052, 3068, 3082, 3094, 3106, 3117, 3126, 3135, 3144, 3151, - 3172, 3196, 3202, 3208, 3214, 3230, 3308, 3316, 3317, 3321, - 3322, 3326, 3332, 3338, 3344, 3350, 3357, 3369, 3383 + 0, 1575, 1575, 1576, 1584, 1585, 1595, 1595, 1595, 1595, + 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1599, 1599, 1599, + 1603, 1603, 1603, 1603, 1603, 1603, 1607, 1607, 1608, 1608, + 1609, 1609, 1610, 1610, 1611, 1611, 1615, 1615, 1616, 1616, + 1617, 1617, 1618, 1618, 1619, 1619, 1620, 1620, 1621, 1621, + 1622, 1623, 1626, 1626, 1626, 1626, 1630, 1630, 1630, 1630, + 1630, 1630, 1630, 1631, 1631, 1631, 1631, 1631, 1631, 1637, + 1637, 1637, 1637, 1641, 1641, 1641, 1641, 1645, 1645, 1649, + 1649, 1654, 1657, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1690, + 1691, 1699, 1700, 1708, 1717, 1718, 1725, 1726, 1730, 1734, + 1750, 1751, 1758, 1759, 1766, 1774, 1774, 1774, 1774, 1774, + 1774, 1774, 1775, 1775, 1775, 1775, 1775, 1780, 1784, 1788, + 1793, 1802, 1823, 1829, 1842, 1851, 1855, 1866, 1870, 1883, + 1887, 1894, 1895, 1901, 1908, 1920, 1950, 1963, 1986, 2014, + 2036, 2047, 2069, 2080, 2089, 2094, 2152, 2159, 2167, 2174, + 2181, 2185, 2189, 2198, 2213, 2226, 2235, 2263, 2276, 2285, + 2291, 2297, 2308, 2314, 2320, 2331, 2332, 2341, 2342, 2354, + 2363, 2364, 2365, 2366, 2367, 2383, 2403, 2405, 2407, 2407, + 2414, 2414, 2421, 2421, 2428, 2428, 2436, 2438, 2440, 2445, + 2459, 2460, 2464, 2467, 2475, 2479, 2486, 2490, 2494, 2498, + 2506, 2506, 2510, 2511, 2515, 2523, 2528, 2536, 2537, 2544, + 2551, 2555, 2670, 2670, 2674, 2684, 2684, 2688, 2692, 2694, + 2695, 2699, 2699, 2711, 2712, 2717, 2718, 2719, 2720, 2721, + 2722, 2723, 2724, 2725, 2746, 2749, 2764, 2765, 2770, 2770, + 2778, 2787, 2790, 2799, 2809, 2814, 2823, 2834, 2834, 2837, + 2840, 2843, 2847, 2853, 2868, 2874, 2930, 2933, 2939, 2949, + 2962, 2991, 2999, 3007, 3011, 3018, 3019, 3023, 3026, 3032, + 3049, 3065, 3079, 3091, 3103, 3114, 3132, 3141, 3150, 3157, + 3178, 3202, 3208, 3214, 3220, 3236, 3314, 3322, 3323, 3327, + 3328, 3332, 3338, 3344, 3350, 3356, 3363, 3375, 3389 }; #endif @@ -2282,10 +2277,10 @@ static const char *const yytname[] = "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", "RET", "BR", "SWITCH", "INVOKE", "UNREACHABLE", "UNWIND", "EXCEPT", "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM", - "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT", - "SETEQ", "SETNE", "ICMP", "FCMP", "MALLOC", "ALLOCA", "FREE", "LOAD", - "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR", - "LSHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", + "SREM", "FREM", "AND", "OR", "XOR", "SHL", "SHR", "ASHR", "LSHR", + "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "ICMP", "FCMP", + "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", + "SELECT", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", "VAARG_old", "VANEXT_old", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT", "UGT", "ULE", "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE", "CAST", "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", @@ -2427,9 +2422,9 @@ static const unsigned short int yydefact[] = 0, 0, 232, 130, 0, 0, 0, 113, 135, 139, 0, 0, 144, 138, 299, 0, 278, 0, 0, 0, 0, 91, 267, 257, 258, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 53, 54, 55, 0, 0, 0, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 52, + 53, 54, 55, 20, 21, 22, 23, 24, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, 266, 253, 91, 270, 0, 296, 204, 201, 200, @@ -2491,83 +2486,83 @@ static const short int yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -508 +#define YYPACT_NINF -541 static const short int yypact[] = { - -508, 18, 144, 546, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, 2, 152, 47, -508, -508, -15, - -508, -508, -30, -75, 29, 69, -10, -508, 98, 104, - 151, -508, -508, -508, -508, -508, -508, 1307, -8, -508, - -508, 149, -508, -508, -508, -508, 11, 20, 22, 24, - -508, 27, 104, 1307, 0, 0, 0, 0, -508, -508, - -508, 152, -508, -508, -508, -508, -508, 37, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, 194, 200, 3, 695, -508, 149, 54, -508, -508, - -81, -508, -508, -508, -508, -508, 1561, -508, 186, -19, - 210, 188, 203, -508, -508, -508, -508, -508, 1368, 1368, - 1368, 1409, -508, -508, 66, 70, 715, -508, -508, -81, - -85, 75, 781, -508, -508, 1368, -508, 172, 1429, 58, - 255, 152, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, 208, 394, 1368, 1368, 1368, - 1368, 1368, 1368, -508, -508, -508, -508, 1368, 1368, 1368, - 1368, 1368, 1368, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, 1368, 1368, 1368, 1368, - 1368, -508, -508, 152, -508, 55, -508, -508, -508, -508, - -508, -508, -508, -508, -50, -508, -508, -508, 153, 179, - 228, 191, 229, 193, 230, 197, 231, 233, 234, 199, - 232, 235, 537, -508, 1368, 1368, 84, -45, 1368, -508, - 1149, -508, 93, 91, 898, -508, -508, 37, -508, 898, - 898, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, 898, 1307, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, 1368, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - 1368, 95, 96, -508, 898, 99, 97, 105, 106, 107, - 120, 123, 126, 127, 898, 898, 898, 128, 221, 1307, - 1368, 1368, 258, -508, 132, 132, 132, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, 208, 394, 131, - 134, 135, 136, 137, 1190, 1470, 736, 259, 139, 140, - 141, 142, 148, -508, -508, 132, -130, -23, -508, 143, - -81, -508, 149, -508, 155, 154, 1210, -508, -508, -508, - -508, -508, -508, -508, -508, -508, 224, 1409, -508, -508, - -508, -508, 156, -508, 163, 898, 898, 898, 4, -508, - 5, -508, 164, 898, 162, 1368, 1368, 1368, 1368, 1368, - 1368, 1368, 167, 168, 169, 1368, 1368, 898, 898, 170, - -508, -17, -508, -508, -508, 150, 182, 1409, 1409, 1409, - 1409, 1409, -508, -508, -13, 756, -24, -508, -36, -508, - 1409, 1409, 1409, 1409, 1409, -508, -508, -508, -508, -508, - -508, 1251, 290, -508, -508, 301, -14, 324, 325, 198, - 201, 202, 898, 348, 898, 1368, -508, 204, 898, 205, - -508, -508, 211, 214, -508, -508, 898, 898, 898, -508, - -508, 213, -508, 1368, 332, 365, -508, 132, 1409, 1409, - 164, 217, 222, 223, 225, 1409, -508, 216, -71, -27, - -508, -508, 226, 236, 237, 240, 338, -508, -508, -508, - 326, 241, -508, 898, 898, 1368, 898, 898, 242, -508, - 242, -508, 243, 898, 244, 1368, 1368, 1368, -508, -508, - -508, 1368, 898, -508, -508, -508, 246, 247, 245, 1409, - 1409, 1409, 1409, -508, -508, 220, 1409, 1409, 1409, 1409, - 1368, 378, -508, 361, 249, 248, 243, 250, -508, -508, - 329, -508, -508, 1368, 256, 898, -508, -508, -508, 251, - -508, 1409, 1409, -508, 261, 252, 270, 271, -508, 269, - 272, 275, 279, 280, -508, -508, 367, 40, 368, -508, - -508, 267, -508, 281, 282, 1409, -508, 1409, 1409, -508, - -508, -508, -508, -508, 898, -508, 996, 85, 382, -508, - -508, -508, 283, 285, 288, -508, 274, -508, 996, 898, - -508, -508, -508, 424, 293, 130, 898, 426, 430, -508, - 898, 898, -508, -508 + -541, 28, 61, 478, -541, -541, -541, -541, -541, -541, + -541, -541, -541, -541, 23, 152, 45, -541, -541, -9, + -541, -541, -20, -51, 76, 69, 12, -541, 97, 149, + 172, -541, -541, -541, -541, -541, -541, 1331, -19, -541, + -541, 137, -541, -541, -541, -541, 49, 58, 60, 62, + -541, 72, 149, 1331, 88, 88, 88, 88, -541, -541, + -541, 152, -541, -541, -541, -541, -541, 75, -541, -541, + -541, -541, -541, -541, -541, -541, -541, -541, -541, -541, + -541, 227, 228, 3, 691, -541, 137, 79, -541, -541, + -46, -541, -541, -541, -541, -541, 1585, -541, 212, 136, + 233, 214, 216, -541, -541, -541, -541, -541, 1392, 1392, + 1392, 1433, -541, -541, 83, 87, 711, -541, -541, -46, + -70, 89, 777, -541, -541, 1392, -541, 183, 1453, 6, + 309, 152, -541, -541, -541, -541, -541, -541, -541, -541, + -541, -541, -541, -541, -541, -541, -541, -541, -541, -541, + -541, -541, -541, -541, -541, -541, -541, -541, -541, 59, + 142, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, + 1392, 1392, 1392, -541, -541, -541, -541, -541, -541, -541, + -541, -541, -541, -541, -541, -541, 1392, 1392, 1392, 1392, + 1392, -541, -541, 152, -541, 86, -541, -541, -541, -541, + -541, -541, -541, -541, -129, -541, -541, -541, 169, 196, + 242, 200, 246, 203, 252, 205, 253, 251, 258, 221, + 255, 259, 533, -541, 1392, 1392, 99, -63, 1392, -541, + 1173, -541, 128, 126, 894, -541, -541, 75, -541, 894, + 894, -541, -541, -541, -541, -541, -541, -541, -541, -541, + -541, 894, 1331, -541, -541, -541, -541, -541, -541, -541, + -541, -541, -541, 1392, -541, -541, -541, -541, -541, -541, + -541, -541, -541, -541, -541, -541, -541, -541, -541, -541, + 1392, 130, 133, -541, 894, 132, 138, 139, 143, 144, + 151, 155, 156, 157, 894, 894, 894, 163, 254, 1331, + 1392, 1392, 271, -541, 164, 164, 164, -541, -541, -541, + -541, -541, -541, -541, -541, -541, -541, 59, 142, 173, + 174, 175, 176, 177, 1214, 1494, 732, 281, 178, 179, + 180, 182, 190, -541, -541, 164, -42, -135, -541, 166, + -46, -541, 137, -541, 193, 191, 1234, -541, -541, -541, + -541, -541, -541, -541, -541, -541, 290, 1433, -541, -541, + -541, -541, 201, -541, 202, 894, 894, 894, 7, -541, + 10, -541, 204, 894, 199, 1392, 1392, 1392, 1392, 1392, + 1392, 1392, 211, 215, 217, 1392, 1392, 894, 894, 223, + -541, -21, -541, -541, -541, 210, 219, 1433, 1433, 1433, + 1433, 1433, -541, -541, 4, 752, -91, -541, -8, -541, + 1433, 1433, 1433, 1433, 1433, -541, -541, -541, -541, -541, + -541, 1275, 324, -541, -541, 343, 37, 348, 356, 224, + 225, 229, 894, 376, 894, 1392, -541, 230, 894, 232, + -541, -541, 234, 235, -541, -541, 894, 894, 894, -541, + -541, 226, -541, 1392, 362, 385, -541, 164, 1433, 1433, + 204, 238, 239, 240, 241, 1433, -541, 243, -17, -5, + -541, -541, 247, 250, 261, 262, 359, -541, -541, -541, + 339, 268, -541, 894, 894, 1392, 894, 894, 269, -541, + 269, -541, 270, 894, 272, 1392, 1392, 1392, -541, -541, + -541, 1392, 894, -541, -541, -541, 273, 274, 249, 1433, + 1433, 1433, 1433, -541, -541, 245, 1433, 1433, 1433, 1433, + 1392, 395, -541, 383, 275, 267, 270, 279, -541, -541, + 351, -541, -541, 1392, 277, 894, -541, -541, -541, 282, + -541, 1433, 1433, -541, 278, 283, 284, 288, -541, 289, + 291, 295, 296, 297, -541, -541, 423, 43, 410, -541, + -541, 298, -541, 300, 305, 1433, -541, 1433, 1433, -541, + -541, -541, -541, -541, 894, -541, 1020, 64, 441, -541, + -541, -541, 307, 311, 314, -541, 312, -541, 1020, 894, + -541, -541, -541, 450, 319, 150, 894, 452, 453, -541, + 894, 894, -541, -541 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -508, -508, -508, 356, 357, 360, 145, 147, 371, 374, - -128, -127, -497, -508, 416, 436, -117, -508, -277, 41, - -508, -296, -508, -47, -508, -37, -508, -58, 46, -508, - -99, 253, -298, 49, -508, -508, -508, -508, -508, -508, - -508, 419, -508, -508, -508, -508, 8, -508, 51, -508, - -508, 412, -508, -508, -508, -508, -508, 471, -508, -508, - -507, -209, 67, -124, -508, 457, -508, -118, -508, -508, - -508, -508, 43, -22, -508, -508, 21, -508, -508 + -541, -541, -541, 379, 380, 381, 161, 162, 386, 388, + -128, -127, -540, -541, 438, 456, -111, -541, -277, 63, + -541, -297, -541, -47, -541, -37, -541, -53, 40, -541, + -99, 264, -307, 84, -541, -541, -541, -541, -541, -541, + -541, 435, -541, -541, -541, -541, 8, -541, 68, -541, + -541, 427, -541, -541, -541, -541, -541, 487, -541, -541, + -489, -199, 67, -124, -541, 472, -541, -103, -541, -541, + -541, -541, 71, -7, -541, -541, 33, -541, -541 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -2577,354 +2572,358 @@ static const short int yypgoto[] = #define YYTABLE_NINF -180 static const short int yytable[] = { - 88, 235, 249, 250, 238, 371, 105, 115, 39, 393, - 394, 26, 223, 334, 252, 42, 88, 454, 4, 432, - 434, 93, 46, 47, 48, 360, 119, 406, 408, 416, - 360, 360, 106, 107, 123, 283, 198, 199, 287, 415, - 455, 49, 360, 288, 289, 290, 291, 292, 293, 26, - 241, 242, 243, 244, 245, 246, 247, 248, 119, 426, - 576, 433, 433, 29, 119, 297, 298, 239, 228, 586, - 39, 205, 206, 207, -112, 360, 299, 51, 229, 240, - 588, 594, -139, 123, -112, 360, 360, 360, 234, 53, - 52, 234, -139, 123, 121, 241, 242, 243, 244, 245, - 246, 247, 248, 302, 109, 110, 111, 469, 228, 303, - 7, 8, 9, 10, 54, 12, 55, 465, 339, 56, - 281, 282, 234, 284, 285, 234, 465, 471, 62, 465, - 234, 234, 234, 234, 234, 234, 515, 470, 417, 465, - 465, 123, 58, 59, -179, 60, 466, 482, 43, 294, - 295, 296, 234, 234, 94, 64, 360, 360, 360, 300, - 301, 505, 227, 98, 360, 116, 336, 337, 232, 5, - 340, 20, 99, 21, 100, 6, 101, 389, 360, 360, - 307, 308, -72, -72, 102, 7, 8, 9, 10, 11, - 12, 13, -113, 342, -71, -71, -70, -70, 113, 575, - -69, -69, 309, 310, 114, 365, 14, 133, 134, 122, - 197, 531, 202, 532, 201, 88, 30, 31, 32, 33, - 34, 35, 36, 360, 224, 360, 366, 203, 225, 360, - 230, 236, -76, -75, -74, -73, 312, 360, 360, 360, - -79, -80, 313, 367, 587, 338, 346, 347, 368, 370, - 374, 439, 387, 441, 442, 443, 373, 386, 375, 376, - 377, 449, 88, 388, 234, 241, 242, 243, 244, 245, - 246, 247, 248, 378, 360, 360, 379, 360, 360, 380, - 381, 385, 390, 409, 360, 391, 397, 424, 340, 398, - 399, 400, 401, 360, 410, 411, 412, 413, 460, 461, - 462, 463, 464, 414, 418, 458, 362, 363, 421, 427, - 422, 472, 473, 474, 475, 476, 428, 435, 364, 438, - 446, 447, 448, 453, 454, 481, 360, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 459, 234, 440, - 234, 234, 234, 444, 445, 483, 484, 468, 234, 450, - 419, 372, 489, 485, 486, 487, 503, 493, 495, 506, - 507, 382, 383, 384, 496, 360, 513, 497, 501, 504, - 509, 536, 537, 538, 520, 510, 511, 514, 512, 516, - 360, 548, 554, 521, 342, 555, 433, 360, 574, 517, - 518, 360, 360, 519, 523, 530, 533, 535, 234, 541, - 542, 543, 556, 589, 578, 557, 558, 562, 566, 559, - 544, 545, 546, 547, 565, 560, 502, 549, 550, 551, - 552, 264, 265, 567, 568, 569, 579, 593, 570, 249, - 250, 571, 429, 430, 431, 572, 573, 580, 581, 590, - 437, 591, 563, 564, 592, 596, 597, 600, 234, 249, - 250, 601, 186, 187, 451, 452, 188, 96, 234, 234, - 234, 57, 395, 479, 234, 396, 582, 189, 583, 584, - 190, 104, 478, 112, 27, 333, 45, 598, 492, 539, - 0, 508, 0, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 234, 0, 0, 488, - 0, 490, 0, 0, 0, 494, 0, 0, 0, 0, - 0, 0, 0, 498, 499, 500, 0, 0, 0, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, - 524, 525, 0, 528, 529, 0, 0, 0, 0, 20, - 534, 21, 0, 314, 0, 0, -82, 0, 20, 540, - 21, 0, 0, 0, 0, 315, 316, 6, -82, -82, - 0, 0, 0, 0, 0, 0, 0, -82, -82, -82, - -82, -82, -82, -82, 0, 0, -82, 22, 0, 0, - 0, 0, 561, 0, 23, 0, 0, 0, 24, 0, - 0, 0, 0, 0, 0, 0, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 317, 318, 0, 0, - 0, 585, 0, 319, 0, 320, 163, 164, 165, 166, - 0, 321, 322, 323, 0, 0, 595, 0, 0, 0, + 88, 235, 249, 250, 238, 371, 105, 115, 393, 394, + 93, 26, 223, 454, 39, 239, 88, 576, 406, 408, + 252, 42, 432, 334, 302, 434, 417, 240, 4, 123, + 303, 119, 46, 47, 48, 360, 455, 588, 415, 283, + 360, 360, 287, 288, 289, 290, 291, 292, 293, 26, + 426, 49, 360, 241, 242, 243, 244, 245, 246, 247, + 248, -179, 465, 119, 433, 297, 298, 433, 39, 119, + 470, 205, 206, 207, 241, 242, 243, 244, 245, 246, + 247, 248, 299, 228, 29, 360, 5, 586, 234, 53, + 228, 234, 6, 229, 121, 360, 360, 360, 469, 594, + 339, 51, 7, 8, 9, 10, 11, 12, 13, -112, + 7, 8, 9, 10, 54, 12, 55, 416, 123, 56, + 106, 107, 123, 14, 281, 282, 234, 284, 285, 234, + 234, 234, 234, 234, 234, 234, -139, 52, -112, 109, + 110, 111, 59, 94, 60, 465, -139, 123, 465, 294, + 295, 296, 234, 234, 43, 471, 227, 465, 515, 20, + 505, 21, 232, 466, 58, 116, 360, 360, 360, 264, + 265, 336, 337, 62, 360, 340, 64, 389, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 360, 360, + 465, 198, 199, 342, 300, 301, 307, 308, 482, -72, + -72, 98, 575, -71, -71, 365, -70, -70, -69, -69, + 99, 531, 100, 532, 101, 88, 30, 31, 32, 33, + 34, 35, 36, 587, 309, 310, 366, 133, 134, 102, + -113, 113, 114, 360, 122, 360, 197, 201, 202, 360, + 203, 224, 236, 367, 230, 225, -76, 360, 360, 360, + -75, 439, 387, 441, 442, 443, -74, -73, -79, 312, + 338, 449, 88, 388, 234, -80, 313, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 346, 347, 368, 360, 360, 370, 360, 360, 373, + 386, 374, 375, 340, 360, 390, 376, 377, 460, 461, + 462, 463, 464, 360, 378, 409, 362, 363, 379, 380, + 381, 472, 473, 474, 475, 476, 385, 391, 364, 241, + 242, 243, 244, 245, 246, 247, 248, 418, 397, 398, + 399, 400, 401, 410, 411, 412, 360, 413, 234, 440, + 234, 234, 234, 444, 445, 414, 421, 422, 234, 450, + 419, 372, 468, 424, 427, 428, 438, 435, 454, 506, + 507, 382, 383, 384, 446, 458, 513, 481, 447, 483, + 448, 536, 537, 538, 459, 360, 453, 484, 486, 485, + 489, 501, 487, 493, 342, 495, 503, 496, 497, 504, + 360, 509, 510, 511, 512, 520, 521, 360, 234, 554, + 516, 360, 360, 517, 514, 543, 548, 555, 433, 559, + 544, 545, 546, 547, 518, 519, 502, 549, 550, 551, + 552, 523, 530, 533, 557, 535, 541, 542, 556, 249, + 250, 565, 429, 430, 431, 558, 560, 567, 562, 566, + 437, 568, 563, 564, 574, 569, 578, 570, 234, 249, + 250, 571, 572, 573, 451, 452, 580, 579, 234, 234, + 234, 581, 589, 590, 234, 593, 582, 591, 583, 584, + 592, 596, 597, 600, 601, 186, 187, 188, 395, 96, + 396, 57, 189, 553, 190, 479, 333, 104, 112, 478, + 27, 45, 598, 508, 539, 0, 234, 0, -82, 488, + 20, 490, 21, 0, 0, 494, 492, 0, 0, 6, + -82, -82, 0, 498, 499, 500, 0, 0, 0, -82, + -82, -82, -82, -82, -82, -82, 0, 0, -82, 22, + 0, 0, 0, 0, 0, 0, 23, 0, 65, 66, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 524, 525, 0, 528, 529, 20, 0, 21, 0, 314, + 534, 0, 0, 0, 0, 0, 0, 0, 0, 540, + 0, 315, 316, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 317, 318, 0, 0, + 0, 585, 0, 319, 0, 320, 0, 321, 322, 323, + 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 599, 0, 0, 0, 602, 603, 0, - 0, 0, 0, 0, 0, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 0, - 0, 0, 0, 0, 324, 0, 0, 325, 0, 326, - 65, 66, 327, 117, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 0, 79, 20, 0, 21, - 65, 66, 0, 117, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 0, 79, 20, 0, 21, - 0, 65, 66, 80, 117, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 0, 79, 20, 0, - 21, 65, 66, 80, 117, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 0, 79, 20, 0, - 21, 0, 0, 0, 80, 0, 65, 66, 0, 117, + 0, 0, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 0, 0, 0, 0, 0, + 324, 0, 0, 325, 0, 326, 65, 66, 327, 117, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 0, 79, 20, 80, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, + 78, 0, 79, 20, 0, 21, 65, 66, 0, 117, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 0, 79, 20, 0, 21, 0, 65, 66, 80, + 117, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 0, 79, 20, 0, 21, 65, 66, 80, + 117, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 0, 79, 20, 0, 21, 0, 0, 0, + 80, 0, 65, 66, 0, 117, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 0, 79, 20, + 80, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, |