aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-upgrade/UpgradeParser.cpp.cvs
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-03-14 23:13:06 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-03-14 23:13:06 +0000
commit3fae7ba5b5ab17a897f36eb85737cd3f29652989 (patch)
tree35acbc0767b48d99fad580c47f25e09ae8e960ee /tools/llvm-upgrade/UpgradeParser.cpp.cvs
parentbe5c50cb3371ae12c79844828a650404127d5791 (diff)
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35113 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-upgrade/UpgradeParser.cpp.cvs')
-rw-r--r--tools/llvm-upgrade/UpgradeParser.cpp.cvs7334
1 files changed, 4158 insertions, 3176 deletions
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
index c30f1c3943..d2e6ff9b28 100644
--- a/tools/llvm-upgrade/UpgradeParser.cpp.cvs
+++ b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
@@ -1,167 +1,376 @@
+/* A Bison parser, made by GNU Bison 2.1. */
-/* A Bison parser, made from /Users/sabre/cvs/llvm/tools/llvm-upgrade/UpgradeParser.y
- by GNU Bison version 1.28 */
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-#define YYBISON 1 /* Identify Bison output. */
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Written by Richard Stallman by simplifying the original so called
+ ``semantic'' parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.1"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+/* Substitute the variable and function names. */
#define yyparse Upgradeparse
-#define yylex Upgradelex
+#define yylex Upgradelex
#define yyerror Upgradeerror
-#define yylval Upgradelval
-#define yychar Upgradechar
+#define yylval Upgradelval
+#define yychar Upgradechar
#define yydebug Upgradedebug
#define yynerrs Upgradenerrs
-#define ESINT64VAL 257
-#define EUINT64VAL 258
-#define SINTVAL 259
-#define UINTVAL 260
-#define FPVAL 261
-#define VOID 262
-#define BOOL 263
-#define SBYTE 264
-#define UBYTE 265
-#define SHORT 266
-#define USHORT 267
-#define INT 268
-#define UINT 269
-#define LONG 270
-#define ULONG 271
-#define FLOAT 272
-#define DOUBLE 273
-#define TYPE 274
-#define LABEL 275
-#define VAR_ID 276
-#define LABELSTR 277
-#define STRINGCONSTANT 278
-#define IMPLEMENTATION 279
-#define ZEROINITIALIZER 280
-#define TRUETOK 281
-#define FALSETOK 282
-#define BEGINTOK 283
-#define ENDTOK 284
-#define DECLARE 285
-#define GLOBAL 286
-#define CONSTANT 287
-#define SECTION 288
-#define VOLATILE 289
-#define TO 290
-#define DOTDOTDOT 291
-#define NULL_TOK 292
-#define UNDEF 293
-#define CONST 294
-#define INTERNAL 295
-#define LINKONCE 296
-#define WEAK 297
-#define APPENDING 298
-#define DLLIMPORT 299
-#define DLLEXPORT 300
-#define EXTERN_WEAK 301
-#define OPAQUE 302
-#define NOT 303
-#define EXTERNAL 304
-#define TARGET 305
-#define TRIPLE 306
-#define ENDIAN 307
-#define POINTERSIZE 308
-#define LITTLE 309
-#define BIG 310
-#define ALIGN 311
-#define DEPLIBS 312
-#define CALL 313
-#define TAIL 314
-#define ASM_TOK 315
-#define MODULE 316
-#define SIDEEFFECT 317
-#define CC_TOK 318
-#define CCC_TOK 319
-#define CSRETCC_TOK 320
-#define FASTCC_TOK 321
-#define COLDCC_TOK 322
-#define X86_STDCALLCC_TOK 323
-#define X86_FASTCALLCC_TOK 324
-#define DATALAYOUT 325
-#define RET 326
-#define BR 327
-#define SWITCH 328
-#define INVOKE 329
-#define UNREACHABLE 330
-#define UNWIND 331
-#define EXCEPT 332
-#define ADD 333
-#define SUB 334
-#define MUL 335
-#define DIV 336
-#define UDIV 337
-#define SDIV 338
-#define FDIV 339
-#define REM 340
-#define UREM 341
-#define SREM 342
-#define FREM 343
-#define AND 344
-#define OR 345
-#define XOR 346
-#define SHL 347
-#define SHR 348
-#define ASHR 349
-#define LSHR 350
-#define SETLE 351
-#define SETGE 352
-#define SETLT 353
-#define SETGT 354
-#define SETEQ 355
-#define SETNE 356
-#define ICMP 357
-#define FCMP 358
-#define MALLOC 359
-#define ALLOCA 360
-#define FREE 361
-#define LOAD 362
-#define STORE 363
-#define GETELEMENTPTR 364
-#define PHI_TOK 365
-#define SELECT 366
-#define VAARG 367
-#define EXTRACTELEMENT 368
-#define INSERTELEMENT 369
-#define SHUFFLEVECTOR 370
-#define VAARG_old 371
-#define VANEXT_old 372
-#define EQ 373
-#define NE 374
-#define SLT 375
-#define SGT 376
-#define SLE 377
-#define SGE 378
-#define ULT 379
-#define UGT 380
-#define ULE 381
-#define UGE 382
-#define OEQ 383
-#define ONE 384
-#define OLT 385
-#define OGT 386
-#define OLE 387
-#define OGE 388
-#define ORD 389
-#define UNO 390
-#define UEQ 391
-#define UNE 392
-#define CAST 393
-#define TRUNC 394
-#define ZEXT 395
-#define SEXT 396
-#define FPTRUNC 397
-#define FPEXT 398
-#define FPTOUI 399
-#define FPTOSI 400
-#define UITOFP 401
-#define SITOFP 402
-#define PTRTOINT 403
-#define INTTOPTR 404
-#define BITCAST 405
-
-#line 14 "/Users/sabre/cvs/llvm/tools/llvm-upgrade/UpgradeParser.y"
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ ESINT64VAL = 258,
+ EUINT64VAL = 259,
+ SINTVAL = 260,
+ UINTVAL = 261,
+ FPVAL = 262,
+ VOID = 263,
+ BOOL = 264,
+ SBYTE = 265,
+ UBYTE = 266,
+ SHORT = 267,
+ USHORT = 268,
+ INT = 269,
+ UINT = 270,
+ LONG = 271,
+ ULONG = 272,
+ FLOAT = 273,
+ DOUBLE = 274,
+ TYPE = 275,
+ LABEL = 276,
+ VAR_ID = 277,
+ LABELSTR = 278,
+ STRINGCONSTANT = 279,
+ IMPLEMENTATION = 280,
+ ZEROINITIALIZER = 281,
+ TRUETOK = 282,
+ FALSETOK = 283,
+ BEGINTOK = 284,
+ ENDTOK = 285,
+ DECLARE = 286,
+ GLOBAL = 287,
+ CONSTANT = 288,
+ SECTION = 289,
+ VOLATILE = 290,
+ TO = 291,
+ DOTDOTDOT = 292,
+ NULL_TOK = 293,
+ UNDEF = 294,
+ CONST = 295,
+ INTERNAL = 296,
+ LINKONCE = 297,
+ WEAK = 298,
+ APPENDING = 299,
+ DLLIMPORT = 300,
+ DLLEXPORT = 301,
+ EXTERN_WEAK = 302,
+ OPAQUE = 303,
+ NOT = 304,
+ EXTERNAL = 305,
+ TARGET = 306,
+ TRIPLE = 307,
+ ENDIAN = 308,
+ POINTERSIZE = 309,
+ LITTLE = 310,
+ BIG = 311,
+ ALIGN = 312,
+ DEPLIBS = 313,
+ CALL = 314,
+ TAIL = 315,
+ ASM_TOK = 316,
+ MODULE = 317,
+ SIDEEFFECT = 318,
+ CC_TOK = 319,
+ CCC_TOK = 320,
+ CSRETCC_TOK = 321,
+ FASTCC_TOK = 322,
+ COLDCC_TOK = 323,
+ X86_STDCALLCC_TOK = 324,
+ X86_FASTCALLCC_TOK = 325,
+ DATALAYOUT = 326,
+ RET = 327,
+ BR = 328,
+ SWITCH = 329,
+ INVOKE = 330,
+ UNREACHABLE = 331,
+ UNWIND = 332,
+ EXCEPT = 333,
+ ADD = 334,
+ SUB = 335,
+ MUL = 336,
+ DIV = 337,
+ UDIV = 338,
+ SDIV = 339,
+ FDIV = 340,
+ REM = 341,
+ UREM = 342,
+ SREM = 343,
+ FREM = 344,
+ AND = 345,
+ OR = 346,
+ XOR = 347,
+ SHL = 348,
+ SHR = 349,
+ ASHR = 350,
+ LSHR = 351,
+ SETLE = 352,
+ SETGE = 353,
+ SETLT = 354,
+ SETGT = 355,
+ SETEQ = 356,
+ SETNE = 357,
+ ICMP = 358,
+ FCMP = 359,
+ MALLOC = 360,
+ ALLOCA = 361,
+ FREE = 362,
+ LOAD = 363,
+ STORE = 364,
+ GETELEMENTPTR = 365,
+ PHI_TOK = 366,
+ SELECT = 367,
+ VAARG = 368,
+ EXTRACTELEMENT = 369,
+ INSERTELEMENT = 370,
+ SHUFFLEVECTOR = 371,
+ VAARG_old = 372,
+ VANEXT_old = 373,
+ EQ = 374,
+ NE = 375,
+ SLT = 376,
+ SGT = 377,
+ SLE = 378,
+ SGE = 379,
+ ULT = 380,
+ UGT = 381,
+ ULE = 382,
+ UGE = 383,
+ OEQ = 384,
+ ONE = 385,
+ OLT = 386,
+ OGT = 387,
+ OLE = 388,
+ OGE = 389,
+ ORD = 390,
+ UNO = 391,
+ UEQ = 392,
+ UNE = 393,
+ CAST = 394,
+ TRUNC = 395,
+ ZEXT = 396,
+ SEXT = 397,
+ FPTRUNC = 398,
+ FPEXT = 399,
+ FPTOUI = 400,
+ FPTOSI = 401,
+ UITOFP = 402,
+ SITOFP = 403,
+ PTRTOINT = 404,
+ INTTOPTR = 405,
+ BITCAST = 406
+ };
+#endif
+/* Tokens. */
+#define ESINT64VAL 258
+#define EUINT64VAL 259
+#define SINTVAL 260
+#define UINTVAL 261
+#define FPVAL 262
+#define VOID 263
+#define BOOL 264
+#define SBYTE 265
+#define UBYTE 266
+#define SHORT 267
+#define USHORT 268
+#define INT 269
+#define UINT 270
+#define LONG 271
+#define ULONG 272
+#define FLOAT 273
+#define DOUBLE 274
+#define TYPE 275
+#define LABEL 276
+#define VAR_ID 277
+#define LABELSTR 278
+#define STRINGCONSTANT 279
+#define IMPLEMENTATION 280
+#define ZEROINITIALIZER 281
+#define TRUETOK 282
+#define FALSETOK 283
+#define BEGINTOK 284
+#define ENDTOK 285
+#define DECLARE 286
+#define GLOBAL 287
+#define CONSTANT 288
+#define SECTION 289
+#define VOLATILE 290
+#define TO 291
+#define DOTDOTDOT 292
+#define NULL_TOK 293
+#define UNDEF 294
+#define CONST 295
+#define INTERNAL 296
+#define LINKONCE 297
+#define WEAK 298
+#define APPENDING 299
+#define DLLIMPORT 300
+#define DLLEXPORT 301
+#define EXTERN_WEAK 302
+#define OPAQUE 303
+#define NOT 304
+#define EXTERNAL 305
+#define TARGET 306
+#define TRIPLE 307
+#define ENDIAN 308
+#define POINTERSIZE 309
+#define LITTLE 310
+#define BIG 311
+#define ALIGN 312
+#define DEPLIBS 313
+#define CALL 314
+#define TAIL 315
+#define ASM_TOK 316
+#define MODULE 317
+#define SIDEEFFECT 318
+#define CC_TOK 319
+#define CCC_TOK 320
+#define CSRETCC_TOK 321
+#define FASTCC_TOK 322
+#define COLDCC_TOK 323
+#define X86_STDCALLCC_TOK 324
+#define X86_FASTCALLCC_TOK 325
+#define DATALAYOUT 326
+#define RET 327
+#define BR 328
+#define SWITCH 329
+#define INVOKE 330
+#define UNREACHABLE 331
+#define UNWIND 332
+#define EXCEPT 333
+#define ADD 334
+#define SUB 335
+#define MUL 336
+#define DIV 337
+#define UDIV 338
+#define SDIV 339
+#define FDIV 340
+#define REM 341
+#define UREM 342
+#define SREM 343
+#define FREM 344
+#define AND 345
+#define OR 346
+#define XOR 347
+#define SHL 348
+#define SHR 349
+#define ASHR 350
+#define LSHR 351
+#define SETLE 352
+#define SETGE 353
+#define SETLT 354
+#define SETGT 355
+#define SETEQ 356
+#define SETNE 357
+#define ICMP 358
+#define FCMP 359
+#define MALLOC 360
+#define ALLOCA 361
+#define FREE 362
+#define LOAD 363
+#define STORE 364
+#define GETELEMENTPTR 365
+#define PHI_TOK 366
+#define SELECT 367
+#define VAARG 368
+#define EXTRACTELEMENT 369
+#define INSERTELEMENT 370
+#define SHUFFLEVECTOR 371
+#define VAARG_old 372
+#define VANEXT_old 373
+#define EQ 374
+#define NE 375
+#define SLT 376
+#define SGT 377
+#define SLE 378
+#define SGE 379
+#define ULT 380
+#define UGT 381
+#define ULE 382
+#define UGE 383
+#define OEQ 384
+#define ONE 385
+#define OLT 386
+#define OGT 387
+#define OLE 388
+#define OGE 389
+#define ORD 390
+#define UNO 391
+#define UEQ 392
+#define UNE 393
+#define CAST 394
+#define TRUNC 395
+#define ZEXT 396
+#define SEXT 397
+#define FPTRUNC 398
+#define FPEXT 399
+#define FPTOUI 400
+#define FPTOSI 401
+#define UITOFP 402
+#define SITOFP 403
+#define PTRTOINT 404
+#define INTTOPTR 405
+#define BITCAST 406
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
#include "UpgradeInternals.h"
#include "llvm/CallingConv.h"
@@ -218,7 +427,7 @@ static GlobalVariable *CurGV;
//
typedef std::vector<Value *> ValueList; // Numbered defs
-typedef std::pair<std::string,const Type*> RenameMapKey;
+typedef std::pair<std::string,TypeInfo> RenameMapKey;
typedef std::map<RenameMapKey,std::string> RenameMapType;
static void
@@ -437,11 +646,24 @@ bool FuncTysDifferOnlyBySRet(const FunctionType *F1,
}
return true;
}
+bool TypesDifferOnlyBySRet(Value *V, const Type* Ty) {
+ if (V->getType() == Ty)
+ return true;
+ const PointerType *PF1 = dyn_cast<PointerType>(Ty);
+ const PointerType *PF2 = dyn_cast<PointerType>(V->getType());
+ if (PF1 && PF2) {
+ const FunctionType* FT1 = dyn_cast<FunctionType>(PF1->getElementType());
+ const FunctionType* FT2 = dyn_cast<FunctionType>(PF2->getElementType());
+ if (FT1 && FT2)
+ return FuncTysDifferOnlyBySRet(FT1, FT2);
+ }
+ return false;
+}
// The upgrade of csretcc to sret param attribute may have caused a function
// to not be found because the param attribute changed the type of the called
// function. This helper function, used in getExistingValue, detects that
-// situation and returns V if it occurs and 0 otherwise.
+// situation and bitcasts the function to the correct type.
static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) {
// Handle degenerate cases
if (!V)
@@ -453,10 +675,8 @@ static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) {
const PointerType *PF1 = dyn_cast<PointerType>(Ty);
const PointerType *PF2 = dyn_cast<PointerType>(V->getType());
if (PF1 && PF2) {
- const FunctionType *FT1 =
- dyn_cast<FunctionType>(PF1->getElementType());
- const FunctionType *FT2 =
- dyn_cast<FunctionType>(PF2->getElementType());
+ const FunctionType *FT1 = dyn_cast<FunctionType>(PF1->getElementType());
+ const FunctionType *FT2 = dyn_cast<FunctionType>(PF2->getElementType());
if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2))
if (FT2->paramHasAttr(1, FunctionType::StructRetAttribute))
Result = V;
@@ -503,7 +723,8 @@ static Value *getExistingValue(const Type *Ty, const ValID &D) {
// Get the name out of the ID
std::string Name(D.Name);
Value* V = 0;
- RenameMapKey Key = std::make_pair(Name, Ty);
+ TypeInfo TI; TI.T = Ty; TI.S = D.S;
+ RenameMapKey Key = std::make_pair(Name, TI);
if (inFunctionScope()) {
// See if the name was renamed
RenameMapType::const_iterator I = CurFun.RenameMap.find(Key);
@@ -515,6 +736,7 @@ static Value *getExistingValue(const Type *Ty, const ValID &D) {
ValueSymbolTable &SymTab = CurFun.CurrentFunction->getValueSymbolTable();
V = SymTab.lookup(LookupName);
V = handleSRetFuncTypeMerge(V, Ty);
+ assert((!V || TypesDifferOnlyBySRet(V, Ty)) && "Found wrong type!");
}
if (!V) {
RenameMapType::const_iterator I = CurModule.RenameMap.find(Key);
@@ -525,6 +747,7 @@ static Value *getExistingValue(const Type *Ty, const ValID &D) {
LookupName = Name;
V = CurModule.CurrentModule->getValueSymbolTable().lookup(LookupName);
V = handleSRetFuncTypeMerge(V, Ty);
+ assert((!V || TypesDifferOnlyBySRet(V, Ty)) && "Found wrong type!");
}
if (!V)
return 0;
@@ -664,7 +887,8 @@ static BasicBlock *getBBVal(const ValID &ID, bool isDefinition = false) {
// because of type planes. Now they all have to be unique. So, we just
// rename the register and treat this name as if no basic block
// had been found.
- RenameMapKey Key = std::make_pair(N->getName(),N->getType());
+ TypeInfo TI; TI.T = N->getType(); TI.S = ID.S;
+ RenameMapKey Key = std::make_pair(N->getName(),TI);
N->setName(makeNameUnique(N->getName()));
CurModule.RenameMap[Key] = N->getName();
BB = 0;
@@ -779,10 +1003,12 @@ ResolveDefinitions(std::map<const Type*,ValueList> &LateResolvers,
// name is not null) things referencing Name can be resolved. Otherwise, things
// refering to the number can be resolved. Do this now.
//
-static void ResolveTypeTo(char *Name, const Type *ToTy) {
+static void ResolveTypeTo(char *Name, const Type *ToTy, Signedness Sign) {
ValID D;
- if (Name) D = ValID::create(Name);
- else D = ValID::create((int)CurModule.Types.size());
+ if (Name)
+ D = ValID::create(Name, Sign);
+ else
+ D = ValID::create((int)CurModule.Types.size(), Sign);
std::map<ValID, PATypeHolder>::iterator I =
CurModule.LateResolveTypes.find(D);
@@ -847,12 +1073,12 @@ static inline bool TypeHasInteger(const Type *Ty) {
// null potentially, in which case this is a noop. The string passed in is
// assumed to be a malloc'd string buffer, and is free'd by this function.
//
-static void setValueName(Value *V, char *NameStr) {
+static void setValueName(const ValueInfo &V, char *NameStr) {
if (NameStr) {
std::string Name(NameStr); // Copy string
free(NameStr); // Free old string
- if (V->getType() == Type::VoidTy) {
+ if (V.V->getType() == Type::VoidTy) {
error("Can't assign name '" + Name + "' to value with void type");
return;
}
@@ -865,13 +1091,13 @@ static void setValueName(Value *V, char *NameStr) {
if (Existing) {
// An existing value of the same name was found. This might have happened
// because of the integer type planes collapsing in LLVM 2.0.
- if (Existing->getType() == V->getType() &&
+ if (Existing->getType() == V.V->getType() &&
!TypeHasInteger(Existing->getType())) {
// If the type does not contain any integers in them then this can't be
// a type plane collapsing issue. It truly is a redefinition and we
// should error out as the assembly is invalid.
error("Redefinition of value named '" + Name + "' of type '" +
- V->getType()->getDescription() + "'");
+ V.V->getType()->getDescription() + "'");
return;
}
// In LLVM 2.0 we don't allow names to be re-used for any values in a
@@ -885,13 +1111,16 @@ static void setValueName(Value *V, char *NameStr) {
// We're changing the name but it will probably be used by other
// instructions as operands later on. Consequently we have to retain
// a mapping of the renaming that we're doing.
- RenameMapKey Key = std::make_pair(Name,V->getType());
+ TypeInfo TI;
+ TI.T = V.V->getType();
+ TI.S = V.S;
+ RenameMapKey Key = std::make_pair(Name,TI);
CurFun.RenameMap[Key] = NewName;
Name = NewName;
}
// Set the name.
- V->setName(Name);
+ V.V->setName(Name);
}
}
@@ -900,7 +1129,8 @@ static void setValueName(Value *V, char *NameStr) {
static GlobalVariable *
ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
bool isConstantGlobal, const Type *Ty,
- Constant *Initializer) {
+ Constant *Initializer,
+ Signedness Sign) {
if (isa<FunctionType>(Ty))
error("Cannot declare global vars of function type");
@@ -916,9 +1146,9 @@ ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
// object.
ValID ID;
if (!Name.empty()) {
- ID = ValID::create((char*)Name.c_str());
+ ID = ValID::create((char*)Name.c_str(), Sign);
} else {
- ID = ValID::create((int)CurModule.Values[PTy].size());
+ ID = ValID::create((int)CurModule.Values[PTy].size(), Sign);
}
if (GlobalValue *FWGV = CurModule.GetForwardRefForGlobal(PTy, ID)) {
@@ -962,7 +1192,8 @@ ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
}
// Put the renaming in the global rename map
- RenameMapKey Key = std::make_pair(Name,PointerType::get(Ty));
+ TypeInfo TI; TI.T = PointerType::get(Ty); TI.S = Signless;
+ RenameMapKey Key = std::make_pair(Name,TI);
CurModule.RenameMap[Key] = NewName;
// Rename it
@@ -1601,8 +1832,28 @@ Module* UpgradeAssembly(const std::string &infile, std::istream& in,
using namespace llvm;
-#line 1454 "/Users/sabre/cvs/llvm/tools/llvm-upgrade/UpgradeParser.y"
-typedef union {
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 1476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+typedef union YYSTYPE {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
std::pair<llvm::PATypeInfo, char*> *ArgVal;
@@ -1643,1151 +1894,1620 @@ typedef union {
llvm::FCmpInst::Predicate FPred;
llvm::Module::Endianness Endianness;
} YYSTYPE;
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
+/* Line 196 of yacc.c. */
+#line 1899 "UpgradeParser.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
-#define YYFINAL 605
-#define YYFLAG -32768
-#define YYNTBASE 166
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 405 ? yytranslate[x] : 245)
-
-static const short yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 155,
- 156, 164, 2, 153, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 160,
- 152, 161, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 157, 154, 159, 2, 2, 2, 2, 2, 165, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 158,
- 2, 2, 162, 2, 163, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151
-};
+/* Copy the second part of user declarations. */
-#if YYDEBUG != 0
-static const short yyprhs[] = { 0,
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
- 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,
- 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
- 120, 122, 124, 126, 128, 130, 132, 134, 136, 138,
- 140, 142, 144, 146, 148, 150, 152, 154, 156, 158,
- 161, 162, 164, 166, 168, 170, 172, 174, 176, 177,
- 178, 180, 182, 184, 186, 188, 190, 193, 194, 197,
- 198, 202, 205, 206, 208, 209, 213, 215, 218, 220,
- 222, 224, 226, 228, 230, 232, 234, 236, 238, 240,
- 242, 244, 246, 248, 250, 252, 254, 256, 258, 261,
- 266, 272, 278, 282, 285, 291, 296, 299, 301, 305,
- 307, 311, 313, 314, 319, 323, 327, 332, 337, 341,
- 348, 354, 357, 360, 363, 366, 369, 372, 375, 378,
- 381, 384, 391, 397, 406, 413, 420, 427, 435, 443,
- 450, 457, 466, 475, 479, 481, 483, 485, 487, 490,
- 493, 498, 501, 503, 508, 511, 516, 517, 525, 526,
- 534, 535, 543, 544, 552, 556, 561, 562, 564, 566,
- 568, 572, 576, 580, 584, 588, 592, 594, 595, 597,
- 599, 601, 602, 605, 609, 611, 613, 617, 619, 620,
- 629, 631, 633, 637, 639, 641, 644, 645, 647, 649,
- 650, 651, 657, 658, 660, 662, 664, 666, 668, 670,
- 672, 674, 676, 680, 682, 688, 690, 692, 694, 696,
- 699, 702, 705, 709, 712, 713, 715, 717, 719, 722,
- 725, 729, 739, 749, 758, 772, 774, 776, 783, 789,
- 792, 799, 807, 809, 813, 815, 816, 819, 821, 827,
- 833, 839, 846, 853, 856, 861, 866, 873, 878, 883,
- 888, 893, 900, 907, 910, 918, 920, 923, 924, 926,
- 927, 931, 938, 942, 949, 952, 957, 964
-};
-static const short yyrhs[] = { 5,
- 0, 6, 0, 3, 0, 4, 0, 79, 0, 80,
- 0, 81, 0, 82, 0, 83, 0, 84, 0, 85,
- 0, 86, 0, 87, 0, 88, 0, 89, 0, 90,
- 0, 91, 0, 92, 0, 97, 0, 98, 0, 99,
- 0, 100, 0, 101, 0, 102, 0, 119, 0, 120,
- 0, 121, 0, 122, 0, 123, 0, 124, 0, 125,
- 0, 126, 0, 127, 0, 128, 0, 129, 0, 130,
- 0, 131, 0, 132, 0, 133, 0, 134, 0, 135,
- 0, 136, 0, 137, 0, 138, 0, 125, 0, 126,
- 0, 127, 0, 128, 0, 27, 0, 28, 0, 93,
- 0, 94, 0, 95, 0, 96, 0, 140, 0, 141,
- 0, 142, 0, 143, 0, 144, 0, 145, 0, 146,
- 0, 147, 0, 148, 0, 149, 0, 150, 0, 151,
- 0, 139, 0, 16, 0, 14, 0, 12, 0, 10,
- 0, 17, 0, 15, 0, 13, 0, 11, 0, 175,
- 0, 176, 0, 18, 0, 19, 0, 211, 152, 0,
- 0, 41, 0, 42, 0, 43, 0, 44, 0, 45,
- 0, 46, 0, 47, 0, 0, 0, 65, 0, 66,
- 0, 67, 0, 68, 0, 69, 0, 70, 0, 64,
- 4, 0, 0, 57, 4, 0, 0, 153, 57, 4,
- 0, 34, 24, 0, 0, 184, 0, 0, 153, 187,
- 186, 0, 184, 0, 57, 4, 0, 190, 0, 8,
- 0, 192, 0, 8, 0, 192, 0, 9, 0, 10,
- 0, 11, 0, 12, 0, 13, 0, 14, 0, 15,
- 0, 16, 0, 17, 0, 18, 0, 19, 0, 21,
- 0, 191, 0, 48, 0, 227, 0, 154, 4, 0,
- 189, 155, 194, 156, 0, 157, 4, 158, 192, 159,
- 0, 160, 4, 158, 192, 161, 0, 162, 193, 163,
- 0, 162, 163, 0, 160, 162, 193, 163, 161, 0,
- 160, 162, 163, 161, 0, 192, 164, 0, 192, 0,
- 193, 153, 192, 0, 193, 0, 193, 153, 37, 0,
- 37, 0, 0, 190, 157, 197, 159, 0, 190, 157,
- 159, 0, 190, 165, 24, 0, 190, 160, 197, 161,
- 0, 190, 162, 197, 163, 0, 190, 162, 163, 0,
- 190, 160, 162, 197, 163, 161, 0, 190, 160, 162,
- 163, 161, 0, 190, 38, 0, 190, 39, 0, 190,
- 227, 0, 190, 196, 0, 190, 26, 0, 175, 167,
- 0, 176, 4, 0, 9, 27, 0, 9, 28, 0,
- 178, 7, 0, 174, 155, 195, 36, 190, 156, 0,
- 110, 155, 195, 242, 156, 0, 112, 155, 195, 153,
- 195, 153, 195, 156, 0, 168, 155, 195, 153, 195,
- 156, 0, 169, 155, 195, 153, 195, 156, 0, 170,
- 155, 195, 153, 195, 156, 0, 103, 171, 155, 195,
- 153, 195, 156, 0, 104, 172, 155, 195, 153, 195,
- 156, 0, 173, 155, 195, 153, 195, 156, 0, 114,
- 155, 195, 153, 195, 156, 0, 115, 155, 195, 153,
- 195, 153, 195, 156, 0, 116, 155, 195, 153, 195,
- 153, 195, 156, 0, 197, 153, 195, 0, 195, 0,
- 32, 0, 33, 0, 200, 0, 200, 220, 0, 200,
- 222, 0, 200, 62, 61, 206, 0, 200, 25, 0,
- 201, 0, 201, 179, 20, 188, 0, 201, 222, 0,
- 201, 62, 61, 206, 0, 0, 201, 179, 180, 198,
- 195, 202, 186, 0, 0, 201, 179, 50, 198, 190,
- 203, 186, 0, 0, 201, 179, 45, 198, 190, 204,
- 186, 0, 0, 201, 179, 47, 198, 190, 205, 186,
- 0, 201, 51, 208, 0, 201, 58, 152, 209, 0,
- 0, 24, 0, 56, 0, 55, 0, 53, 152, 207,
- 0, 54, 152, 4, 0, 52, 152, 24, 0, 71,
- 152, 24, 0, 157, 210, 159, 0, 210, 153, 24,
- 0, 24, 0, 0, 22, 0, 24, 0, 211, 0,
- 0, 190, 212, 0, 214, 153, 213, 0, 213, 0,
- 214, 0, 214, 153, 37, 0, 37, 0, 0, 181,
- 188, 211, 155, 215, 156, 185, 182, 0, 29, 0,
- 162, 0, 180, 216, 217, 0, 30, 0, 163, 0,
- 230, 219, 0, 0, 45, 0, 47, 0, 0, 0,
- 31, 223, 221, 224, 216, 0, 0, 63, 0, 3,
- 0, 4, 0, 7, 0, 27, 0, 28, 0, 38,
- 0, 39, 0, 26, 0, 160, 197, 161, 0, 196,
- 0, 61, 225, 24, 153, 24, 0, 166, 0, 211,
- 0, 227, 0, 226, 0, 190, 228, 0, 230, 231,
- 0, 218, 231, 0, 232, 179, 234, 0, 232, 236,
- 0, 0, 23, 0, 77, 0, 78, 0, 72, 229,
- 0, 72, 8, 0, 73, 21, 228, 0, 73, 9,
- 228, 153, 21, 228, 153, 21, 228, 0, 74, 177,
- 228, 153, 21, 228, 157, 235, 159, 0, 74, 177,
- 228, 153, 21, 228, 157, 159, 0, 75, 181, 188,
- 228, 155, 239, 156, 36, 21, 228, 233, 21, 228,
- 0, 233, 0, 76, 0, 235, 177, 226, 153, 21,
- 228, 0, 177, 226, 153, 21, 228, 0, 179, 241,
- 0, 190, 157, 228, 153, 228, 159, 0, 237, 153,
- 157, 228, 153, 228, 159, 0, 229, 0, 238, 153,
- 229, 0, 238, 0, 0, 60, 59, 0, 59, 0,
- 168, 190, 228, 153, 228, 0, 169, 190, 228, 153,
- 228, 0, 170, 190, 228, 153, 228, 0, 103, 171,
- 190, 228, 153, 228, 0, 104, 172, 190, 228, 153,
- 228, 0, 49, 229, 0, 173, 229, 153, 229, 0,
- 174, 229, 36, 190, 0, 112, 229, 153, 229, 153,
- 229, 0, 113, 229, 153, 190, 0, 117, 229, 153,
- 190, 0, 118, 229, 153, 190, 0, 114, 229, 153,
- 229, 0, 115, 229, 153, 229, 153, 229, 0, 116,
- 229, 153, 229, 153, 229, 0, 111, 237, 0, 240,
- 181, 188, 228, 155, 239, 156, 0, 244, 0, 153,
- 238, 0, 0, 35, 0, 0, 105, 190, 183, 0,
- 105, 190, 153, 15, 228, 183, 0, 106, 190, 183,
- 0, 106, 190, 153, 15, 228, 183, 0, 107, 229,
- 0, 243, 108, 190, 228, 0, 243, 109, 229, 153,
- 190, 228, 0, 110, 190, 228, 242, 0
-};
+/* Line 219 of yacc.c. */
+#line 1911 "UpgradeParser.tab.c"
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
#endif
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
- 1594, 1595, 1603, 1604, 1614, 1614, 1614, 1614, 1614, 1614,
- 1614, 1614, 1614, 1614, 1614, 1618, 1618, 1618, 1622, 1622,
- 1622, 1622, 1622, 1622, 1626, 1626, 1627, 1627, 1628, 1628,
- 1629, 1629, 1630, 1630, 1634, 1634, 1635, 1635, 1636, 1636,
- 1637, 1637, 1638, 1638, 1639, 1639, 1640, 1640, 1641, 1642,
- 1645, 1645, 1645, 1645, 1649, 1649, 1649, 1649, 1649, 1649,
- 1