summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-01-28 00:52:05 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-01-28 00:52:05 +0000
commit3c0f6cf49ba3431aaa5c1805bbafa141491d4f4f (patch)
treef6d036d5016b07615a0766d6089598569a421606 /tools
parent1e3c64e1831795ad8bbedfbc9bf0c8affff5b400 (diff)
downloadllvm-3c0f6cf49ba3431aaa5c1805bbafa141491d4f4f.tar.gz
llvm-3c0f6cf49ba3431aaa5c1805bbafa141491d4f4f.tar.bz2
llvm-3c0f6cf49ba3431aaa5c1805bbafa141491d4f4f.tar.xz
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33595 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llvm-upgrade/UpgradeParser.cpp.cvs598
-rw-r--r--tools/llvm-upgrade/UpgradeParser.h.cvs2
-rw-r--r--tools/llvm-upgrade/UpgradeParser.y.cvs72
3 files changed, 388 insertions, 284 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())->getBitWidth() != 1)
@@ -4486,7 +4538,7 @@ yyreduce:
break;
case 166:
-#line 2134 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-3].ConstVal).C->getType();
if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4518,7 +4570,7 @@ yyreduce:
break;
case 167:
-#line 2162 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4535,7 +4587,7 @@ yyreduce:
break;
case 168:
-#line 2175 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2227 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4548,7 +4600,7 @@ yyreduce:
break;
case 169:
-#line 2184 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2236 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType())
error("icmp operand types must match");
@@ -4558,7 +4610,7 @@ yyreduce:
break;
case 170:
-#line 2190 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType())
error("fcmp operand types must match");
@@ -4568,7 +4620,7 @@ yyreduce:
break;
case 171:
-#line 2196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-1].ConstVal).C->getType()->isInteger() ||
cast<IntegerType>((yyvsp[-1].ConstVal).C->getType())->getBitWidth() != 8)
@@ -4581,7 +4633,7 @@ yyreduce:
break;
case 172:
-#line 2205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
error("Invalid extractelement operands");
@@ -4591,7 +4643,7 @@ yyreduce:
break;
case 173:
-#line 2211 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2263 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
error("Invalid insertelement operands");
@@ -4601,7 +4653,7 @@ yyreduce:
break;
case 174:
-#line 2217 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
error("Invalid shufflevector operands");
@@ -4611,12 +4663,12 @@ yyreduce:
break;
case 175:
-#line 2228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); ;}
break;
case 176:
-#line 2229 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ConstVector) = new std::vector<ConstInfo>();
(yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4624,17 +4676,17 @@ yyreduce:
break;
case 177:
-#line 2238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = false; ;}
break;
case 178:
-#line 2239 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2291 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = true; ;}
break;
case 179:
-#line 2251 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
CurModule.ModuleDone();
@@ -4642,27 +4694,27 @@ yyreduce:
break;
case 180:
-#line 2260 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); ;}
break;
case 181:
-#line 2261 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2313 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
break;
case 182:
-#line 2262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2314 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); ;}
break;
case 183:
-#line 2263 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2315 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
break;
case 184:
-#line 2264 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2316 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ModuleVal) = CurModule.CurrentModule;
// Emit an error if there are any unresolved types left.
@@ -4678,7 +4730,7 @@ yyreduce:
break;
case 185:
-#line 2280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2332 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
// Eagerly resolve types. This is not an optimization, this is a
// requirement that is due to the fact that we could have this:
@@ -4702,19 +4754,19 @@ yyreduce:
break;
case 186:
-#line 2300 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2352 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Function prototypes can be in const pool
;}
break;
case 187:
-#line 2302 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2354 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Asm blocks can be in the const pool
;}
break;
case 188:
-#line 2304 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2356 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[0].ConstVal).C == 0)
error("Global value initializer is not a constant");
@@ -4723,14 +4775,14 @@ yyreduce:
break;
case 189:
-#line 2308 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurGV = 0;
;}
break;
case 190:
-#line 2311 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2363 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[0].TypeVal).T->get();
CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4739,14 +4791,14 @@ yyreduce:
break;
case 191:
-#line 2315 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurGV = 0;
;}
break;
case 192:
-#line 2318 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2370 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[0].TypeVal).T->get();
CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4755,14 +4807,14 @@ yyreduce:
break;
case 193:
-#line 2322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2374 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurGV = 0;
;}
break;
case 194:
-#line 2325 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[0].TypeVal).T->get();
CurGV =
@@ -4772,32 +4824,32 @@ yyreduce:
break;
case 195:
-#line 2330 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2382 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurGV = 0;
;}
break;
case 196:
-#line 2333 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2385 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
;}
break;
case 197:
-#line 2335 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
;}
break;
case 198:
-#line 2337 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2389 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
;}
break;
case 199:
-#line 2342 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2394 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4812,24 +4864,24 @@ yyreduce:
break;
case 200:
-#line 2356 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2408 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.Endianness) = Module::BigEndian; ;}
break;
case 201:
-#line 2357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2409 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.Endianness) = Module::LittleEndian; ;}
break;
case 202:
-#line 2361 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2413 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurModule.setEndianness((yyvsp[0].Endianness));
;}
break;
case 203:
-#line 2364 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[0].UInt64Val) == 32)
CurModule.setPointerSize(Module::Pointer32);
@@ -4841,7 +4893,7 @@ yyreduce:
break;
case 204:
-#line 2372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2424 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
free((yyvsp[0].StrVal));
@@ -4849,7 +4901,7 @@ yyreduce:
break;
case 205:
-#line 2376 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2428 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
free((yyvsp[0].StrVal));
@@ -4857,7 +4909,7 @@ yyreduce:
break;
case 207:
-#line 2387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
free((yyvsp[0].StrVal));
@@ -4865,7 +4917,7 @@ yyreduce:
break;
case 208:
-#line 2391 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
free((yyvsp[0].StrVal));
@@ -4873,17 +4925,17 @@ yyreduce:
break;
case 209:
-#line 2395 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2447 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ ;}
break;
case 213:
-#line 2408 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2460 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.StrVal) = 0; ;}
break;
case 214:
-#line 2412 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2464 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[-1].TypeVal).T->get() == Type::VoidTy)
error("void typed arguments are invalid");
@@ -4892,7 +4944,7 @@ yyreduce:
break;
case 215:
-#line 2420 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2472 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ArgList) = (yyvsp[-2].ArgList);
(yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -4901,7 +4953,7 @@ yyreduce:
break;
case 216:
-#line 2425 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
(yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -4910,12 +4962,12 @@ yyreduce:
break;
case 217:
-#line 2433 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2485 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ArgList) = (yyvsp[0].ArgList); ;}
break;
case 218:
-#line 2434 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2486 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ArgList) = (yyvsp[-2].ArgList);
PATypeInfo VoidTI;
@@ -4926,7 +4978,7 @@ yyreduce:
break;
case 219:
-#line 2441 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2493 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
PATypeInfo VoidTI;
@@ -4937,12 +4989,12 @@ yyreduce:
break;
case 220:
-#line 2448 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2500 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ArgList) = 0; ;}
break;
case 221:
-#line 2452 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2504 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
UnEscapeLexed((yyvsp[-5].StrVal));
std::string FunctionName((yyvsp[-5].StrVal));
@@ -5049,7 +5101,7 @@ yyreduce:
break;
case 224:
-#line 2562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.FunctionVal) = CurFun.CurrentFunction;
@@ -5060,29 +5112,29 @@ yyreduce:
break;
case 227:
-#line 2576 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2628 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
;}
break;
case 229:
-#line 2582 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2634 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ CurFun.Linkage = GlobalValue::DLLImportLinkage; ;}
break;
case 230:
-#line 2583 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2635 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;}
break;
case 231:
-#line 2587 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2639 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ CurFun.isDeclare = true; ;}
break;
case 232:
-#line 2587 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2639 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.FunctionVal) = CurFun.CurrentFunction;
CurFun.FunctionDone();
@@ -5091,57 +5143,57 @@ yyreduce:
break;
case 233:
-#line 2599 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2651 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = false; ;}
break;
case 234:
-#line 2600 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2652 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = true; ;}
break;
case 235:
-#line 2605 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2657 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); ;}
break;
case 236:
-#line 2606 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2658 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); ;}
break;
case 237:
-#line 2607 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2659 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); ;}
break;
case 238:
-#line 2608 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2660 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, true)); ;}
break;
case 239:
-#line 2609 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2661 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, false)); ;}
break;
case 240:
-#line 2610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2662 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::createNull(); ;}
break;
case 241:
-#line 2611 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2663 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::createUndef(); ;}
break;
case 242:
-#line 2612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2664 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::createZeroInit(); ;}
break;
case 243:
-#line 2613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Nonempty unsized packed vector
const Type *ETy = (*(yyvsp[-1].ConstVector))[0].C->getType();
int NumElements = (yyvsp[-1].ConstVector)->size();
@@ -5166,14 +5218,14 @@ yyreduce:
break;
case 244:
-#line 2634 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2686 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal).C);
;}
break;
case 245:
-#line 2637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2689 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -5186,17 +5238,17 @@ yyreduce:
break;
case 246:
-#line 2652 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2704 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); ;}
break;
case 247:
-#line 2653 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2705 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); ;}
break;
case 250:
-#line 2666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2718 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-1].TypeVal).T->get();
(yyval.ValueVal).S = (yyvsp[-1].TypeVal).S;
@@ -5206,21 +5258,21 @@ yyreduce:
break;
case 251:
-#line 2675 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2727 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
;}
break;
case 252:
-#line 2678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2730 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Do not allow functions with 0 basic blocks
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
;}
break;
case 253:
-#line 2687 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
InsertValue((yyvsp[0].TermInstVal));
@@ -5231,7 +5283,7 @@ yyreduce:
break;
case 254:
-#line 2697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if ((yyvsp[0].InstVal).I)
(yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal).I);
@@ -5240,7 +5292,7 @@ yyreduce:
break;
case 255:
-#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
// Make sure to move the basic block to the correct location in the
@@ -5253,7 +5305,7 @@ yyreduce:
break;
case 256:
-#line 2711 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2763 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
// Make sure to move the basic block to the correct location in the
@@ -5266,21 +5318,21 @@ yyreduce:
break;
case 259:
-#line 2725 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2777 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Return with a result...
(yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal).V);
;}
break;
case 260:
-#line 2728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Return with no result...
(yyval.TermInstVal) = new ReturnInst();
;}
break;
case 261:
-#line 2731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2783 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Unconditional Branch...
BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
(yyval.TermInstVal) = new BranchInst(tmpBB);
@@ -5288,7 +5340,7 @@ yyreduce:
break;
case 262:
-#line 2735 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2787 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal));
@@ -5298,7 +5350,7 @@ yyreduce:
break;
case 263:
-#line 2741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
Value* tmpVal = getVal((yyvsp[-7].PrimType).T, (yyvsp[-6].ValIDVal));
BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal));
@@ -5317,7 +5369,7 @@ yyreduce:
break;
case 264:
-#line 2756 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2808 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
Value* tmpVal = getVal((yyvsp[-6].PrimType).T, (yyvsp[-5].ValIDVal));
BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal));
@@ -5327,7 +5379,7 @@ yyreduce:
break;
case 265:
-#line 2763 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2815 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const PointerType *PFTy;
const FunctionType *Ty;
@@ -5381,21 +5433,21 @@ yyreduce:
break;
case 266:
-#line 2813 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2865 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TermInstVal) = new UnwindInst();
;}
break;
case 267:
-#line 2816 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2868 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TermInstVal) = new UnreachableInst();
;}
break;
case 268:
-#line 2822 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2874 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.JumpTable) = (yyvsp[-5].JumpTable);
Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5409,7 +5461,7 @@ yyreduce:
break;
case 269:
-#line 2832 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2884 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5423,7 +5475,7 @@ yyreduce:
break;
case 270:
-#line 2845 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2897 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
bool omit = false;
if ((yyvsp[-1].StrVal))
@@ -5455,7 +5507,7 @@ yyreduce:
break;
case 271:
-#line 2874 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Used for PHI nodes
(yyval.PHIList).P = new std::list<std::pair<Value*, BasicBlock*> >();
(yyval.PHIList).S = (yyvsp[-5].TypeVal).S;
@@ -5467,7 +5519,7 @@ yyreduce:
break;
case 272:
-#line 2882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2934 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.PHIList) = (yyvsp[-6].PHIList);
Value* tmpVal = getVal((yyvsp[-6].PHIList).P->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5477,7 +5529,7 @@ yyreduce:
break;
case 273:
-#line 2890 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2942 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ // Used for call statements, and memory insts...
(yyval.ValueList) = new std::vector<ValueInfo>();
(yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5485,7 +5537,7 @@ yyreduce:
break;
case 274:
-#line 2894 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.ValueList) = (yyvsp[-2].ValueList);
(yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5493,26 +5545,26 @@ yyreduce:
break;
case 276:
-#line 2902 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2954 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValueList) = 0; ;}
break;
case 277:
-#line 2906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2958 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.BoolVal) = true;
;}
break;
case 278:
-#line 2909 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.BoolVal) = false;
;}
break;
case 279:
-#line 2915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2967 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-3].TypeVal).T->get();
if (!Ty->isInteger() && !Ty->isFloatingPoint() && !isa<PackedType>(Ty))
@@ -5533,7 +5585,7 @@ yyreduce:
break;
case 280:
-#line 2932 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2984 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-3].TypeVal).T->get();
if (!Ty->isInteger()) {
@@ -5553,7 +5605,7 @@ yyreduce:
break;
case 281:
-#line 2948 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3000 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-3].TypeVal).T->get();
if(isa<PackedType>(Ty))
@@ -5571,7 +5623,7 @@ yyreduce:
break;
case 282:
-#line 2962 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-3].TypeVal).T->get();
if (isa<PackedType>(Ty))
@@ -5587,7 +5639,7 @@ yyreduce:
break;
case 283:
-#line 2974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3026 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-3].TypeVal).T->get();
if (isa<PackedType>(Ty))
@@ -5603,7 +5655,7 @@ yyreduce:
break;
case 284:
-#line 2986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3038 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
warning("Use of obsolete 'not' instruction: Replacing with 'xor");
const Type *Ty = (yyvsp[0].ValueVal).V->getType();
@@ -5618,7 +5670,7 @@ yyreduce:
break;
case 285:
-#line 2997 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3049 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[0].ValueVal).V->getType()->isInteger() ||
cast<IntegerType>((yyvsp[0].ValueVal).V->getType())->getBitWidth() != 8)
@@ -5631,7 +5683,7 @@ yyreduce:
break;
case 286:
-#line 3006 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *DstTy = (yyvsp[0].TypeVal).T->get();
if (!DstTy->isFirstClassType())
@@ -5644,7 +5696,7 @@ yyreduce:
break;
case 287:
-#line 3015 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-4].ValueVal).V->getType()->isInteger() ||
cast<IntegerType>((yyvsp[-4].ValueVal).V->getType())->getBitWidth() != 1)
@@ -5657,7 +5709,7 @@ yyreduce:
break;
case 288:
-#line 3024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[0].TypeVal).T->get();
NewVarArgs = true;
@@ -5668,7 +5720,7 @@ yyreduce:
break;
case 289:
-#line 3031 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5693,7 +5745,7 @@ yyreduce:
break;
case 290:
-#line 3052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3104 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5721,7 +5773,7 @@ yyreduce:
break;
case 291:
-#line 3076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3128 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
error("Invalid extractelement operands");
@@ -5731,7 +5783,7 @@ yyreduce:
break;
case 292:
-#line 3082 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3134 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
error("Invalid insertelement operands");
@@ -5741,7 +5793,7 @@ yyreduce:
break;
case 293:
-#line 3088 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
error("Invalid shufflevector operands");
@@ -5751,7 +5803,7 @@ yyreduce:
break;
case 294:
-#line 3094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3146 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[0].PHIList).P->front().first->getType();
if (!Ty->isFirstClassType())
@@ -5771,7 +5823,7 @@ yyreduce:
break;
case 295:
-#line 3110 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3162 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
// Handle the short call syntax
@@ -5848,34 +5900,34 @@ yyreduce:
break;
case 296:
-#line 3183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3235 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.InstVal) = (yyvsp[0].InstVal);
;}
break;
case 297:
-#line 3191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValueList) = (yyvsp[0].ValueList); ;}
break;
case 298:
-#line 3192 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3244 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.ValueList) = new std::vector<ValueInfo>(); ;}
break;
case 299:
-#line 3196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = true; ;}
break;
case 300:
-#line 3197 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3249 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.BoolVal) = false; ;}
break;
case 301:
-#line 3201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-1].TypeVal).T->get();
(yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -5885,7 +5937,7 @@ yyreduce:
break;
case 302:
-#line 3207 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3259 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-4].TypeVal).T->get();
(yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -5895,7 +5947,7 @@ yyreduce:
break;
case 303:
-#line 3213 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3265 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-1].TypeVal).T->get();
(yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -5905,7 +5957,7 @@ yyreduce:
break;
case 304:
-#line 3219 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3271 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *Ty = (yyvsp[-4].TypeVal).T->get();
(yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -5915,7 +5967,7 @@ yyreduce:
break;
case 305:
-#line 3225 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3277 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type *PTy = (yyvsp[0].ValueVal).V->getType();
if (!isa<PointerType>(PTy))
@@ -5926,7 +5978,7 @@ yyreduce:
break;
case 306:
-#line 3232 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3284 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-1].TypeVal).T->get();
(yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -5942,7 +5994,7 @@ yyreduce:
break;
case 307:
-#line 3244 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
if (!PTy)
@@ -5960,7 +6012,7 @@ yyreduce:
break;
case 308:
-#line 3258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
{
const Type* Ty = (yyvsp[-2].TypeVal).T->get();
if (!isa<PointerType>(Ty))
@@ -5982,7 +6034,7 @@ yyreduce:
}
/* Line 1126 of yacc.c. */
-#line 5986 "UpgradeParser.tab.c"
+#line 6038 "UpgradeParser.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
@@ -6250,7 +6302,7 @@ yyreturn:
}
-#line 3274 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
int yyerror(const char *ErrorMsg) {
diff --git a/tools/llvm-upgrade/UpgradeParser.h.cvs b/tools/llvm-upgrade/UpgradeParser.h.cvs
index e49d953b14..1a2e097ace 100644
--- a/tools/llvm-upgrade/UpgradeParser.h.cvs
+++ b/tools/llvm-upgrade/UpgradeParser.h.cvs
@@ -335,7 +335,7 @@
#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;
diff --git a/tools/llvm-upgrade/UpgradeParser.y.cvs b/tools/llvm-upgrade/UpgradeParser.y.cvs
index 30d7271115..cec366df59 100644
--- a/tools/llvm-upgrade/UpgradeParser.y.cvs
+++ b/tools/llvm-upgrade/UpgradeParser.y.cvs
@@ -570,6 +570,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);
@@ -577,6 +578,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.
@@ -605,16 +657,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