regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30799 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-10-07 07:15:19 +00:00
parent 85899b8b10
commit dc52f17a30
2 changed files with 108 additions and 106 deletions

View File

@ -1,5 +1,5 @@
/* A Bison parser, made from /Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y
/* A Bison parser, made from /Users/sabre/cvs/llvm/utils/TableGen/FileParser.y
by GNU Bison version 1.28 */
#define YYBISON 1 /* Identify Bison output. */
@ -35,7 +35,7 @@
#define STRVAL 278
#define CODEFRAGMENT 279
#line 14 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 14 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
#include "Record.h"
#include "llvm/ADT/StringExtras.h"
@ -115,7 +115,8 @@ static void setValue(const std::string &ValName,
std::vector<unsigned> *BitList, Init *V) {
if (!V) return;
RecordVal *RV = CurRec->getValue(ValName);
Record *TheRec = getActiveRec();
RecordVal *RV = TheRec->getValue(ValName);
if (RV == 0) {
err() << "Value '" << ValName << "' unknown!\n";
exit(1);
@ -229,7 +230,7 @@ static void addSubClass(Record *SC, const std::vector<Init*> &TemplateArgs) {
using namespace llvm;
#line 208 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 209 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
typedef union {
std::string* StrVal;
int IntVal;
@ -343,17 +344,17 @@ static const short yyrhs[] = { 22,
#if YYDEBUG != 0
static const short yyrline[] = { 0,
244, 266, 268, 270, 272, 274, 276, 278, 280, 284,
284, 286, 286, 288, 311, 313, 315, 318, 321, 323,
336, 364, 371, 374, 381, 384, 392, 394, 396, 398,
402, 405, 409, 414, 420, 423, 426, 429, 442, 456,
458, 471, 487, 489, 489, 493, 495, 499, 502, 506,
523, 525, 531, 531, 532, 532, 534, 536, 540, 545,
550, 553, 557, 560, 565, 566, 566, 568, 568, 570,
577, 595, 620, 634, 639, 641, 643, 647, 657, 671,
674, 678, 689, 691, 693, 698, 698, 764, 764, 765,
765, 767, 772, 772, 775, 775, 778, 781, 785, 785,
787
245, 267, 269, 271, 273, 275, 277, 279, 281, 285,
285, 287, 287, 289, 312, 314, 316, 319, 322, 324,
337, 365, 372, 375, 382, 385, 393, 395, 397, 399,
403, 406, 410, 415, 421, 424, 427, 430, 443, 457,
459, 472, 488, 490, 490, 494, 496, 500, 503, 507,
524, 526, 532, 532, 533, 533, 535, 537, 541, 546,
551, 554, 558, 561, 566, 567, 567, 569, 569, 571,
578, 596, 621, 635, 640, 642, 644, 648, 658, 672,
675, 679, 690, 692, 694, 699, 699, 765, 765, 766,
766, 768, 773, 773, 776, 776, 779, 782, 786, 786,
788
};
#endif
@ -1058,7 +1059,7 @@ yyreduce:
switch (yyn) {
case 1:
#line 244 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 245 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (CurDefmPrefix) {
// If CurDefmPrefix is set, we're parsing a defm, which means that this is
@ -1080,71 +1081,71 @@ case 1:
;
break;}
case 2:
#line 266 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 267 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // string type
yyval.Ty = new StringRecTy();
;
break;}
case 3:
#line 268 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 269 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // bit type
yyval.Ty = new BitRecTy();
;
break;}
case 4:
#line 270 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 271 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // bits<x> type
yyval.Ty = new BitsRecTy(yyvsp[-1].IntVal);
;
break;}
case 5:
#line 272 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 273 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // int type
yyval.Ty = new IntRecTy();
;
break;}
case 6:
#line 274 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 275 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // list<x> type
yyval.Ty = new ListRecTy(yyvsp[-1].Ty);
;
break;}
case 7:
#line 276 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 277 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // code type
yyval.Ty = new CodeRecTy();
;
break;}
case 8:
#line 278 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 279 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // dag type
yyval.Ty = new DagRecTy();
;
break;}
case 9:
#line 280 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 281 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ // Record Type
yyval.Ty = new RecordRecTy(yyvsp[0].Rec);
;
break;}
case 10:
#line 284 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 285 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.IntVal = 0; ;
break;}
case 11:
#line 284 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 285 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.IntVal = 1; ;
break;}
case 12:
#line 286 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 287 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.Initializer = 0; ;
break;}
case 13:
#line 286 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 287 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.Initializer = yyvsp[0].Initializer; ;
break;}
case 14:
#line 288 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 289 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (const RecordVal *RV = (CurRec ? CurRec->getValue(*yyvsp[0].StrVal) : 0)) {
yyval.Initializer = new VarInit(*yyvsp[0].StrVal, RV->getType());
@ -1169,39 +1170,39 @@ case 14:
;
break;}
case 15:
#line 311 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 312 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = yyvsp[0].Initializer;
;
break;}
case 16:
#line 313 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 314 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new IntInit(yyvsp[0].IntVal);
;
break;}
case 17:
#line 315 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 316 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new StringInit(*yyvsp[0].StrVal);
delete yyvsp[0].StrVal;
;
break;}
case 18:
#line 318 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 319 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new CodeInit(*yyvsp[0].StrVal);
delete yyvsp[0].StrVal;
;
break;}
case 19:
#line 321 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 322 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new UnsetInit();
;
break;}
case 20:
#line 323 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 324 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
BitsInit *Init = new BitsInit(yyvsp[-1].FieldList->size());
for (unsigned i = 0, e = yyvsp[-1].FieldList->size(); i != e; ++i) {
@ -1218,7 +1219,7 @@ case 20:
;
break;}
case 21:
#line 336 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 337 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
// This is a CLASS<initvalslist> expression. This is supposed to synthesize
// a new anonymous definition, deriving from CLASS<initvalslist> with no
@ -1250,7 +1251,7 @@ case 21:
;
break;}
case 22:
#line 364 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 365 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = yyvsp[-3].Initializer->convertInitializerBitRange(*yyvsp[-1].BitList);
if (yyval.Initializer == 0) {
@ -1261,14 +1262,14 @@ case 22:
;
break;}
case 23:
#line 371 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 372 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new ListInit(*yyvsp[-1].FieldList);
delete yyvsp[-1].FieldList;
;
break;}
case 24:
#line 374 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 375 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (!yyvsp[-2].Initializer->getFieldType(*yyvsp[0].StrVal)) {
err() << "Cannot access field '" << *yyvsp[0].StrVal << "' of value '" << *yyvsp[-2].Initializer << "!\n";
@ -1279,14 +1280,14 @@ case 24:
;
break;}
case 25:
#line 381 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 382 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = new DagInit(yyvsp[-2].Initializer, *yyvsp[-1].DagValueList);
delete yyvsp[-1].DagValueList;
;
break;}
case 26:
#line 384 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 385 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
std::reverse(yyvsp[-1].BitList->begin(), yyvsp[-1].BitList->end());
yyval.Initializer = yyvsp[-3].Initializer->convertInitListSlice(*yyvsp[-1].BitList);
@ -1298,43 +1299,43 @@ case 26:
;
break;}
case 27:
#line 392 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 393 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = (new BinOpInit(BinOpInit::SHL, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
;
break;}
case 28:
#line 394 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 395 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = (new BinOpInit(BinOpInit::SRA, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
;
break;}
case 29:
#line 396 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 397 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = (new BinOpInit(BinOpInit::SRL, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
;
break;}
case 30:
#line 398 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 399 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Initializer = (new BinOpInit(BinOpInit::STRCONCAT, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
;
break;}
case 31:
#line 402 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 403 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.StrVal = new std::string();
;
break;}
case 32:
#line 405 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 406 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.StrVal = yyvsp[0].StrVal;
;
break;}
case 33:
#line 409 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 410 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.DagValueList = new std::vector<std::pair<Init*, std::string> >();
yyval.DagValueList->push_back(std::make_pair(yyvsp[-1].Initializer, *yyvsp[0].StrVal));
@ -1342,7 +1343,7 @@ case 33:
;
break;}
case 34:
#line 414 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 415 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyvsp[-3].DagValueList->push_back(std::make_pair(yyvsp[-1].Initializer, *yyvsp[0].StrVal));
delete yyvsp[0].StrVal;
@ -1350,24 +1351,24 @@ case 34:
;
break;}
case 35:
#line 420 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 421 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.DagValueList = new std::vector<std::pair<Init*, std::string> >();
;
break;}
case 36:
#line 423 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 424 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.DagValueList = yyvsp[0].DagValueList; ;
break;}
case 37:
#line 426 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 427 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.BitList = new std::vector<unsigned>();
yyval.BitList->push_back(yyvsp[0].IntVal);
;
break;}
case 38:
#line 429 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 430 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (yyvsp[-2].IntVal < 0 || yyvsp[0].IntVal < 0) {
err() << "Invalid range: " << yyvsp[-2].IntVal << "-" << yyvsp[0].IntVal << "!\n";
@ -1384,7 +1385,7 @@ case 38:
;
break;}
case 39:
#line 442 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 443 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyvsp[0].IntVal = -yyvsp[0].IntVal;
if (yyvsp[-1].IntVal < 0 || yyvsp[0].IntVal < 0) {
@ -1402,13 +1403,13 @@ case 39:
;
break;}
case 40:
#line 456 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 457 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
(yyval.BitList=yyvsp[-2].BitList)->push_back(yyvsp[0].IntVal);
;
break;}
case 41:
#line 458 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 459 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (yyvsp[-2].IntVal < 0 || yyvsp[0].IntVal < 0) {
err() << "Invalid range: " << yyvsp[-2].IntVal << "-" << yyvsp[0].IntVal << "!\n";
@ -1425,7 +1426,7 @@ case 41:
;
break;}
case 42:
#line 471 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 472 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyvsp[0].IntVal = -yyvsp[0].IntVal;
if (yyvsp[-1].IntVal < 0 || yyvsp[0].IntVal < 0) {
@ -1443,44 +1444,44 @@ case 42:
;
break;}
case 43:
#line 487 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 488 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.BitList = yyvsp[0].BitList; std::reverse(yyvsp[0].BitList->begin(), yyvsp[0].BitList->end()); ;
break;}
case 44:
#line 489 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 490 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.BitList = 0; ;
break;}
case 45:
#line 489 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 490 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.BitList = yyvsp[-1].BitList; ;
break;}
case 46:
#line 493 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 494 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.FieldList = new std::vector<Init*>();
;
break;}
case 47:
#line 495 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 496 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.FieldList = yyvsp[0].FieldList;
;
break;}
case 48:
#line 499 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 500 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.FieldList = new std::vector<Init*>();
yyval.FieldList->push_back(yyvsp[0].Initializer);
;
break;}
case 49:
#line 502 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 503 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
(yyval.FieldList = yyvsp[-2].FieldList)->push_back(yyvsp[0].Initializer);
;
break;}
case 50:
#line 506 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 507 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
std::string DecName = *yyvsp[-1].StrVal;
if (ParsingTemplateArgs) {
@ -1499,13 +1500,13 @@ case 50:
;
break;}
case 51:
#line 523 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 524 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
delete yyvsp[-1].StrVal;
;
break;}
case 52:
#line 525 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 526 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
setValue(*yyvsp[-4].StrVal, yyvsp[-3].BitList, yyvsp[-1].Initializer);
delete yyvsp[-4].StrVal;
@ -1513,19 +1514,19 @@ case 52:
;
break;}
case 57:
#line 534 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 535 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.SubClassRef = new SubClassRefTy(yyvsp[0].Rec, new std::vector<Init*>());
;
break;}
case 58:
#line 536 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 537 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.SubClassRef = new SubClassRefTy(yyvsp[-3].Rec, yyvsp[-1].FieldList);
;
break;}
case 59:
#line 540 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 541 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.SubClassList = new std::vector<SubClassRefTy>();
yyval.SubClassList->push_back(*yyvsp[0].SubClassRef);
@ -1533,52 +1534,52 @@ case 59:
;
break;}
case 60:
#line 545 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 546 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
(yyval.SubClassList=yyvsp[-2].SubClassList)->push_back(*yyvsp[0].SubClassRef);
delete yyvsp[0].SubClassRef;
;
break;}
case 61:
#line 550 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 551 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.SubClassList = new std::vector<SubClassRefTy>();
;
break;}
case 62:
#line 553 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 554 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.SubClassList = yyvsp[0].SubClassList;
;
break;}
case 63:
#line 557 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 558 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
getActiveRec()->addTemplateArg(*yyvsp[0].StrVal);
delete yyvsp[0].StrVal;
;
break;}
case 64:
#line 560 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 561 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
getActiveRec()->addTemplateArg(*yyvsp[0].StrVal);
delete yyvsp[0].StrVal;
;
break;}
case 65:
#line 565 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 566 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{;
break;}
case 68:
#line 568 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 569 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.StrVal = yyvsp[0].StrVal; ;
break;}
case 69:
#line 568 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 569 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ yyval.StrVal = new std::string(); ;
break;}
case 70:
#line 570 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 571 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
static unsigned AnonCounter = 0;
if (yyvsp[0].StrVal->empty())
@ -1587,7 +1588,7 @@ case 70:
;
break;}
case 71:
#line 577 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 578 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
// If a class of this name already exists, it must be a forward ref.
if ((CurRec = Records.getClass(*yyvsp[0].StrVal))) {
@ -1607,7 +1608,7 @@ case 71:
;
break;}
case 72:
#line 595 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 596 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
CurRec = new Record(*yyvsp[0].StrVal);
delete yyvsp[0].StrVal;
@ -1634,7 +1635,7 @@ case 72:
;
break;}
case 73:
#line 620 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 621 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
for (unsigned i = 0, e = yyvsp[0].SubClassList->size(); i != e; ++i) {
addSubClass((*yyvsp[0].SubClassList)[i].first, *(*yyvsp[0].SubClassList)[i].second);
@ -1652,32 +1653,32 @@ case 73:
;
break;}
case 74:
#line 634 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 635 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Rec = CurRec;
CurRec = 0;
;
break;}
case 75:
#line 639 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 640 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
ParsingTemplateArgs = true;
;
break;}
case 76:
#line 641 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 642 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
ParsingTemplateArgs = false;
;
break;}
case 77:
#line 643 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 644 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Rec = yyvsp[0].Rec;
;
break;}
case 78:
#line 647 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 648 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
if (CurMultiClass == 0) // Def's in multiclasses aren't really defs.
yyvsp[0].Rec->resolveReferences();
@ -1688,7 +1689,7 @@ case 78:
;
break;}
case 79:
#line 657 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 658 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.Rec = yyvsp[0].Rec;
// Copy the template arguments for the multiclass into the def.
@ -1702,20 +1703,20 @@ case 79:
;
break;}
case 80:
#line 671 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 672 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.RecList = new std::vector<Record*>();
yyval.RecList->push_back(yyvsp[0].Rec);
;
break;}
case 81:
#line 674 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 675 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
yyval.RecList->push_back(yyvsp[0].Rec);
;
break;}
case 82:
#line 678 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 679 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
MultiClass *&MCE = MultiClasses[*yyvsp[0].StrVal];
if (MCE) {
@ -1727,29 +1728,29 @@ case 82:
;
break;}
case 83:
#line 689 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 690 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
ParsingTemplateArgs = true;
;
break;}
case 84:
#line 691 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 692 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
ParsingTemplateArgs = false;
;
break;}
case 85:
#line 693 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 694 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
CurMultiClass = 0;
;
break;}
case 86:
#line 698 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 699 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ CurDefmPrefix = yyvsp[0].StrVal; ;
break;}
case 87:
#line 698 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 699 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
// To instantiate a multiclass, we need to first get the multiclass, then
// instantiate each def contained in the multiclass with the SubClassRef
@ -1817,42 +1818,42 @@ case 87:
;
break;}
case 88:
#line 764 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 765 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{;
break;}
case 89:
#line 764 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 765 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{;
break;}
case 92:
#line 767 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 768 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
LetStack.back().push_back(LetRecord(*yyvsp[-3].StrVal, yyvsp[-2].BitList, yyvsp[0].Initializer));
delete yyvsp[-3].StrVal; delete yyvsp[-2].BitList;
;
break;}
case 95:
#line 775 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 776 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{ LetStack.push_back(std::vector<LetRecord>()); ;
break;}
case 97:
#line 778 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 779 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
LetStack.pop_back();
;
break;}
case 98:
#line 781 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 782 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{
LetStack.pop_back();
;
break;}
case 99:
#line 785 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 786 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{;
break;}
case 100:
#line 785 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 786 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
{;
break;}
}
@ -2077,7 +2078,7 @@ yyerrhandle:
}
return 1;
}
#line 789 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#line 790 "/Users/sabre/cvs/llvm/utils/TableGen/FileParser.y"
int yyerror(const char *ErrorMsg) {

View File

@ -90,7 +90,8 @@ static void setValue(const std::string &ValName,
std::vector<unsigned> *BitList, Init *V) {
if (!V) return;
RecordVal *RV = CurRec->getValue(ValName);
Record *TheRec = getActiveRec();
RecordVal *RV = TheRec->getValue(ValName);
if (RV == 0) {
err() << "Value '" << ValName << "' unknown!\n";
exit(1);