aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-01-03 23:45:42 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-01-03 23:45:42 +0000
commiteff838e18c743933ab994e33ee1b220b839e9440 (patch)
tree65e7cfac8c19578b76fb039824b6ca898219c169
parent7596fd077491e4c3f558798ee5f0f1fcd35fb14b (diff)
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32848 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/llvm-upgrade/UpgradeLexer.cpp2
-rw-r--r--tools/llvm-upgrade/UpgradeParser.cpp498
-rw-r--r--tools/llvm-upgrade/UpgradeParser.cpp.cvs498
-rw-r--r--tools/llvm-upgrade/UpgradeParser.h2
-rw-r--r--tools/llvm-upgrade/UpgradeParser.h.cvs2
-rw-r--r--tools/llvm-upgrade/UpgradeParser.y.cvs106
6 files changed, 608 insertions, 500 deletions
diff --git a/tools/llvm-upgrade/UpgradeLexer.cpp b/tools/llvm-upgrade/UpgradeLexer.cpp
index dffe1002f9..eb33579f59 100644
--- a/tools/llvm-upgrade/UpgradeLexer.cpp
+++ b/tools/llvm-upgrade/UpgradeLexer.cpp
@@ -1196,7 +1196,7 @@ yy_match:
yy_find_action:
yy_current_state = *--yy_state_ptr;
yy_lp = yy_accept[yy_current_state];
-find_rule: /* we branch to this label when backing up */
+
for ( ; ; ) /* until we find what rule we matched */
{
if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp b/tools/llvm-upgrade/UpgradeParser.cpp
index 5a21d7fe36..a6c4f2162c 100644
--- a/tools/llvm-upgrade/UpgradeParser.cpp
+++ b/tools/llvm-upgrade/UpgradeParser.cpp
@@ -436,24 +436,26 @@ void UpgradeAssembly(const std::string &infile, std::istream& in,
TypeInfo* ResolveType(TypeInfo*& Ty) {
if (Ty->isUnresolved()) {
- TypeMap::iterator I = NamedTypes.find(Ty->getNewTy());
- if (I != NamedTypes.end()) {
- Ty = I->second.clone();
- return Ty;
- } else {
- std::string msg("Cannot resolve type: ");
- msg += Ty->getNewTy();
- yyerror(msg.c_str());
- }
- } else if (Ty->isNumeric()) {
- unsigned ref = atoi(&((Ty->getNewTy().c_str())[1])); // Skip the '\\'
- if (ref < EnumeratedTypes.size()) {
- Ty = EnumeratedTypes[ref].clone();
- return Ty;
+ if (Ty->getNewTy()[0] == '%' && isdigit(Ty->getNewTy()[1])) {
+ unsigned ref = atoi(&((Ty->getNewTy().c_str())[1])); // skip the %
+ if (ref < EnumeratedTypes.size()) {
+ Ty = &EnumeratedTypes[ref];
+ return Ty;
+ } else {
+ std::string msg("Can't resolve numbered type: ");
+ msg += Ty->getNewTy();
+ yyerror(msg.c_str());
+ }
} else {
- std::string msg("Can't resolve type: ");
- msg += Ty->getNewTy();
- yyerror(msg.c_str());
+ TypeMap::iterator I = NamedTypes.find(Ty->getNewTy());
+ if (I != NamedTypes.end()) {
+ Ty = &I->second;
+ return Ty;
+ } else {
+ std::string msg("Cannot resolve type: ");
+ msg += Ty->getNewTy();
+ yyerror(msg.c_str());
+ }
}
}
// otherwise its already resolved.
@@ -651,18 +653,35 @@ static TypeInfo* getFunctionReturnType(TypeInfo* PFTy) {
return PFTy->clone();
}
+typedef std::vector<TypeInfo*> UpRefStack;
+static TypeInfo* ResolveUpReference(TypeInfo* Ty, UpRefStack* stack) {
+ assert(Ty->isUpReference() && "Can't resolve a non-upreference");
+ unsigned upref = atoi(&((Ty->getNewTy().c_str())[1])); // skip the slash
+ assert(upref < stack->size() && "Invalid up reference");
+ return (*stack)[upref - stack->size() - 1];
+}
+
static TypeInfo* getGEPIndexedType(TypeInfo* PTy, ValueList* idxs) {
- ResolveType(PTy);
+ TypeInfo* Result = ResolveType(PTy);
assert(PTy->isPointer() && "GEP Operand is not a pointer?");
- TypeInfo* Result = PTy->getElementType(); // just skip first index
- ResolveType(Result);
- for (unsigned i = 1; i < idxs->size(); ++i) {
+ UpRefStack stack;
+ for (unsigned i = 0; i < idxs->size(); ++i) {
if (Result->isComposite()) {
Result = Result->getIndexedType((*idxs)[i]);
ResolveType(Result);
+ stack.push_back(Result);
} else
yyerror("Invalid type for index");
}
+ // Resolve upreferences so we can return a more natural type
+ if (Result->isPointer()) {
+ if (Result->getElementType()->isUpReference()) {
+ stack.push_back(Result);
+ Result = ResolveUpReference(Result->getElementType(), &stack);
+ }
+ } else if (Result->isUpReference()) {
+ Result = ResolveUpReference(Result->getElementType(), &stack);
+ }
return Result->getPointerType();
}
@@ -693,17 +712,41 @@ static std::string getUniqueName(const std::string *Name, TypeInfo* Ty) {
// Resolve the type
ResolveType(Ty);
+ // Remove as many levels of pointer nesting that we have.
+ if (Ty->isPointer()) {
+ // Avoid infinite loops in recursive types
+ TypeInfo* Last = 0;
+ while (Ty->isPointer() && Last != Ty) {
+ Last = Ty;
+ Ty = Ty->getElementType();
+ ResolveType(Ty);
+ }
+ }
+
// Default the result to the current name
std::string Result = *Name;
+ // Now deal with the underlying type
if (Ty->isInteger()) {
// If its an integer type, make the name unique
Result = makeUniqueName(Name, Ty->isSigned());
- } else if (Ty->isPointer()) {
- while (Ty->isPointer())
- Ty = Ty->getElementType();
+ } else if (Ty->isArray() || Ty->isPacked()) {
+ Ty = Ty->getElementType();
if (Ty->isInteger())
Result = makeUniqueName(Name, Ty->isSigned());
+ } else if (Ty->isStruct()) {
+ // Scan the fields and count the signed and unsigned fields
+ int isSigned = 0;
+ for (unsigned i = 0; i < Ty->getNumStructElements(); ++i) {
+ TypeInfo* Tmp = Ty->getElement(i);
+ if (Tmp->isInteger())
+ if (Tmp->isSigned())
+ isSigned++;
+ else
+ isSigned--;
+ }
+ if (isSigned != 0)
+ Result = makeUniqueName(Name, isSigned > 0);
}
return Result;
}
@@ -729,7 +772,7 @@ static std::string getUniqueName(const std::string *Name, TypeInfo* Ty) {
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 357 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 400 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
typedef union YYSTYPE {
std::string* String;
TypeInfo* Type;
@@ -739,7 +782,7 @@ typedef union YYSTYPE {
TypeList* TypeVec;
} YYSTYPE;
/* Line 196 of yacc.c. */
-#line 743 "UpgradeParser.tab.c"
+#line 786 "UpgradeParser.tab.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@@ -751,7 +794,7 @@ typedef union YYSTYPE {
/* Line 219 of yacc.c. */
-#line 755 "UpgradeParser.tab.c"
+#line 798 "UpgradeParser.tab.c"
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
@@ -1107,37 +1150,37 @@ static const short int yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short int yyrline[] =
{
- 0, 422, 422, 422, 423, 423, 427, 427, 427, 427,
- 427, 427, 427, 428, 428, 428, 428, 429, 429, 429,
- 430, 430, 430, 430, 430, 430, 431, 431, 431, 431,
- 431, 431, 431, 431, 431, 431, 432, 432, 432, 432,
- 432, 432, 432, 432, 432, 432, 433, 433, 433, 433,
- 433, 433, 434, 434, 434, 434, 435, 435, 435, 435,
- 435, 435, 435, 436, 436, 436, 436, 436, 436, 441,
- 441, 441, 441, 442, 442, 442, 442, 443, 443, 444,
- 444, 447, 450, 455, 455, 455, 455, 455, 455, 456,
- 457, 460, 460, 460, 460, 460, 461, 462, 467, 472,
- 473, 476, 477, 485, 491, 492, 495, 496, 505, 506,
- 519, 519, 520, 520, 521, 525, 525, 525, 525, 525,
- 525, 525, 526, 526, 526, 526, 526, 528, 531, 534,
- 537, 541, 555, 562, 569, 580, 584, 595, 599, 608,
- 612, 619, 620, 625, 630, 640, 646, 651, 657, 663,
- 669, 674, 680, 686, 693, 699, 705, 711, 717, 723,
- 729, 737, 750, 762, 767, 773, 778, 784, 789, 794,
- 802, 807, 812, 822, 827, 832, 832, 842, 847, 850,
- 855, 859, 863, 865, 865, 868, 878, 883, 888, 898,
- 908, 918, 928, 933, 938, 943, 945, 945, 948, 953,
- 960, 965, 972, 979, 984, 985, 993, 993, 994, 994,
- 996, 1005, 1009, 1013, 1016, 1021, 1024, 1027, 1045, 1046,
- 1049, 1060, 1061, 1063, 1072, 1073, 1074, 1078, 1091, 1092,
- 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1096, 1097, 1102,
- 1103, 1112, 1112, 1116, 1121, 1131, 1140, 1143, 1151, 1155,
- 1160, 1163, 1169, 1169, 1171, 1176, 1181, 1186, 1195, 1203,
- 1210, 1233, 1238, 1244, 1250, 1258, 1276, 1284, 1293, 1297,
- 1304, 1305, 1309, 1314, 1317, 1326, 1334, 1343, 1351, 1359,
- 1364, 1373, 1401, 1407, 1413, 1420, 1426, 1432, 1438, 1456,
- 1461, 1462, 1466, 1467, 1470, 1478, 1487, 1495, 1504, 1510,
- 1519, 1528
+ 0, 465, 465, 465, 466, 466, 470, 470, 470, 470,
+ 470, 470, 470, 471, 471, 471, 471, 472, 472, 472,
+ 473, 473, 473, 473, 473, 473, 474, 474, 474, 474,
+ 474, 474, 474, 474, 474, 474, 475, 475, 475, 475,
+ 475, 475, 475, 475, 475, 475, 476, 476, 476, 476,
+ 476, 476, 477, 477, 477, 477, 478, 478, 478, 478,
+ 478, 478, 478, 479, 479, 479, 479, 479, 479, 484,
+ 484, 484, 484, 485, 485, 485, 485, 486, 486, 487,
+ 487, 490, 493, 498, 498, 498, 498, 498, 498, 499,
+ 500, 503, 503, 503, 503, 503, 504, 505, 510, 515,
+ 516, 519, 520, 528, 534, 535, 538, 539, 548, 549,
+ 562, 562, 563, 563, 564, 568, 568, 568, 568, 568,
+ 568, 568, 569, 569, 569, 569, 569, 571, 574, 577,
+ 580, 584, 597, 603, 609, 619, 622, 632, 635, 643,
+ 647, 654, 655, 660, 665, 675, 681, 686, 692, 698,
+ 704, 709, 715, 721, 728, 734, 740, 746, 752, 758,
+ 764, 772, 785, 797, 802, 808, 813, 819, 824, 829,
+ 837, 842, 847, 857, 862, 867, 867, 877, 882, 885,
+ 890, 894, 898, 900, 900, 903, 913, 918, 923, 933,
+ 943, 953, 963, 968, 973, 978, 980, 980, 983, 988,
+ 995, 1000, 1007, 1014, 1019, 1020, 1028, 1028, 1029, 1029,
+ 1031, 1040, 1044, 1048, 1051, 1056, 1059, 1062, 1080, 1081,
+ 1084, 1095, 1096, 1098, 1107, 1108, 1109, 1113, 1126, 1127,
+ 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1131, 1132, 1137,
+ 1138, 1147, 1147, 1151, 1156, 1166, 1176, 1179, 1187, 1191,
+ 1196, 1199, 1205, 1205, 1207, 1212, 1217, 1222, 1231, 1239,
+ 1246, 1269, 1274, 1280, 1286, 1294, 1312, 1320, 1329, 1333,
+ 1340, 1341, 1345, 1350, 1353, 1362, 1370, 1379, 1387, 1395,
+ 1400, 1409, 1437, 1443, 1449, 1456, 1462, 1468, 1474, 1492,
+ 1497, 1498, 1502, 1503, 1506, 1514, 1523, 1531, 1540, 1546,
+ 1555, 1564
};
#endif
@@ -2486,26 +2529,26 @@ yyreduce:
switch (yyn)
{
case 81:
-#line 447 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 490 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.String) = (yyvsp[-1].String);
;}
break;
case 82:
-#line 450 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 493 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.String) = new std::string("");
;}
break;
case 90:
-#line 457 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 500 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(""); ;}
break;
case 97:
-#line 462 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 505 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-1].String) += *(yyvsp[0].String);
delete (yyvsp[0].String);
@@ -2514,27 +2557,27 @@ yyreduce:
break;
case 98:
-#line 467 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 510 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(""); ;}
break;
case 99:
-#line 472 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 515 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(); ;}
break;
case 100:
-#line 473 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 516 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;}
break;
case 101:
-#line 476 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 519 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(); ;}
break;
case 102:
-#line 477 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 520 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyvsp[-1].String)->insert(0, ", ");
*(yyvsp[-1].String) += " " + *(yyvsp[0].String);
@@ -2544,7 +2587,7 @@ yyreduce:
break;
case 103:
-#line 485 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 528 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-1].String) += " " + *(yyvsp[0].String);
delete (yyvsp[0].String);
@@ -2553,17 +2596,17 @@ yyreduce:
break;
case 104:
-#line 491 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 534 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(); ;}
break;
case 106:
-#line 495 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 538 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(); ;}
break;
case 107:
-#line 496 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 539 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyvsp[-1].String)->insert(0, ", ");
if (!(yyvsp[0].String)->empty())
@@ -2574,7 +2617,7 @@ yyreduce:
break;
case 109:
-#line 506 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 549 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-1].String) += " " + *(yyvsp[0].String);
delete (yyvsp[0].String);
@@ -2583,36 +2626,36 @@ yyreduce:
break;
case 127:
-#line 528 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 571 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Type) = new TypeInfo((yyvsp[0].String), OpaqueTy);
;}
break;
case 128:
-#line 531 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 574 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Type) = new TypeInfo((yyvsp[0].String), UnresolvedTy);
;}
break;
case 129:
-#line 534 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 577 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Type) = (yyvsp[0].Type);
;}
break;
case 130:
-#line 537 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 580 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Type UpReference
(yyvsp[0].String)->insert(0, "\\");
- (yyval.Type) = new TypeInfo((yyvsp[0].String), NumericTy);
+ (yyval.Type) = new TypeInfo((yyvsp[0].String), UpRefTy);
;}
break;
case 131:
-#line 541 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 584 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Function derived type?
std::string newTy( (yyvsp[-3].Type)->getNewTy() + "(");
for (unsigned i = 0; i < (yyvsp[-1].TypeVec)->size(); ++i) {
@@ -2625,34 +2668,31 @@ yyreduce:
}
newTy += ")";
(yyval.Type) = new TypeInfo(new std::string(newTy), (yyvsp[-3].Type), (yyvsp[-1].TypeVec));
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 132:
-#line 555 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 597 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Sized array type?
(yyvsp[-3].String)->insert(0,"[ ");
*(yyvsp[-3].String) += " x " + (yyvsp[-1].Type)->getNewTy() + " ]";
uint64_t elems = atoi((yyvsp[-3].String)->c_str());
(yyval.Type) = new TypeInfo((yyvsp[-3].String), ArrayTy, (yyvsp[-1].Type), elems);
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 133:
-#line 562 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 603 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Packed array type?
(yyvsp[-3].String)->insert(0,"< ");
*(yyvsp[-3].String) += " x " + (yyvsp[-1].Type)->getNewTy() + " >";
uint64_t elems = atoi((yyvsp[-3].String)->c_str());
(yyval.Type) = new TypeInfo((yyvsp[-3].String), PackedTy, (yyvsp[-1].Type), elems);
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 134:
-#line 569 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 609 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Structure type?
std::string newTy("{");
for (unsigned i = 0; i < (yyvsp[-1].TypeVec)->size(); ++i) {
@@ -2662,20 +2702,18 @@ yyreduce:
}
newTy += "}";
(yyval.Type) = new TypeInfo(new std::string(newTy), StructTy, (yyvsp[-1].TypeVec));
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 135:
-#line 580 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 619 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Empty structure type?
(yyval.Type) = new TypeInfo(new std::string("{}"), StructTy, new TypeList());
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 136:
-#line 584 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 622 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Packed Structure type?
std::string newTy("<{");
for (unsigned i = 0; i < (yyvsp[-2].TypeVec)->size(); ++i) {
@@ -2685,28 +2723,25 @@ yyreduce:
}
newTy += "}>";
(yyval.Type) = new TypeInfo(new std::string(newTy), PackedStructTy, (yyvsp[-2].TypeVec));
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 137:
-#line 595 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 632 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Empty packed structure type?
(yyval.Type) = new TypeInfo(new std::string("<{}>"), PackedStructTy, new TypeList());
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 138:
-#line 599 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 635 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Pointer type?
(yyval.Type) = (yyvsp[-1].Type)->getPointerType();
- EnumeratedTypes.push_back(*(yyval.Type));
;}
break;
case 139:
-#line 608 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 643 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TypeVec) = new TypeList();
(yyval.TypeVec)->push_back((yyvsp[0].Type));
@@ -2714,7 +2749,7 @@ yyreduce:
break;
case 140:
-#line 612 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 647 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TypeVec) = (yyvsp[-2].TypeVec);
(yyval.TypeVec)->push_back((yyvsp[0].Type));
@@ -2722,7 +2757,7 @@ yyreduce:
break;
case 142:
-#line 620 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 655 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TypeVec) = (yyvsp[-2].TypeVec);
(yyval.TypeVec)->push_back(new TypeInfo("void",VoidTy));
@@ -2731,7 +2766,7 @@ yyreduce:
break;
case 143:
-#line 625 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 660 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TypeVec) = new TypeList();
(yyval.TypeVec)->push_back(new TypeInfo("void",VoidTy));
@@ -2740,14 +2775,14 @@ yyreduce:
break;
case 144:
-#line 630 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 665 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.TypeVec) = new TypeList();
;}
break;
case 145:
-#line 640 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 675 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Nonempty unsized arr
(yyval.Const).type = (yyvsp[-3].Type);
(yyval.Const).cnst = new std::string((yyvsp[-3].Type)->getNewTy());
@@ -2757,7 +2792,7 @@ yyreduce:
break;
case 146:
-#line 646 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 681 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-2].Type);
(yyval.Const).cnst = new std::string((yyvsp[-2].Type)->getNewTy());
@@ -2766,7 +2801,7 @@ yyreduce:
break;
case 147:
-#line 651 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 686 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-2].Type);
(yyval.Const).cnst = new std::string((yyvsp[-2].Type)->getNewTy());
@@ -2776,7 +2811,7 @@ yyreduce:
break;
case 148:
-#line 657 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 692 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Nonempty unsized arr
(yyval.Const).type = (yyvsp[-3].Type);
(yyval.Const).cnst = new std::string((yyvsp[-3].Type)->getNewTy());
@@ -2786,7 +2821,7 @@ yyreduce:
break;
case 149:
-#line 663 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 698 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-3].Type);
(yyval.Const).cnst = new std::string((yyvsp[-3].Type)->getNewTy());
@@ -2796,7 +2831,7 @@ yyreduce:
break;
case 150:
-#line 669 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 704 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-2].Type);
(yyval.Const).cnst = new std::string((yyvsp[-2].Type)->getNewTy());
@@ -2805,7 +2840,7 @@ yyreduce:
break;
case 151:
-#line 674 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 709 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2815,7 +2850,7 @@ yyreduce:
break;
case 152:
-#line 680 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 715 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2825,7 +2860,7 @@ yyreduce:
break;
case 153:
-#line 686 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 721 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
std::string Name = getUniqueName((yyvsp[0].String),(yyvsp[-1].Type));
(yyval.Const).type = (yyvsp[-1].Type);
@@ -2836,7 +2871,7 @@ yyreduce:
break;
case 154:
-#line 693 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 728 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2846,7 +2881,7 @@ yyreduce:
break;
case 155:
-#line 699 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 734 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2856,7 +2891,7 @@ yyreduce:
break;
case 156:
-#line 705 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 740 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // integral constants
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2866,7 +2901,7 @@ yyreduce:
break;
case 157:
-#line 711 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 746 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // integral constants
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2876,7 +2911,7 @@ yyreduce:
break;
case 158:
-#line 717 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 752 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Boolean constants
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2886,7 +2921,7 @@ yyreduce:
break;
case 159:
-#line 723 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 758 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Boolean constants
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2896,7 +2931,7 @@ yyreduce:
break;
case 160:
-#line 729 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 764 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Float & Double constants
(yyval.Const).type = (yyvsp[-1].Type);
(yyval.Const).cnst = new std::string((yyvsp[-1].Type)->getNewTy());
@@ -2906,7 +2941,7 @@ yyreduce:
break;
case 161:
-#line 737 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 772 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
std::string source = *(yyvsp[-3].Const).cnst;
TypeInfo* DstTy = ResolveType((yyvsp[-1].Type));
@@ -2918,12 +2953,12 @@ yyreduce:
(yyval.String) = new std::string(*(yyvsp[-5].String));
*(yyval.String) += "( " + source + " to " + (yyvsp[-1].Type)->getNewTy() + ")";
}
- delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); delete (yyvsp[-1].Type);
+ delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String);
;}
break;
case 162:
-#line 750 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 785 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst;
for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) {
@@ -2939,7 +2974,7 @@ yyreduce:
break;
case 163:
-#line 762 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 797 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
(yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -2948,7 +2983,7 @@ yyreduce:
break;
case 164:
-#line 767 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 802 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type);
(yyval.String) = new std::string(op);
@@ -2958,7 +2993,7 @@ yyreduce:
break;
case 165:
-#line 773 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 808 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
(yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -2967,7 +3002,7 @@ yyreduce:
break;
case 166:
-#line 778 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 813 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type);
*(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
@@ -2977,7 +3012,7 @@ yyreduce:
break;
case 167:
-#line 784 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 819 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -2986,7 +3021,7 @@ yyreduce:
break;
case 168:
-#line 789 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 824 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -2995,7 +3030,7 @@ yyreduce:
break;
case 169:
-#line 794 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 829 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
const char* shiftop = (yyvsp[-5].String)->c_str();
if (*(yyvsp[-5].String) == "shr")
@@ -3007,7 +3042,7 @@ yyreduce:
break;
case 170:
-#line 802 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 837 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
(yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -3016,7 +3051,7 @@ yyreduce:
break;
case 171:
-#line 807 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 842 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
(yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -3025,7 +3060,7 @@ yyreduce:
break;
case 172:
-#line 812 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 847 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
(yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
@@ -3034,7 +3069,7 @@ yyreduce:
break;
case 173:
-#line 822 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 857 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
(yyvsp[0].Const).destroy();
@@ -3043,25 +3078,25 @@ yyreduce:
break;
case 174:
-#line 827 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 862 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
break;
case 177:
-#line 842 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 877 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
;}
break;
case 178:
-#line 847 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 882 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
(yyval.String) = 0;
;}
break;
case 179:
-#line 850 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 885 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*O << *(yyvsp[0].String) << '\n';
delete (yyvsp[0].String);
@@ -3070,7 +3105,7 @@ yyreduce:
break;
case 180:
-#line 855 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 890 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*O << "module asm " << ' ' << *(yyvsp[0].String) << '\n';
(yyval.String) = 0;
@@ -3078,7 +3113,7 @@ yyreduce:
break;
case 181:
-#line 859 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 894 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*O << "implementation\n";
(yyval.String) = 0;
@@ -3086,17 +3121,17 @@ yyreduce:
break;
case 182:
-#line 863 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 898 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = 0; ;}
break;
case 184:
-#line 865 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 900 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;}
break;
case 185:
-#line 868 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 903 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
EnumeratedTypes.push_back(*(yyvsp[0].Type));
if (!(yyvsp[-2].String)->empty()) {
@@ -3110,7 +3145,7 @@ yyreduce:
break;
case 186:
-#line 878 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 913 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Function prototypes can be in const pool
*O << *(yyvsp[0].String) << '\n';
delete (yyvsp[0].String);
@@ -3119,7 +3154,7 @@ yyreduce:
break;
case 187:
-#line 883 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 918 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{ // Asm blocks can be in the const pool
*O << *(yyvsp[-2].String) << ' ' << *(yyvsp[-1].String) << ' ' << *(yyvsp[0].String) << '\n';
delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
@@ -3128,7 +3163,7 @@ yyreduce:
break;
case 188:
-#line 888 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 923 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-4].String)->empty()) {
std::string Name = getUniqueName((yyvsp[-4].String),(yyvsp[-1].Const).type);
@@ -3142,7 +3177,7 @@ yyreduce:
break;
case 189:
-#line 898 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 933 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-4].String)->empty()) {
std::string Name = getUniqueName((yyvsp[-4].String),(yyvsp[-1].Type));
@@ -3156,7 +3191,7 @@ yyreduce:
break;
case 190:
-#line 908 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 943 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-4].String)->empty()) {
std::string Name = getUniqueName((yyvsp[-4].String),(yyvsp[-1].Type));
@@ -3170,7 +3205,7 @@ yyreduce:
break;
case 191:
-#line 918 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 953 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
if (!(yyvsp[-4].String)->empty()) {
std::string Name = getUniqueName((yyvsp[-4].String),(yyvsp[-1].Type));
@@ -3184,7 +3219,7 @@ yyreduce:
break;
case 192:
-#line 928 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
+#line 963 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
{
*O << *(yyvsp[-1].String) << ' ' << *(yyvsp[0].String) << '\n';
delete (yyvsp[-1].String); delete (yyvsp[0].String);
@@ -3193,7 +3228,7 @@ yyreduce:
break;
case 193: