diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-01-28 00:52:05 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-01-28 00:52:05 +0000 |
commit | 3c0f6cf49ba3431aaa5c1805bbafa141491d4f4f (patch) | |
tree | f6d036d5016b07615a0766d6089598569a421606 /tools/llvm-upgrade/UpgradeParser.cpp.cvs | |
parent | 1e3c64e1831795ad8bbedfbc9bf0c8affff5b400 (diff) |
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33595 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-upgrade/UpgradeParser.cpp.cvs')
-rw-r--r-- | tools/llvm-upgrade/UpgradeParser.cpp.cvs | 598 |
1 files changed, 325 insertions, 273 deletions
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/tools/llvm-upgrade/UpgradeParser.cpp.cvs index c44d6dda0a..24eb84e671 100644 --- a/tools/llvm-upgrade/UpgradeParser.cpp.cvs +++ b/tools/llvm-upgrade/UpgradeParser.cpp.cvs @@ -930,6 +930,7 @@ static void ResolveTypeTo(char *Name, const Type *ToTy) { } } +/// @brief This just makes any name given to it unique, up to MAX_UINT times. static std::string makeNameUnique(const std::string& Name) { static unsigned UniqueNameCounter = 1; std::string Result(Name); @@ -937,6 +938,57 @@ static std::string makeNameUnique(const std::string& Name) { return Result; } +/// This is the implementation portion of TypeHasInteger. It traverses the +/// type given, avoiding recursive types, and returns true as soon as it finds +/// an integer type. If no integer type is found, it returns false. +static bool TypeHasIntegerI(const Type *Ty, std::vector<const Type*> Stack) { + // Handle some easy cases + if (Ty->isPrimitiveType() || (Ty->getTypeID() == Type::OpaqueTyID)) + return false; + if (Ty->isInteger()) + return true; + if (const SequentialType *STy = dyn_cast<SequentialType>(Ty)) + return STy->getElementType()->isInteger(); + + // Avoid type structure recursion + for (std::vector<const Type*>::iterator I = Stack.begin(), E = Stack.end(); + I != E; ++I) + if (Ty == *I) + return false; + + // Push us on the type stack + Stack.push_back(Ty); + + if (const FunctionType *FTy = dyn_cast<FunctionType>(Ty)) { + if (TypeHasIntegerI(FTy->getReturnType(), Stack)) + return true; + FunctionType::param_iterator I = FTy->param_begin(); + FunctionType::param_iterator E = FTy->param_end(); + for (; I != E; ++I) + if (TypeHasIntegerI(*I, Stack)) + return true; + return false; + } else if (const StructType *STy = dyn_cast<StructType>(Ty)) { + StructType::element_iterator I = STy->element_begin(); + StructType::element_iterator E = STy->element_end(); + for (; I != E; ++I) { + if (TypeHasIntegerI(*I, Stack)) + return true; + } + return false; + } + // There shouldn't be anything else, but its definitely not integer + assert(0 && "What type is this?"); + return false; +} + +/// This is the interface to TypeHasIntegerI. It just provides the type stack, +/// to avoid recursion, and then calls TypeHasIntegerI. +static inline bool TypeHasInteger(const Type *Ty) { + std::vector<const Type*> TyStack; + return TypeHasIntegerI(Ty, TyStack); +} + // setValueName - Set the specified value to the name given. The name may be // null potentially, in which case this is a noop. The string passed in is // assumed to be a malloc'd string buffer, and is free'd by this function. @@ -965,16 +1017,16 @@ static void setValueName(Value *V, char *NameStr) { } } if (Existing) { - if (Existing->getType() == V->getType()) { - // The type of the Existing value and the new one are the same. This - // is probably a type plane collapsing error. If the types involved - // are both integer, just rename it. Otherwise it - // is a redefinition error. - if (!Existing->getType()->isInteger()) { - error("Redefinition of value named '" + Name + "' in the '" + - V->getType()->getDescription() + "' type plane"); - return; - } + // An existing value of the same name was found. This might have happened + // because of the integer type planes collapsing in LLVM 2.0. + if (Existing->getType() == V->getType() && + !TypeHasInteger(Existing->getType())) { + // If the type does not contain any integers in them then this can't be + // a type plane collapsing issue. It truly is a redefinition and we + // should error out as the assembly is invalid. + error("Redefinition of value named '" + Name + "' of type '" + + V->getType()->getDescription() + "'"); + return; } // In LLVM 2.0 we don't allow names to be re-used for any values in a // function, regardless of Type. Previously re-use of names was okay as @@ -1715,7 +1767,7 @@ using namespace llvm; #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 1339 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1391 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1758,7 +1810,7 @@ typedef union YYSTYPE { llvm::Module::Endianness Endianness; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 1762 "UpgradeParser.tab.c" +#line 1814 "UpgradeParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1770,7 +1822,7 @@ typedef union YYSTYPE { /* Line 219 of yacc.c. */ -#line 1774 "UpgradeParser.tab.c" +#line 1826 "UpgradeParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -2128,37 +2180,37 @@ static const short int yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 1479, 1479, 1480, 1488, 1489, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1503, 1503, 1503, - 1507, 1507, 1507, 1507, 1507, 1507, 1511, 1511, 1512, 1512, - 1513, 1513, 1514, 1514, 1515, 1515, 1519, 1519, 1520, 1520, - 1521, 1521, 1522, 1522, 1523, 1523, 1524, 1524, 1525, 1525, - 1526, 1527, 1530, 1530, 1530, 1530, 1534, 1534, 1534, 1534, - 1534, 1534, 1534, 1535, 1535, 1535, 1535, 1535, 1535, 1541, - 1541, 1541, 1541, 1545, 1545, 1545, 1545, 1549, 1549, 1553, - 1553, 1558, 1561, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1594, - 1595, 1603, 1604, 1612, 1621, 1622, 1629, 1630, 1634, 1638, - 1654, 1655, 1662, 1663, 1670, 1678, 1678, 1678, 1678, 1678, - 1678, 1678, 1679, 1679, 1679, 1679, 1679, 1684, 1688, 1692, - 1697, 1706, 1722, 1728, 1741, 1750, 1754, 1765, 1769, 1782, - 1786, 1793, 1794, 1800, 1807, 1819, 1849, 1862, 1885, 1913, - 1935, 1946, 1968, 1979, 1988, 1993, 2051, 2058, 2066, 2073, - 2080, 2084, 2088, 2097, 2112, 2125, 2134, 2162, 2175, 2184, - 2190, 2196, 2205, 2211, 2217, 2228, 2229, 2238, 2239, 2251, - 2260, 2261, 2262, 2263, 2264, 2280, 2300, 2302, 2304, 2304, - 2311, 2311, 2318, 2318, 2325, 2325, 2333, 2335, 2337, 2342, - 2356, 2357, 2361, 2364, 2372, 2376, 2383, 2387, 2391, 2395, - 2403, 2403, 2407, 2408, 2412, 2420, 2425, 2433, 2434, 2441, - 2448, 2452, 2558, 2558, 2562, 2572, 2572, 2576, 2580, 2582, - 2583, 2587, 2587, 2599, 2600, 2605, 2606, 2607, 2608, 2609, - 2610, 2611, 2612, 2613, 2634, 2637, 2652, 2653, 2658, 2658, - 2666, 2675, 2678, 2687, 2697, 2702, 2711, 2722, 2722, 2725, - 2728, 2731, 2735, 2741, 2756, 2762, 2813, 2816, 2822, 2832, - 2845, 2874, 2882, 2890, 2894, 2901, 2902, 2906, 2909, 2915, - 2932, 2948, 2962, 2974, 2986, 2997, 3006, 3015, 3024, 3031, - 3052, 3076, 3082, 3088, 3094, 3110, 3183, 3191, 3192, 3196, - 3197, 3201, 3207, 3213, 3219, 3225, 3232, 3244, 3258 + 0, 1531, 1531, 1532, 1540, 1541, 1551, 1551, 1551, 1551, + 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1555, 1555, 1555, + 1559, 1559, 1559, 1559, 1559, 1559, 1563, 1563, 1564, 1564, + 1565, 1565, 1566, 1566, 1567, 1567, 1571, 1571, 1572, 1572, + 1573, 1573, 1574, 1574, 1575, 1575, 1576, 1576, 1577, 1577, + 1578, 1579, 1582, 1582, 1582, 1582, 1586, 1586, 1586, 1586, + 1586, 1586, 1586, 1587, 1587, 1587, 1587, 1587, 1587, 1593, + 1593, 1593, 1593, 1597, 1597, 1597, 1597, 1601, 1601, 1605, + 1605, 1610, 1613, 1618, 1619, 1620, 1621, 1622, 1623, 1624, + 1625, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1646, + 1647, 1655, 1656, 1664, 1673, 1674, 1681, 1682, 1686, 1690, + 1706, 1707, 1714, 1715, 1722, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1731, 1731, 1731, 1731, 1731, 1736, 1740, 1744, + 1749, 1758, 1774, 1780, 1793, 1802, 1806, 1817, 1821, 1834, + 1838, 1845, 1846, 1852, 1859, 1871, 1901, 1914, 1937, 1965, + 1987, 1998, 2020, 2031, 2040, 2045, 2103, 2110, 2118, 2125, + 2132, 2136, 2140, 2149, 2164, 2177, 2186, 2214, 2227, 2236, + 2242, 2248, 2257, 2263, 2269, 2280, 2281, 2290, 2291, 2303, + 2312, 2313, 2314, 2315, 2316, 2332, 2352, 2354, 2356, 2356, + 2363, 2363, 2370, 2370, 2377, 2377, 2385, 2387, 2389, 2394, + 2408, 2409, 2413, 2416, 2424, 2428, 2435, 2439, 2443, 2447, + 2455, 2455, 2459, 2460, 2464, 2472, 2477, 2485, 2486, 2493, + 2500, 2504, 2610, 2610, 2614, 2624, 2624, 2628, 2632, 2634, + 2635, 2639, 2639, 2651, 2652, 2657, 2658, 2659, 2660, 2661, + 2662, 2663, 2664, 2665, 2686, 2689, 2704, 2705, 2710, 2710, + 2718, 2727, 2730, 2739, 2749, 2754, 2763, 2774, 2774, 2777, + 2780, 2783, 2787, 2793, 2808, 2814, 2865, 2868, 2874, 2884, + 2897, 2926, 2934, 2942, 2946, 2953, 2954, 2958, 2961, 2967, + 2984, 3000, 3014, 3026, 3038, 3049, 3058, 3067, 3076, 3083, + 3104, 3128, 3134, 3140, 3146, 3162, 3235, 3243, 3244, 3248, + 3249, 3253, 3259, 3265, 3271, 3277, 3284, 3296, 3310 }; #endif @@ -3560,7 +3612,7 @@ yyreduce: switch (yyn) { case 3: -#line 1480 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1532 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! error("Value too large for type"); @@ -3569,7 +3621,7 @@ yyreduce: break; case 5: -#line 1489 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1541 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! error("Value too large for type"); @@ -3578,226 +3630,226 @@ yyreduce: break; case 26: -#line 1511 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1563 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_EQ; ;} break; case 27: -#line 1511 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1563 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_NE; ;} break; case 28: -#line 1512 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1564 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SLT; ;} break; case 29: -#line 1512 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1564 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SGT; ;} break; case 30: -#line 1513 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1565 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SLE; ;} break; case 31: -#line 1513 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1565 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SGE; ;} break; case 32: -#line 1514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1566 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_ULT; ;} break; case 33: -#line 1514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1566 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_UGT; ;} break; case 34: -#line 1515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_ULE; ;} break; case 35: -#line 1515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_UGE; ;} break; case 36: -#line 1519 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1571 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OEQ; ;} break; case 37: -#line 1519 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1571 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ONE; ;} break; case 38: -#line 1520 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OLT; ;} break; case 39: -#line 1520 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OGT; ;} break; case 40: -#line 1521 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OLE; ;} break; case 41: -#line 1521 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OGE; ;} break; case 42: -#line 1522 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ORD; ;} break; case 43: -#line 1522 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UNO; ;} break; case 44: -#line 1523 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1575 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UEQ; ;} break; case 45: -#line 1523 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1575 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UNE; ;} break; case 46: -#line 1524 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1576 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ULT; ;} break; case 47: -#line 1524 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1576 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UGT; ;} break; case 48: -#line 1525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ULE; ;} break; case 49: -#line 1525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UGE; ;} break; case 50: -#line 1526 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1578 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_TRUE; ;} break; case 51: -#line 1527 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_FALSE; ;} break; case 81: -#line 1558 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = (yyvsp[-1].StrVal); ;} break; case 82: -#line 1561 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = 0; ;} break; case 83: -#line 1566 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1618 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 84: -#line 1567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1619 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 85: -#line 1568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1620 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 86: -#line 1569 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 87: -#line 1570 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 88: -#line 1571 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 89: -#line 1572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 90: -#line 1573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 91: -#line 1577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1629 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 92: -#line 1578 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1630 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 93: -#line 1579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1631 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::CSRet; ;} break; case 94: -#line 1580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1632 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::Fast; ;} break; case 95: -#line 1581 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1633 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::Cold; ;} break; case 96: -#line 1582 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1634 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} break; case 97: -#line 1583 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1635 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} break; case 98: -#line 1584 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1636 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) error("Calling conv too large"); @@ -3806,12 +3858,12 @@ yyreduce: break; case 99: -#line 1594 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1646 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = 0; ;} break; case 100: -#line 1595 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1647 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3820,12 +3872,12 @@ yyreduce: break; case 101: -#line 1603 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = 0; ;} break; case 102: -#line 1604 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1656 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3834,7 +3886,7 @@ yyreduce: break; case 103: -#line 1612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1664 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') @@ -3844,27 +3896,27 @@ yyreduce: break; case 104: -#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = 0; ;} break; case 105: -#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = (yyvsp[0].StrVal); ;} break; case 106: -#line 1629 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1681 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" {;} break; case 107: -#line 1630 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1682 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" {;} break; case 108: -#line 1634 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1686 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV->setSection((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -3872,7 +3924,7 @@ yyreduce: break; case 109: -#line 1638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1690 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) error("Alignment must be a power of two"); @@ -3882,7 +3934,7 @@ yyreduce: break; case 111: -#line 1655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1707 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S = Signless; @@ -3890,7 +3942,7 @@ yyreduce: break; case 113: -#line 1663 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1715 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S = Signless; @@ -3898,7 +3950,7 @@ yyreduce: break; case 114: -#line 1670 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!UpRefs.empty()) error("Invalid upreference in type: " + (*(yyvsp[0].TypeVal).T)->getDescription()); @@ -3907,7 +3959,7 @@ yyreduce: break; case 127: -#line 1684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S = (yyvsp[0].PrimType).S; @@ -3915,7 +3967,7 @@ yyreduce: break; case 128: -#line 1688 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).T = new PATypeHolder(OpaqueType::get()); (yyval.TypeVal).S = Signless; @@ -3923,7 +3975,7 @@ yyreduce: break; case 129: -#line 1692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1744 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Named types are also simple types... const Type* tmp = getType((yyvsp[0].ValIDVal)); (yyval.TypeVal).T = new PATypeHolder(tmp); @@ -3932,7 +3984,7 @@ yyreduce: break; case 130: -#line 1697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) error("Value out of range"); @@ -3945,7 +3997,7 @@ yyreduce: break; case 131: -#line 1706 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1758 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? std::vector<const Type*> Params; for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3965,7 +4017,7 @@ yyreduce: break; case 132: -#line 1722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1774 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyval.TypeVal).T = new PATypeHolder(HandleUpRefs(ArrayType::get((yyvsp[-1].TypeVal).T->get(), (unsigned)(yyvsp[-3].UInt64Val)))); @@ -3975,7 +4027,7 @@ yyreduce: break; case 133: -#line 1728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).T->get(); if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) @@ -3992,7 +4044,7 @@ yyreduce: break; case 134: -#line 1741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? std::vector<const Type*> Elements; for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -4005,7 +4057,7 @@ yyreduce: break; case 135: -#line 1750 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1802 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>())); (yyval.TypeVal).S = Signless; @@ -4013,7 +4065,7 @@ yyreduce: break; case 136: -#line 1754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1806 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed Structure type? std::vector<const Type*> Elements; for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-2].TypeList)->begin(), @@ -4028,7 +4080,7 @@ yyreduce: break; case 137: -#line 1765 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty packed structure type? (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>(),true)); (yyval.TypeVal).S = Signless; @@ -4036,7 +4088,7 @@ yyreduce: break; case 138: -#line 1769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1821 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? if ((yyvsp[-1].TypeVal).T->get() == Type::LabelTy) error("Cannot form a pointer to a basic block"); @@ -4047,7 +4099,7 @@ yyreduce: break; case 139: -#line 1782 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1834 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list<PATypeInfo>(); (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); @@ -4055,14 +4107,14 @@ yyreduce: break; case 140: -#line 1786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1838 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal)); ;} break; case 142: -#line 1794 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1846 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { PATypeInfo VoidTI; VoidTI.T = new PATypeHolder(Type::VoidTy); @@ -4072,7 +4124,7 @@ yyreduce: break; case 143: -#line 1800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1852 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list<PATypeInfo>(); PATypeInfo VoidTI; @@ -4083,14 +4135,14 @@ yyreduce: break; case 144: -#line 1807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1859 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list<PATypeInfo>(); ;} break; case 145: -#line 1819 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1871 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal).T->get()); if (ATy == 0) @@ -4124,7 +4176,7 @@ yyreduce: break; case 146: -#line 1849 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1901 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get()); if (ATy == 0) @@ -4141,7 +4193,7 @@ yyreduce: break; case 147: -#line 1862 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get()); if (ATy == 0) @@ -4168,7 +4220,7 @@ yyreduce: break; case 148: -#line 1885 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1937 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal).T->get()); if (PTy == 0) @@ -4200,7 +4252,7 @@ yyreduce: break; case 149: -#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal).T->get()); if (STy == 0) @@ -4226,7 +4278,7 @@ yyreduce: break; case 150: -#line 1935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1987 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal).T->get()); if (STy == 0) @@ -4241,7 +4293,7 @@ yyreduce: break; case 151: -#line 1946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1998 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal).T->get()); if (STy == 0) @@ -4267,7 +4319,7 @@ yyreduce: break; case 152: -#line 1968 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2020 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-4].TypeVal).T->get()); if (STy == 0) @@ -4282,7 +4334,7 @@ yyreduce: break; case 153: -#line 1979 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2031 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get()); if (PTy == 0) @@ -4295,7 +4347,7 @@ yyreduce: break; case 154: -#line 1988 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2040 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ConstVal).C = UndefValue::get((yyvsp[-1].TypeVal).T->get()); (yyval.ConstVal).S = (yyvsp[-1].TypeVal).S; @@ -4304,7 +4356,7 @@ yyreduce: break; case 155: -#line 1993 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2045 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get()); if (Ty == 0) @@ -4366,7 +4418,7 @@ yyreduce: break; case 156: -#line 2051 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2103 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].TypeVal).T->get() != (yyvsp[0].ConstVal).C->getType()) error("Mismatched types for constant expression"); @@ -4377,7 +4429,7 @@ yyreduce: break; case 157: -#line 2058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2110 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).T->get(); if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty)) @@ -4389,7 +4441,7 @@ yyreduce: break; case 158: -#line 2066 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2118 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants const Type *Ty = (yyvsp[-1].PrimType).T; if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].SInt64Val))) @@ -4400,7 +4452,7 @@ yyreduce: break; case 159: -#line 2073 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants const Type *Ty = (yyvsp[-1].PrimType).T; if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].UInt64Val))) @@ -4411,7 +4463,7 @@ yyreduce: break; case 160: -#line 2080 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2132 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, true); (yyval.ConstVal).S = Unsigned; @@ -4419,7 +4471,7 @@ yyreduce: break; case 161: -#line 2084 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2136 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, false); (yyval.ConstVal).S = Unsigned; @@ -4427,7 +4479,7 @@ yyreduce: break; case 162: -#line 2088 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType).T, (yyvsp[0].FPVal))) error("Floating point constant invalid for type"); @@ -4437,7 +4489,7 @@ yyreduce: break; case 163: -#line 2097 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2149 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* SrcTy = (yyvsp[-3].ConstVal).C->getType(); const Type* DstTy = (yyvsp[-1].TypeVal).T->get(); @@ -4456,7 +4508,7 @@ yyreduce: break; case 164: -#line 2112 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-2].ConstVal).C->getType(); if (!isa<PointerType>(Ty)) @@ -4473,7 +4525,7 @@ yyreduce: break; case 165: -#line 2125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2177 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].ConstVal).C->getType()->isInteger() || cast<IntegerType>((yyvsp[-5].ConstVal).C->getType())->getBitWi |