Changes in directory llvm/lib/AsmParser:
llvmAsmParser.cpp.cvs updated: 1.4 -> 1.5 llvmAsmParser.y.cvs updated: 1.4 -> 1.5 --- Log message: Regenerate --- Diffs of the changes: (+143 -165) llvmAsmParser.cpp.cvs | 281 ++++++++++++++++++++++++-------------------------- llvmAsmParser.y.cvs | 27 +--- 2 files changed, 143 insertions(+), 165 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.4 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.5 --- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.4 Fri Apr 7 22:55:17 2006 +++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Fri Apr 7 23:09:02 2006 @@ -1206,19 +1206,19 @@ 1173, 1182, 1185, 1193, 1197, 1202, 1203, 1206, 1209, 1219, 1244, 1257, 1286, 1311, 1331, 1343, 1352, 1356, 1415, 1421, 1429, 1434, 1439, 1442, 1445, 1452, 1462, 1493, 1500, 1521, - 1531, 1536, 1543, 1551, 1554, 1562, 1565, 1572, 1572, 1582, - 1589, 1593, 1596, 1599, 1602, 1615, 1635, 1637, 1639, 1642, - 1645, 1649, 1652, 1654, 1656, 1660, 1672, 1673, 1675, 1678, - 1686, 1691, 1693, 1697, 1701, 1709, 1709, 1710, 1710, 1712, - 1718, 1723, 1729, 1732, 1737, 1741, 1745, 1831, 1831, 1833, - 1841, 1841, 1843, 1847, 1847, 1856, 1859, 1863, 1866, 1869, - 1872, 1875, 1878, 1881, 1884, 1887, 1911, 1914, 1927, 1930, - 1935, 1935, 1941, 1945, 1948, 1956, 1965, 1969, 1979, 1990, - 1993, 1996, 1999, 2002, 2016, 2020, 2073, 2076, 2082, 2090, - 2100, 2107, 2112, 2119, 2123, 2129, 2129, 2131, 2134, 2140, - 2152, 2163, 2173, 2185, 2192, 2199, 2206, 2211, 2230, 2252, - 2260, 2272, 2277, 2291, 2348, 2354, 2356, 2360, 2363, 2369, - 2373, 2377, 2381, 2385, 2392, 2402, 2415 + 1531, 1536, 1543, 1548, 1553, 1561, 1564, 1571, 1571, 1581, + 1588, 1592, 1595, 1598, 1601, 1614, 1634, 1636, 1638, 1641, + 1644, 1648, 1651, 1653, 1655, 1659, 1671, 1672, 1674, 1677, + 1685, 1690, 1692, 1696, 1700, 1708, 1708, 1709, 1709, 1711, + 1717, 1722, 1728, 1731, 1736, 1740, 1744, 1830, 1830, 1832, + 1840, 1840, 1842, 1846, 1846, 1855, 1858, 1862, 1865, 1868, + 1871, 1874, 1877, 1880, 1883, 1886, 1910, 1913, 1926, 1929, + 1934, 1934, 1940, 1944, 1947, 1955, 1964, 1968, 1978, 1989, + 1992, 1995, 1998, 2001, 2015, 2019, 2072, 2075, 2081, 2089, + 2099, 2106, 2111, 2118, 2122, 2128, 2128, 2130, 2133, 2139, + 2151, 2162, 2172, 2184, 2191, 2198, 2205, 2210, 2229, 2251, + 2256, 2261, 2266, 2280, 2337, 2343, 2345, 2349, 2352, 2358, + 2362, 2366, 2370, 2374, 2381, 2391, 2404 }; #endif @@ -2914,22 +2914,21 @@ case 113: #line 1543 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - if (!isa<PackedType>(yyvsp[-3].ConstVal->getType())) - ThrowException("First operand of extractelement must be " - "packed type!"); - if (yyvsp[-1].ConstVal->getType() != Type::UIntTy) - ThrowException("Second operand of extractelement must be uint!"); + if (!ExtractElementInst::isValidOperands(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) + ThrowException("Invalid extractelement operands!"); yyval.ConstVal = ConstantExpr::getExtractElement(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} case 114: -#line 1551 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1548 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { + if (!InsertElementInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) + ThrowException("Invalid insertelement operands!"); yyval.ConstVal = ConstantExpr::getInsertElement(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} case 115: -#line 1554 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1553 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) ThrowException("Invalid shufflevector operands!"); @@ -2937,60 +2936,60 @@ ; break;} case 116: -#line 1562 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1561 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal); ; break;} case 117: -#line 1565 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1564 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ConstVector = new std::vector<Constant*>(); yyval.ConstVector->push_back(yyvsp[0].ConstVal); ; break;} case 118: -#line 1572 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1571 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} case 119: -#line 1572 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1571 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} case 120: -#line 1582 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1581 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal; CurModule.ModuleDone(); ; break;} case 121: -#line 1589 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1588 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; CurFun.FunctionDone(); ; break;} case 122: -#line 1593 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1592 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; ; break;} case 123: -#line 1596 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1595 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-3].ModuleVal; ; break;} case 124: -#line 1599 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1598 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; ; break;} case 125: -#line 1602 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1601 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -3004,7 +3003,7 @@ ; break;} case 126: -#line 1615 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1614 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -3027,30 +3026,30 @@ ; break;} case 127: -#line 1635 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1634 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool ; break;} case 128: -#line 1637 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1636 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Asm blocks can be in the const pool ; break;} case 129: -#line 1639 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1638 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].ConstVal == 0) ThrowException("Global value initializer is not a constant!"); CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, yyvsp[-2].Linkage, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal); ; break;} case 130: -#line 1642 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1641 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ; break;} case 131: -#line 1645 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1644 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0); @@ -3058,28 +3057,28 @@ ; break;} case 132: -#line 1649 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1648 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ; break;} case 133: -#line 1652 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1651 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} case 134: -#line 1654 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1653 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} case 135: -#line 1656 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1655 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} case 136: -#line 1660 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1659 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true); @@ -3093,21 +3092,21 @@ ; break;} case 137: -#line 1672 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1671 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Endianness = Module::BigEndian; ; break;} case 138: -#line 1673 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1672 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Endianness = Module::LittleEndian; ; break;} case 139: -#line 1675 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1674 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness); ; break;} case 140: -#line 1678 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1677 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UInt64Val == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); @@ -3118,37 +3117,37 @@ ; break;} case 141: -#line 1686 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1685 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} case 143: -#line 1693 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1692 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} case 144: -#line 1697 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1696 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} case 145: -#line 1701 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1700 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} case 149: -#line 1710 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1709 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.StrVal = 0; ; break;} case 150: -#line 1712 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1711 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (*yyvsp[-1].TypeVal == Type::VoidTy) ThrowException("void typed arguments are invalid!"); @@ -3156,7 +3155,7 @@ ; break;} case 151: -#line 1718 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1717 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[-2].ArgList; yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal); @@ -3164,7 +3163,7 @@ ; break;} case 152: -#line 1723 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1722 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >(); yyval.ArgList->push_back(*yyvsp[0].ArgVal); @@ -3172,13 +3171,13 @@ ; break;} case 153: -#line 1729 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1728 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[0].ArgList; ; break;} case 154: -#line 1732 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1731 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[-2].ArgList; yyval.ArgList->push_back(std::pair<PATypeHolder*, @@ -3186,20 +3185,20 @@ ; break;} case 155: -#line 1737 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1736 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >(); yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); ; break;} case 156: -#line 1741 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1740 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = 0; ; break;} case 157: -#line 1746 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1745 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { UnEscapeLexed(yyvsp[-5].StrVal); std::string FunctionName(yyvsp[-5].StrVal); @@ -3286,7 +3285,7 @@ ; break;} case 160: -#line 1833 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1832 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = CurFun.CurrentFunction; @@ -3296,84 +3295,84 @@ ; break;} case 163: -#line 1843 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1842 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} case 164: -#line 1847 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1846 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ; break;} case 165: -#line 1847 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1846 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = CurFun.CurrentFunction; CurFun.FunctionDone(); ; break;} case 166: -#line 1856 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1855 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} case 167: -#line 1859 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1858 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} case 168: -#line 1863 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1862 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val); ; break;} case 169: -#line 1866 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1865 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val); ; break;} case 170: -#line 1869 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1868 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? yyval.ValIDVal = ValID::create(yyvsp[0].FPVal); ; break;} case 171: -#line 1872 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1871 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(ConstantBool::True); ; break;} case 172: -#line 1875 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1874 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(ConstantBool::False); ; break;} case 173: -#line 1878 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1877 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::createNull(); ; break;} case 174: -#line 1881 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1880 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::createUndef(); ; break;} case 175: -#line 1884 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1883 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // A vector zero constant. yyval.ValIDVal = ValID::createZeroInit(); ; break;} case 176: -#line 1887 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1886 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType(); int NumElements = yyvsp[-1].ConstVector->size(); @@ -3400,13 +3399,13 @@ ; break;} case 177: -#line 1911 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1910 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal); ; break;} case 178: -#line 1914 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1913 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { char *End = UnEscapeLexed(yyvsp[-2].StrVal, true); std::string AsmStr = std::string(yyvsp[-2].StrVal, End); @@ -3418,37 +3417,37 @@ ; break;} case 179: -#line 1927 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1926 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal); ; break;} case 180: -#line 1930 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1929 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? yyval.ValIDVal = ValID::create(yyvsp[0].StrVal); ; break;} case 183: -#line 1941 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1940 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal; ; break;} case 184: -#line 1945 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1944 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} case 185: -#line 1948 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1947 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} case 186: -#line 1956 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1955 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal); InsertValue(yyvsp[0].TermInstVal); @@ -3459,14 +3458,14 @@ ; break;} case 187: -#line 1965 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1964 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal); yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal; ; break;} case 188: -#line 1969 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1968 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BasicBlockVal = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); @@ -3479,7 +3478,7 @@ ; break;} case 189: -#line 1979 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1978 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BasicBlockVal = CurBB = getBBVal(ValID::create(yyvsp[0].StrVal), true); @@ -3492,31 +3491,31 @@ ; break;} case 190: -#line 1990 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1989 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Return with a result... yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal); ; break;} case 191: -#line 1993 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1992 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Return with no result... yyval.TermInstVal = new ReturnInst(); ; break;} case 192: -#line 1996 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1995 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[0].ValIDVal)); ; break;} case 193: -#line 1999 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1998 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[-3].ValIDVal), getBBVal(yyvsp[0].ValIDVal), getVal(Type::BoolTy, yyvsp[-6].ValIDVal)); ; break;} case 194: -#line 2002 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2001 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal), getBBVal(yyvsp[-3].ValIDVal), yyvsp[-1].JumpTable->size()); yyval.TermInstVal = S; @@ -3533,14 +3532,14 @@ ; break;} case 195: -#line 2016 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2015 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { SwitchInst *S = new SwitchInst(getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal), getBBVal(yyvsp[-2].ValIDVal), 0); yyval.TermInstVal = S; ; break;} case 196: -#line 2021 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2020 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -3595,19 +3594,19 @@ ; break;} case 197: -#line 2073 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2072 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new UnwindInst(); ; break;} case 198: -#line 2076 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2075 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new UnreachableInst(); ; break;} case 199: -#line 2082 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2081 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.JumpTable = yyvsp[-5].JumpTable; Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); @@ -3618,7 +3617,7 @@ ; break;} case 200: -#line 2090 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2089 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >(); Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); @@ -3630,7 +3629,7 @@ ; break;} case 201: -#line 2100 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2099 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal); @@ -3639,7 +3638,7 @@ ; break;} case 202: -#line 2107 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2106 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >(); yyval.PHIList->push_back(std::make_pair(getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal))); @@ -3647,7 +3646,7 @@ ; break;} case 203: -#line 2112 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2111 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.PHIList = yyvsp[-6].PHIList; yyvsp[-6].PHIList->push_back(std::make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal), @@ -3655,37 +3654,37 @@ ; break;} case 204: -#line 2119 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2118 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... yyval.ValueList = new std::vector<Value*>(); yyval.ValueList->push_back(yyvsp[0].ValueVal); ; break;} case 205: -#line 2123 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2122 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = yyvsp[-2].ValueList; yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal); ; break;} case 207: -#line 2129 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2128 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = 0; ; break;} case 208: -#line 2131 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2130 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} case 209: -#line 2134 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2133 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} case 210: -#line 2140 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2139 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && !isa<PackedType>((*yyvsp[-3].TypeVal).get())) @@ -3700,7 +3699,7 @@ ; break;} case 211: -#line 2152 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2151 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!(*yyvsp[-3].TypeVal)->isIntegral()) { if (!isa<PackedType>(yyvsp[-3].TypeVal->get()) || @@ -3714,7 +3713,7 @@ ; break;} case 212: -#line 2163 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2162 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) { ThrowException( @@ -3727,7 +3726,7 @@ ; break;} case 213: -#line 2173 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2172 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { std::cerr << "WARNING: Use of eliminated 'not' instruction:" << " Replacing with 'xor'.\n"; @@ -3742,7 +3741,7 @@ ; break;} case 214: -#line 2185 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2184 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].ValueVal->getType() != Type::UByteTy) ThrowException("Shift amount must be ubyte!"); @@ -3752,7 +3751,7 @@ ; break;} case 215: -#line 2192 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2191 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!yyvsp[0].TypeVal->get()->isFirstClassType()) ThrowException("cast instruction to a non-primitive type: '" + @@ -3762,7 +3761,7 @@ ; break;} case 216: -#line 2199 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2198 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-4].ValueVal->getType() != Type::BoolTy) ThrowException("select condition must be boolean!"); @@ -3772,7 +3771,7 @@ ; break;} case 217: -#line 2206 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2205 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { NewVarArgs = true; yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal); @@ -3780,7 +3779,7 @@ ; break;} case 218: -#line 2211 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2210 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = yyvsp[-2].ValueVal->getType(); @@ -3802,7 +3801,7 @@ ; break;} case 219: -#line 2230 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2229 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = yyvsp[-2].ValueVal->getType(); @@ -3827,33 +3826,23 @@ ; break;} case 220: -#line 2252 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2251 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - if (!isa<PackedType>(yyvsp[-2].ValueVal->getType())) - ThrowException("First operand of extractelement must be " - "packed type!"); - if (yyvsp[0].ValueVal->getType() != Type::UIntTy) - ThrowException("Second operand of extractelement must be uint!"); + if (!ExtractElementInst::isValidOperands(yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) + ThrowException("Invalid extractelement operands!"); yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal); ; break;} case 221: -#line 2260 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2256 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - if (!isa<PackedType>(yyvsp[-4].ValueVal->getType())) - ThrowException("First operand of insertelement must be " - "packed type!"); - if (yyvsp[-2].ValueVal->getType() != - cast<PackedType>(yyvsp[-4].ValueVal->getType())->getElementType()) - ThrowException("Second operand of insertelement must be " - "packed element type!"); - if (yyvsp[0].ValueVal->getType() != Type::UIntTy) - ThrowException("Third operand of insertelement must be uint!"); + if (!InsertElementInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) + ThrowException("Invalid insertelement operands!"); yyval.InstVal = new InsertElementInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); ; break;} case 222: -#line 2272 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2261 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) ThrowException("Invalid shufflevector operands!"); @@ -3861,7 +3850,7 @@ ; break;} case 223: -#line 2277 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2266 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = yyvsp[0].PHIList->front().first->getType(); if (!Ty->isFirstClassType()) @@ -3878,7 +3867,7 @@ ; break;} case 224: -#line 2291 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2280 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -3938,65 +3927,65 @@ ; break;} case 225: -#line 2348 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2337 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = yyvsp[0].InstVal; ; break;} case 226: -#line 2354 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2343 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = yyvsp[0].ValueList; ; break;} case 227: -#line 2356 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2345 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = new std::vector<Value*>(); ; break;} case 228: -#line 2360 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2349 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} case 229: -#line 2363 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2352 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} case 230: -#line 2369 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2358 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal); delete yyvsp[-1].TypeVal; ; break;} case 231: -#line 2373 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2362 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal); delete yyvsp[-4].TypeVal; ; break;} case 232: -#line 2377 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2366 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal); delete yyvsp[-1].TypeVal; ; break;} case 233: -#line 2381 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2370 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal); delete yyvsp[-4].TypeVal; ; break;} case 234: -#line 2385 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2374 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[0].ValueVal->getType())) ThrowException("Trying to free nonpointer type " + @@ -4005,7 +3994,7 @@ ; break;} case 235: -#line 2392 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2381 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[-1].TypeVal->get())) ThrowException("Can't load from nonpointer type: " + @@ -4018,7 +4007,7 @@ ; break;} case 236: -#line 2402 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2391 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get()); if (!PT) @@ -4034,7 +4023,7 @@ ; break;} case 237: -#line 2415 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2404 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[-2].TypeVal->get())) ThrowException("getelementptr insn requires pointer operand!"); @@ -4279,7 +4268,7 @@ } return 1; } -#line 2438 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2427 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y" int yyerror(const char *ErrorMsg) { std::string where Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.4 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.5 --- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.4 Fri Apr 7 22:55:17 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y.cvs Fri Apr 7 23:09:02 2006 @@ -1541,14 +1541,13 @@ $$ = ConstantExpr::get($1, $3, $5); } | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' { - if (!isa<PackedType>($3->getType())) - ThrowException("First operand of extractelement must be " - "packed type!"); - if ($5->getType() != Type::UIntTy) - ThrowException("Second operand of extractelement must be uint!"); + if (!ExtractElementInst::isValidOperands($3, $5)) + ThrowException("Invalid extractelement operands!"); $$ = ConstantExpr::getExtractElement($3, $5); } | INSERTELEMENT '(' ConstVal ',' ConstVal ',' ConstVal ')' { + if (!InsertElementInst::isValidOperands($3, $5, $7)) + ThrowException("Invalid insertelement operands!"); $$ = ConstantExpr::getInsertElement($3, $5, $7); } | SHUFFLEVECTOR '(' ConstVal ',' ConstVal ',' ConstVal ')' { @@ -2250,23 +2249,13 @@ delete $4; } | EXTRACTELEMENT ResolvedVal ',' ResolvedVal { - if (!isa<PackedType>($2->getType())) - ThrowException("First operand of extractelement must be " - "packed type!"); - if ($4->getType() != Type::UIntTy) - ThrowException("Second operand of extractelement must be uint!"); + if (!ExtractElementInst::isValidOperands($2, $4)) + ThrowException("Invalid extractelement operands!"); $$ = new ExtractElementInst($2, $4); } | INSERTELEMENT ResolvedVal ',' ResolvedVal ',' ResolvedVal { - if (!isa<PackedType>($2->getType())) - ThrowException("First operand of insertelement must be " - "packed type!"); - if ($4->getType() != - cast<PackedType>($2->getType())->getElementType()) - ThrowException("Second operand of insertelement must be " - "packed element type!"); - if ($6->getType() != Type::UIntTy) - ThrowException("Third operand of insertelement must be uint!"); + if (!InsertElementInst::isValidOperands($2, $4, $6)) + ThrowException("Invalid insertelement operands!"); $$ = new InsertElementInst($2, $4, $6); } | SHUFFLEVECTOR ResolvedVal ',' ResolvedVal ',' ResolvedVal { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits