diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-11-28 07:29:44 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-11-28 07:29:44 +0000 |
commit | 861d9d6863b53f8745aab80367c4563628e72fd8 (patch) | |
tree | e7e613d82d8e1b0f5b30ce4d47420a72beb58de4 /lib/AsmParser/llvmAsmParser.cpp.cvs | |
parent | b78b908d4a8eb5f858fb86c45b2609ae778ae772 (diff) |
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31965 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser/llvmAsmParser.cpp.cvs')
-rw-r--r-- | lib/AsmParser/llvmAsmParser.cpp.cvs | 851 |
1 files changed, 450 insertions, 401 deletions
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs index c5774e146b..ff15cd1085 100644 --- a/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -316,7 +316,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 14 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" #include "ParserInternals.h" #include "llvm/CallingConv.h" @@ -389,8 +389,8 @@ static struct PerModuleInfo { Module *CurrentModule; std::map<const Type *, ValueList> Values; // Module level numbered definitions std::map<const Type *,ValueList> LateResolveValues; - std::vector<TypeInfo> Types; - std::map<ValID, TypeInfo> LateResolveTypes; + std::vector<PATypeHolder> Types; + std::map<ValID, PATypeHolder> LateResolveTypes; /// PlaceHolderInfo - When temporary placeholder objects are created, remember /// how they were referenced and on which line of the input they came from so @@ -523,7 +523,7 @@ static const Type *getTypeVal(const ValID &D, bool DoNotImprovise = false) { case ValID::NumberVal: // Is it a numbered definition? // Module constants occupy the lowest numbered slots... if ((unsigned)D.Num < CurModule.Types.size()) - return CurModule.Types[(unsigned)D.Num].type->get(); + return CurModule.Types[(unsigned)D.Num]; break; case ValID::NameVal: // Is it a named definition? if (const Type *N = CurModule.CurrentModule->getTypeByName(D.Name)) { @@ -553,16 +553,14 @@ static const Type *getTypeVal(const ValID &D, bool DoNotImprovise = false) { } } - std::map<ValID, TypeInfo>::iterator I =CurModule.LateResolveTypes.find(D); + std::map<ValID, PATypeHolder>::iterator I =CurModule.LateResolveTypes.find(D); if (I != CurModule.LateResolveTypes.end()) - return I->second.type->get(); + return I->second; - TypeInfo TI; - TI.type = new PATypeHolder(OpaqueType::get()); - TI.signedness = isSignless; - CurModule.LateResolveTypes.insert(std::make_pair(D, TI)); - return TI.type->get(); - } + Type *Typ = OpaqueType::get(); + CurModule.LateResolveTypes.insert(std::make_pair(D, Typ)); + return Typ; +} static Value *lookupInSymbolTable(const Type *Ty, const std::string &Name) { SymbolTable &SymTab = @@ -865,10 +863,10 @@ static void ResolveTypeTo(char *Name, const Type *ToTy) { if (Name) D = ValID::create(Name); else D = ValID::create((int)CurModule.Types.size()); - std::map<ValID, TypeInfo>::iterator I = + std::map<ValID, PATypeHolder>::iterator I = CurModule.LateResolveTypes.find(D); if (I != CurModule.LateResolveTypes.end()) { - ((DerivedType*)I->second.type->get())->refineAbstractTypeTo(ToTy); + ((DerivedType*)I->second.get())->refineAbstractTypeTo(ToTy); CurModule.LateResolveTypes.erase(I); } } @@ -1362,7 +1360,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 1040 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1038 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1370,19 +1368,17 @@ typedef union YYSTYPE { llvm::BasicBlock *BasicBlockVal; llvm::TerminatorInst *TermInstVal; llvm::Instruction *InstVal; - llvm::Constant *ConstVal; - - TypeInfo TypeVal; - llvm::Value *ValueVal; + ConstInfo ConstVal; + TypeInfo TypeVal; + ValueInfo ValueVal; std::vector<std::pair<TypeInfo,char*> >*ArgList; - std::vector<llvm::Value*> *ValueList; + std::vector<ValueInfo> *ValueList; std::list<TypeInfo> *TypeList; // Represent the RHS of PHI node - std::list<std::pair<llvm::Value*, - llvm::BasicBlock*> > *PHIList; + std::list<std::pair<llvm::Value*, llvm::BasicBlock*> > *PHIList; std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable; - std::vector<llvm::Constant*> *ConstVector; + std::vector<ConstInfo> *ConstVector; llvm::GlobalValue::LinkageTypes Linkage; int64_t SInt64Val; @@ -1403,7 +1399,7 @@ typedef union YYSTYPE { llvm::Module::Endianness Endianness; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 1407 "llvmAsmParser.tab.c" +#line 1403 "llvmAsmParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1415,7 +1411,7 @@ typedef union YYSTYPE { /* Line 219 of yacc.c. */ -#line 1419 "llvmAsmParser.tab.c" +#line 1415 "llvmAsmParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1755,33 +1751,33 @@ static const short int yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 1168, 1168, 1169, 1177, 1178, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1190, 1190, - 1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191, 1191, 1191, - 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1193, 1193, 1197, - 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1199, 1199, 1200, - 1200, 1203, 1207, 1212, 1213, 1214, 1215, 1216, 1217, 1218, - 1219, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1237, - 1238, 1244, 1245, 1253, 1261, 1262, 1267, 1268, 1269, 1274, - 1288, 1288, 1292, 1292, 1297, 1308, 1308, 1308, 1308, 1308, - 1308, 1308, 1309, 1309, 1309, 1309, 1309, 1309, 1310, 1315, - 1319, 1328, 1337, 1352, 1359, 1373, 1384, 1389, 1401, 1406, - 1412, 1413, 1419, 1425, 1436, 1462, 1476, 1506, 1532, 1553, - 1566, 1576, 1581, 1642, 1649, 1658, 1664, 1670, 1674, 1678, - 1686, 1712, 1744, 1752, 1779, 1790, 1796, 1807, 1813, 1819, - 1828, 1832, 1840, 1840, 1850, 1858, 1863, 1867, 1871, 1875, - 1890, 1912, 1915, 1918, 1918, 1926, 1926, 1935, 1935, 1944, - 1944, 1954, 1957, 1960, 1964, 1977, 1978, 1980, 1984, 1993, - 1997, 2002, 2004, 2009, 2014, 2023, 2023, 2024, 2024, 2026, - 2033, 2039, 2046, 2050, 2058, 2066, 2071, 2165, 2165, 2167, - 2175, 2175, 2177, 2182, 2183, 2184, 2186, 2186, 2196, 2200, - 2205, 2209, 2213, 2217, 2221, 2225, 2229, 2233, 2237, 2257, - 2261, 2275, 2279, 2285, 2285, 2291, 2296, 2300, 2309, 2320, - 2329, 2341, 2354, 2358, 2362, 2367, 2376, 2395, 2404, 2460, - 2464, 2471, 2482, 2495, 2504, 2513, 2523, 2527, 2534, 2534, - 2536, 2540, 2545, 2567, 2582, 2596, 2609, 2620, 2646, 2654, - 2660, 2680, 2703, 2709, 2715, 2721, 2736, 2796, 2803, 2806, - 2811, 2815, 2822, 2827, 2833, 2838, 2844, 2852, 2864, 2879 + 0, 1164, 1164, 1165, 1173, 1174, 1184, 1184, 1184, 1184, + 1184, 1184, 1184, 1184, 1184, 1185, 1185, 1185, 1186, 1186, + 1186, 1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, + 1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1193, + 1193, 1193, 1193, 1194, 1194, 1194, 1194, 1195, 1195, 1196, + 1196, 1199, 1203, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1233, + 1234, 1240, 1241, 1249, 1257, 1258, 1263, 1264, 1265, 1270, + 1284, 1284, 1288, 1288, 1293, 1304, 1304, 1304, 1304, 1304, + 1304, 1304, 1305, 1305, 1305, 1305, 1305, 1305, 1306, 1311, + 1315, 1324, 1333, 1348, 1355, 1369, 1380, 1385, 1397, 1402, + 1408, 1409, 1415, 1421, 1432, 1463, 1478, 1509, 1539, 1564, + 1578, 1589, 1595, 1657, 1664, 1674, 1681, 1688, 1693, 1698, + 1707, 1733, 1755, 1764, 1793, 1805, 1812, 1824, 1831, 1838, + 1848, 1852, 1860, 1860, 1870, 1878, 1883, 1887, 1891, 1895, + 1910, 1932, 1935, 1938, 1938, 1946, 1946, 1955, 1955, 1964, + 1964, 1974, 1977, 1980, 1984, 1997, 1998, 2000, 2004, 2013, + 2017, 2022, 2024, 2029, 2034, 2043, 2043, 2044, 2044, 2046, + 2053, 2059, 2066, 2070, 2078, 2086, 2091, 2185, 2185, 2187, + 2195, 2195, 2197, 2202, 2203, 2204, 2206, 2206, 2216, 2220, + 2225, 2229, 2233, 2237, 2241, 2245, 2249, 2253, 2257, 2280, + 2284, 2298, 2302, 2308, 2308, 2314, 2321, 2325, 2334, 2345, + 2354, 2366, 2379, 2383, 2387, 2392, 2401, 2420, 2429, 2494, + 2498, 2505, 2516, 2529, 2538, 2547, 2557, 2561, 2568, 2571, + 2575, 2579, 2584, 2606, 2621, 2635, 2648, 2659, 2685, 2693, + 2699, 2719, 2742, 2748, 2754, 2760, 2775, 2848, 2855, 2858, + 2863, 2867, 2874, 2879, 2885, 2890, 2896, 2904, 2916, 2931 }; #endif @@ -3088,7 +3084,7 @@ yyreduce: switch (yyn) { case 3: -#line 1169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1165 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3098,7 +3094,7 @@ yyreduce: break; case 5: -#line 1178 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1174 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3108,7 +3104,7 @@ yyreduce: break; case 51: -#line 1203 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1199 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[-1].StrVal); CHECK_FOR_ERROR @@ -3116,7 +3112,7 @@ yyreduce: break; case 52: -#line 1207 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1203 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; CHECK_FOR_ERROR @@ -3124,82 +3120,82 @@ yyreduce: break; case 53: -#line 1212 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1208 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 54: -#line 1213 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1209 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 55: -#line 1214 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1210 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 56: -#line 1215 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1211 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 57: -#line 1216 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1212 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 58: -#line 1217 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1213 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 59: -#line 1218 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1214 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 60: -#line 1219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1215 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 61: -#line 1221 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1217 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 62: -#line 1222 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1218 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 63: -#line 1223 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1219 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::CSRet; ;} break; case 64: -#line 1224 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1220 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Fast; ;} break; case 65: -#line 1225 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1221 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Cold; ;} break; case 66: -#line 1226 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1222 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} break; case 67: -#line 1227 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1223 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} break; case 68: -#line 1228 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1224 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) GEN_ERROR("Calling conv too large!"); @@ -3209,12 +3205,12 @@ yyreduce: break; case 69: -#line 1237 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1233 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 70: -#line 1238 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1234 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3224,12 +3220,12 @@ yyreduce: break; case 71: -#line 1244 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1240 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 72: -#line 1245 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1241 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3239,7 +3235,7 @@ yyreduce: break; case 73: -#line 1253 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1249 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') @@ -3250,27 +3246,27 @@ yyreduce: break; case 74: -#line 1261 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1257 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 75: -#line 1262 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1258 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[0].StrVal); ;} break; case 76: -#line 1267 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1263 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" {;} break; case 77: -#line 1268 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1264 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" {;} break; case 78: -#line 1269 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1265 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { CurGV->setSection((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -3279,7 +3275,7 @@ yyreduce: break; case 79: -#line 1274 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1270 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) GEN_ERROR("Alignment must be a power of two!"); @@ -3289,7 +3285,7 @@ yyreduce: break; case 81: -#line 1288 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1284 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal).type = new PATypeHolder((yyvsp[0].TypeVal).type->get()); (yyval.TypeVal).signedness = (yyvsp[0].TypeVal).signedness; @@ -3297,7 +3293,7 @@ yyreduce: break; case 83: -#line 1292 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1288 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal).type = new PATypeHolder((yyvsp[0].TypeVal).type->get()); (yyval.TypeVal).signedness = (yyvsp[0].TypeVal).signedness; @@ -3305,7 +3301,7 @@ yyreduce: break; case 84: -#line 1297 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1293 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) GEN_ERROR("Invalid upreference in type: " + @@ -3316,7 +3312,7 @@ yyreduce: break; case 98: -#line 1310 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1306 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal).type = new PATypeHolder(OpaqueType::get()); (yyval.TypeVal).signedness = isSignless; @@ -3325,7 +3321,7 @@ yyreduce: break; case 99: -#line 1315 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1311 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = (yyvsp[0].TypeVal); CHECK_FOR_ERROR @@ -3333,7 +3329,7 @@ yyreduce: break; case 100: -#line 1319 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1315 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... const Type* tmp = getTypeVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -3343,7 +3339,7 @@ yyreduce: break; case 101: -#line 1328 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1324 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Type UpReference if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder @@ -3356,7 +3352,7 @@ yyreduce: break; case 102: -#line 1337 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1333 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector<const Type*> Params; for (std::list<TypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3375,7 +3371,7 @@ yyreduce: break; case 103: -#line 1352 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1348 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Sized array type? (yyval.TypeVal).type = new PATypeHolder(HandleUpRefs( ArrayType::get((yyvsp[-1].TypeVal).type->get(), (unsigned)(yyvsp[-3].UInt64Val)))); @@ -3386,7 +3382,7 @@ yyreduce: break; case 104: -#line 1359 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1355 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Packed array type? const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).type->get(); if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) @@ -3404,12 +3400,12 @@ yyreduce: break; case 105: -#line 1373 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1369 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector<const Type*> Elements; for (std::list<TypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(), E = (yyvsp[-1].TypeList)->end(); I != E; ++I) - Elements.push_back(I->type->get()); + Elements.push_back((*I).type->get()); (yyval.TypeVal).type = new PATypeHolder(HandleUpRefs(StructType::get(Elements))); (yyval.TypeVal).signedness = isSignless; @@ -3419,7 +3415,7 @@ yyreduce: break; case 106: -#line 1384 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1380 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? (yyval.TypeVal).type = new PATypeHolder(StructType::get(std::vector<const Type*>())); (yyval.TypeVal).signedness = isSignless; @@ -3428,19 +3424,19 @@ yyreduce: break; case 107: -#line 1389 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1385 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Pointer type? if ((yyvsp[-1].TypeVal).type->get() == Type::LabelTy) GEN_ERROR("Cannot form a pointer to a basic block"); (yyval.TypeVal).type = new PATypeHolder(HandleUpRefs(PointerType::get((yyvsp[-1].TypeVal).type->get()))); - (yyval.TypeVal).signedness = (yyvsp[-1].TypeVal).signedness; + (yyval.TypeVal).signedness = isSignless; delete (yyvsp[-1].TypeVal).type; CHECK_FOR_ERROR ;} break; case 108: -#line 1401 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1397 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list<TypeInfo>(); (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); @@ -3449,7 +3445,7 @@ yyreduce: break; case 109: -#line 1406 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1402 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal)); CHECK_FOR_ERROR @@ -3457,7 +3453,7 @@ yyreduce: break; case 111: -#line 1413 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1409 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { TypeInfo TI; TI.type = new PATypeHolder(Type::VoidTy); TI.signedness = isSignless; @@ -3467,7 +3463,7 @@ yyreduce: break; case 112: -#line 1419 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1415 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { TypeInfo TI; TI.type = new PATypeHolder(Type::VoidTy); TI.signedness = isSignless; @@ -3477,7 +3473,7 @@ yyreduce: break; case 113: -#line 1425 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1421 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list<TypeInfo>(); CHECK_FOR_ERROR @@ -3485,7 +3481,7 @@ yyreduce: break; case 114: -#line 1436 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1432 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal).type->get()); if (ATy == 0) @@ -3501,21 +3497,26 @@ yyreduce: itostr(NumElements) + "!"); // Verify all elements are correct type! + std::vector<Constant*> elems; for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType()) + if (ETy != (*(yyvsp[-1].ConstVector))[i].cnst->getType()) { GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'."); + (*(yyvsp[-1].ConstVector))[i].cnst->getType()->getDescription() + "'."); + } else { + elems.push_back((*(yyvsp[-1].ConstVector))[i].cnst); + } } - (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[-1].ConstVector)); + (yyval.ConstVal).cnst = ConstantArray::get(ATy, elems); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-3].TypeVal).type; delete (yyvsp[-1].ConstVector); CHECK_FOR_ERROR ;} break; case 115: -#line 1462 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1463 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).type->get()); if (ATy == 0) @@ -3526,14 +3527,15 @@ yyreduce: if (NumElements != -1 && NumElements != 0) GEN_ERROR("Type mismatch: constant sized array initialized with 0" " arguments, but has size of " + itostr(NumElements) +"!"); - (yyval.ConstVal) = ConstantArray::get(ATy, std::vector<Constant*>()); + (yyval.ConstVal).cnst = ConstantArray::get(ATy, std::vector<llvm::Constant*>()); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-2].TypeVal).type; CHECK_FOR_ERROR ;} break; case 116: -#line 1476 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1478 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).type->get()); if (ATy == 0) @@ -3560,14 +3562,15 @@ yyreduce: GEN_ERROR("Cannot build string arrays of non byte sized elements!"); } free((yyvsp[0].StrVal)); - (yyval.ConstVal) = ConstantArray::get(ATy, Vals); + (yyval.ConstVal).cnst = ConstantArray::get(ATy, Vals); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-2].TypeVal).type; CHECK_FOR_ERROR ;} break; case 117: -#line 1506 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1509 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal).type->get()); if (PTy == 0) @@ -3583,21 +3586,25 @@ yyreduce: itostr(NumElements) + "!"); // Verify all elements are correct type! + std::vector<Constant*> elems; for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType()) + if (ETy != (*(yyvsp[-1].ConstVector))[i].cnst->getType()) { GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'."); + (*(yyvsp[-1].ConstVector))[i].cnst->getType()->getDescription() + "'."); + } else + elems.push_back((*(yyvsp[-1].ConstVector))[i].cnst); } - (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[-1].ConstVector)); + (yyval.ConstVal).cnst = ConstantPacked::get(PTy, elems); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-3].TypeVal).type; delete (yyvsp[-1].ConstVector); CHECK_FOR_ERROR ;} break; case 118: -#line 1532 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1539 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal).type->get()); if (STy == 0) @@ -3608,21 +3615,25 @@ yyreduce: GEN_ERROR("Illegal number of initializers for structure type!"); // Check to ensure that constants are compatible with the type initializer! + std::vector<Constant*> elems; for (unsigned i = 0, e = (yyvsp[-1].ConstVector)->size(); i != e; ++i) - if ((*(yyvsp[-1].ConstVector))[i]->getType() != STy->getElementType(i)) + if ((*(yyvsp[-1].ConstVector))[i].cnst->getType() != STy->getElementType(i)) { GEN_ERROR("Expected type '" + STy->getElementType(i)->getDescription() + "' for element #" + utostr(i) + " of structure initializer!"); + } else + elems.push_back((*(yyvsp[-1].ConstVector))[i].cnst); - (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[-1].ConstVector)); + (yyval.ConstVal).cnst = ConstantStruct::get(STy, elems); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-3].TypeVal).type; delete (yyvsp[-1].ConstVector); CHECK_FOR_ERROR ;} break; case 119: -#line 1553 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1564 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal).type->get()); if (STy == 0) @@ -3632,37 +3643,40 @@ yyreduce: if (STy->getNumContainedTypes() != 0) GEN_ERROR("Illegal number of initializers for structure type!"); - (yyval.ConstVal) = ConstantStruct::get(STy, std::vector<Constant*>()); + (yyval.ConstVal).cnst = ConstantStruct::get(STy, std::vector<Constant*>()); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-2].TypeVal).type; CHECK_FOR_ERROR ;} break; case 120: -#line 1566 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1578 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).type->get()); if (PTy == 0) GEN_ERROR("Cannot make null pointer constant with type: '" + (yyvsp[-1].TypeVal).type->get()->getDescription() + "'!"); - (yyval.ConstVal) = ConstantPointerNull::get(PTy); + (yyval.ConstVal).cnst = ConstantPointerNull::get(PTy); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-1].TypeVal).type; CHECK_FOR_ERROR ;} break; case 121: -#line 1576 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1589 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { - (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal).type->get()); + (yyval.ConstVal).cnst = UndefValue::get((yyvsp[-1].TypeVal).type->get()); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-1].TypeVal).type; CHECK_FOR_ERROR ;} break; case 122: -#line 1581 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1595 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal).type->get()); if (Ty == 0) @@ -3720,16 +3734,17 @@ yyreduce: } } - (yyval.ConstVal) = cast<GlobalValue>(V); + (yyval.ConstVal).cnst = cast<GlobalValue>(V); + (yyval.ConstVal).signedness = (yyvsp[-1].TypeVal).signedness; delete (yyvsp[-1].TypeVal).type; // Free the type handle CHECK_FOR_ERROR ;} break; case 123: -#line 1642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1657 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-1].TypeVal).type->get() != (yyvsp[0].ConstVal)->getType()) + if ((yyvsp[-1].TypeVal).type->get() != (yyvsp[0].ConstVal).cnst->getType()) GEN_ERROR("Mismatched types for constant expression!"); (yyval.ConstVal) = (yyvsp[0].ConstVal); delete (yyvsp[-1].TypeVal).type; @@ -3738,67 +3753,73 @@ yyreduce: break; case 124: -#line 1649 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1664 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).type->get(); if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty)) GEN_ERROR("Cannot create a null initialized value of this type!"); - (yyval.ConstVal) = Constant::getNullValue(Ty); + (yyval.ConstVal).cnst = Constant::getNullValue(Ty); + (yyval.ConstVal).signedness = isSignless; delete (yyvsp[-1].TypeVal).type; CHECK_FOR_ERROR ;} break; case 125: -#line 1658 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1674 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].SInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].SInt64Val)); + (yyval.ConstVal).cnst = ConstantInt::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].SInt64Val)); + (yyval.ConstVal).signedness = (yyvsp[-1].TypeVal).signedness; CHECK_FOR_ERROR ;} break; case 126: -#line 1664 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1681 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].UInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].UInt64Val)); + (yyval.ConstVal).cnst = ConstantInt::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].UInt64Val)); + (yyval.ConstVal).signedness = (yyvsp[-1].TypeVal).signedness; CHECK_FOR_ERROR ;} break; case 127: -#line 1670 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1688 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Boolean constants - (yyval.ConstVal) = ConstantBool::getTrue(); + (yyval.ConstVal).cnst = ConstantBool::getTrue(); + (yyval.ConstVal).signedness = isSignless; CHECK_FOR_ERROR ;} break; case 128: -#line 1674 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1693 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Boolean constants - (yyval.ConstVal) = ConstantBool::getFalse(); + (yyval.ConstVal).cnst = ConstantBool::getFalse(); + (yyval.ConstVal).signedness = isSignless; CHECK_FOR_ERROR ;} break; case 129: -#line 1678 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1698 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].FPVal))) GEN_ERROR("Floating point constant invalid for type!!"); - (yyval.ConstVal) = ConstantFP::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].FPVal)); + (yyval.ConstVal).cnst = ConstantFP::get((yyvsp[-1].TypeVal).type->get(), (yyvsp[0].FPVal)); + (yyval.ConstVal).signedness = isSignless; CHECK_FOR_ERROR ;} break; case 130: -#line 1686 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1707 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { - Constant *Val = (yyvsp[-3].ConstVal); + Constant *Val = (yyvsp[-3].ConstVal).cnst; const Type *Ty = (yyvsp[-1].TypeVal).type->get(); if (!Val->getType()->isFirstClassType()) GEN_ERROR("cast constant expression from a non-primitive type: '" + @@ -3810,85 +3831,76 @@ yyreduce: if (Ty == Type::BoolTy) { // The previous definition of cast to bool was a compare against zero. // We have to retain that semantic so we do it here. - (yyval.ConstVal) = ConstantExpr::get(Instruction::SetNE, Val, + (yyval.ConstVal).cnst = ConstantExpr::get(Instruction::SetNE, Val, Constant::getNullValue(Val->getType())); } else if (Val->getType()->isFloatingPoint() && isa<PointerType>(Ty)) { Constant *CE = ConstantExpr::getFPToUI(Val, Type::ULongTy); - (yyval.ConstVal) = ConstantExpr::getIntToPtr(CE, Ty); + (yyval.ConstVal).cnst = ConstantExpr::getIntToPtr(CE, Ty); } else { - (yyval.ConstVal) = ConstantExpr::getCast(Val, Ty); + (yyval.ConstVal).cnst = ConstantExpr::getCast(Val, Ty); } } else { - (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[-5].CastOpVal).opcode, (yyvsp[-3].ConstVal), (yyvsp[-1].TypeVal).type->get()); + (yyval.ConstVal).cnst = ConstantExpr::getCast((yyvsp[-5].CastOpVal).opcode, (yyvsp[-3].ConstVal).cnst, (yyvsp[-1].TypeVal).type->get()); } delete (yyvsp[-1].TypeVal).type; ;} break; case 131: -#line 1712 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1733 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y" { - if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType())) + if (!isa<PointerType>((yyvsp[-2].ConstVal).cnst->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator<std::vector<Value*>::iterator> - GTI = gep_type_begin((yyvsp[-2].ConstVal)->getType(), (yyvsp[-1].ValueList)->begin(), (yyvsp[-1].ValueList)->end()), - GTE = gep_type_end((yyvsp[-2].ConstVal)->getType(), (yyvsp[-1].ValueList)->begin(), (yyvsp[-1].ValueList)->end()); - for (unsigned i = 0, e = (yyvsp[-1].ValueList)->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa<StructType& |