mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-01 16:31:13 +00:00
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32772 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a9d7e89fa9
commit
6fd36abf5e
File diff suppressed because it is too large
Load Diff
@ -192,6 +192,7 @@ end { return ENDTOK; }
|
||||
true { return TRUETOK; }
|
||||
false { return FALSETOK; }
|
||||
declare { return DECLARE; }
|
||||
define { return DEFINE; }
|
||||
global { return GLOBAL; }
|
||||
constant { return CONSTANT; }
|
||||
internal { return INTERNAL; }
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -46,8 +46,8 @@
|
||||
ULONG = 272,
|
||||
FLOAT = 273,
|
||||
DOUBLE = 274,
|
||||
TYPE = 275,
|
||||
LABEL = 276,
|
||||
LABEL = 275,
|
||||
TYPE = 276,
|
||||
VAR_ID = 277,
|
||||
LABELSTR = 278,
|
||||
STRINGCONSTANT = 279,
|
||||
@ -58,113 +58,114 @@
|
||||
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,
|
||||
UNWIND = 331,
|
||||
UNREACHABLE = 332,
|
||||
ADD = 333,
|
||||
SUB = 334,
|
||||
MUL = 335,
|
||||
UDIV = 336,
|
||||
SDIV = 337,
|
||||
FDIV = 338,
|
||||
UREM = 339,
|
||||
SREM = 340,
|
||||
FREM = 341,
|
||||
AND = 342,
|
||||
OR = 343,
|
||||
XOR = 344,
|
||||
ICMP = 345,
|
||||
FCMP = 346,
|
||||
EQ = 347,
|
||||
NE = 348,
|
||||
SLT = 349,
|
||||
SGT = 350,
|
||||
SLE = 351,
|
||||
SGE = 352,
|
||||
ULT = 353,
|
||||
UGT = 354,
|
||||
ULE = 355,
|
||||
UGE = 356,
|
||||
OEQ = 357,
|
||||
ONE = 358,
|
||||
OLT = 359,
|
||||
OGT = 360,
|
||||
OLE = 361,
|
||||
OGE = 362,
|
||||
ORD = 363,
|
||||
UNO = 364,
|
||||
UEQ = 365,
|
||||
UNE = 366,
|
||||
MALLOC = 367,
|
||||
ALLOCA = 368,
|
||||
FREE = 369,
|
||||
LOAD = 370,
|
||||
STORE = 371,
|
||||
GETELEMENTPTR = 372,
|
||||
TRUNC = 373,
|
||||
ZEXT = 374,
|
||||
SEXT = 375,
|
||||
FPTRUNC = 376,
|
||||
FPEXT = 377,
|
||||
BITCAST = 378,
|
||||
UITOFP = 379,
|
||||
SITOFP = 380,
|
||||
FPTOUI = 381,
|
||||
FPTOSI = 382,
|
||||
INTTOPTR = 383,
|
||||
PTRTOINT = 384,
|
||||
PHI_TOK = 385,
|
||||
SELECT = 386,
|
||||
SHL = 387,
|
||||
LSHR = 388,
|
||||
ASHR = 389,
|
||||
VAARG = 390,
|
||||
EXTRACTELEMENT = 391,
|
||||
INSERTELEMENT = 392,
|
||||
SHUFFLEVECTOR = 393
|
||||
DEFINE = 287,
|
||||
GLOBAL = 288,
|
||||
CONSTANT = 289,
|
||||
SECTION = 290,
|
||||
VOLATILE = 291,
|
||||
TO = 292,
|
||||
DOTDOTDOT = 293,
|
||||
NULL_TOK = 294,
|
||||
UNDEF = 295,
|
||||
CONST = 296,
|
||||
INTERNAL = 297,
|
||||
LINKONCE = 298,
|
||||
WEAK = 299,
|
||||
APPENDING = 300,
|
||||
DLLIMPORT = 301,
|
||||
DLLEXPORT = 302,
|
||||
EXTERN_WEAK = 303,
|
||||
OPAQUE = 304,
|
||||
NOT = 305,
|
||||
EXTERNAL = 306,
|
||||
TARGET = 307,
|
||||
TRIPLE = 308,
|
||||
ENDIAN = 309,
|
||||
POINTERSIZE = 310,
|
||||
LITTLE = 311,
|
||||
BIG = 312,
|
||||
ALIGN = 313,
|
||||
DEPLIBS = 314,
|
||||
CALL = 315,
|
||||
TAIL = 316,
|
||||
ASM_TOK = 317,
|
||||
MODULE = 318,
|
||||
SIDEEFFECT = 319,
|
||||
CC_TOK = 320,
|
||||
CCC_TOK = 321,
|
||||
CSRETCC_TOK = 322,
|
||||
FASTCC_TOK = 323,
|
||||
COLDCC_TOK = 324,
|
||||
X86_STDCALLCC_TOK = 325,
|
||||
X86_FASTCALLCC_TOK = 326,
|
||||
DATALAYOUT = 327,
|
||||
RET = 328,
|
||||
BR = 329,
|
||||
SWITCH = 330,
|
||||
INVOKE = 331,
|
||||
UNWIND = 332,
|
||||
UNREACHABLE = 333,
|
||||
ADD = 334,
|
||||
SUB = 335,
|
||||
MUL = 336,
|
||||
UDIV = 337,
|
||||
SDIV = 338,
|
||||
FDIV = 339,
|
||||
UREM = 340,
|
||||
SREM = 341,
|
||||
FREM = 342,
|
||||
AND = 343,
|
||||
OR = 344,
|
||||
XOR = 345,
|
||||
ICMP = 346,
|
||||
FCMP = 347,
|
||||
EQ = 348,
|
||||
NE = 349,
|
||||
SLT = 350,
|
||||
SGT = 351,
|
||||
SLE = 352,
|
||||
SGE = 353,
|
||||
ULT = 354,
|
||||
UGT = 355,
|
||||
ULE = 356,
|
||||
UGE = 357,
|
||||
OEQ = 358,
|
||||
ONE = 359,
|
||||
OLT = 360,
|
||||
OGT = 361,
|
||||
OLE = 362,
|
||||
OGE = 363,
|
||||
ORD = 364,
|
||||
UNO = 365,
|
||||
UEQ = 366,
|
||||
UNE = 367,
|
||||
MALLOC = 368,
|
||||
ALLOCA = 369,
|
||||
FREE = 370,
|
||||
LOAD = 371,
|
||||
STORE = 372,
|
||||
GETELEMENTPTR = 373,
|
||||
TRUNC = 374,
|
||||
ZEXT = 375,
|
||||
SEXT = 376,
|
||||
FPTRUNC = 377,
|
||||
FPEXT = 378,
|
||||
BITCAST = 379,
|
||||
UITOFP = 380,
|
||||
SITOFP = 381,
|
||||
FPTOUI = 382,
|
||||
FPTOSI = 383,
|
||||
INTTOPTR = 384,
|
||||
PTRTOINT = 385,
|
||||
PHI_TOK = 386,
|
||||
SELECT = 387,
|
||||
SHL = 388,
|
||||
LSHR = 389,
|
||||
ASHR = 390,
|
||||
VAARG = 391,
|
||||
EXTRACTELEMENT = 392,
|
||||
INSERTELEMENT = 393,
|
||||
SHUFFLEVECTOR = 394
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
@ -185,8 +186,8 @@
|
||||
#define ULONG 272
|
||||
#define FLOAT 273
|
||||
#define DOUBLE 274
|
||||
#define TYPE 275
|
||||
#define LABEL 276
|
||||
#define LABEL 275
|
||||
#define TYPE 276
|
||||
#define VAR_ID 277
|
||||
#define LABELSTR 278
|
||||
#define STRINGCONSTANT 279
|
||||
@ -197,119 +198,120 @@
|
||||
#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 UNWIND 331
|
||||
#define UNREACHABLE 332
|
||||
#define ADD 333
|
||||
#define SUB 334
|
||||
#define MUL 335
|
||||
#define UDIV 336
|
||||
#define SDIV 337
|
||||
#define FDIV 338
|
||||
#define UREM 339
|
||||
#define SREM 340
|
||||
#define FREM 341
|
||||
#define AND 342
|
||||
#define OR 343
|
||||
#define XOR 344
|
||||
#define ICMP 345
|
||||
#define FCMP 346
|
||||
#define EQ 347
|
||||
#define NE 348
|
||||
#define SLT 349
|
||||
#define SGT 350
|
||||
#define SLE 351
|
||||
#define SGE 352
|
||||
#define ULT 353
|
||||
#define UGT 354
|
||||
#define ULE 355
|
||||
#define UGE 356
|
||||
#define OEQ 357
|
||||
#define ONE 358
|
||||
#define OLT 359
|
||||
#define OGT 360
|
||||
#define OLE 361
|
||||
#define OGE 362
|
||||
#define ORD 363
|
||||
#define UNO 364
|
||||
#define UEQ 365
|
||||
#define UNE 366
|
||||
#define MALLOC 367
|
||||
#define ALLOCA 368
|
||||
#define FREE 369
|
||||
#define LOAD 370
|
||||
#define STORE 371
|
||||
#define GETELEMENTPTR 372
|
||||
#define TRUNC 373
|
||||
#define ZEXT 374
|
||||
#define SEXT 375
|
||||
#define FPTRUNC 376
|
||||
#define FPEXT 377
|
||||
#define BITCAST 378
|
||||
#define UITOFP 379
|
||||
#define SITOFP 380
|
||||
#define FPTOUI 381
|
||||
#define FPTOSI 382
|
||||
#define INTTOPTR 383
|
||||
#define PTRTOINT 384
|
||||
#define PHI_TOK 385
|
||||
#define SELECT 386
|
||||
#define SHL 387
|
||||
#define LSHR 388
|
||||
#define ASHR 389
|
||||
#define VAARG 390
|
||||
#define EXTRACTELEMENT 391
|
||||
#define INSERTELEMENT 392
|
||||
#define SHUFFLEVECTOR 393
|
||||
#define DEFINE 287
|
||||
#define GLOBAL 288
|
||||
#define CONSTANT 289
|
||||
#define SECTION 290
|
||||
#define VOLATILE 291
|
||||
#define TO 292
|
||||
#define DOTDOTDOT 293
|
||||
#define NULL_TOK 294
|
||||
#define UNDEF 295
|
||||
#define CONST 296
|
||||
#define INTERNAL 297
|
||||
#define LINKONCE 298
|
||||
#define WEAK 299
|
||||
#define APPENDING 300
|
||||
#define DLLIMPORT 301
|
||||
#define DLLEXPORT 302
|
||||
#define EXTERN_WEAK 303
|
||||
#define OPAQUE 304
|
||||
#define NOT 305
|
||||
#define EXTERNAL 306
|
||||
#define TARGET 307
|
||||
#define TRIPLE 308
|
||||
#define ENDIAN 309
|
||||
#define POINTERSIZE 310
|
||||
#define LITTLE 311
|
||||
#define BIG 312
|
||||
#define ALIGN 313
|
||||
#define DEPLIBS 314
|
||||
#define CALL 315
|
||||
#define TAIL 316
|
||||
#define ASM_TOK 317
|
||||
#define MODULE 318
|
||||
#define SIDEEFFECT 319
|
||||
#define CC_TOK 320
|
||||
#define CCC_TOK 321
|
||||
#define CSRETCC_TOK 322
|
||||
#define FASTCC_TOK 323
|
||||
#define COLDCC_TOK 324
|
||||
#define X86_STDCALLCC_TOK 325
|
||||
#define X86_FASTCALLCC_TOK 326
|
||||
#define DATALAYOUT 327
|
||||
#define RET 328
|
||||
#define BR 329
|
||||
#define SWITCH 330
|
||||
#define INVOKE 331
|
||||
#define UNWIND 332
|
||||
#define UNREACHABLE 333
|
||||
#define ADD 334
|
||||
#define SUB 335
|
||||
#define MUL 336
|
||||
#define UDIV 337
|
||||
#define SDIV 338
|
||||
#define FDIV 339
|
||||
#define UREM 340
|
||||
#define SREM 341
|
||||
#define FREM 342
|
||||
#define AND 343
|
||||
#define OR 344
|
||||
#define XOR 345
|
||||
#define ICMP 346
|
||||
#define FCMP 347
|
||||
#define EQ 348
|
||||
#define NE 349
|
||||
#define SLT 350
|
||||
#define SGT 351
|
||||
#define SLE 352
|
||||
#define SGE 353
|
||||
#define ULT 354
|
||||
#define UGT 355
|
||||
#define ULE 356
|
||||
#define UGE 357
|
||||
#define OEQ 358
|
||||
#define ONE 359
|
||||
#define OLT 360
|
||||
#define OGT 361
|
||||
#define OLE 362
|
||||
#define OGE 363
|
||||
#define ORD 364
|
||||
#define UNO 365
|
||||
#define UEQ 366
|
||||
#define UNE 367
|
||||
#define MALLOC 368
|
||||
#define ALLOCA 369
|
||||
#define FREE 370
|
||||
#define LOAD 371
|
||||
#define STORE 372
|
||||
#define GETELEMENTPTR 373
|
||||
#define TRUNC 374
|
||||
#define ZEXT 375
|
||||
#define SEXT 376
|
||||
#define FPTRUNC 377
|
||||
#define FPEXT 378
|
||||
#define BITCAST 379
|
||||
#define UITOFP 380
|
||||
#define SITOFP 381
|
||||
#define FPTOUI 382
|
||||
#define FPTOSI 383
|
||||
#define INTTOPTR 384
|
||||
#define PTRTOINT 385
|
||||
#define PHI_TOK 386
|
||||
#define SELECT 387
|
||||
#define SHL 388
|
||||
#define LSHR 389
|
||||
#define ASHR 390
|
||||
#define VAARG 391
|
||||
#define EXTRACTELEMENT 392
|
||||
#define INSERTELEMENT 393
|
||||
#define SHUFFLEVECTOR 394
|
||||
|
||||
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#line 855 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
|
||||
#line 855 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
|
||||
typedef union YYSTYPE {
|
||||
llvm::Module *ModuleVal;
|
||||
llvm::Function *FunctionVal;
|
||||
@ -353,7 +355,7 @@ typedef union YYSTYPE {
|
||||
llvm::FCmpInst::Predicate FPredicate;
|
||||
} YYSTYPE;
|
||||
/* Line 1447 of yacc.c. */
|
||||
#line 357 "llvmAsmParser.tab.h"
|
||||
#line 359 "llvmAsmParser.tab.h"
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
|
@ -895,7 +895,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
|
||||
llvm::FCmpInst::Predicate FPredicate;
|
||||
}
|
||||
|
||||
%type <ModuleVal> Module FunctionList
|
||||
%type <ModuleVal> Module
|
||||
%type <FunctionVal> Function FunctionProto FunctionHeader BasicBlockList
|
||||
%type <BasicBlockVal> BasicBlock InstructionList
|
||||
%type <TermInstVal> BBTerminatorInst
|
||||
@ -913,7 +913,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
|
||||
%type <BoolVal> OptVolatile // 'volatile' or not
|
||||
%type <BoolVal> OptTailCall // TAIL CALL or plain CALL.
|
||||
%type <BoolVal> OptSideEffect // 'sideeffect' or not.
|
||||
%type <Linkage> OptLinkage
|
||||
%type <Linkage> FunctionLinkage GVInternalLinkage GVExternalLinkage
|
||||
%type <Endianness> BigOrLittle
|
||||
|
||||
// ValueRef - Unresolved reference to a definition or BB
|
||||
@ -936,7 +936,8 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
|
||||
%type <TypeVal> Types TypesV UpRTypes UpRTypesV
|
||||
%type <PrimType> SIntType UIntType IntType FPType PrimType // Classifications
|
||||
%token <PrimType> VOID BOOL SBYTE UBYTE SHORT USHORT INT UINT LONG ULONG
|
||||
%token <PrimType> FLOAT DOUBLE TYPE LABEL
|
||||
%token <PrimType> FLOAT DOUBLE LABEL
|
||||
%token TYPE
|
||||
|
||||
%token <StrVal> VAR_ID LABELSTR STRINGCONSTANT
|
||||
%type <StrVal> Name OptName OptAssign
|
||||
@ -944,7 +945,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
|
||||
%type <StrVal> OptSection SectionString
|
||||
|
||||
%token IMPLEMENTATION ZEROINITIALIZER TRUETOK FALSETOK BEGINTOK ENDTOK
|
||||
%token DECLARE GLOBAL CONSTANT SECTION VOLATILE
|
||||
%token DECLARE DEFINE GLOBAL CONSTANT SECTION VOLATILE
|
||||
%token TO DOTDOTDOT NULL_TOK UNDEF CONST INTERNAL LINKONCE WEAK APPENDING
|
||||
%token DLLIMPORT DLLEXPORT EXTERN_WEAK
|
||||
%token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG ALIGN
|
||||
@ -1038,14 +1039,33 @@ OptAssign : Name '=' {
|
||||
CHECK_FOR_ERROR
|
||||
};
|
||||
|
||||
OptLinkage : INTERNAL { $$ = GlobalValue::InternalLinkage; } |
|
||||
LINKONCE { $$ = GlobalValue::LinkOnceLinkage; } |
|
||||
WEAK { $$ = GlobalValue::WeakLinkage; } |
|
||||
APPENDING { $$ = GlobalValue::AppendingLinkage; } |
|
||||
DLLIMPORT { $$ = GlobalValue::DLLImportLinkage; } |
|
||||
DLLEXPORT { $$ = GlobalValue::DLLExportLinkage; } |
|
||||
EXTERN_WEAK { $$ = GlobalValue::ExternalWeakLinkage; } |
|
||||
/*empty*/ { $$ = GlobalValue::ExternalLinkage; };
|
||||
GVInternalLinkage
|
||||
: INTERNAL { $$ = GlobalValue::InternalLinkage; }
|
||||
| WEAK { $$ = GlobalValue::WeakLinkage; }
|
||||
| LINKONCE { $$ = GlobalValue::LinkOnceLinkage; }
|
||||
| APPENDING { $$ = GlobalValue::AppendingLinkage; }
|
||||
| DLLEXPORT { $$ = GlobalValue::DLLExportLinkage; }
|
||||
;
|
||||
|
||||
GVExternalLinkage
|
||||
: DLLIMPORT { $$ = GlobalValue::DLLImportLinkage; }
|
||||
| EXTERN_WEAK { $$ = GlobalValue::ExternalWeakLinkage; }
|
||||
| EXTERNAL { $$ = GlobalValue::ExternalLinkage; }
|
||||
;
|
||||
|
||||
FnDeclareLinkage
|
||||
: /*empty*/ { /*default*/ }
|
||||
| DLLIMPORT { CurFun.Linkage = GlobalValue::DLLImportLinkage; }
|
||||
| EXTERN_WEAK { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; }
|
||||
;
|
||||
|
||||
FunctionLinkage
|
||||
: INTERNAL { $$ = GlobalValue::InternalLinkage; }
|
||||
| LINKONCE { $$ = GlobalValue::LinkOnceLinkage; }
|
||||
| WEAK { $$ = GlobalValue::WeakLinkage; }
|
||||
| DLLEXPORT { $$ = GlobalValue::DLLExportLinkage; }
|
||||
| /*empty*/ { $$ = GlobalValue::ExternalLinkage; }
|
||||
;
|
||||
|
||||
OptCallingConv : /*empty*/ { $$ = CallingConv::C; } |
|
||||
CCC_TOK { $$ = CallingConv::C; } |
|
||||
@ -1128,7 +1148,7 @@ Types : UpRTypes {
|
||||
// Derived types are added later...
|
||||
//
|
||||
PrimType : BOOL | SBYTE | UBYTE | SHORT | USHORT | INT | UINT ;
|
||||
PrimType : LONG | ULONG | FLOAT | DOUBLE | TYPE | LABEL;
|
||||
PrimType : LONG | ULONG | FLOAT | DOUBLE | LABEL ;
|
||||
UpRTypes : OPAQUE {
|
||||
$$ = new PATypeHolder(OpaqueType::get());
|
||||
CHECK_FOR_ERROR
|
||||
@ -1634,33 +1654,36 @@ GlobalType : GLOBAL { $$ = false; } | CONSTANT { $$ = true; };
|
||||
// Module rule: Capture the result of parsing the whole file into a result
|
||||
// variable...
|
||||
//
|
||||
Module : FunctionList {
|
||||
$$ = ParserResult = $1;
|
||||
CurModule.ModuleDone();
|
||||
CHECK_FOR_ERROR;
|
||||
};
|
||||
Module
|
||||
: DefinitionList {
|
||||
$$ = ParserResult = CurModule.CurrentModule;
|
||||
CurModule.ModuleDone();
|
||||
CHECK_FOR_ERROR;
|
||||
}
|
||||
| /*empty*/ {
|
||||
$$ = ParserResult = CurModule.CurrentModule;
|
||||
CurModule.ModuleDone();
|
||||
CHECK_FOR_ERROR;
|
||||
}
|
||||
;
|
||||
|
||||
// FunctionList - A list of functions, preceeded by a constant pool.
|
||||
//
|
||||
FunctionList : FunctionList Function {
|
||||
$$ = $1;
|
||||
DefinitionList
|
||||
: Definition
|
||||
| DefinitionList Definition
|
||||
;
|
||||
|
||||
Definition
|
||||
: DEFINE { CurFun.isDeclare = false } Function {
|
||||
CurFun.FunctionDone();
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| FunctionList FunctionProto {
|
||||
$$ = $1;
|
||||
}
|
||||
| DECLARE { CurFun.isDeclare = true; } FunctionProto {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| FunctionList MODULE ASM_TOK AsmBlock {
|
||||
$$ = $1;
|
||||
| MODULE ASM_TOK AsmBlock {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| FunctionList IMPLEMENTATION {
|
||||
$$ = $1;
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool {
|
||||
$$ = CurModule.CurrentModule;
|
||||
| IMPLEMENTATION {
|
||||
// Emit an error if there are any unresolved types left.
|
||||
if (!CurModule.LateResolveTypes.empty()) {
|
||||
const ValID &DID = CurModule.LateResolveTypes.begin()->first;
|
||||
@ -1671,10 +1694,8 @@ FunctionList : FunctionList Function {
|
||||
}
|
||||
}
|
||||
CHECK_FOR_ERROR
|
||||
};
|
||||
|
||||
// ConstPool - Constants with optional names assigned to them.
|
||||
ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
}
|
||||
| OptAssign TYPE TypesV {
|
||||
// Eagerly resolve types. This is not an optimization, this is a
|
||||
// requirement that is due to the fact that we could have this:
|
||||
//
|
||||
@ -1684,65 +1705,50 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
// If types are not resolved eagerly, then the two types will not be
|
||||
// determined to be the same type!
|
||||
//
|
||||
ResolveTypeTo($2, *$4);
|
||||
ResolveTypeTo($1, *$3);
|
||||
|
||||
if (!setTypeName(*$4, $2) && !$2) {
|
||||
if (!setTypeName(*$3, $1) && !$1) {
|
||||
CHECK_FOR_ERROR
|
||||
// If this is a named type that is not a redefinition, add it to the slot
|
||||
// table.
|
||||
CurModule.Types.push_back(*$4);
|
||||
CurModule.Types.push_back(*$3);
|
||||
}
|
||||
|
||||
delete $4;
|
||||
delete $3;
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool FunctionProto { // Function prototypes can be in const pool
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool MODULE ASM_TOK AsmBlock { // Asm blocks can be in the const pool
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool OptAssign OptLinkage GlobalType ConstVal {
|
||||
if ($5 == 0)
|
||||
| OptAssign GlobalType ConstVal { /* "Externally Visible" Linkage */
|
||||
if ($3 == 0)
|
||||
GEN_ERROR("Global value initializer is not a constant!");
|
||||
CurGV = ParseGlobalVariable($2, $3, $4, $5->getType(), $5);
|
||||
CurGV = ParseGlobalVariable($1, GlobalValue::ExternalLinkage, $2,
|
||||
$3->getType(), $3);
|
||||
CHECK_FOR_ERROR
|
||||
} GlobalVarAttributes {
|
||||
CurGV = 0;
|
||||
}
|
||||
| ConstPool OptAssign EXTERNAL GlobalType Types {
|
||||
CurGV = ParseGlobalVariable($2, GlobalValue::ExternalLinkage, $4, *$5, 0);
|
||||
| OptAssign GVInternalLinkage GlobalType ConstVal {
|
||||
if ($4 == 0)
|
||||
GEN_ERROR("Global value initializer is not a constant!");
|
||||
CurGV = ParseGlobalVariable($1, $2, $3, $4->getType(), $4);
|
||||
CHECK_FOR_ERROR
|
||||
delete $5;
|
||||
} GlobalVarAttributes {
|
||||
CurGV = 0;
|
||||
}
|
||||
| OptAssign GVExternalLinkage GlobalType Types {
|
||||
CurGV = ParseGlobalVariable($1, $2, $3, *$4, 0);
|
||||
CHECK_FOR_ERROR
|
||||
delete $4;
|
||||
} GlobalVarAttributes {
|
||||
CurGV = 0;
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool OptAssign DLLIMPORT GlobalType Types {
|
||||
CurGV = ParseGlobalVariable($2, GlobalValue::DLLImportLinkage, $4, *$5, 0);
|
||||
CHECK_FOR_ERROR
|
||||
delete $5;
|
||||
} GlobalVarAttributes {
|
||||
CurGV = 0;
|
||||
| TARGET TargetDefinition {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool OptAssign EXTERN_WEAK GlobalType Types {
|
||||
CurGV =
|
||||
ParseGlobalVariable($2, GlobalValue::ExternalWeakLinkage, $4, *$5, 0);
|
||||
CHECK_FOR_ERROR
|
||||
delete $5;
|
||||
} GlobalVarAttributes {
|
||||
CurGV = 0;
|
||||
| DEPLIBS '=' LibrariesDefinition {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool TARGET TargetDefinition {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| ConstPool DEPLIBS '=' LibrariesDefinition {
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| /* empty: end of list */ {
|
||||
};
|
||||
;
|
||||
|
||||
|
||||
AsmBlock : STRINGCONSTANT {
|
||||
@ -1944,7 +1950,7 @@ FunctionHeaderH : OptCallingConv TypesV Name '(' ArgList ')'
|
||||
|
||||
BEGIN : BEGINTOK | '{'; // Allow BEGIN or '{' to start a function
|
||||
|
||||
FunctionHeader : OptLinkage FunctionHeaderH BEGIN {
|
||||
FunctionHeader : FunctionLinkage FunctionHeaderH BEGIN {
|
||||
$$ = CurFun.CurrentFunction;
|
||||
|
||||
// Make sure that we keep track of the linkage type even if there was a
|
||||
@ -1959,11 +1965,7 @@ Function : BasicBlockList END {
|
||||
CHECK_FOR_ERROR
|
||||
};
|
||||
|
||||
FnDeclareLinkage: /*default*/ |
|
||||
DLLIMPORT { CurFun.Linkage = GlobalValue::DLLImportLinkage; } |
|
||||
EXTERN_WEAK { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; };
|
||||
|
||||
FunctionProto : DECLARE { CurFun.isDeclare = true; } FnDeclareLinkage FunctionHeaderH {
|
||||
FunctionProto : FnDeclareLinkage FunctionHeaderH {
|
||||
$$ = CurFun.CurrentFunction;
|
||||
CurFun.FunctionDone();
|
||||
CHECK_FOR_ERROR
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -105,6 +105,7 @@ end { RET_TOK( ENDTOK); }
|
||||
true { RET_TOK( TRUETOK); }
|
||||
false { RET_TOK( FALSETOK); }
|
||||
declare { RET_TOK( DECLARE); }
|
||||
define { RET_TOK( DEFINE); }
|
||||
global { RET_TOK( GLOBAL); }
|
||||
constant { RET_TOK( CONSTANT); }
|
||||
internal { RET_TOK( INTERNAL); }
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -61,122 +61,123 @@
|
||||
BEGINTOK = 287,
|
||||
ENDTOK = 288,
|
||||
DECLARE = 289,
|
||||
GLOBAL = 290,
|
||||
CONSTANT = 291,
|
||||
SECTION = 292,
|
||||
VOLATILE = 293,
|
||||
TO = 294,
|
||||
DOTDOTDOT = 295,
|
||||
CONST = 296,
|
||||
INTERNAL = 297,
|
||||
LINKONCE = 298,
|
||||
WEAK = 299,
|
||||
DLLIMPORT = 300,
|
||||
DLLEXPORT = 301,
|
||||
EXTERN_WEAK = 302,
|
||||
APPENDING = 303,
|
||||
NOT = 304,
|
||||
EXTERNAL = 305,
|
||||
TARGET = 306,
|
||||
TRIPLE = 307,
|
||||
ENDIAN = 308,
|
||||
POINTERSIZE = 309,
|
||||
LITTLE = 310,
|
||||
BIG = 311,
|
||||
ALIGN = 312,
|
||||
UNINITIALIZED = 313,
|
||||
DEPLIBS = 314,
|
||||
CALL = 315,
|
||||
TAIL = 316,
|
||||
ASM_TOK = 317,
|
||||
MODULE = 318,
|
||||
SIDEEFFECT = 319,
|
||||
CC_TOK = 320,
|
||||
CCC_TOK = 321,
|
||||
CSRETCC_TOK = 322,
|
||||
FASTCC_TOK = 323,
|
||||
COLDCC_TOK = 324,
|
||||
X86_STDCALLCC_TOK = 325,
|
||||
X86_FASTCALLCC_TOK = 326,
|
||||
DATALAYOUT = 327,
|
||||
RET = 328,
|
||||
BR = 329,
|
||||
SWITCH = 330,
|
||||
INVOKE = 331,
|
||||
EXCEPT = 332,
|
||||
UNWIND = 333,
|
||||
UNREACHABLE = 334,
|
||||
ADD = 335,
|
||||
SUB = 336,
|
||||
MUL = 337,
|
||||
DIV = 338,
|
||||
UDIV = 339,
|
||||
SDIV = 340,
|
||||
FDIV = 341,
|
||||
REM = 342,
|
||||
UREM = 343,
|
||||
SREM = 344,
|
||||
FREM = 345,
|
||||
AND = 346,
|
||||
OR = 347,
|
||||
XOR = 348,
|
||||
SETLE = 349,
|
||||
SETGE = 350,
|
||||
SETLT = 351,
|
||||
SETGT = 352,
|
||||
SETEQ = 353,
|
||||
SETNE = 354,
|
||||
ICMP = 355,
|
||||
FCMP = 356,
|
||||
EQ = 357,
|
||||
NE = 358,
|
||||
SLT = 359,
|
||||
SGT = 360,
|
||||
SLE = 361,
|
||||
SGE = 362,
|
||||
OEQ = 363,
|
||||
ONE = 364,
|
||||
OLT = 365,
|
||||
OGT = 366,
|
||||
OLE = 367,
|
||||
OGE = 368,
|
||||
ORD = 369,
|
||||
UNO = 370,
|
||||
UEQ = 371,
|
||||
UNE = 372,
|
||||
ULT = 373,
|
||||
UGT = 374,
|
||||
ULE = 375,
|
||||
UGE = 376,
|
||||
MALLOC = 377,
|
||||
ALLOCA = 378,
|
||||
FREE = 379,
|
||||
LOAD = 380,
|
||||
STORE = 381,
|
||||
GETELEMENTPTR = 382,
|
||||
PHI_TOK = 383,
|
||||
SELECT = 384,
|
||||
SHL = 385,
|
||||
SHR = 386,
|
||||
ASHR = 387,
|
||||
LSHR = 388,
|
||||
VAARG = 389,
|
||||
EXTRACTELEMENT = 390,
|
||||
INSERTELEMENT = 391,
|
||||
SHUFFLEVECTOR = 392,
|
||||
CAST = 393,
|
||||
TRUNC = 394,
|
||||
ZEXT = 395,
|
||||
SEXT = 396,
|
||||
FPTRUNC = 397,
|
||||
FPEXT = 398,
|
||||
FPTOUI = 399,
|
||||
FPTOSI = 400,
|
||||
UITOFP = 401,
|
||||
SITOFP = 402,
|
||||
PTRTOINT = 403,
|
||||
INTTOPTR = 404,
|
||||
BITCAST = 405
|
||||
DEFINE = 290,
|
||||
GLOBAL = 291,
|
||||
CONSTANT = 292,
|
||||
SECTION = 293,
|
||||
VOLATILE = 294,
|
||||
TO = 295,
|
||||
DOTDOTDOT = 296,
|
||||
CONST = 297,
|
||||
INTERNAL = 298,
|
||||
LINKONCE = 299,
|
||||
WEAK = 300,
|
||||
DLLIMPORT = 301,
|
||||
DLLEXPORT = 302,
|
||||
EXTERN_WEAK = 303,
|
||||
APPENDING = 304,
|
||||
NOT = 305,
|
||||
EXTERNAL = 306,
|
||||
TARGET = 307,
|
||||
TRIPLE = 308,
|
||||
ENDIAN = 309,
|
||||
POINTERSIZE = 310,
|
||||
LITTLE = 311,
|
||||
BIG = 312,
|
||||
ALIGN = 313,
|
||||
UNINITIALIZED = 314,
|
||||
DEPLIBS = 315,
|
||||
CALL = 316,
|
||||
TAIL = 317,
|
||||
ASM_TOK = 318,
|
||||
MODULE = 319,
|
||||
SIDEEFFECT = 320,
|
||||
CC_TOK = 321,
|
||||
CCC_TOK = 322,
|
||||
CSRETCC_TOK = 323,
|
||||
FASTCC_TOK = 324,
|
||||
COLDCC_TOK = 325,
|
||||
X86_STDCALLCC_TOK = 326,
|
||||
X86_FASTCALLCC_TOK = 327,
|
||||
DATALAYOUT = 328,
|
||||
RET = 329,
|
||||
BR = 330,
|
||||
SWITCH = 331,
|
||||
INVOKE = 332,
|
||||
EXCEPT = 333,
|
||||
UNWIND = 334,
|
||||
UNREACHABLE = 335,
|
||||
ADD = 336,
|
||||
SUB = 337,
|
||||
MUL = 338,
|
||||
DIV = 339,
|
||||
UDIV = 340,
|
||||
SDIV = 341,
|
||||
FDIV = 342,
|
||||
REM = 343,
|
||||
UREM = 344,
|
||||
SREM = 345,
|
||||
FREM = 346,
|
||||
AND = 347,
|
||||
OR = 348,
|
||||
XOR = 349,
|
||||
SETLE = 350,
|
||||
SETGE = 351,
|
||||
SETLT = 352,
|
||||
SETGT = 353,
|
||||
SETEQ = 354,
|
||||
SETNE = 355,
|
||||
ICMP = 356,
|
||||
FCMP = 357,
|
||||
EQ = 358,
|
||||
NE = 359,
|
||||
SLT = 360,
|
||||
SGT = 361,
|
||||
SLE = 362,
|
||||
SGE = 363,
|
||||
OEQ = 364,
|
||||
ONE = 365,
|
||||
OLT = 366,
|
||||
OGT = 367,
|
||||
OLE = 368,
|
||||
OGE = 369,
|
||||
ORD = 370,
|
||||
UNO = 371,
|
||||
UEQ = 372,
|
||||
UNE = 373,
|
||||
ULT = 374,
|
||||
UGT = 375,
|
||||
ULE = 376,
|
||||
UGE = 377,
|
||||
MALLOC = 378,
|
||||
ALLOCA = 379,
|
||||
FREE = 380,
|
||||
LOAD = 381,
|
||||
STORE = 382,
|
||||
GETELEMENTPTR = 383,
|
||||
PHI_TOK = 384,
|
||||
SELECT = 385,
|
||||
SHL = 386,
|
||||
SHR = 387,
|
||||
ASHR = 388,
|
||||
LSHR = 389,
|
||||
VAARG = 390,
|
||||
EXTRACTELEMENT = 391,
|
||||
INSERTELEMENT = 392,
|
||||
SHUFFLEVECTOR = 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. */
|
||||
@ -212,128 +213,129 @@
|
||||
#define BEGINTOK 287
|
||||
#define ENDTOK 288
|
||||
#define DECLARE 289
|
||||
#define GLOBAL 290
|
||||
#define CONSTANT 291
|
||||
#define SECTION 292
|
||||
#define VOLATILE 293
|
||||
#define TO 294
|
||||
#define DOTDOTDOT 295
|
||||
#define CONST 296
|
||||
#define INTERNAL 297
|
||||
#define LINKONCE 298
|
||||
#define WEAK 299
|
||||
#define DLLIMPORT 300
|
||||
#define DLLEXPORT 301
|
||||
#define EXTERN_WEAK 302
|
||||
#define APPENDING 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 UNINITIALIZED 313
|
||||
#define DEPLIBS 314
|
||||
#define CALL 315
|
||||
#define TAIL 316
|
||||
#define ASM_TOK 317
|
||||
#define MODULE 318
|
||||
#define SIDEEFFECT 319
|
||||
#define CC_TOK 320
|
||||
#define CCC_TOK 321
|
||||
#define CSRETCC_TOK 322
|
||||
#define FASTCC_TOK 323
|
||||
#define COLDCC_TOK 324
|
||||
#define X86_STDCALLCC_TOK 325
|
||||
#define X86_FASTCALLCC_TOK 326
|
||||
#define DATALAYOUT 327
|
||||
#define RET 328
|
||||
#define BR 329
|
||||
#define SWITCH 330
|
||||
#define INVOKE 331
|
||||
#define EXCEPT 332
|
||||
#define UNWIND 333
|
||||
#define UNREACHABLE 334
|
||||
#define ADD 335
|
||||
#define SUB 336
|
||||
#define MUL 337
|
||||
#define DIV 338
|
||||
#define UDIV 339
|
||||
#define SDIV 340
|
||||
#define FDIV 341
|
||||
#define REM 342
|
||||
#define UREM 343
|
||||
#define SREM 344
|
||||
#define FREM 345
|
||||
#define AND 346
|
||||
#define OR 347
|
||||
#define XOR 348
|
||||
#define SETLE 349
|
||||
#define SETGE 350
|
||||
#define SETLT 351
|
||||
#define SETGT 352
|
||||
#define SETEQ 353
|
||||
#define SETNE 354
|
||||
#define ICMP 355
|
||||
#define FCMP 356
|
||||
#define EQ 357
|
||||
#define NE 358
|
||||
#define SLT 359
|
||||
#define SGT 360
|
||||
#define SLE 361
|
||||
#define SGE 362
|
||||
#define OEQ 363
|
||||
#define ONE 364
|
||||
#define OLT 365
|
||||
#define OGT 366
|
||||
#define OLE 367
|
||||
#define OGE 368
|
||||
#define ORD 369
|
||||
#define UNO 370
|
||||
#define UEQ 371
|
||||
#define UNE 372
|
||||
#define ULT 373
|
||||
#define UGT 374
|
||||
#define ULE 375
|
||||
#define UGE 376
|
||||
#define MALLOC 377
|
||||
#define ALLOCA 378
|
||||
#define FREE 379
|
||||
#define LOAD 380
|
||||
#define STORE 381
|
||||
#define GETELEMENTPTR 382
|
||||
#define PHI_TOK 383
|
||||
#define SELECT 384
|
||||
#define SHL 385
|
||||
#define SHR 386
|
||||
#define ASHR 387
|
||||
#define LSHR 388
|
||||
#define VAARG 389
|
||||
#define EXTRACTELEMENT 390
|
||||
#define INSERTELEMENT 391
|
||||
#define SHUFFLEVECTOR 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
|
||||
#define DEFINE 290
|
||||
#define GLOBAL 291
|
||||
#define CONSTANT 292
|
||||
#define SECTION 293
|
||||
#define VOLATILE 294
|
||||
#define TO 295
|
||||
#define DOTDOTDOT 296
|
||||
#define CONST 297
|
||||
#define INTERNAL 298
|
||||
#define LINKONCE 299
|
||||
#define WEAK 300
|
||||
#define DLLIMPORT 301
|
||||
#define DLLEXPORT 302
|
||||
#define EXTERN_WEAK 303
|
||||
#define APPENDING 304
|
||||
#define NOT 305
|
||||
#define EXTERNAL 306
|
||||
#define TARGET 307
|
||||
#define TRIPLE 308
|
||||
#define ENDIAN 309
|
||||
#define POINTERSIZE 310
|
||||
#define LITTLE 311
|
||||
#define BIG 312
|
||||
#define ALIGN 313
|
||||
#define UNINITIALIZED 314
|
||||
#define DEPLIBS 315
|
||||
#define CALL 316
|
||||
#define TAIL 317
|
||||
#define ASM_TOK 318
|
||||
#define MODULE 319
|
||||
#define SIDEEFFECT 320
|
||||
#define CC_TOK 321
|
||||
#define CCC_TOK 322
|
||||
#define CSRETCC_TOK 323
|
||||
#define FASTCC_TOK 324
|
||||
#define COLDCC_TOK 325
|
||||
#define X86_STDCALLCC_TOK 326
|
||||
#define X86_FASTCALLCC_TOK 327
|
||||
#define DATALAYOUT 328
|
||||
#define RET 329
|
||||
#define BR 330
|
||||
#define SWITCH 331
|
||||
#define INVOKE 332
|
||||
#define EXCEPT 333
|
||||
#define UNWIND 334
|
||||
#define UNREACHABLE 335
|
||||
#define ADD 336
|
||||
#define SUB 337
|
||||
#define MUL 338
|
||||
#define DIV 339
|
||||
#define UDIV 340
|
||||
#define SDIV 341
|
||||
#define FDIV 342
|
||||
#define REM 343
|
||||
#define UREM 344
|
||||
#define SREM 345
|
||||
#define FREM 346
|
||||
#define AND 347
|
||||
#define OR 348
|
||||
#define XOR 349
|
||||
#define SETLE 350
|
||||
#define SETGE 351
|
||||
#define SETLT 352
|
||||
#define SETGT 353
|
||||
#define SETEQ 354
|
||||
#define SETNE 355
|
||||
#define ICMP 356
|
||||
#define FCMP 357
|
||||
#define EQ 358
|
||||
#define NE 359
|
||||
#define SLT 360
|
||||
#define SGT 361
|
||||
#define SLE 362
|
||||
#define SGE 363
|
||||
#define OEQ 364
|
||||
#define ONE 365
|
||||
#define OLT 366
|
||||
#define OGT 367
|
||||
#define OLE 368
|
||||
#define OGE 369
|
||||
#define ORD 370
|
||||
#define UNO 371
|
||||
#define UEQ 372
|
||||
#define UNE 373
|
||||
#define ULT 374
|
||||
#define UGT 375
|
||||
#define ULE 376
|
||||
#define UGE 377
|
||||
#define MALLOC 378
|
||||
#define ALLOCA 379
|
||||
#define FREE 380
|
||||
#define LOAD 381
|
||||
#define STORE 382
|
||||
#define GETELEMENTPTR 383
|
||||
#define PHI_TOK 384
|
||||
#define SELECT 385
|
||||
#define SHL 386
|
||||
#define SHR 387
|
||||
#define ASHR 388
|
||||
#define LSHR 389
|
||||
#define VAARG 390
|
||||
#define EXTRACTELEMENT 391
|
||||
#define INSERTELEMENT 392
|
||||
#define SHUFFLEVECTOR 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
|
||||
|
||||
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#line 275 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
|
||||
#line 275 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
|
||||
typedef union YYSTYPE {
|
||||
std::string* String;
|
||||
TypeInfo Type;
|
||||
@ -342,7 +344,7 @@ typedef union YYSTYPE {
|
||||
ValueList* ValList;
|
||||
} YYSTYPE;
|
||||
/* Line 1447 of yacc.c. */
|
||||
#line 346 "UpgradeParser.tab.h"
|
||||
#line 348 "UpgradeParser.tab.h"
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
|
@ -61,122 +61,123 @@
|
||||
BEGINTOK = 287,
|
||||
ENDTOK = 288,
|
||||
DECLARE = 289,
|
||||
GLOBAL = 290,
|
||||
CONSTANT = 291,
|
||||
SECTION = 292,
|
||||
VOLATILE = 293,
|
||||
TO = 294,
|
||||
DOTDOTDOT = 295,
|
||||
CONST = 296,
|
||||
INTERNAL = 297,
|
||||
LINKONCE = 298,
|
||||
WEAK = 299,
|
||||
DLLIMPORT = 300,
|
||||
DLLEXPORT = 301,
|
||||
EXTERN_WEAK = 302,
|
||||
APPENDING = 303,
|
||||
NOT = 304,
|
||||
EXTERNAL = 305,
|
||||
TARGET = 306,
|
||||
TRIPLE = 307,
|
||||
ENDIAN = 308,
|
||||
POINTERSIZE = 309,
|
||||
LITTLE = 310,
|
||||
BIG = 311,
|
||||
ALIGN = 312,
|
||||
UNINITIALIZED = 313,
|
||||
DEPLIBS = 314,
|
||||
CALL = 315,
|
||||
TAIL = 316,
|
||||
ASM_TOK = 317,
|
||||
MODULE = 318,
|
||||
SIDEEFFECT = 319,
|
||||
CC_TOK = 320,
|
||||
CCC_TOK = 321,
|
||||
CSRETCC_TOK = 322,
|
||||
FASTCC_TOK = 323,
|
||||
COLDCC_TOK = 324,
|
||||
X86_STDCALLCC_TOK = 325,
|
||||
X86_FASTCALLCC_TOK = 326,
|
||||
DATALAYOUT = 327,
|
||||
RET = 328,
|
||||
BR = 329,
|
||||
SWITCH = 330,
|
||||
INVOKE = 331,
|
||||
EXCEPT = 332,
|
||||
UNWIND = 333,
|
||||
UNREACHABLE = 334,
|
||||
ADD = 335,
|
||||
SUB = 336,
|
||||
MUL = 337,
|
||||
DIV = 338,
|
||||
UDIV = 339,
|
||||
SDIV = 340,
|
||||
FDIV = 341,
|
||||
REM = 342,
|
||||
UREM = 343,
|
||||
SREM = 344,
|
||||
FREM = 345,
|
||||
AND = 346,
|
||||
OR = 347,
|
||||
XOR = 348,
|
||||
SETLE = 349,
|
||||
SETGE = 350,
|
||||
SETLT = 351,
|
||||
SETGT = 352,
|
||||
SETEQ = 353,
|
||||
SETNE = 354,
|
||||
ICMP = 355,
|
||||
FCMP = 356,
|
||||
EQ = 357,
|
||||
NE = 358,
|
||||
SLT = 359,
|
||||
SGT = 360,
|
||||
SLE = 361,
|
||||
SGE = 362,
|
||||
OEQ = 363,
|
||||
ONE = 364,
|
||||
OLT = 365,
|
||||
OGT = 366,
|
||||
OLE = 367,
|
||||
OGE = 368,
|
||||
ORD = 369,
|
||||
UNO = 370,
|
||||
UEQ = 371,
|
||||
UNE = 372,
|
||||
ULT = 373,
|
||||
UGT = 374,
|
||||
ULE = 375,
|
||||
UGE = 376,
|
||||
MALLOC = 377,
|
||||
ALLOCA = 378,
|
||||
FREE = 379,
|
||||
LOAD = 380,
|
||||
STORE = 381,
|
||||
GETELEMENTPTR = 382,
|
||||
PHI_TOK = 383,
|
||||
SELECT = 384,
|
||||
SHL = 385,
|
||||
SHR = 386,
|
||||
ASHR = 387,
|
||||
LSHR = 388,
|
||||
VAARG = 389,
|
||||
EXTRACTELEMENT = 390,
|
||||
INSERTELEMENT = 391,
|
||||
SHUFFLEVECTOR = 392,
|
||||
CAST = 393,
|
||||
TRUNC = 394,
|
||||
ZEXT = 395,
|
||||
SEXT = 396,
|
||||
FPTRUNC = 397,
|
||||
FPEXT = 398,
|
||||
FPTOUI = 399,
|
||||
FPTOSI = 400,
|
||||
UITOFP = 401,
|
||||
SITOFP = 402,
|
||||
PTRTOINT = 403,
|
||||
INTTOPTR = 404,
|
||||
BITCAST = 405
|
||||
DEFINE = 290,
|
||||
GLOBAL = 291,
|
||||
CONSTANT = 292,
|
||||
SECTION = 293,
|
||||
VOLATILE = 294,
|
||||
TO = 295,
|
||||
DOTDOTDOT = 296,
|
||||
CONST = 297,
|
||||
INTERNAL = 298,
|
||||
LINKONCE = 299,
|
||||
WEAK = 300,
|
||||
DLLIMPORT = 301,
|
||||
DLLEXPORT = 302,
|
||||
EXTERN_WEAK = 303,
|
||||
APPENDING = 304,
|
||||
NOT = 305,
|
||||
EXTERNAL = 306,
|
||||
TARGET = 307,
|
||||
TRIPLE = 308,
|
||||
ENDIAN = 309,
|
||||
POINTERSIZE = 310,
|
||||
LITTLE = 311,
|
||||
BIG = 312,
|
||||
ALIGN = 313,
|
||||
UNINITIALIZED = 314,
|
||||
DEPLIBS = 315,
|
||||
CALL = 316,
|
||||
TAIL = 317,
|
||||
ASM_TOK = 318,
|
||||
MODULE = 319,
|
||||
SIDEEFFECT = 320,
|
||||
CC_TOK = 321,
|
||||
CCC_TOK = 322,
|
||||
CSRETCC_TOK = 323,
|
||||
FASTCC_TOK = 324,
|
||||
COLDCC_TOK = 325,
|
||||
X86_STDCALLCC_TOK = 326,
|
||||
X86_FASTCALLCC_TOK = 327,
|
||||
DATALAYOUT = 328,
|
||||
RET = 329,
|
||||
BR = 330,
|
||||
SWITCH = 331,
|
||||
INVOKE = 332,
|
||||
EXCEPT = 333,
|
||||
UNWIND = 334,
|
||||
UNREACHABLE = 335,
|
||||
ADD = 336,
|
||||
SUB = 337,
|
||||
MUL = 338,
|
||||
DIV = 339,
|
||||
UDIV = 340,
|
||||
SDIV = 341,
|
||||
FDIV = 342,
|
||||
REM = 343,
|
||||
UREM = 344,
|
||||
SREM = 345,
|
||||
FREM = 346,
|
||||
AND = 347,
|
||||
OR = 348,
|
||||
XOR = 349,
|
||||
SETLE = 350,
|
||||
SETGE = 351,
|
||||
SETLT = 352,
|
||||
SETGT = 353,
|
||||
SETEQ = 354,
|
||||
SETNE = 355,
|
||||
ICMP = 356,
|
||||
FCMP = 357,
|
||||
EQ = 358,
|
||||
NE = 359,
|
||||
SLT = 360,
|
||||
SGT = 361,
|
||||
SLE = 362,
|
||||
SGE = 363,
|
||||
OEQ = 364,
|
||||
ONE = 365,
|
||||
OLT = 366,
|
||||
OGT = 367,
|
||||
OLE = 368,
|
||||
OGE = 369,
|
||||
ORD = 370,
|
||||
UNO = 371,
|
||||
UEQ = 372,
|
||||
UNE = 373,
|
||||
ULT = 374,
|
||||
UGT = 375,
|
||||
ULE = 376,
|
||||
UGE = 377,
|
||||
MALLOC = 378,
|
||||
ALLOCA = 379,
|
||||
FREE = 380,
|
||||
LOAD = 381,
|
||||
STORE = 382,
|
||||
GETELEMENTPTR = 383,
|
||||
PHI_TOK = 384,
|
||||
SELECT = 385,
|
||||
SHL = 386,
|
||||
SHR = 387,
|
||||
ASHR = 388,
|
||||
LSHR = 389,
|
||||
VAARG = 390,
|
||||
EXTRACTELEMENT = 391,
|
||||
INSERTELEMENT = 392,
|
||||
SHUFFLEVECTOR = 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. */
|
||||
@ -212,128 +213,129 @@
|
||||
#define BEGINTOK 287
|
||||
#define ENDTOK 288
|
||||
#define DECLARE 289
|
||||
#define GLOBAL 290
|
||||
#define CONSTANT 291
|
||||
#define SECTION 292
|
||||
#define VOLATILE 293
|
||||
#define TO 294
|
||||
#define DOTDOTDOT 295
|
||||
#define CONST 296
|
||||
#define INTERNAL 297
|
||||
#define LINKONCE 298
|
||||
#define WEAK 299
|
||||
#define DLLIMPORT 300
|
||||
#define DLLEXPORT 301
|
||||
#define EXTERN_WEAK 302
|
||||
#define APPENDING 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 UNINITIALIZED 313
|
||||
#define DEPLIBS 314
|
||||
#define CALL 315
|
||||
#define TAIL 316
|
||||
#define ASM_TOK 317
|
||||
#define MODULE 318
|
||||
#define SIDEEFFECT 319
|
||||
#define CC_TOK 320
|
||||
#define CCC_TOK 321
|
||||
#define CSRETCC_TOK 322
|
||||
#define FASTCC_TOK 323
|
||||
#define COLDCC_TOK 324
|
||||
#define X86_STDCALLCC_TOK 325
|
||||
#define X86_FASTCALLCC_TOK 326
|
||||
#define DATALAYOUT 327
|
||||
#define RET 328
|
||||
#define BR 329
|
||||
#define SWITCH 330
|
||||
#define INVOKE 331
|
||||
#define EXCEPT 332
|
||||
#define UNWIND 333
|
||||
#define UNREACHABLE 334
|
||||
#define ADD 335
|
||||
#define SUB 336
|
||||
#define MUL 337
|
||||
#define DIV 338
|
||||
#define UDIV 339
|
||||
#define SDIV 340
|
||||
#define FDIV 341
|
||||
#define REM 342
|
||||
#define UREM 343
|
||||
#define SREM 344
|
||||
#define FREM 345
|
||||
#define AND 346
|
||||
#define OR 347
|
||||
#define XOR 348
|
||||
#define SETLE 349
|
||||
#define SETGE 350
|
||||
#define SETLT 351
|
||||
#define SETGT 352
|
||||
#define SETEQ 353
|
||||
#define SETNE 354
|
||||
#define ICMP 355
|
||||
#define FCMP 356
|
||||
#define EQ 357
|
||||
#define NE 358
|
||||
#define SLT 359
|
||||
#define SGT 360
|
||||
#define SLE 361
|
||||
#define SGE 362
|
||||
#define OEQ 363
|
||||
#define ONE 364
|
||||
#define OLT 365
|
||||
#define OGT 366
|
||||
#define OLE 367
|
||||
#define OGE 368
|
||||
#define ORD 369
|
||||
#define UNO 370
|
||||
#define UEQ 371
|
||||
#define UNE 372
|
||||
#define ULT 373
|
||||
#define UGT 374
|
||||
#define ULE 375
|
||||
#define UGE 376
|
||||
#define MALLOC 377
|
||||
#define ALLOCA 378
|
||||
#define FREE 379
|
||||
#define LOAD 380
|
||||
#define STORE 381
|
||||
#define GETELEMENTPTR 382
|
||||
#define PHI_TOK 383
|
||||
#define SELECT 384
|
||||
#define SHL 385
|
||||
#define SHR 386
|
||||
#define ASHR 387
|
||||
#define LSHR 388
|
||||
#define VAARG 389
|
||||
#define EXTRACTELEMENT 390
|
||||
#define INSERTELEMENT 391
|
||||
#define SHUFFLEVECTOR 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
|
||||
#define DEFINE 290
|
||||
#define GLOBAL 291
|
||||
#define CONSTANT 292
|
||||
#define SECTION 293
|
||||
#define VOLATILE 294
|
||||
#define TO 295
|
||||
#define DOTDOTDOT 296
|
||||
#define CONST 297
|
||||
#define INTERNAL 298
|
||||
#define LINKONCE 299
|
||||
#define WEAK 300
|
||||
#define DLLIMPORT 301
|
||||
#define DLLEXPORT 302
|
||||
#define EXTERN_WEAK 303
|
||||
#define APPENDING 304
|
||||
#define NOT 305
|
||||
#define EXTERNAL 306
|
||||
#define TARGET 307
|
||||
#define TRIPLE 308
|
||||
#define ENDIAN 309
|
||||
#define POINTERSIZE 310
|
||||
#define LITTLE 311
|
||||
#define BIG 312
|
||||
#define ALIGN 313
|
||||
#define UNINITIALIZED 314
|
||||
#define DEPLIBS 315
|
||||
#define CALL 316
|
||||
#define TAIL 317
|
||||
#define ASM_TOK 318
|
||||
#define MODULE 319
|
||||
#define SIDEEFFECT 320
|
||||
#define CC_TOK 321
|
||||
#define CCC_TOK 322
|
||||
#define CSRETCC_TOK 323
|
||||
#define FASTCC_TOK 324
|
||||
#define COLDCC_TOK 325
|
||||
#define X86_STDCALLCC_TOK 326
|
||||
#define X86_FASTCALLCC_TOK 327
|
||||
#define DATALAYOUT 328
|
||||
#define RET 329
|
||||
#define BR 330
|
||||
#define SWITCH 331
|
||||
#define INVOKE 332
|
||||
#define EXCEPT 333
|
||||
#define UNWIND 334
|
||||
#define UNREACHABLE 335
|
||||
#define ADD 336
|
||||
#define SUB 337
|
||||
#define MUL 338
|
||||
#define DIV 339
|
||||
#define UDIV 340
|
||||
#define SDIV 341
|
||||
#define FDIV 342
|
||||
#define REM 343
|
||||
#define UREM 344
|
||||
#define SREM 345
|
||||
#define FREM 346
|
||||
#define AND 347
|
||||
#define OR 348
|
||||
#define XOR 349
|
||||
#define SETLE 350
|
||||
#define SETGE 351
|
||||
#define SETLT 352
|
||||
#define SETGT 353
|
||||
#define SETEQ 354
|
||||
#define SETNE 355
|
||||
#define ICMP 356
|
||||
#define FCMP 357
|
||||
#define EQ 358
|
||||
#define NE 359
|
||||
#define SLT 360
|
||||
#define SGT 361
|
||||
#define SLE 362
|
||||
#define SGE 363
|
||||
#define OEQ 364
|
||||
#define ONE 365
|
||||
#define OLT 366
|
||||
#define OGT 367
|
||||
#define OLE 368
|
||||
#define OGE 369
|
||||
#define ORD 370
|
||||
#define UNO 371
|
||||
#define UEQ 372
|
||||
#define UNE 373
|
||||
#define ULT 374
|
||||
#define UGT 375
|
||||
#define ULE 376
|
||||
#define UGE 377
|
||||
#define MALLOC 378
|
||||
#define ALLOCA 379
|
||||
#define FREE 380
|
||||
#define LOAD 381
|
||||
#define STORE 382
|
||||
#define GETELEMENTPTR 383
|
||||
#define PHI_TOK 384
|
||||
#define SELECT 385
|
||||
#define SHL 386
|
||||
#define SHR 387
|
||||
#define ASHR 388
|
||||
#define LSHR 389
|
||||
#define VAARG 390
|
||||
#define EXTRACTELEMENT 391
|
||||
#define INSERTELEMENT 392
|
||||
#define SHUFFLEVECTOR 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
|
||||
|
||||
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#line 275 "/proj/llvm/llvm-3/tools/llvm-upgrade/UpgradeParser.y"
|
||||
#line 275 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
|
||||
typedef union YYSTYPE {
|
||||
std::string* String;
|
||||
TypeInfo Type;
|
||||
@ -342,7 +344,7 @@ typedef union YYSTYPE {
|
||||
ValueList* ValList;
|
||||
} YYSTYPE;
|
||||
/* Line 1447 of yacc.c. */
|
||||
#line 346 "UpgradeParser.tab.h"
|
||||
#line 348 "UpgradeParser.tab.h"
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
|
@ -286,7 +286,7 @@ getCompareOp(const std::string& setcc, const TypeInfo& TI) {
|
||||
%token <String> NULL_TOK UNDEF ZEROINITIALIZER TRUETOK FALSETOK
|
||||
%token <String> TYPE VAR_ID LABELSTR STRINGCONSTANT
|
||||
%token <String> IMPLEMENTATION BEGINTOK ENDTOK
|
||||
%token <String> DECLARE GLOBAL CONSTANT SECTION VOLATILE
|
||||
%token <String> DECLARE DEFINE GLOBAL CONSTANT SECTION VOLATILE
|
||||
%token <String> TO DOTDOTDOT CONST INTERNAL LINKONCE WEAK
|
||||
%token <String> DLLIMPORT DLLEXPORT EXTERN_WEAK APPENDING
|
||||
%token <String> NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG
|
||||
@ -489,6 +489,16 @@ UpRTypes
|
||||
$$.newTy = new std::string("{}");
|
||||
$$.oldTy = StructTy;
|
||||
}
|
||||
| '<' '{' TypeListI '}' '>' { // Packed Structure type?
|
||||
$3->insert(0, "<{ ");
|
||||
*$3 += " }>";
|
||||
$$.newTy = $3;
|
||||
$$.oldTy = StructTy;
|
||||
}
|
||||
| '<' '{' '}' '>' { // Empty packed structure type?
|
||||
$$.newTy = new std::string("<{}>");
|
||||
$$.oldTy = StructTy;
|
||||
}
|
||||
| UpRTypes '*' { // Pointer type?
|
||||
*$1.newTy += '*';
|
||||
$$.elemTy = $1.oldTy;
|
||||
@ -741,12 +751,12 @@ DefinitionList : DefinitionList Function {
|
||||
$$ = 0;
|
||||
}
|
||||
| DefinitionList FunctionProto {
|
||||
*O << *$2 << "\n";
|
||||
*O << *$2 << '\n';
|
||||
delete $2;
|
||||
$$ = 0;
|
||||
}
|
||||
| DefinitionList MODULE ASM_TOK AsmBlock {
|
||||
*O << "module asm " << " " << *$4 << "\n";
|
||||
*O << "module asm " << ' ' << *$4 << '\n';
|
||||
$$ = 0;
|
||||
}
|
||||
| DefinitionList IMPLEMENTATION {
|
||||
@ -766,17 +776,17 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
NamedTypes[*$2].elemTy = $4.elemTy;
|
||||
*O << *$2 << " = ";
|
||||
}
|
||||
*O << "type " << *$4.newTy << "\n";
|
||||
*O << "type " << *$4.newTy << '\n';
|
||||
delete $2; delete $3; $4.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
| ConstPool FunctionProto { // Function prototypes can be in const pool
|
||||
*O << *$2 << "\n";
|
||||
*O << *$2 << '\n';
|
||||
delete $2;
|
||||
$$ = 0;
|
||||
}
|
||||
| ConstPool MODULE ASM_TOK AsmBlock { // Asm blocks can be in the const pool
|
||||
*O << *$2 << " " << *$3 << " " << *$4 << "\n";
|
||||
*O << *$2 << ' ' << *$3 << ' ' << *$4 << '\n';
|
||||
delete $2; delete $3; delete $4;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -785,7 +795,7 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
*O << *$2 << " = ";
|
||||
Globals[*$2] = $5.type.clone();
|
||||
}
|
||||
*O << *$3 << " " << *$4 << " " << *$5.cnst << " " << *$6 << "\n";
|
||||
*O << *$3 << ' ' << *$4 << ' ' << *$5.cnst << ' ' << *$6 << '\n';
|
||||
delete $2; delete $3; delete $4; $5.destroy(); delete $6;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -794,7 +804,7 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
*O << *$2 << " = ";
|
||||
Globals[*$2] = $5.clone();
|
||||
}
|
||||
*O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n";
|
||||
*O << *$3 << ' ' << *$4 << ' ' << *$5.newTy << ' ' << *$6 << '\n';
|
||||
delete $2; delete $3; delete $4; $5.destroy(); delete $6;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -803,7 +813,7 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
*O << *$2 << " = ";
|
||||
Globals[*$2] = $5.clone();
|
||||
}
|
||||
*O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n";
|
||||
*O << *$3 << ' ' << *$4 << ' ' << *$5.newTy << ' ' << *$6 << '\n';
|
||||
delete $2; delete $3; delete $4; $5.destroy(); delete $6;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -812,17 +822,17 @@ ConstPool : ConstPool OptAssign TYPE TypesV {
|
||||
*O << *$2 << " = ";
|
||||
Globals[*$2] = $5.clone();
|
||||
}
|
||||
*O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n";
|
||||
*O << *$3 << ' ' << *$4 << ' ' << *$5.newTy << ' ' << *$6 << '\n';
|
||||
delete $2; delete $3; delete $4; $5.destroy(); delete $6;
|
||||
$$ = 0;
|
||||
}
|
||||
| ConstPool TARGET TargetDefinition {
|
||||
*O << *$2 << " " << *$3 << "\n";
|
||||
*O << *$2 << ' ' << *$3 << '\n';
|
||||
delete $2; delete $3;
|
||||
$$ = 0;
|
||||
}
|
||||
| ConstPool DEPLIBS '=' LibrariesDefinition {
|
||||
*O << *$2 << " = " << *$4 << "\n";
|
||||
*O << *$2 << " = " << *$4 << '\n';
|
||||
delete $2; delete $4;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -935,14 +945,26 @@ FunctionHeaderH : OptCallingConv TypesV Name '(' ArgList ')'
|
||||
BEGIN : BEGINTOK { $$ = new std::string("{"); delete $1; }
|
||||
| '{' { $$ = new std::string ("{"); }
|
||||
|
||||
FunctionHeader : OptLinkage FunctionHeaderH BEGIN {
|
||||
if (!$1->empty()) {
|
||||
*O << *$1 << " ";
|
||||
FunctionHeader
|
||||
: OptLinkage FunctionHeaderH BEGIN {
|
||||
*O << "define ";
|
||||
if (!$1->empty()) {
|
||||
*O << *$1 << ' ';
|
||||
}
|
||||
*O << *$2 << ' ' << *$3 << '\n';
|
||||
delete $1; delete $2; delete $3;
|
||||
$$ = 0;
|
||||
}
|
||||
*O << *$2 << " " << *$3 << "\n";
|
||||
delete $1; delete $2; delete $3;
|
||||
$$ = 0;
|
||||
};
|
||||
| DEFINE OptLinkage FunctionHeaderH BEGIN {
|
||||
*O << *$1 << ' ';
|
||||
if (!$2->empty()) {
|
||||
*O << *$2 << ' ';
|
||||
}
|
||||
*O << *$3 << ' ' << *$4 << '\n';
|
||||
delete $1; delete $2; delete $3; delete $4;
|
||||
$$ = 0;
|
||||
}
|
||||
;
|
||||
|
||||
END : ENDTOK { $$ = new std::string("}"); delete $1; }
|
||||
| '}' { $$ = new std::string("}"); };
|
||||
@ -950,7 +972,7 @@ END : ENDTOK { $$ = new std::string("}"); delete $1; }
|
||||
Function : FunctionHeader BasicBlockList END {
|
||||
if ($2)
|
||||
*O << *$2;
|
||||
*O << '\n' << *$3 << "\n";
|
||||
*O << '\n' << *$3 << '\n';
|
||||
$$ = 0;
|
||||
};
|
||||
|
||||
@ -1038,7 +1060,7 @@ BasicBlock : InstructionList BBTerminatorInst {
|
||||
};
|
||||
|
||||
InstructionList : InstructionList Inst {
|
||||
*O << " " << *$2 << "\n";
|
||||
*O << " " << *$2 << '\n';
|
||||
delete $2;
|
||||
$$ = 0;
|
||||
}
|
||||
@ -1046,7 +1068,7 @@ InstructionList : InstructionList Inst {
|
||||
$$ = 0;
|
||||
}
|
||||
| LABELSTR {
|
||||
*O << *$1 << "\n";
|
||||
*O << *$1 << '\n';
|
||||
delete $1;
|
||||
$$ = 0;
|
||||
};
|
||||
@ -1054,38 +1076,38 @@ InstructionList : InstructionList Inst {
|
||||
Unwind : UNWIND | EXCEPT { $$ = $1; *$$ = "unwind"; }
|
||||
|
||||
BBTerminatorInst : RET ResolvedVal { // Return with a result...
|
||||
*O << " " << *$1 << " " << *$2.val << "\n";
|
||||
*O << " " << *$1 << ' ' << *$2.val << '\n';
|
||||
delete $1; $2.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
| RET VOID { // Return with no result...
|
||||
*O << " " << *$1 << " " << *$2.newTy << "\n";
|
||||
*O << " " << *$1 << ' ' << *$2.newTy << '\n';
|
||||
delete $1; $2.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
| BR LABEL ValueRef { // Unconditional Branch...
|
||||
*O << " " << *$1 << " " << *$2.newTy << " " << *$3.val << "\n";
|
||||
*O << " " << *$1 << ' ' << *$2.newTy << ' ' << *$3.val << '\n';
|
||||
delete $1; $2.destroy(); $3.destroy();
|
||||
$$ = 0;
|
||||
} // Conditional Branch...
|
||||
| BR BOOL ValueRef ',' LABEL ValueRef ',' LABEL ValueRef {
|
||||
*O << " " << *$1 << " " << *$2.newTy << " " << *$3.val << ", "
|
||||
<< *$5.newTy << " " << *$6.val << ", " << *$8.newTy << " "
|
||||
<< *$9.val << "\n";
|
||||
*O << " " << *$1 << ' ' << *$2.newTy << ' ' << *$3.val << ", "
|
||||
<< *$5.newTy << ' ' << *$6.val << ", " << *$8.newTy << ' '
|
||||
<< *$9.val << '\n';
|
||||
delete $1; $2.destroy(); $3.destroy(); $5.destroy(); $6.destroy();
|
||||
$8.destroy(); $9.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
| SWITCH IntType ValueRef ',' LABEL ValueRef '[' JumpTable ']' {
|
||||
*O << " " << *$1 << " " << *$2.newTy << " " << *$3.val << ", "
|
||||
<< *$5.newTy << " " << *$6.val << " [" << *$8 << " ]\n";
|
||||
*O << " " << *$1 << ' ' << *$2.newTy << ' ' << *$3.val << ", "
|
||||
<< *$5.newTy << ' ' << *$6.val << " [" << *$8 << " ]\n";
|
||||
delete $1; $2.destroy(); $3.destroy(); $5.destroy(); $6.destroy();
|
||||
delete $8;
|
||||
$$ = 0;
|
||||
}
|
||||
| SWITCH IntType ValueRef ',' LABEL ValueRef '[' ']' {
|
||||
*O << " " << *$1 << " " << *$2.newTy << " " << *$3.val << ", "
|
||||
<< *$5.newTy << " " << *$6.val << "[]\n";
|
||||
*O << " " << *$1 << ' ' << *$2.newTy << ' ' << *$3.val << ", "
|
||||
<< *$5.newTy << ' ' << *$6.val << "[]\n";
|
||||
delete $1; $2.destroy(); $3.destroy(); $5.destroy(); $6.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
@ -1094,7 +1116,7 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result...
|
||||
*O << " ";
|
||||
if (!$1->empty())
|
||||
*O << *$1 << " = ";
|
||||
*O << *$2 << " " << *$3 << " " << *$4.newTy << " " << *$5.val << " (";
|
||||
*O << *$2 << ' ' << *$3 << ' ' << *$4.newTy << ' ' << *$5.val << " (";
|
||||
for (unsigned i = 0; i < $7->size(); ++i) {
|
||||
ValueInfo& VI = (*$7)[i];
|
||||
*O << *VI.val;
|
||||
@ -1102,20 +1124,20 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result...
|
||||
*O << ", ";
|
||||
VI.destroy();
|
||||
}
|
||||
*O << ") " << *$9 << " " << *$10.newTy << " " << *$11.val << " "
|
||||
<< *$12 << " " << *$13.newTy << " " << *$14.val << "\n";
|
||||
*O << ") " << *$9 << ' ' << *$10.newTy << ' ' << *$11.val << ' '
|
||||
<< *$12 << ' ' << *$13.newTy << ' ' << *$14.val << '\n';
|
||||
delete $1; delete $2; delete $3; $4.destroy(); $5.destroy(); delete $7;
|
||||
delete $9; $10.destroy(); $11.destroy(); delete $12; $13.destroy();
|
||||
$14.destroy();
|
||||
$$ = 0;
|
||||
}
|
||||
| Unwind {
|
||||
*O << " " << *$1 << "\n";
|
||||
*O << " " << *$1 << '\n';
|
||||
delete $1;
|
||||
$$ = 0;
|
||||
}
|
||||
| UNREACHABLE {
|
||||
*O << " " << *$1 << "\n";
|
||||
*O << " " << *$1 << '\n';
|
||||
delete $1;
|
||||
$$ = 0;
|
||||
};
|
||||
@ -1198,13 +1220,13 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef {
|
||||
$2.destroy(); $3.destroy(); $5.destroy();
|
||||
$$ = $1;
|
||||
}
|
||||
| ICMP IPredicates Types ValueRef ',' ValueRef ')' {
|
||||
*$1 += " " + *$2 + " " + *$4.val + "," + *$6.val + ")";
|
||||
| ICMP IPredicates Types ValueRef ',' ValueRef {
|
||||
*$1 += " " + *$2 + " " + *$3.newTy + " " + *$4.val + "," + *$6.val;
|
||||
delete $2; $4.destroy(); $6.destroy();
|
||||
$$ = $1;
|
||||
}
|
||||
| FCMP FPredicates Types ValueRef ',' ValueRef ')' {
|
||||
*$1 += " " + *$2 + " " + *$4.val + "," + *$6.val + ")";
|
||||
| FCMP FPredicates Types ValueRef ',' ValueRef {
|
||||
*$1 += " " + *$2 + " " + *$3.newTy + " " + *$4.val + "," + *$6.val;
|
||||
delete $2; $4.destroy(); $6.destroy();
|
||||
$$ = $1;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user