From jlaskey at apple.com Mon Dec 4 03:36:50 2006 From: jlaskey at apple.com (Jim Laskey) Date: Mon, 4 Dec 2006 03:36:50 -0600 Subject: [llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php Message-ID: <200612040936.kB49aoCU016315@zion.cs.uiuc.edu> Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.60 -> 1.61 --- Log message: Hack link until log path fixed. --- Diffs of the changes: (+1 -1) NightlyTestAccept.php | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.60 nightlytest-serverside/NightlyTestAccept.php:1.61 --- nightlytest-serverside/NightlyTestAccept.php:1.60 Wed Oct 18 14:26:22 2006 +++ nightlytest-serverside/NightlyTestAccept.php Mon Dec 4 03:36:35 2006 @@ -933,7 +933,7 @@ } else{ $email .= "\nBuildlog available at http://llvm.org/nightlytest/". - "machines/$machine_id/$db_date-Build-Log.txt\n"; + "machines/$db_date-Build-Log.txt\n"; } $email_addr = "llvm-testresults\@cs.uiuc.edu"; From llvm at cs.uiuc.edu Mon Dec 4 04:50:47 2006 From: llvm at cs.uiuc.edu (LLVM) Date: Mon, 4 Dec 2006 04:50:47 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/Generic/DebugStuff.ll Message-ID: <200612041050.kB4Aolp5017874@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/Generic: DebugStuff.ll (r1.6) removed --- Log message: Duplicate of Regression/Debugger/funccall.ll. --- Diffs of the changes: (+0 -0) 0 files changed From llvm at cs.uiuc.edu Mon Dec 4 06:21:52 2006 From: llvm at cs.uiuc.edu (LLVM) Date: Mon, 4 Dec 2006 06:21:52 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Debugger/.cvsignore dg.exp funccall.c funccall.ll Message-ID: <200612041221.kB4CLqwE019381@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Debugger: .cvsignore (r1.1) removed dg.exp (r1.3) removed funccall.c (r1.4) removed funccall.ll (r1.15) removed --- Log message: Moving to DebugInfo. --- Diffs of the changes: (+0 -0) 0 files changed From jlaskey at apple.com Mon Dec 4 06:23:32 2006 From: jlaskey at apple.com (Jim Laskey) Date: Mon, 4 Dec 2006 06:23:32 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/DebugInfo/funccall.c funccall.ll Message-ID: <200612041223.kB4CNWvi019421@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/DebugInfo: funccall.c added (r1.1) funccall.ll added (r1.1) --- Log message: Fixed to use current debug info. --- Diffs of the changes: (+183 -0) funccall.c | 17 ++++++ funccall.ll | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) Index: llvm/test/Regression/DebugInfo/funccall.c diff -c /dev/null llvm/test/Regression/DebugInfo/funccall.c:1.1 *** /dev/null Mon Dec 4 06:23:27 2006 --- llvm/test/Regression/DebugInfo/funccall.c Mon Dec 4 06:23:17 2006 *************** *** 0 **** --- 1,17 ---- + + static int q; + + void foo() { + int t = q; + q = t + 1; + } + int main() { + q = 0; + foo(); + q = q - 1; + + return q; + } + + // This is the source that corresponds to funccall.ll + // RUN: echo foo Index: llvm/test/Regression/DebugInfo/funccall.ll diff -c /dev/null llvm/test/Regression/DebugInfo/funccall.ll:1.1 *** /dev/null Mon Dec 4 06:23:32 2006 --- llvm/test/Regression/DebugInfo/funccall.ll Mon Dec 4 06:23:17 2006 *************** *** 0 **** --- 1,166 ---- + ;; RUN: llvm-as < %s | llc + + ;; Debugger type declarations + %llvm.dbg.anchor.type = type { uint, uint } + %llvm.dbg.basictype.type = type { uint, { }*, sbyte*, { }*, uint, ulong, ulong, ulong, uint, uint } + %llvm.dbg.compile_unit.type = type { uint, { }*, uint, sbyte*, sbyte*, sbyte* } + %llvm.dbg.global_variable.type = type { uint, { }*, { }*, sbyte*, sbyte*, sbyte*, { }*, uint, { }*, bool, bool, { }* } + %llvm.dbg.subprogram.type = type { uint, { }*, { }*, sbyte*, sbyte*, sbyte*, { }*, uint, { }*, bool, bool } + %llvm.dbg.variable.type = type { uint, { }*, sbyte*, { }*, uint, { }* } + + ;; Debugger intrinsic declarations... + declare void %llvm.dbg.func.start({ }*) + declare void %llvm.dbg.stoppoint(uint, uint, { }*) + declare void %llvm.dbg.declare({ }*, { }*) + declare void %llvm.dbg.region.start({ }*) + declare void %llvm.dbg.region.end({ }*) + + ;; Debugger anchors + %llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { + uint 393216, ;; DW_TAG_anchor | version(6) + uint 46 }, section "llvm.metadata" ;; DW_TAG_subprogram + %llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { + uint 393216, ;; DW_TAG_anchor | version(6) + uint 17 }, section "llvm.metadata" ;; DW_TAG_compile_unit + %llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { + uint 393216, ;; DW_TAG_anchor | version(6) + uint 52 }, section "llvm.metadata" ;; DW_TAG_variable + + ;; Debug info + %llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { + uint 393262, ;; DW_TAG_subprogram | version(6) + { }* bitcast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to { }*), ;; Anchor + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Context + sbyte* getelementptr ([4 x sbyte]* %str, int 0, int 0), ;; Name + sbyte* getelementptr ([4 x sbyte]* %str, int 0, int 0), ;; Fully quanlified name + sbyte* null, ;; Linkage name + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Compile unit + uint 4, ;; Line number + { }* null, ;; Type descriptor + bool false, ;; Static? + bool true }, section "llvm.metadata" ;; External? + %str = internal constant [4 x sbyte] c"foo\00", section "llvm.metadata" + + %llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { + uint 393233, ;; DW_TAG_compile_unit | version(6) + { }* bitcast (%llvm.dbg.anchor.type* %llvm.dbg.compile_units to { }*), ;; Anchor + uint 1, ;; Language + sbyte* getelementptr ([11 x sbyte]* %str, int 0, int 0), ;; Source file + sbyte* getelementptr ([50 x sbyte]* %str, int 0, int 0), ;; Source file directory + sbyte* getelementptr ([45 x sbyte]* %str, int 0, int 0) }, section "llvm.metadata" ;; Produceer + %str = internal constant [11 x sbyte] c"funccall.c\00", section "llvm.metadata" + %str = internal constant [50 x sbyte] c"/Volumes/Big2/llvm/llvm/test/Regression/Debugger/\00", section "llvm.metadata" + %str = internal constant [45 x sbyte] c"4.0.1 LLVM (Apple Computer, Inc. build 5421)\00", section "llvm.metadata" + + %llvm.dbg.variable = internal constant %llvm.dbg.variable.type { + uint 393472, ;; DW_TAG_auto_variable | version(6) + { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram to { }*), ;; Context + sbyte* getelementptr ([2 x sbyte]* %str, int 0, int 0), ;; Name + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Compile unit + uint 5, ;; Line number + { }* bitcast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to { }*) }, section "llvm.metadata" ;; Type + %str = internal constant [2 x sbyte] c"t\00", section "llvm.metadata" + + %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { + uint 393252, ;; DW_TAG_base_type | version(6) + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Context + sbyte* getelementptr ([4 x sbyte]* %str1, int 0, int 0), ;; Name + { }* null, ;; Compile Unit + uint 0, ;; Line number + ulong 32, ;; Size in bits + ulong 32, ;; Align in bits + ulong 0, ;; Offset in bits + uint 0, ;; Flags + uint 5 }, section "llvm.metadata" ;; Basic type encoding + %str1 = internal constant [4 x sbyte] c"int\00", section "llvm.metadata" + + %llvm.dbg.subprogram2 = internal constant %llvm.dbg.subprogram.type { + uint 393262, ;; DW_TAG_subprogram | version(6) + { }* bitcast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to { }*), ;; Anchor + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Context + sbyte* getelementptr ([5 x sbyte]* %str, int 0, int 0), ;; Name + sbyte* getelementptr ([5 x sbyte]* %str, int 0, int 0), ;; Fully quanlified name + sbyte* null, ;; Linkage name + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Compile unit + uint 8, ;; Line number + { }* bitcast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to { }*), ;; Type descriptor + bool false, ;; Static? + bool true }, section "llvm.metadata" ;; External? + %str = internal constant [5 x sbyte] c"main\00", section "llvm.metadata" + + %llvm.dbg.variable3 = internal constant %llvm.dbg.variable.type { + uint 393474, ;; DW_TAG_return_variable | version(6) + { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram2 to { }*), ;; Context + sbyte* getelementptr ([7 x sbyte]* %str, int 0, int 0), ;; Name + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Compile unit + uint 8, ;; Line number + { }* bitcast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to { }*) }, section "llvm.metadata" ;; Type + %str = internal constant [7 x sbyte] c"retval\00", section "llvm.metadata" + + %llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type { + uint 393268, ;; DW_TAG_variable | version(6) + { }* bitcast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to { }*), ;; Anchor + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Context + sbyte* getelementptr ([2 x sbyte]* %str4, int 0, int 0), ;; Name + sbyte* getelementptr ([2 x sbyte]* %str4, int 0, int 0), ;; Fully qualified name + sbyte* null, ;; Linkage name + { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*),;; Compile unit + uint 2, ;; Line number + { }* bitcast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to { }*), ;; Type + bool true, ;; Static? + bool true, ;; External? + { }* bitcast (int* %q to { }*) }, section "llvm.metadata" ;; Variable + %str4 = internal constant [2 x sbyte] c"q\00", section "llvm.metadata" + + ;; Global + %q = internal global int 0 + + implementation + + void %foo() { + entry: + %t = alloca int, align 4 + "alloca point" = bitcast int 0 to int + call void %llvm.dbg.func.start( { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram to { }*) ) + call void %llvm.dbg.stoppoint( uint 4, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %t = bitcast int* %t to { }* + call void %llvm.dbg.declare( { }* %t, { }* bitcast (%llvm.dbg.variable.type* %llvm.dbg.variable to { }*) ) + call void %llvm.dbg.stoppoint( uint 5, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %tmp = load int* %q + store int %tmp, int* %t + call void %llvm.dbg.stoppoint( uint 6, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %tmp1 = load int* %t + %tmp2 = add int %tmp1, 1 + store int %tmp2, int* %q + call void %llvm.dbg.stoppoint( uint 7, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + call void %llvm.dbg.region.end( { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram to { }*) ) + ret void + } + + int %main() { + entry: + %retval = alloca int, align 4 + %tmp = alloca int, align 4 + "alloca point" = bitcast int 0 to int + call void %llvm.dbg.func.start( { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram2 to { }*) ) + call void %llvm.dbg.stoppoint( uint 8, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %retval = bitcast int* %retval to { }* + call void %llvm.dbg.declare( { }* %retval, { }* bitcast (%llvm.dbg.variable.type* %llvm.dbg.variable3 to { }*) ) + call void %llvm.dbg.stoppoint( uint 9, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + store int 0, int* %q + call void %llvm.dbg.stoppoint( uint 10, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + call void (...)* bitcast (void ()* %foo to void (...)*)( ) + call void %llvm.dbg.stoppoint( uint 11, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %tmp = load int* %q + %tmp1 = sub int %tmp, 1 + store int %tmp1, int* %q + call void %llvm.dbg.stoppoint( uint 13, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + %tmp2 = load int* %q + store int %tmp2, int* %tmp + %tmp3 = load int* %tmp + store int %tmp3, int* %retval + %retval = load int* %retval + call void %llvm.dbg.stoppoint( uint 14, uint 0, { }* bitcast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*) ) + call void %llvm.dbg.region.end( { }* bitcast (%llvm.dbg.subprogram.type* %llvm.dbg.subprogram2 to { }*) ) + ret int %retval + } From reid at x10sys.com Mon Dec 4 09:41:51 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 09:41:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.cpp.cvs UpgradeParser.h UpgradeParser.h.cvs Message-ID: <200612041541.kB4FfpNp022715@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.cpp updated: 1.17 -> 1.18 UpgradeParser.cpp.cvs updated: 1.17 -> 1.18 UpgradeParser.h updated: 1.12 -> 1.13 UpgradeParser.h.cvs updated: 1.12 -> 1.13 --- Log message: Regenerate. --- Diffs of the changes: (+324 -324) UpgradeParser.cpp | 322 +++++++++++++++++++++++++------------------------- UpgradeParser.cpp.cvs | 322 +++++++++++++++++++++++++------------------------- UpgradeParser.h | 2 UpgradeParser.h.cvs | 2 4 files changed, 324 insertions(+), 324 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.17 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.18 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.17 Sun Dec 3 01:10:26 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Mon Dec 4 09:41:36 2006 @@ -368,7 +368,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -641,7 +641,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -2392,26 +2392,26 @@ switch (yyn) { case 81: -#line 357 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 360 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 367 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 372 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2420,27 +2420,27 @@ break; case 98: -#line 377 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 382 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 382 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 383 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 387 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2450,7 +2450,7 @@ break; case 103: -#line 395 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 395 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2459,17 +2459,17 @@ break; case 104: -#line 401 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 401 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 405 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 406 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2480,7 +2480,7 @@ break; case 109: -#line 416 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2489,7 +2489,7 @@ break; case 127: -#line 438 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 438 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2497,7 +2497,7 @@ break; case 128: -#line 442 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 442 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2505,14 +2505,14 @@ break; case 129: -#line 446 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 446 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 449 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2521,7 +2521,7 @@ break; case 131: -#line 454 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 454 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2531,7 +2531,7 @@ break; case 132: -#line 460 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 460 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2543,7 +2543,7 @@ break; case 133: -#line 468 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2555,7 +2555,7 @@ break; case 134: -#line 476 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2565,7 +2565,7 @@ break; case 135: -#line 482 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2573,7 +2573,7 @@ break; case 136: -#line 486 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 486 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2583,14 +2583,14 @@ break; case 137: -#line 497 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 500 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 500 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2599,7 +2599,7 @@ break; case 140: -#line 509 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 509 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2608,21 +2608,21 @@ break; case 141: -#line 514 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 517 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 517 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 527 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 527 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2632,7 +2632,7 @@ break; case 144: -#line 533 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 533 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2641,7 +2641,7 @@ break; case 145: -#line 538 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 538 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2651,7 +2651,7 @@ break; case 146: -#line 544 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2661,7 +2661,7 @@ break; case 147: -#line 550 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2671,7 +2671,7 @@ break; case 148: -#line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 556 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2680,7 +2680,7 @@ break; case 149: -#line 561 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 561 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2690,7 +2690,7 @@ break; case 150: -#line 567 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2700,7 +2700,7 @@ break; case 151: -#line 573 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2710,7 +2710,7 @@ break; case 152: -#line 579 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2720,7 +2720,7 @@ break; case 153: -#line 585 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2730,7 +2730,7 @@ break; case 154: -#line 591 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 591 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2740,7 +2740,7 @@ break; case 155: -#line 597 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 597 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2750,7 +2750,7 @@ break; case 156: -#line 603 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 603 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2760,7 +2760,7 @@ break; case 157: -#line 609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 609 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2770,7 +2770,7 @@ break; case 158: -#line 615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2780,7 +2780,7 @@ break; case 159: -#line 623 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2798,7 +2798,7 @@ break; case 160: -#line 637 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2814,7 +2814,7 @@ break; case 161: -#line 649 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 649 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2823,7 +2823,7 @@ break; case 162: -#line 654 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 654 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2833,7 +2833,7 @@ break; case 163: -#line 660 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 660 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2842,7 +2842,7 @@ break; case 164: -#line 665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2854,7 +2854,7 @@ break; case 165: -#line 673 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2863,7 +2863,7 @@ break; case 166: -#line 678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2872,7 +2872,7 @@ break; case 167: -#line 683 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2884,7 +2884,7 @@ break; case 168: -#line 691 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2893,7 +2893,7 @@ break; case 169: -#line 696 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2902,7 +2902,7 @@ break; case 170: -#line 701 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 701 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2911,7 +2911,7 @@ break; case 171: -#line 711 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 711 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2920,25 +2920,25 @@ break; case 172: -#line 716 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 731 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 736 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 739 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2947,7 +2947,7 @@ break; case 178: -#line 744 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 744 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2955,7 +2955,7 @@ break; case 179: -#line 748 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2963,17 +2963,17 @@ break; case 180: -#line 752 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 754 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 757 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2989,7 +2989,7 @@ break; case 184: -#line 769 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2998,7 +2998,7 @@ break; case 185: -#line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 774 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3007,7 +3007,7 @@ break; case 186: -#line 779 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3018,7 +3018,7 @@ break; case 187: -#line 786 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3029,7 +3029,7 @@ break; case 188: -#line 793 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3040,7 +3040,7 @@ break; case 189: -#line 800 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3051,7 +3051,7 @@ break; case 190: -#line 807 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3060,7 +3060,7 @@ break; case 191: -#line 812 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3069,14 +3069,14 @@ break; case 192: -#line 817 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 827 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3085,7 +3085,7 @@ break; case 197: -#line 832 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 832 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3096,7 +3096,7 @@ break; case 198: -#line 839 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 839 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3105,7 +3105,7 @@ break; case 199: -#line 844 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 844 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3114,7 @@ break; case 200: -#line 851 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 851 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3123,7 +3123,7 @@ break; case 201: -#line 858 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 858 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3132,19 +3132,19 @@ break; case 203: -#line 864 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 864 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 873 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 875 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3154,7 +3154,7 @@ break; case 209: -#line 882 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3162,21 +3162,21 @@ break; case 210: -#line 886 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 886 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 890 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 890 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 893 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 893 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3185,19 +3185,19 @@ break; case 213: -#line 898 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 898 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 901 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 901 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 904 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3219,17 +3219,17 @@ break; case 216: -#line 923 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 924 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 926 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3241,17 +3241,17 @@ break; case 219: -#line 935 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 936 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 938 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 938 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3261,12 +3261,12 @@ break; case 222: -#line 946 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 952 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3278,12 +3278,12 @@ break; case 226: -#line 965 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 971 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3292,7 +3292,7 @@ break; case 238: -#line 977 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 977 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3304,7 +3304,7 @@ break; case 241: -#line 990 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 990 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3314,7 +3314,7 @@ break; case 242: -#line 996 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3324,7 +3324,7 @@ break; case 243: -#line 1007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1007 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3333,28 +3333,28 @@ break; case 244: -#line 1013 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1013 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1016 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1024 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1028 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1028 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3363,14 +3363,14 @@ break; case 248: -#line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1036 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3379,12 +3379,12 @@ break; case 251: -#line 1042 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1044 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1044 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3393,7 +3393,7 @@ break; case 253: -#line 1049 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1049 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3402,7 +3402,7 @@ break; case 254: -#line 1054 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1054 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3411,7 +3411,7 @@ break; case 255: -#line 1059 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1059 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3423,7 +3423,7 @@ break; case 256: -#line 1067 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3434,7 +3434,7 @@ break; case 257: -#line 1074 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3444,7 +3444,7 @@ break; case 258: -#line 1081 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1081 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3467,7 +3467,7 @@ break; case 259: -#line 1100 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3476,7 +3476,7 @@ break; case 260: -#line 1105 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1105 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3485,7 @@ break; case 261: -#line 1111 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3494,7 +3494,7 @@ break; case 262: -#line 1116 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1116 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3504,7 +3504,7 @@ break; case 263: -#line 1124 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1124 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3515,7 +3515,7 @@ break; case 264: -#line 1133 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3526,7 +3526,7 @@ break; case 265: -#line 1140 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3535,7 +3535,7 @@ break; case 266: -#line 1148 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1148 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3543,7 +3543,7 @@ break; case 267: -#line 1152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1152 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3551,17 +3551,17 @@ break; case 268: -#line 1159 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1159 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1160 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1164 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3570,7 +3570,7 @@ break; case 272: -#line 1172 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3580,7 +3580,7 @@ break; case 273: -#line 1178 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1178 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3589,7 +3589,7 @@ break; case 274: -#line 1183 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3601,7 +3601,7 @@ break; case 275: -#line 1191 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3610,7 +3610,7 @@ break; case 276: -#line 1196 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3619,7 @@ break; case 277: -#line 1201 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3628,7 +3628,7 @@ break; case 278: -#line 1206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3640,7 +3640,7 @@ break; case 279: -#line 1214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3658,7 +3658,7 @@ break; case 280: -#line 1228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3667,7 +3667,7 @@ break; case 281: -#line 1233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3676,7 +3676,7 @@ break; case 282: -#line 1238 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3685,7 +3685,7 @@ break; case 283: -#line 1243 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3694,7 @@ break; case 284: -#line 1248 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3703,7 @@ break; case 285: -#line 1253 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3712,7 +3712,7 @@ break; case 286: -#line 1258 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3733,22 +3733,22 @@ break; case 288: -#line 1280 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1281 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1286 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1286 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1289 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3759,7 +3759,7 @@ break; case 293: -#line 1296 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3770,7 +3770,7 @@ break; case 294: -#line 1303 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3781,7 +3781,7 @@ break; case 295: -#line 1310 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3792,7 +3792,7 @@ break; case 296: -#line 1317 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3801,7 +3801,7 @@ break; case 297: -#line 1322 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3812,7 +3812,7 @@ break; case 298: -#line 1329 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1329 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3823,7 +3823,7 @@ break; case 299: -#line 1336 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -4122,7 +4122,7 @@ } -#line 1360 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.17 llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.18 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.17 Sun Dec 3 01:10:26 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs Mon Dec 4 09:41:36 2006 @@ -368,7 +368,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -641,7 +641,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -2392,26 +2392,26 @@ switch (yyn) { case 81: -#line 357 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 360 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 367 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 372 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2420,27 +2420,27 @@ break; case 98: -#line 377 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 382 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 382 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 383 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 387 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2450,7 +2450,7 @@ break; case 103: -#line 395 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 395 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2459,17 +2459,17 @@ break; case 104: -#line 401 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 401 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 405 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 406 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2480,7 +2480,7 @@ break; case 109: -#line 416 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2489,7 +2489,7 @@ break; case 127: -#line 438 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 438 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2497,7 +2497,7 @@ break; case 128: -#line 442 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 442 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2505,14 +2505,14 @@ break; case 129: -#line 446 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 446 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 449 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2521,7 +2521,7 @@ break; case 131: -#line 454 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 454 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2531,7 +2531,7 @@ break; case 132: -#line 460 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 460 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2543,7 +2543,7 @@ break; case 133: -#line 468 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2555,7 +2555,7 @@ break; case 134: -#line 476 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2565,7 +2565,7 @@ break; case 135: -#line 482 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2573,7 +2573,7 @@ break; case 136: -#line 486 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 486 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2583,14 +2583,14 @@ break; case 137: -#line 497 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 500 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 500 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2599,7 +2599,7 @@ break; case 140: -#line 509 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 509 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2608,21 +2608,21 @@ break; case 141: -#line 514 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 517 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 517 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 527 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 527 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2632,7 +2632,7 @@ break; case 144: -#line 533 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 533 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2641,7 +2641,7 @@ break; case 145: -#line 538 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 538 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2651,7 +2651,7 @@ break; case 146: -#line 544 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2661,7 +2661,7 @@ break; case 147: -#line 550 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2671,7 +2671,7 @@ break; case 148: -#line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 556 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2680,7 +2680,7 @@ break; case 149: -#line 561 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 561 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2690,7 +2690,7 @@ break; case 150: -#line 567 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2700,7 +2700,7 @@ break; case 151: -#line 573 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2710,7 +2710,7 @@ break; case 152: -#line 579 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2720,7 +2720,7 @@ break; case 153: -#line 585 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2730,7 +2730,7 @@ break; case 154: -#line 591 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 591 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2740,7 +2740,7 @@ break; case 155: -#line 597 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 597 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2750,7 +2750,7 @@ break; case 156: -#line 603 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 603 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2760,7 +2760,7 @@ break; case 157: -#line 609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 609 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2770,7 +2770,7 @@ break; case 158: -#line 615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2780,7 +2780,7 @@ break; case 159: -#line 623 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2798,7 +2798,7 @@ break; case 160: -#line 637 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2814,7 +2814,7 @@ break; case 161: -#line 649 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 649 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2823,7 +2823,7 @@ break; case 162: -#line 654 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 654 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2833,7 +2833,7 @@ break; case 163: -#line 660 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 660 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2842,7 +2842,7 @@ break; case 164: -#line 665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2854,7 +2854,7 @@ break; case 165: -#line 673 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2863,7 +2863,7 @@ break; case 166: -#line 678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2872,7 +2872,7 @@ break; case 167: -#line 683 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2884,7 +2884,7 @@ break; case 168: -#line 691 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2893,7 +2893,7 @@ break; case 169: -#line 696 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2902,7 +2902,7 @@ break; case 170: -#line 701 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 701 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2911,7 +2911,7 @@ break; case 171: -#line 711 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 711 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2920,25 +2920,25 @@ break; case 172: -#line 716 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 731 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 736 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 739 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2947,7 +2947,7 @@ break; case 178: -#line 744 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 744 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2955,7 +2955,7 @@ break; case 179: -#line 748 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2963,17 +2963,17 @@ break; case 180: -#line 752 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 754 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 757 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2989,7 +2989,7 @@ break; case 184: -#line 769 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2998,7 +2998,7 @@ break; case 185: -#line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 774 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3007,7 +3007,7 @@ break; case 186: -#line 779 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3018,7 +3018,7 @@ break; case 187: -#line 786 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3029,7 +3029,7 @@ break; case 188: -#line 793 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3040,7 +3040,7 @@ break; case 189: -#line 800 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) *O << *(yyvsp[-4].String) << " = "; @@ -3051,7 +3051,7 @@ break; case 190: -#line 807 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3060,7 +3060,7 @@ break; case 191: -#line 812 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3069,14 +3069,14 @@ break; case 192: -#line 817 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 827 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3085,7 +3085,7 @@ break; case 197: -#line 832 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 832 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3096,7 +3096,7 @@ break; case 198: -#line 839 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 839 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3105,7 +3105,7 @@ break; case 199: -#line 844 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 844 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3114,7 @@ break; case 200: -#line 851 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 851 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3123,7 +3123,7 @@ break; case 201: -#line 858 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 858 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3132,19 +3132,19 @@ break; case 203: -#line 864 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 864 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 873 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 875 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3154,7 +3154,7 @@ break; case 209: -#line 882 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3162,21 +3162,21 @@ break; case 210: -#line 886 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 886 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 890 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 890 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 893 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 893 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3185,19 +3185,19 @@ break; case 213: -#line 898 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 898 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 901 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 901 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 904 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3219,17 +3219,17 @@ break; case 216: -#line 923 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 924 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 926 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3241,17 +3241,17 @@ break; case 219: -#line 935 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 936 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 938 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 938 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3261,12 +3261,12 @@ break; case 222: -#line 946 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 952 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3278,12 +3278,12 @@ break; case 226: -#line 965 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 971 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3292,7 +3292,7 @@ break; case 238: -#line 977 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 977 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3304,7 +3304,7 @@ break; case 241: -#line 990 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 990 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3314,7 +3314,7 @@ break; case 242: -#line 996 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3324,7 +3324,7 @@ break; case 243: -#line 1007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1007 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3333,28 +3333,28 @@ break; case 244: -#line 1013 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1013 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1016 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1024 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1028 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1028 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3363,14 +3363,14 @@ break; case 248: -#line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1036 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3379,12 +3379,12 @@ break; case 251: -#line 1042 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1044 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1044 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3393,7 +3393,7 @@ break; case 253: -#line 1049 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1049 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3402,7 +3402,7 @@ break; case 254: -#line 1054 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1054 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3411,7 +3411,7 @@ break; case 255: -#line 1059 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1059 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3423,7 +3423,7 @@ break; case 256: -#line 1067 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3434,7 +3434,7 @@ break; case 257: -#line 1074 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3444,7 +3444,7 @@ break; case 258: -#line 1081 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1081 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3467,7 +3467,7 @@ break; case 259: -#line 1100 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3476,7 +3476,7 @@ break; case 260: -#line 1105 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1105 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3485,7 @@ break; case 261: -#line 1111 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3494,7 +3494,7 @@ break; case 262: -#line 1116 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1116 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3504,7 +3504,7 @@ break; case 263: -#line 1124 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1124 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3515,7 +3515,7 @@ break; case 264: -#line 1133 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3526,7 +3526,7 @@ break; case 265: -#line 1140 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3535,7 +3535,7 @@ break; case 266: -#line 1148 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1148 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3543,7 +3543,7 @@ break; case 267: -#line 1152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1152 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3551,17 +3551,17 @@ break; case 268: -#line 1159 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1159 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1160 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1164 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3570,7 +3570,7 @@ break; case 272: -#line 1172 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3580,7 +3580,7 @@ break; case 273: -#line 1178 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1178 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3589,7 +3589,7 @@ break; case 274: -#line 1183 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3601,7 +3601,7 @@ break; case 275: -#line 1191 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3610,7 +3610,7 @@ break; case 276: -#line 1196 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3619,7 @@ break; case 277: -#line 1201 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3628,7 +3628,7 @@ break; case 278: -#line 1206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3640,7 +3640,7 @@ break; case 279: -#line 1214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3658,7 +3658,7 @@ break; case 280: -#line 1228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3667,7 +3667,7 @@ break; case 281: -#line 1233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3676,7 +3676,7 @@ break; case 282: -#line 1238 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3685,7 +3685,7 @@ break; case 283: -#line 1243 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3694,7 @@ break; case 284: -#line 1248 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3703,7 @@ break; case 285: -#line 1253 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3712,7 +3712,7 @@ break; case 286: -#line 1258 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3733,22 +3733,22 @@ break; case 288: -#line 1280 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1281 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1286 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1286 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1289 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3759,7 +3759,7 @@ break; case 293: -#line 1296 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3770,7 +3770,7 @@ break; case 294: -#line 1303 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3781,7 +3781,7 @@ break; case 295: -#line 1310 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3792,7 +3792,7 @@ break; case 296: -#line 1317 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3801,7 +3801,7 @@ break; case 297: -#line 1322 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3812,7 +3812,7 @@ break; case 298: -#line 1329 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1329 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3823,7 +3823,7 @@ break; case 299: -#line 1336 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -4122,7 +4122,7 @@ } -#line 1360 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 1360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.h diff -u llvm/tools/llvm-upgrade/UpgradeParser.h:1.12 llvm/tools/llvm-upgrade/UpgradeParser.h:1.13 --- llvm/tools/llvm-upgrade/UpgradeParser.h:1.12 Sat Dec 2 21:16:48 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h Mon Dec 4 09:41:36 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; Index: llvm/tools/llvm-upgrade/UpgradeParser.h.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.12 llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.13 --- llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.12 Sat Dec 2 21:16:48 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h.cvs Mon Dec 4 09:41:36 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y" +#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; From reid at x10sys.com Mon Dec 4 11:04:59 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 11:04:59 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolutionExpander.cpp Message-ID: <200612041704.kB4H4xgp024210@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ScalarEvolutionExpander.cpp updated: 1.6 -> 1.7 --- Log message: Fix 80 cols violation --- Diffs of the changes: (+3 -2) ScalarEvolutionExpander.cpp | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: llvm/lib/Analysis/ScalarEvolutionExpander.cpp diff -u llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.6 llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.7 --- llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.6 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/ScalarEvolutionExpander.cpp Mon Dec 4 11:04:44 2006 @@ -15,6 +15,7 @@ #include "llvm/Analysis/LoopInfo.h" #include "llvm/Analysis/ScalarEvolutionExpander.h" + using namespace llvm; /// InsertCastOfTo - Insert a cast of V to the specified type, doing what @@ -38,8 +39,8 @@ return CI; } } - return CastInst::createInferredCast(V, Ty, V->getName(), - A->getParent()->getEntryBlock().begin()); + return CastInst::createInferredCast( + V, Ty, V->getName(), A->getParent()->getEntryBlock().begin()); } Instruction *I = cast(V); From reid at x10sys.com Mon Dec 4 11:05:57 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 11:05:57 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp Message-ID: <200612041705.kB4H5v2i024246@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ScalarEvolution.cpp updated: 1.61 -> 1.62 --- Log message: Fix inferred casts. --- Diffs of the changes: (+9 -6) ScalarEvolution.cpp | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.61 llvm/lib/Analysis/ScalarEvolution.cpp:1.62 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.61 Fri Dec 1 20:22:01 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Mon Dec 4 11:05:42 2006 @@ -178,7 +178,8 @@ // Make sure that SCEVConstant instances are all unsigned. if (V->getType()->isSigned()) { const Type *NewTy = V->getType()->getUnsignedVersion(); - V = cast(ConstantExpr::getCast(V, NewTy)); + V = cast( + ConstantExpr::getInferredCast(V, false, NewTy, false)); } SCEVConstant *&R = (*SCEVConstants)[V]; @@ -465,7 +466,7 @@ C = ConstantInt::get(Ty, Val); else { C = ConstantInt::get(Ty->getSignedVersion(), Val); - C = ConstantExpr::getCast(C, Ty); + C = ConstantExpr::getInferredCast(C, true, Ty, false); } return SCEVUnknown::get(C); } @@ -511,7 +512,8 @@ for (; NumSteps; --NumSteps) Result *= Val-(NumSteps-1); Constant *Res = ConstantInt::get(Type::ULongTy, Result); - return SCEVUnknown::get(ConstantExpr::getCast(Res, V->getType())); + return SCEVUnknown::get( + ConstantExpr::getInferredCast(Res, false, V->getType(), true)); } const Type *Ty = V->getType(); @@ -996,10 +998,11 @@ Constant *LHSCV = LHSC->getValue(); Constant *RHSCV = RHSC->getValue(); if (LHSCV->getType()->isUnsigned()) - LHSCV = ConstantExpr::getCast(LHSCV, - LHSCV->getType()->getSignedVersion()); + LHSCV = ConstantExpr::getInferredCast( + LHSCV, false, LHSCV->getType()->getSignedVersion(), true); if (RHSCV->getType()->isUnsigned()) - RHSCV = ConstantExpr::getCast(RHSCV, LHSCV->getType()); + RHSCV = ConstantExpr::getInferredCast( + RHSCV, false, LHSCV->getType(), true); return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); } } From jlaskey at apple.com Mon Dec 4 11:06:29 2006 From: jlaskey at apple.com (Jim Laskey) Date: Mon, 4 Dec 2006 11:06:29 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll Message-ID: <200612041706.kB4H6TfD024265@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/ADCE: 2005-02-17-PHI-Invoke-Crash.ll updated: 1.2 -> 1.3 --- Log message: Remove debug info. --- Diffs of the changes: (+0 -5) 2005-02-17-PHI-Invoke-Crash.ll | 5 ----- 1 files changed, 5 deletions(-) Index: llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll diff -u llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll:1.2 llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll:1.3 --- llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll:1.2 Fri Dec 1 22:23:08 2006 +++ llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll Mon Dec 4 11:06:15 2006 @@ -2,12 +2,8 @@ implementation ; Functions: -declare { }* %llvm.dbg.region.end({ }*) - declare void %strlen() - declare void %_ZN10QByteArray6resizeEi() - declare void %q_atomic_decrement() void %_ZNK10QByteArray13leftJustifiedEicb() { @@ -44,6 +40,5 @@ terminate: ; preds = %invoke_catch.1, %invoke_catch.0 %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=1] - %dbg.tmp.43 = call { }* %llvm.dbg.region.end( { }* %dbg.0.1 ) ; <{ }*> [#uses=0] unreachable } From evan.cheng at apple.com Mon Dec 4 12:06:38 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Mon, 4 Dec 2006 12:06:38 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/x86-64-mem.ll Message-ID: <200612041806.kB4I6cUT025773@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: x86-64-mem.ll updated: 1.2 -> 1.3 --- Log message: Fix test. --- Diffs of the changes: (+8 -8) x86-64-mem.ll | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Index: llvm/test/Regression/CodeGen/X86/x86-64-mem.ll diff -u llvm/test/Regression/CodeGen/X86/x86-64-mem.ll:1.2 llvm/test/Regression/CodeGen/X86/x86-64-mem.ll:1.3 --- llvm/test/Regression/CodeGen/X86/x86-64-mem.ll:1.2 Fri Dec 1 22:23:08 2006 +++ llvm/test/Regression/CodeGen/X86/x86-64-mem.ll Mon Dec 4 12:06:24 2006 @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 | grep GOTPCREL | wc -l | grep 4 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 | grep rip | wc -l | grep 6 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 | grep movq | wc -l | grep 6 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 | grep leaq | wc -l | grep 1 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 -relocation-model=static | grep rip | wc -l | grep 4 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 -relocation-model=static | grep movl | wc -l | grep 2 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86-64 -relocation-model=static | grep movq | wc -l | grep 2 +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin | grep GOTPCREL | wc -l | grep 4 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin | grep rip | wc -l | grep 6 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin | grep movq | wc -l | grep 6 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin | grep leaq | wc -l | grep 1 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin -relocation-model=static | grep rip | wc -l | grep 4 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin -relocation-model=static | grep movl | wc -l | grep 2 && +; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=x86_64-apple-darwin -relocation-model=static | grep movq | wc -l | grep 2 %ptr = external global int* %src = external global [0 x int] From clattner at apple.com Mon Dec 4 12:22:47 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 10:22:47 -0800 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp In-Reply-To: <200612040248.kB42mFsf000454@zion.cs.uiuc.edu> References: <200612040248.kB42mFsf000454@zion.cs.uiuc.edu> Message-ID: <79661CC3-1DEA-4509-850C-A40260A3349E@apple.com> > Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp > diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.557 > llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.558 > --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.557 Fri > Dec 1 18:13:08 2006 > +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sun Dec 3 > 20:48:01 2006 > @@ -388,7 +388,8 @@ > > // If this is another cast that can be eliminated, it isn't > codegen either. > if (const CastInst *CI = dyn_cast(V)) > - if (isEliminableCastPair(CI, CastInst::getCastOpcode(V, Ty), > Ty, TD)) > + if (isEliminableCastPair(CI, CastInst::getCastOpcode( > + V, V->getType()->isSigned(), Ty, Ty->isSigned()), Ty, > TD)) > return false; > return true; > } Won't this miscompile stuff like: %B = zext sbyte %A to ushort %C = zext ushort %B to uint into a sext? -Chris From reid at x10sys.com Mon Dec 4 12:25:11 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 12:25:11 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll Message-ID: <200612041825.kB4IPBo4026313@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: 2006-12-04-X86-64-Bitcast.ll added (r1.1) --- Log message: Test case for PR1033: http://llvm.org/PR1033 , x86-64 code gen fails on bitcast. --- Diffs of the changes: (+12 -0) 2006-12-04-X86-64-Bitcast.ll | 12 ++++++++++++ 1 files changed, 12 insertions(+) Index: llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll:1.1 *** /dev/null Mon Dec 4 12:25:06 2006 --- llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll Mon Dec 4 12:24:56 2006 *************** *** 0 **** --- 1,12 ---- + ; PR1033 + ; RUN: llvm-as < %s | llc -march=x86-64 + long %p(double %t) { + %u = bitcast double %t to long + ret long %u + } + + double %q(long %t) { + %u = bitcast long %t to double + ret double %u + } + From clattner at apple.com Mon Dec 4 12:29:32 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 10:29:32 -0800 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html In-Reply-To: <200612031654.kB3Gs313024917@zion.cs.uiuc.edu> References: <200612031654.kB3Gs313024917@zion.cs.uiuc.edu> Message-ID: > Index: llvm/docs/LangRef.html > diff -u llvm/docs/LangRef.html:1.174 llvm/docs/LangRef.html:1.175 > --- llvm/docs/LangRef.html:1.174 Mon Nov 27 15:53:28 2006 > +++ llvm/docs/LangRef.html Sun Dec 3 10:53:48 2006 > @@ -2491,9 +2491,9 @@ > provided depend on the type of the first pointer argument. The > 'getelementptr' instruction is used to index down through > the type > levels of a structure or to a specific index in an array. When > indexing into a > -structure, only uint > -integer constants are allowed. When indexing into an array or > pointer, > -int and long and ulong indexes are > allowed.

> +structure, only uint integer constants are allowed. When > indexing > +into an array or pointer, integers of any size are allowed, and > will be sign > +extended to 64-bit values.

I thought only 32- and 64-bit integers were allowed? >

For example, let's consider a C code fragment and how it gets > compiled to LLVM:

> @@ -2534,9 +2534,10 @@ > >

The index types specified for the 'getelementptr' > instruction depend > on the pointer type that is being indexed into. href="#t_pointer">Pointer > -and array types require int, > -ulong, or long values, and href="#t_struct">structure > -types require uint constants.

> +and array types can use any > +integer type but the value will always be > sign extended > +to 64-bits. Likewise. Also, please add 'packed' to the list. Thanks, -Chris From reid at x10sys.com Mon Dec 4 12:33:02 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 04 Dec 2006 10:33:02 -0800 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp In-Reply-To: <79661CC3-1DEA-4509-850C-A40260A3349E@apple.com> References: <200612040248.kB42mFsf000454@zion.cs.uiuc.edu> <79661CC3-1DEA-4509-850C-A40260A3349E@apple.com> Message-ID: <1165257182.26545.65.camel@bashful.x10sys.com> On Mon, 2006-12-04 at 10:22 -0800, Chris Lattner wrote: > > // If this is another cast that can be eliminated, it isn't > > codegen either. > > if (const CastInst *CI = dyn_cast(V)) > > - if (isEliminableCastPair(CI, CastInst::getCastOpcode(V, Ty), > > Ty, TD)) > > + if (isEliminableCastPair(CI, CastInst::getCastOpcode( > > + V, V->getType()->isSigned(), Ty, Ty->isSigned()), Ty, > > TD)) > > return false; > > return true; > > } > > Won't this miscompile stuff like: > > %B = zext sbyte %A to ushort > %C = zext ushort %B to uint > > into a sext? No. This patch doesn't change anything. The only reason for this change is the change in signature for getCastOpcode. See the corresponding change in getCastOpcode. This passed everything on Linux last night before I committed it. Reid. > > -Chris > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061204/4eafd3eb/attachment.bin From clattner at apple.com Mon Dec 4 12:35:20 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 10:35:20 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: <200612041705.kB4H5v2i024246@zion.cs.uiuc.edu> References: <200612041705.kB4H5v2i024246@zion.cs.uiuc.edu> Message-ID: Reid, I don't like this series of patches. You're replacing one evil with another. Please endeavor to figure out what type of cast is actually needed and put it in, rather than changing one sort of inferred cast into another. > Index: llvm/lib/Analysis/ScalarEvolution.cpp > diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.61 llvm/lib/ > Analysis/ScalarEvolution.cpp:1.62 > --- llvm/lib/Analysis/ScalarEvolution.cpp:1.61 Fri Dec 1 20:22:01 > 2006 > +++ llvm/lib/Analysis/ScalarEvolution.cpp Mon Dec 4 11:05:42 2006 > @@ -178,7 +178,8 @@ > // Make sure that SCEVConstant instances are all unsigned. > if (V->getType()->isSigned()) { > const Type *NewTy = V->getType()->getUnsignedVersion(); > - V = cast(ConstantExpr::getCast(V, NewTy)); > + V = cast( > + ConstantExpr::getInferredCast(V, false, NewTy, false)); > } This is always a bitcast. > SCEVConstant *&R = (*SCEVConstants)[V]; > @@ -465,7 +466,7 @@ > C = ConstantInt::get(Ty, Val); > else { > C = ConstantInt::get(Ty->getSignedVersion(), Val); > - C = ConstantExpr::getCast(C, Ty); > + C = ConstantExpr::getInferredCast(C, true, Ty, false); With your constantint changes, you can just replace: else if (Ty->isSigned()) C = ConstantInt::get(Ty, Val); else { C = ConstantInt::get(Ty->getSignedVersion(), Val); C = ConstantExpr::getInferredCast(C, true, Ty, false); } with: else C = ConstantInt::get(Ty, Val); Even if you kept the cast (which you shouldn't), it is always a bitcast. > @@ -511,7 +512,8 @@ > for (; NumSteps; --NumSteps) > Result *= Val-(NumSteps-1); > Constant *Res = ConstantInt::get(Type::ULongTy, Result); > - return SCEVUnknown::get(ConstantExpr::getCast(Res, V->getType > ())); > + return SCEVUnknown::get( > + ConstantExpr::getInferredCast(Res, false, V->getType(), > true)); I'd rather this be written as: if (V->getType() != Type::ULongTy) Res = ConstantExpr::getCast(Truncate, Res, V->getType()); return Res; > } > > const Type *Ty = V->getType(); > @@ -996,10 +998,11 @@ > Constant *LHSCV = LHSC->getValue(); > Constant *RHSCV = RHSC->getValue(); > if (LHSCV->getType()->isUnsigned()) > - LHSCV = ConstantExpr::getCast(LHSCV, > - LHSCV->getType()- > >getSignedVersion()); > + LHSCV = ConstantExpr::getInferredCast( > + LHSCV, false, LHSCV->getType()->getSignedVersion(), > true); > if (RHSCV->getType()->isUnsigned()) > - RHSCV = ConstantExpr::getCast(RHSCV, LHSCV->getType()); > + RHSCV = ConstantExpr::getInferredCast( > + RHSCV, false, LHSCV->getType(), true); > return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); > } > } This is all dead now that types are signless for div, replace it with: return SCEVUnknown::get(ConstantExpr::getSDiv(LHSC->getValue (), RHSC->getValue())); -Chris From reid at x10sys.com Mon Dec 4 12:38:19 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 12:38:19 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Message-ID: <200612041838.kB4IcJTW026543@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.176 -> 1.177 --- Log message: Reduce the size of the ExprMapKeyType class. --- Diffs of the changes: (+3 -3) Constants.cpp | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.176 llvm/lib/VMCore/Constants.cpp:1.177 --- llvm/lib/VMCore/Constants.cpp:1.176 Sun Dec 3 23:19:50 2006 +++ llvm/lib/VMCore/Constants.cpp Mon Dec 4 12:38:05 2006 @@ -1359,10 +1359,10 @@ // struct ExprMapKeyType { explicit ExprMapKeyType(unsigned opc, std::vector ops, - unsigned short pred = 0) : opcode(opc), operands(ops), predicate(pred) { } - unsigned opcode; + unsigned short pred = 0) : opcode(opc), predicate(pred), operands(ops) { } + uint16_t opcode; + uint16_t predicate; std::vector operands; - unsigned short predicate; bool operator==(const ExprMapKeyType& that) const { return this->opcode == that.opcode && this->predicate == that.predicate && From reid at x10sys.com Mon Dec 4 12:39:29 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 12:39:29 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll Message-ID: <200612041839.kB4IdTic026573@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: 2006-12-04-X86-64-Bitcast.ll updated: 1.1 -> 1.2 --- Log message: XFAIL until PR1033: http://llvm.org/PR1033 is fixed. --- Diffs of the changes: (+1 -0) 2006-12-04-X86-64-Bitcast.ll | 1 + 1 files changed, 1 insertion(+) Index: llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll diff -u llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll:1.1 llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll:1.2 --- llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll:1.1 Mon Dec 4 12:24:56 2006 +++ llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll Mon Dec 4 12:39:14 2006 @@ -1,5 +1,6 @@ ; PR1033 ; RUN: llvm-as < %s | llc -march=x86-64 +; XFAIL: * long %p(double %t) { %u = bitcast double %t to long ret long %u From reid at x10sys.com Mon Dec 4 12:40:36 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 04 Dec 2006 10:40:36 -0800 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html In-Reply-To: References: <200612031654.kB3Gs313024917@zion.cs.uiuc.edu> Message-ID: <1165257636.26545.72.camel@bashful.x10sys.com> On Mon, 2006-12-04 at 10:29 -0800, Chris Lattner wrote: > I thought only 32- and 64-bit integers were allowed? I thought we agreed on any size for sequential type indices. See PR950. I codified the rules after we agreed on them. Reid -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061204/1a0e2205/attachment.bin From clattner at apple.com Mon Dec 4 12:41:53 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 10:41:53 -0800 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp In-Reply-To: <1165257182.26545.65.camel@bashful.x10sys.com> References: <200612040248.kB42mFsf000454@zion.cs.uiuc.edu> <79661CC3-1DEA-4509-850C-A40260A3349E@apple.com> <1165257182.26545.65.camel@bashful.x10sys.com> Message-ID: <5F90E961-E88C-48D5-9677-7F6C3A64F9CC@apple.com> On Dec 4, 2006, at 10:33 AM, Reid Spencer wrote: > On Mon, 2006-12-04 at 10:22 -0800, Chris Lattner wrote: >>> // If this is another cast that can be eliminated, it isn't >>> codegen either. >>> if (const CastInst *CI = dyn_cast(V)) >>> - if (isEliminableCastPair(CI, CastInst::getCastOpcode(V, Ty), >>> Ty, TD)) >>> + if (isEliminableCastPair(CI, CastInst::getCastOpcode( >>> + V, V->getType()->isSigned(), Ty, Ty->isSigned()), Ty, >>> TD)) >>> return false; >>> return true; >>> } >> >> Won't this miscompile stuff like: >> >> %B = zext sbyte %A to ushort >> %C = zext ushort %B to uint >> >> into a sext? > > No. This patch doesn't change anything. I never claimed it wasn't broken before. We have *known* breakage in the tree still from your cast patch that we're still trying to track down. > The only reason for this change > is the change in signature for getCastOpcode. See the corresponding > change in getCastOpcode. This passed everything on Linux last night > before I committed it. Okay, this code isn't miscompiled because it isn't called in this case. After looking at it closer, I still don't see why it's safe. Specifically, why do you think it is safe for the sign of Ty or V to determine whether the cast is a sext or zext? The only way to fix this is for clients to pass in the kind of cast it is interested in. Looking at the callers, the only possibilities are sext/zext/trunc/bitcast. Treating zext and sext incorrectly *can* miscompile code. -Chris From clattner at apple.com Mon Dec 4 12:45:48 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 10:45:48 -0800 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html In-Reply-To: <1165257636.26545.72.camel@bashful.x10sys.com> References: <200612031654.kB3Gs313024917@zion.cs.uiuc.edu> <1165257636.26545.72.camel@bashful.x10sys.com> Message-ID: <52E82006-23DF-49CB-8E48-410B8664469A@apple.com> On Dec 4, 2006, at 10:40 AM, Reid Spencer wrote: > On Mon, 2006-12-04 at 10:29 -0800, Chris Lattner wrote: > >> I thought only 32- and 64-bit integers were allowed? > > I thought we agreed on any size for sequential type indices. See > PR950. > I codified the rules after we agreed on them. The bc format is currently more efficient due to this restriction. Are going to lose that? -Chris From llvm at cs.uiuc.edu Mon Dec 4 11:54:44 2006 From: llvm at cs.uiuc.edu (LLVM) Date: Mon, 4 Dec 2006 11:54:44 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/LowerSetJmp/2005-05-05-OldUses.ll Message-ID: <200612041754.kB4Hsigw025390@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/LowerSetJmp: 2005-05-05-OldUses.ll (r1.2) removed --- Log message: Purpose of test is lost in upgrade. --- Diffs of the changes: (+0 -0) 0 files changed From evan.cheng at apple.com Mon Dec 4 12:07:25 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Mon, 4 Dec 2006 12:07:25 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86TargetMachine.cpp Message-ID: <200612041807.kB4I7PHK025807@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86TargetMachine.cpp updated: 1.128 -> 1.129 --- Log message: Non-darwin gcc should default to static relocation to match gcc. --- Diffs of the changes: (+1 -1) X86TargetMachine.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86TargetMachine.cpp diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.128 llvm/lib/Target/X86/X86TargetMachine.cpp:1.129 --- llvm/lib/Target/X86/X86TargetMachine.cpp:1.128 Fri Nov 17 01:52:03 2006 +++ llvm/lib/Target/X86/X86TargetMachine.cpp Mon Dec 4 12:07:10 2006 @@ -113,7 +113,7 @@ if (Subtarget.isTargetDarwin()) setRelocationModel(Reloc::DynamicNoPIC); else - setRelocationModel(Reloc::PIC_); + setRelocationModel(Reloc::Static); if (Subtarget.is64Bit()) { // No DynamicNoPIC support under X86-64. if (getRelocationModel() == Reloc::DynamicNoPIC) From clattner at apple.com Mon Dec 4 13:11:07 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 11:11:07 -0800 Subject: [llvm-commits] getInferredCast proposal Message-ID: Reid, Most of your uses of getInferredCast fall into one of these categories: 1. They can only be one type of cast. 2. They can be a [bitcast or trunc] or [bitcast or zext] or [bitcast or sext]. The former should be eliminated obviously, so I want to talk about the later. As a specific example, consider: // gep null, C is equal to C*sizeof(nullty). If nullty is a known llvm // type, we can statically fold this. Constant *R = ConstantInt::get(Type::UIntTy, ElSize); + // We know R is unsigned, Idx0 is signed because it must be an index + // through a sequential type (gep pointer operand) which is always + // signed. + R = ConstantExpr::getInferredCast(R, false, Idx0->getType(), true); + R = ConstantExpr::getMul(R, Idx0); // signed multiply + // R is a signed integer, C is the GEP pointer so -> IntToPtr + return ConstantExpr::getCast(Instruction::IntToPtr, R, C- >getType()); In this case, we know that the cast is either bitcast to uint/int or a zext to long/ulong [1]. Because you know this, you have a 3 line comment trying to explain what is going on, and that comment is confusing (it talks about the types of values, when values are about to be untyped). What we really want to do is talk about the possible extension happening here. As such, I think it would be much cleaner to split up getInferredCast into: ConstantExpr::getZExtOrBitCast(..) ConstantExpr::getSExtOrBitCast(..) ConstantExpr::getTruncOrBitCast(..) This would allow writing this code as: // gep null, C is equal to C*sizeof(nullty). If nullty is a known llvm // type, we can statically fold this. Constant *R = ConstantInt::get(Type::UIntTy, ElSize); + R = ConstantExpr::getZExtOrBitCast(R, Idx0->getType()); + R = ConstantExpr::getMul(R, Idx0); // signed multiply + // R is a signed integer, C is the GEP pointer so -> IntToPtr + return ConstantExpr::getCast(Instruction::IntToPtr, R, C- >getType()); The need for the comment goes away. Even *better*, the method can assert that the types make sense for this (e.g. a trunc isn't from smaller to larger) as opposed to the totally unconstrained getInferredCast. This makes the code a) more self documenting as to what is going on and b) much more strict about checking itself. What do you think? Would this allow us to completely eliminate getInferredCast? -Chris [1]. As an aside, if you relaxed the type constraints of GEP indices, this gets much messier. From clattner at apple.com Mon Dec 4 13:13:14 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 11:13:14 -0800 Subject: [llvm-commits] CVS: llvm/lib/VMCore/ConstantFolding.cpp In-Reply-To: <200612040245.kB42jwJg000399@zion.cs.uiuc.edu> References: <200612040245.kB42jwJg000399@zion.cs.uiuc.edu> Message-ID: <7F875955-F082-40C7-946F-6B7965B65111@apple.com> > --- llvm/lib/VMCore/ConstantFolding.cpp:1.105 Fri Dec 1 13:50:54 2006 > +++ llvm/lib/VMCore/ConstantFolding.cpp Sun Dec 3 20:45:43 2006 > @@ -777,7 +777,8 @@ > uint64_t V = > DoubleToBits(cast(CP->getOperand(i))- > >getValue()); > Constant *C = ConstantInt::get(Type::ULongTy, V); > - Result.push_back(ConstantExpr::getCast(C, DstEltTy)); > + Result.push_back( > + ConstantExpr::getInferredCast(C, false, DstEltTy, > false)); > } > return ConstantPacked::get(Result); > } This is always a bitcast. > @@ -786,7 +787,8 @@ > for (unsigned i = 0; i != SrcNumElts; ++i) { > uint32_t V = FloatToBits(cast(CP->getOperand(i))- > >getValue()); > Constant *C = ConstantInt::get(Type::UIntTy, V); > - Result.push_back(ConstantExpr::getCast(C, DstEltTy)); > + Result.push_back( > + ConstantExpr::getInferredCast(C, false, DstEltTy, false)); > } > return ConstantPacked::get(Result); > } Likewise. > @@ -853,6 +854,7 @@ > break; > } > if (isAllNull) > + // This is casting one pointer type to another, always > BitCast > return ConstantExpr::getCast(CE->getOperand(0), DestTy); > } > } If so, why not create a bitcast explicitly? BTW, if you want to add ConstantExpr::getBitCast (and friends) to make it easier to do this, go for it. > @@ -1632,9 +1634,13 @@ > // gep null, C is equal to C*sizeof(nullty). If nullty is > a known llvm > // type, we can statically fold this. > Constant *R = ConstantInt::get(Type::UIntTy, ElSize); > - R = ConstantExpr::getCast(R, Idx0->getType()); > - R = ConstantExpr::getMul(R, Idx0); > - return ConstantExpr::getCast(R, C->getType()); > + // We know R is unsigned, Idx0 is signed because it must > be an index > + // through a sequential type (gep pointer operand) which > is always > + // signed. > + R = ConstantExpr::getInferredCast(R, false, Idx0->getType > (), true); > + R = ConstantExpr::getMul(R, Idx0); // signed multiply > + // R is a signed integer, C is the GEP pointer so -> IntToPtr > + return ConstantExpr::getCast(Instruction::IntToPtr, R, C- > >getType()); > } > } > } Please consider using ConstantExpr::getZExtOrBitCast (as I just emailed to llvm commits). > @@ -1662,11 +1668,16 @@ > // Otherwise it must be an array. > if (!Idx0->isNullValue()) { > const Type *IdxTy = Combined->getType(); > - if (IdxTy != Idx0->getType()) IdxTy = Type::LongTy; > - Combined = > - ConstantExpr::get(Instruction::Add, > - ConstantExpr::getCast(Idx0, IdxTy), > - ConstantExpr::getCast(Combined, > IdxTy)); > + if (IdxTy != Idx0->getType()) { > + Constant *C1 = ConstantExpr::getInferredCast( > + Idx0, true, Type::LongTy, true); > + Constant *C2 = ConstantExpr::getInferredCast( > + Combined, true, Type::LongTy, true); > + Combined = ConstantExpr::get(Instruction::Add, C1, C2); Please use: ConstantExpr::getSExtOrBitCast -Chris From clattner at apple.com Mon Dec 4 13:15:38 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 11:15:38 -0800 Subject: [llvm-commits] CVS: llvm/include/llvm/Analysis/ScalarEvolutionExpander.h In-Reply-To: <200612040245.kB42jCJ0000377@zion.cs.uiuc.edu> References: <200612040245.kB42jCJ0000377@zion.cs.uiuc.edu> Message-ID: <50D74928-A784-4483-BE6A-F40A4E4EB8B4@apple.com> > Value *visitTruncateExpr(SCEVTruncateExpr *S) { > Value *V = expand(S->getOperand()); > - return CastInst::createInferredCast(V, S->getType(), "tmp.", > InsertPt); > + Instruction::CastOps Opcode = (V->getType()- > >getPrimitiveSizeInBits() == > + S->getType()->getPrimitiveSizeInBits()) ? > Instruction::BitCast : > + Instruction::Trunc; > + return CastInst::create(Opcode, V, S->getType(), "tmp.", > InsertPt); > } > > Value *visitZeroExtendExpr(SCEVZeroExtendExpr *S) { > Value *V = expandInTy(S->getOperand(),S->getType()- > >getUnsignedVersion()); > - return CastInst::createInferredCast(V, S->getType(), "tmp.", > InsertPt); > + Instruction::CastOps Opcode = (V->getType()- > >getPrimitiveSizeInBits() == > + S->getType()->getPrimitiveSizeInBits()) ? > Instruction::BitCast : > + Instruction::ZExt; > + return CastInst::create(Opcode, V, S->getType(), "tmp.", > InsertPt); > } These really want CastInst::createZExtOrBitCast methods. -Chris From tonic at nondot.org Mon Dec 4 13:18:33 2006 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 4 Dec 2006 13:18:33 -0600 Subject: [llvm-commits] CVS: llvm-www/releases/1.9/index.html Message-ID: <200612041918.kB4JIX8F027501@zion.cs.uiuc.edu> Changes in directory llvm-www/releases/1.9: index.html added (r1.1) --- Log message: Auto redirect --- Diffs of the changes: (+7 -0) index.html | 7 +++++++ 1 files changed, 7 insertions(+) Index: llvm-www/releases/1.9/index.html diff -c /dev/null llvm-www/releases/1.9/index.html:1.1 *** /dev/null Mon Dec 4 13:18:30 2006 --- llvm-www/releases/1.9/index.html Mon Dec 4 13:18:20 2006 *************** *** 0 **** --- 1,7 ---- + + + + + + + From tonic at nondot.org Mon Dec 4 13:19:03 2006 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 4 Dec 2006 13:19:03 -0600 Subject: [llvm-commits] CVS: llvm-www/releases/1.8/index.html Message-ID: <200612041919.kB4JJ3aC027536@zion.cs.uiuc.edu> Changes in directory llvm-www/releases/1.8: index.html added (r1.1) --- Log message: Auto redirect --- Diffs of the changes: (+94 -0) index.html | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 94 insertions(+) Index: llvm-www/releases/1.8/index.html diff -c /dev/null llvm-www/releases/1.8/index.html:1.1 *** /dev/null Mon Dec 4 13:19:00 2006 --- llvm-www/releases/1.8/index.html Mon Dec 4 13:18:50 2006 *************** *** 0 **** --- 1,94 ---- + + + Download LLVM releases + + + + +
+ LLVM Download Page +
+ +
+ +
License
+ +
+ +

LLVM is distributed under the University of + Illinois Open Source License, an OSI-approved + license.

+ +
+ +
Mailing list
+ +
+ If you are interested in LLVM, we strongly encourage you to sign up for the + + LLVM announcements mailing list. This list is an extremely low volume + list (less than one email per month) that is a good way to keep track of the + high-level happenings in the LLVM community. +
+ +
Download
+ +
+ + + +
+ +
Documentation
+ + + +
+ + + + + From tonic at nondot.org Mon Dec 4 13:20:07 2006 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 4 Dec 2006 13:20:07 -0600 Subject: [llvm-commits] CVS: llvm-www/releases/1.8/index.html Message-ID: <200612041920.kB4JK7SK027587@zion.cs.uiuc.edu> Changes in directory llvm-www/releases/1.8: index.html updated: 1.1 -> 1.2 --- Log message: Oops. wrong index.html. Fixed now. --- Diffs of the changes: (+1 -88) index.html | 89 ------------------------------------------------------------- 1 files changed, 1 insertion(+), 88 deletions(-) Index: llvm-www/releases/1.8/index.html diff -u llvm-www/releases/1.8/index.html:1.1 llvm-www/releases/1.8/index.html:1.2 --- llvm-www/releases/1.8/index.html:1.1 Mon Dec 4 13:18:50 2006 +++ llvm-www/releases/1.8/index.html Mon Dec 4 13:19:54 2006 @@ -1,94 +1,7 @@ - Download LLVM releases - + - -
- LLVM Download Page -
- -
- -
License
- -
- -

LLVM is distributed under the University of -Illinois Open Source License, an OSI-approved -license.

- -
- -
Mailing list
- -
-If you are interested in LLVM, we strongly encourage you to sign up for the - -LLVM announcements mailing list. This list is an extremely low volume -list (less than one email per month) that is a good way to keep track of the -high-level happenings in the LLVM community. -
- -
Download
- -
- - - -
- -
Documentation
- - - -
- - - From reid at x10sys.com Mon Dec 4 13:23:34 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 13:23:34 -0600 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html Message-ID: <200612041923.kB4JNYBn027706@zion.cs.uiuc.edu> Changes in directory llvm/docs: LangRef.html updated: 1.175 -> 1.176 --- Log message: Document the icmp and fcmp constant expressions. --- Diffs of the changes: (+10 -4) LangRef.html | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.175 llvm/docs/LangRef.html:1.176 --- llvm/docs/LangRef.html:1.175 Sun Dec 3 10:53:48 2006 +++ llvm/docs/LangRef.html Mon Dec 4 13:23:19 2006 @@ -1255,7 +1255,13 @@
select ( COND, VAL1, VAL2 )
Perform the select operation on - constants. + constants.
+ +
icmp COND ( VAL1, VAL2 )
+
Performs the icmp operation on constants.
+ +
fcmp COND ( VAL1, VAL2 )
+
Performs the fcmp operation on constants.
extractelement ( VAL, IDX )
@@ -1265,13 +1271,13 @@
insertelement ( VAL, ELT, IDX )
Perform the insertelement - operation on constants. + operation on constants.
shufflevector ( VEC1, VEC2, IDXMASK )
Perform the shufflevector - operation on constants. + operation on constants.
OPCODE ( LHS, RHS )
@@ -4427,7 +4433,7 @@ Chris Lattner
The LLVM Compiler Infrastructure
- Last modified: $Date: 2006/12/03 16:53:48 $ + Last modified: $Date: 2006/12/04 19:23:19 $ From clattner at apple.com Mon Dec 4 13:19:20 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 11:19:20 -0800 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y In-Reply-To: <200612040520.kB45KLv2003078@zion.cs.uiuc.edu> References: <200612040520.kB45KLv2003078@zion.cs.uiuc.edu> Message-ID: <217ABE5B-509F-422C-B7F4-571CED6921AA@apple.com> > > For PR950: http://llvm.org/PR950 : For ICmp and FCmp constant > expressions, put the predicate outiside the parentheses to match > what llvm-upgrade generates. Please document the syntax of these constant exprs in: http://llvm.org/docs/LangRef.html#constantexprs -Chris From reid at x10sys.com Mon Dec 4 14:09:17 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:09:17 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll Message-ID: <200612042009.kB4K9HrU028578@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: 2006-11-28-Memcpy.ll updated: 1.4 -> 1.5 --- Log message: Make this test succeed on both Darwin and Linux --- Diffs of the changes: (+1 -1) 2006-11-28-Memcpy.ll | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll diff -u llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll:1.4 llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll:1.5 --- llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll:1.4 Fri Dec 1 22:23:08 2006 +++ llvm/test/Regression/CodeGen/X86/2006-11-28-Memcpy.ll Mon Dec 4 14:09:02 2006 @@ -1,6 +1,6 @@ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 && ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep 3721182122 | wc -l | grep 2 && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep 'movl _bytes2' | wc -l | grep 1 +; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep -E 'movl _?bytes2' | wc -l | grep 1 ; PR1022, 1023 %fmt = constant [4 x sbyte] c"%x\0A\00" From reid at x10sys.com Mon Dec 4 14:14:04 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:14:04 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/Generic/debug-info.ll Message-ID: <200612042014.kB4KE4Qc028681@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/Generic: debug-info.ll updated: 1.2 -> 1.3 --- Log message: Fix the intrinsic debug call to make this match current definition. --- Diffs of the changes: (+2 -2) debug-info.ll | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/test/Regression/CodeGen/Generic/debug-info.ll diff -u llvm/test/Regression/CodeGen/Generic/debug-info.ll:1.2 llvm/test/Regression/CodeGen/Generic/debug-info.ll:1.3 --- llvm/test/Regression/CodeGen/Generic/debug-info.ll:1.2 Fri Dec 1 22:23:08 2006 +++ llvm/test/Regression/CodeGen/Generic/debug-info.ll Mon Dec 4 14:13:49 2006 @@ -4,7 +4,7 @@ implementation ; Functions: -declare { }* %llvm.dbg.stoppoint({ }*, uint, uint, %lldb.compile_unit*) +declare void %llvm.dbg.stoppoint(uint, uint, %lldb.compile_unit*) void %rb_raise(int, ...) { entry: @@ -14,6 +14,6 @@ ret void strlen.exit: ; preds = %entry - %dbg.tmp.1.i2 = call { }* %llvm.dbg.stoppoint( { }* null, uint 4358, uint 0, %lldb.compile_unit* %d.compile_unit7 ) ; <{ }*> [#uses=0] + call void %llvm.dbg.stoppoint(uint 4358, uint 0, %lldb.compile_unit* %d.compile_unit7 ) ; <{ }*> [#uses=0] unreachable } From reid at x10sys.com Mon Dec 4 14:18:12 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:18:12 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/InstrTypes.h Constants.h Message-ID: <200612042018.kB4KICHb028771@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: InstrTypes.h updated: 1.50 -> 1.51 Constants.h updated: 1.99 -> 1.100 --- Log message: Implement new cast creation functions for both instructions and constant expressions. These will get used to reduce clutter as we replace various calls to createInferredCast and getCast. --- Diffs of the changes: (+66 -0) Constants.h | 18 ++++++++++++++++++ InstrTypes.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) Index: llvm/include/llvm/InstrTypes.h diff -u llvm/include/llvm/InstrTypes.h:1.50 llvm/include/llvm/InstrTypes.h:1.51 --- llvm/include/llvm/InstrTypes.h:1.50 Sun Dec 3 20:43:42 2006 +++ llvm/include/llvm/InstrTypes.h Mon Dec 4 14:17:56 2006 @@ -299,6 +299,54 @@ BasicBlock *InsertAtEnd ///< The block to insert the instruction into ); + /// @brief Create a ZExt or BitCast cast instruction + static CastInst *createZExtOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which cast should be made + const std::string &Name = "", ///< Name for the instruction + Instruction *InsertBefore = 0 ///< Place to insert the instruction + ); + + /// @brief Create a ZExt or BitCast cast instruction + static CastInst *createZExtOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which operand is casted + const std::string &Name, ///< The name for the instruction + BasicBlock *InsertAtEnd ///< The block to insert the instruction into + ); + + /// @brief Create a SExt or BitCast cast instruction + static CastInst *createSExtOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which cast should be made + const std::string &Name = "", ///< Name for the instruction + Instruction *InsertBefore = 0 ///< Place to insert the instruction + ); + + /// @brief Create a SExt or BitCast cast instruction + static CastInst *createSExtOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which operand is casted + const std::string &Name, ///< The name for the instruction + BasicBlock *InsertAtEnd ///< The block to insert the instruction into + ); + + /// @brief Create a Trunc or BitCast cast instruction + static CastInst *createTruncOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which cast should be made + const std::string &Name = "", ///< Name for the instruction + Instruction *InsertBefore = 0 ///< Place to insert the instruction + ); + + /// @brief Create a Trunc or BitCast cast instruction + static CastInst *createTruncOrBitCast( + Value *S, ///< The value to be casted (operand 0) + const Type *Ty, ///< The type to which operand is casted + const std::string &Name, ///< The name for the instruction + BasicBlock *InsertAtEnd ///< The block to insert the instruction into + ); + /// Returns the opcode necessary to cast Val into Ty using usual casting /// rules. static Instruction::CastOps getCastOpcode( Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.99 llvm/include/llvm/Constants.h:1.100 --- llvm/include/llvm/Constants.h:1.99 Sun Dec 3 23:19:02 2006 +++ llvm/include/llvm/Constants.h Mon Dec 4 14:17:56 2006 @@ -541,6 +541,24 @@ const Type *Ty ///< The type to which the constant is converted ); + // @brief Create a ZExt or BitCast cast constant expression + static Constant *getZExtOrBitCast( + Constant *C, ///< The constant to zext or bitcast + const Type *Ty ///< The type to zext or bitcast C to + ); + + // @brief Create a SExt or BitCast cast constant expression + static Constant *getSExtOrBitCast( + Constant *C, ///< The constant to zext or bitcast + const Type *Ty ///< The type to zext or bitcast C to + ); + + // @brief Create a Trunc or BitCast cast constant expression + static Constant *getTruncOrBitCast( + Constant *C, ///< The constant to zext or bitcast + const Type *Ty ///< The type to zext or bitcast C to + ); + // This method uses the CastInst::getCastOpcode method to infer the // cast opcode to use. // @brief Get a ConstantExpr Conversion operator that casts C to Ty From reid at x10sys.com Mon Dec 4 14:18:13 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:18:13 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Instructions.cpp Message-ID: <200612042018.kB4KIDBS028778@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.177 -> 1.178 Instructions.cpp updated: 1.50 -> 1.51 --- Log message: Implement new cast creation functions for both instructions and constant expressions. These will get used to reduce clutter as we replace various calls to createInferredCast and getCast. --- Diffs of the changes: (+68 -2) Constants.cpp | 22 ++++++++++++++++++++-- Instructions.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.177 llvm/lib/VMCore/Constants.cpp:1.178 --- llvm/lib/VMCore/Constants.cpp:1.177 Mon Dec 4 12:38:05 2006 +++ llvm/lib/VMCore/Constants.cpp Mon Dec 4 14:17:56 2006 @@ -1534,6 +1534,24 @@ return 0; } +Constant *ConstantExpr::getZExtOrBitCast(Constant *C, const Type *Ty) { + if (C->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return getCast(Instruction::BitCast, C, Ty); + return getCast(Instruction::ZExt, C, Ty); +} + +Constant *ConstantExpr::getSExtOrBitCast(Constant *C, const Type *Ty) { + if (C->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return getCast(Instruction::BitCast, C, Ty); + return getCast(Instruction::SExt, C, Ty); +} + +Constant *ConstantExpr::getTruncOrBitCast(Constant *C, const Type *Ty) { + if (C->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return getCast(Instruction::BitCast, C, Ty); + return getCast(Instruction::Trunc, C, Ty); +} + Constant *ConstantExpr::getTrunc(Constant *C, const Type *Ty) { assert(C->getType()->isInteger() && "Trunc operand must be integer"); assert(Ty->isIntegral() && "Trunc produces only integral"); @@ -1616,14 +1634,14 @@ // can't cast pointers to anything but pointers. const Type *SrcTy = C->getType(); assert((isa(SrcTy) == isa(DstTy)) && - "Bitcast cannot cast pointer to non-pointer and vice versa"); + "BitCast cannot cast pointer to non-pointer and vice versa"); // Now we know we're not dealing with mismatched pointer casts (ptr->nonptr // or nonptr->ptr). For all the other types, the cast is okay if source and // destination bit widths are identical. unsigned SrcBitSize = SrcTy->getPrimitiveSizeInBits(); unsigned DstBitSize = DstTy->getPrimitiveSizeInBits(); - assert(SrcBitSize == DstBitSize && "Bitcast requies types of same width"); + assert(SrcBitSize == DstBitSize && "BitCast requies types of same width"); return getFoldedCast(Instruction::BitCast, C, DstTy); } Index: llvm/lib/VMCore/Instructions.cpp diff -u llvm/lib/VMCore/Instructions.cpp:1.50 llvm/lib/VMCore/Instructions.cpp:1.51 --- llvm/lib/VMCore/Instructions.cpp:1.50 Sun Dec 3 20:43:42 2006 +++ llvm/lib/VMCore/Instructions.cpp Mon Dec 4 14:17:56 2006 @@ -1500,6 +1500,54 @@ return 0; } +CastInst *CastInst::createZExtOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + Instruction *InsertBefore) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertBefore); + return create(Instruction::ZExt, S, Ty, Name, InsertBefore); +} + +CastInst *CastInst::createZExtOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + BasicBlock *InsertAtEnd) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertAtEnd); + return create(Instruction::ZExt, S, Ty, Name, InsertAtEnd); +} + +CastInst *CastInst::createSExtOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + Instruction *InsertBefore) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertBefore); + return create(Instruction::SExt, S, Ty, Name, InsertBefore); +} + +CastInst *CastInst::createSExtOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + BasicBlock *InsertAtEnd) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertAtEnd); + return create(Instruction::SExt, S, Ty, Name, InsertAtEnd); +} + +CastInst *CastInst::createTruncOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + Instruction *InsertBefore) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertBefore); + return create(Instruction::Trunc, S, Ty, Name, InsertBefore); +} + +CastInst *CastInst::createTruncOrBitCast(Value *S, const Type *Ty, + const std::string &Name, + BasicBlock *InsertAtEnd) { + if (S->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) + return create(Instruction::BitCast, S, Ty, Name, InsertAtEnd); + return create(Instruction::Trunc, S, Ty, Name, InsertAtEnd); +} + // Provide a way to get a "cast" where the cast opcode is inferred from the // types and size of the operand. This, basically, is a parallel of the // logic in the checkCast function below. This axiom should hold: From reid at x10sys.com Mon Dec 4 14:18:41 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:18:41 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Message-ID: <200612042018.kB4KIfX1028802@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Analysis: ScalarEvolutionExpander.h updated: 1.8 -> 1.9 --- Log message: Unclutter this by using new cast creation functions. --- Diffs of the changes: (+2 -8) ScalarEvolutionExpander.h | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) Index: llvm/include/llvm/Analysis/ScalarEvolutionExpander.h diff -u llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.8 llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.9 --- llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.8 Sun Dec 3 20:44:57 2006 +++ llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Mon Dec 4 14:18:26 2006 @@ -115,18 +115,12 @@ Value *visitTruncateExpr(SCEVTruncateExpr *S) { Value *V = expand(S->getOperand()); - Instruction::CastOps Opcode = (V->getType()->getPrimitiveSizeInBits() == - S->getType()->getPrimitiveSizeInBits()) ? Instruction::BitCast : - Instruction::Trunc; - return CastInst::create(Opcode, V, S->getType(), "tmp.", InsertPt); + return CastInst::createTruncOrBitCast(V, S->getType(), "tmp.", InsertPt); } Value *visitZeroExtendExpr(SCEVZeroExtendExpr *S) { Value *V = expandInTy(S->getOperand(),S->getType()->getUnsignedVersion()); - Instruction::CastOps Opcode = (V->getType()->getPrimitiveSizeInBits() == - S->getType()->getPrimitiveSizeInBits()) ? Instruction::BitCast : - Instruction::ZExt; - return CastInst::create(Opcode, V, S->getType(), "tmp.", InsertPt); + return CastInst::createZExtOrBitCast(V, S->getType(), "tmp.", InsertPt); } Value *visitAddExpr(SCEVAddExpr *S) { From reid at x10sys.com Mon Dec 4 14:28:21 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:28:21 -0600 Subject: [llvm-commits] CVS: llvm/autoconf/m4/sanity_check.m4 Message-ID: <200612042028.kB4KSLcB028961@zion.cs.uiuc.edu> Changes in directory llvm/autoconf/m4: sanity_check.m4 updated: 1.2 -> 1.3 --- Log message: Expose the sanity. --- Diffs of the changes: (+2 -0) sanity_check.m4 | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/autoconf/m4/sanity_check.m4 diff -u llvm/autoconf/m4/sanity_check.m4:1.2 llvm/autoconf/m4/sanity_check.m4:1.3 --- llvm/autoconf/m4/sanity_check.m4:1.2 Wed Dec 21 20:08:30 2005 +++ llvm/autoconf/m4/sanity_check.m4 Mon Dec 4 14:28:07 2006 @@ -14,6 +14,7 @@ sanity=`$1 $2 2>&1 | grep "$3"` if test -z "$sanity" ; then AC_MSG_RESULT([no]) + sanity="0" if test "$4" -eq 1 ; then AC_MSG_WARN([Program ]$1[ failed to pass sanity check.]) else @@ -21,6 +22,7 @@ fi else AC_MSG_RESULT([yes]) + sanity="1" fi else AC_MSG_RESULT([not found]) From reid at x10sys.com Mon Dec 4 14:38:10 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:38:10 -0600 Subject: [llvm-commits] CVS: llvm-test/configure Message-ID: <200612042038.kB4KcAKH029158@zion.cs.uiuc.edu> Changes in directory llvm-test: configure updated: 1.41 -> 1.42 --- Log message: If F95 fails the sanity check then don't set its definition. This works around false positives if gfortran's f95 is discovered instead of NAG's --- Diffs of the changes: (+9 -0) configure | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm-test/configure diff -u llvm-test/configure:1.41 llvm-test/configure:1.42 --- llvm-test/configure:1.41 Thu Sep 21 03:48:02 2006 +++ llvm-test/configure Mon Dec 4 14:37:53 2006 @@ -20458,6 +20458,7 @@ if test -z "$sanity" ; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } + sanity="0" if test "1" -eq 1 ; then { echo "$as_me:$LINENO: WARNING: Program f95 failed to pass sanity check." >&5 echo "$as_me: WARNING: Program f95 failed to pass sanity check." >&2;} @@ -20469,12 +20470,20 @@ else { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } + sanity="1" fi else { echo "$as_me:$LINENO: result: not found" >&5 echo "${ECHO_T}not found" >&6; } fi +if test "$sanity" -eq "0" ; then + USE_F95= + +else + USE_F95=USE_F95=1 + +fi { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } From reid at x10sys.com Mon Dec 4 14:38:10 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:38:10 -0600 Subject: [llvm-commits] CVS: llvm-test/autoconf/configure.ac Message-ID: <200612042038.kB4KcAu2029153@zion.cs.uiuc.edu> Changes in directory llvm-test/autoconf: configure.ac updated: 1.39 -> 1.40 --- Log message: If F95 fails the sanity check then don't set its definition. This works around false positives if gfortran's f95 is discovered instead of NAG's --- Diffs of the changes: (+5 -0) configure.ac | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm-test/autoconf/configure.ac diff -u llvm-test/autoconf/configure.ac:1.39 llvm-test/autoconf/configure.ac:1.40 --- llvm-test/autoconf/configure.ac:1.39 Thu Sep 21 03:48:02 2006 +++ llvm-test/autoconf/configure.ac Mon Dec 4 14:37:53 2006 @@ -150,6 +150,11 @@ dnl Check for the NAG f95 FORTRAN -> C translator FIND_STD_PROGRAM(f95,,libf97.dylib,[nag fortran]) CHECK_PROGRAM_SANITY([f95],[-V],[NAGWare Fortran 95],1) +if test "$sanity" -eq "0" ; then + AC_SUBST(USE_F95,[[]]) +else + AC_SUBST(USE_F95,[USE_F95=1]) +fi dnl Checks for header files. dnl We don't check for ancient stuff or things that are guaranteed to be there From reid at x10sys.com Mon Dec 4 14:46:20 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 14:46:20 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp 2006-11-30-Pubnames.cpp Message-ID: <200612042046.kB4KkKjM029315@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/DebugInfo: 2006-11-30-NoCompileUnit.cpp updated: 1.1 -> 1.2 2006-11-30-Pubnames.cpp updated: 1.2 -> 1.3 --- Log message: These pass on Linux now. --- Diffs of the changes: (+4 -6) 2006-11-30-NoCompileUnit.cpp | 8 +++----- 2006-11-30-Pubnames.cpp | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) Index: llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp diff -u llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp:1.1 llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp:1.2 --- llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp:1.1 Thu Nov 30 09:36:44 2006 +++ llvm/test/Regression/DebugInfo/2006-11-30-NoCompileUnit.cpp Mon Dec 4 14:46:05 2006 @@ -1,11 +1,11 @@ -// This is a regression test on debug info to make sure we don't hit a compile unit size -// issue with gdb. +// This is a regression test on debug info to make sure we don't hit a compile +// unit size issue with gdb. // RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | llc --disable-fp-elim -o Output/NoCompileUnit.s -f // RUN: as Output/NoCompileUnit.s -o Output/NoCompileUnit.o // RUN: g++ Output/NoCompileUnit.o -o Output/NoCompileUnit.exe // RUN: ( echo "break main"; echo "run" ; echo "p NoCompileUnit::pubname" ) > Output/NoCompileUnit.gdbin // RUN: gdb -q -batch -n -x Output/NoCompileUnit.gdbin Output/NoCompileUnit.exe | tee Output/NoCompileUnit.out | not grep '"low == high"' -// XFAIL: i[1-9]86|alpha|ia64|arm +// XFAIL: alpha|ia64|arm class MamaDebugTest { @@ -54,5 +54,3 @@ BabyDebugTest BDT(20); return BDT.doit(); } - - Index: llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp diff -u llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.2 llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.3 --- llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.2 Thu Nov 30 09:31:49 2006 +++ llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp Mon Dec 4 14:46:05 2006 @@ -5,7 +5,7 @@ // RUN: g++ Output/Pubnames.o -o Output/Pubnames.exe // RUN: ( echo "break main"; echo "run" ; echo "p Pubnames::pubname" ) > Output/Pubnames.gdbin // RUN: gdb -q -batch -n -x Output/Pubnames.gdbin Output/Pubnames.exe | tee Output/Pubnames.out | grep '10' -// XFAIL: i[1-9]86|alpha|ia64|arm +// XFAIL: alpha|ia64|arm struct Pubnames { static int pubname; From rspencer at reidspencer.com Mon Dec 4 14:58:34 2006 From: rspencer at reidspencer.com (Reid Spencer) Date: Mon, 04 Dec 2006 12:58:34 -0800 Subject: [llvm-commits] getInferredCast proposal In-Reply-To: References: Message-ID: <1165265914.26545.86.camel@bashful.x10sys.com> Implemented. I'll start using them. Reid. On Mon, 2006-12-04 at 11:11 -0800, Chris Lattner wrote: > Reid, > > Most of your uses of getInferredCast fall into one of these categories: > > 1. They can only be one type of cast. > 2. They can be a [bitcast or trunc] or [bitcast or zext] or [bitcast > or sext]. > > The former should be eliminated obviously, so I want to talk about > the later. > > As a specific example, consider: > > // gep null, C is equal to C*sizeof(nullty). If nullty is > a known llvm > // type, we can statically fold this. > Constant *R = ConstantInt::get(Type::UIntTy, ElSize); > + // We know R is unsigned, Idx0 is signed because it must be > an index > + // through a sequential type (gep pointer operand) which is > always > + // signed. > + R = ConstantExpr::getInferredCast(R, false, Idx0->getType(), > true); > + R = ConstantExpr::getMul(R, Idx0); // signed multiply > + // R is a signed integer, C is the GEP pointer so -> IntToPtr > + return ConstantExpr::getCast(Instruction::IntToPtr, R, C- > >getType()); > > In this case, we know that the cast is either bitcast to uint/int or > a zext to long/ulong [1]. Because you know this, you have a 3 line > comment trying to explain what is going on, and that comment is > confusing (it talks about the types of values, when values are about > to be untyped). > > What we really want to do is talk about the possible extension > happening here. As such, I think it would be much cleaner to split > up getInferredCast into: > > ConstantExpr::getZExtOrBitCast(..) > ConstantExpr::getSExtOrBitCast(..) > ConstantExpr::getTruncOrBitCast(..) > > This would allow writing this code as: > > // gep null, C is equal to C*sizeof(nullty). If nullty is > a known llvm > // type, we can statically fold this. > Constant *R = ConstantInt::get(Type::UIntTy, ElSize); > + R = ConstantExpr::getZExtOrBitCast(R, Idx0->getType()); > + R = ConstantExpr::getMul(R, Idx0); // signed multiply > + // R is a signed integer, C is the GEP pointer so -> IntToPtr > + return ConstantExpr::getCast(Instruction::IntToPtr, R, C- > >getType()); > > The need for the comment goes away. Even *better*, the method can > assert that the types make sense for this (e.g. a trunc isn't from > smaller to larger) as opposed to the totally unconstrained > getInferredCast. > > This makes the code a) more self documenting as to what is going on > and b) much more strict about checking itself. What do you think? > Would this allow us to completely eliminate getInferredCast? > > -Chris > > [1]. As an aside, if you relaxed the type constraints of GEP indices, > this gets much messier. > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From rspencer at reidspencer.com Mon Dec 4 14:59:02 2006 From: rspencer at reidspencer.com (Reid Spencer) Date: Mon, 04 Dec 2006 12:59:02 -0800 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y In-Reply-To: <217ABE5B-509F-422C-B7F4-571CED6921AA@apple.com> References: <200612040520.kB45KLv2003078@zion.cs.uiuc.edu> <217ABE5B-509F-422C-B7F4-571CED6921AA@apple.com> Message-ID: <1165265942.26545.88.camel@bashful.x10sys.com> Done. On Mon, 2006-12-04 at 11:19 -0800, Chris Lattner wrote: > > > > For PR950: http://llvm.org/PR950 : For ICmp and FCmp constant > > expressions, put the predicate outiside the parentheses to match > > what llvm-upgrade generates. > > Please document the syntax of these constant exprs in: > http://llvm.org/docs/LangRef.html#constantexprs > > -Chris > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From sabre at nondot.org Mon Dec 4 15:23:00 2006 From: sabre at nondot.org (Chris Lattner) Date: Mon, 4 Dec 2006 15:23:00 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/CallGraph.cpp Message-ID: <200612042123.kB4LN0PM029955@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: CallGraph.cpp updated: 1.59 -> 1.60 --- Log message: Add a comment and fix a memory leak. Thanks to Vikram for pointing this out. --- Diffs of the changes: (+5 -4) CallGraph.cpp | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) Index: llvm/lib/Analysis/IPA/CallGraph.cpp diff -u llvm/lib/Analysis/IPA/CallGraph.cpp:1.59 llvm/lib/Analysis/IPA/CallGraph.cpp:1.60 --- llvm/lib/Analysis/IPA/CallGraph.cpp:1.59 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/IPA/CallGraph.cpp Mon Dec 4 15:22:45 2006 @@ -20,6 +20,9 @@ #include using namespace llvm; +/// isOnlyADirectCall - Return true if this callsite is *just* a direct call to +/// the specified function. Specifically return false if the callsite also +/// takes the address of the function. static bool isOnlyADirectCall(Function *F, CallSite CS) { if (!CS.getInstruction()) return false; for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end(); I != E; ++I) @@ -179,10 +182,8 @@ // // destroy - Release memory for the call graph virtual void destroy() { - if (!CallsExternalNode) { - delete CallsExternalNode; - CallsExternalNode = 0; - } + delete CallsExternalNode; + CallsExternalNode = 0; } }; From reid at x10sys.com Mon Dec 4 15:29:39 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 15:29:39 -0600 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html Message-ID: <200612042129.kB4LTdbl030107@zion.cs.uiuc.edu> Changes in directory llvm/docs: LangRef.html updated: 1.176 -> 1.177 --- Log message: We only support 32-bit or 64-bit sequential type indices for GEP. Document it as so. --- Diffs of the changes: (+5 -5) LangRef.html | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.176 llvm/docs/LangRef.html:1.177 --- llvm/docs/LangRef.html:1.176 Mon Dec 4 13:23:19 2006 +++ llvm/docs/LangRef.html Mon Dec 4 15:29:24 2006 @@ -2492,14 +2492,14 @@
Arguments:
-

This instruction takes a list of integer constants that indicate what +

This instruction takes a list of integer operands that indicate what elements of the aggregate object to index to. The actual types of the arguments provided depend on the type of the first pointer argument. The 'getelementptr' instruction is used to index down through the type levels of a structure or to a specific index in an array. When indexing into a structure, only uint integer constants are allowed. When indexing -into an array or pointer, integers of any size are allowed, and will be sign -extended to 64-bit values.

+into an array or pointer, only integers of 32 or 64 bits are allowed, and will +be sign extended to 64-bit values.

For example, let's consider a C code fragment and how it gets compiled to LLVM:

@@ -2540,7 +2540,7 @@

The index types specified for the 'getelementptr' instruction depend on the pointer type that is being indexed into. Pointer -and array types can use any +and array types can use a 32-bit or 64-bit integer type but the value will always be sign extended to 64-bits. Structure types, require uint constants.

@@ -4433,7 +4433,7 @@ Chris Lattner
The LLVM Compiler Infrastructure
- Last modified: $Date: 2006/12/04 19:23:19 $ + Last modified: $Date: 2006/12/04 21:29:24 $ From reid at x10sys.com Mon Dec 4 15:33:37 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 15:33:37 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp Message-ID: <200612042133.kB4LXbcZ030250@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ScalarEvolution.cpp updated: 1.62 -> 1.63 --- Log message: Fix comment grammaro --- Diffs of the changes: (+2 -2) ScalarEvolution.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.62 llvm/lib/Analysis/ScalarEvolution.cpp:1.63 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.62 Mon Dec 4 11:05:42 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Mon Dec 4 15:33:23 2006 @@ -1925,9 +1925,9 @@ } } - // Okay, this is a some expression that we cannot symbolically evaluate + // Okay, this is an expression that we cannot symbolically evaluate // into a SCEV. Check to see if it's possible to symbolically evaluate - // the arguments into constants, and if see, try to constant propagate the + // the arguments into constants, and if so, try to constant propagate the // result. This is particularly useful for computing loop exit values. if (CanConstantFold(I)) { std::vector Operands; From reid at x10sys.com Mon Dec 4 15:34:32 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 15:34:32 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h Message-ID: <200612042134.kB4LYWkP030301@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Constants.h updated: 1.100 -> 1.101 --- Log message: Separate the get and getTy functions for ICmp and FCmp into getCompare and getCompareTy. Also, fix some incorrect comments. --- Diffs of the changes: (+12 -7) Constants.h | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.100 llvm/include/llvm/Constants.h:1.101 --- llvm/include/llvm/Constants.h:1.100 Mon Dec 4 14:17:56 2006 +++ llvm/include/llvm/Constants.h Mon Dec 4 15:34:17 2006 @@ -498,7 +498,9 @@ // These private methods are used by the type resolution code to create // ConstantExprs in intermediate forms. static Constant *getTy(const Type *Ty, unsigned Opcode, - Constant *C1, Constant *C2, unsigned short pred = 0); + Constant *C1, Constant *C2); + static Constant *getCompareTy(unsigned Opcode, unsigned short pred, + Constant *C1, Constant *C2); static Constant *getShiftTy(const Type *Ty, unsigned Opcode, Constant *C1, Constant *C2); static Constant *getSelectTy(const Type *Ty, @@ -549,14 +551,14 @@ // @brief Create a SExt or BitCast cast constant expression static Constant *getSExtOrBitCast( - Constant *C, ///< The constant to zext or bitcast - const Type *Ty ///< The type to zext or bitcast C to + Constant *C, ///< The constant to sext or bitcast + const Type *Ty ///< The type to sext or bitcast C to ); // @brief Create a Trunc or BitCast cast constant expression static Constant *getTruncOrBitCast( - Constant *C, ///< The constant to zext or bitcast - const Type *Ty ///< The type to zext or bitcast C to + Constant *C, ///< The constant to trunc or bitcast + const Type *Ty ///< The type to trunc or bitcast C to ); // This method uses the CastInst::getCastOpcode method to infer the @@ -593,8 +595,11 @@ /// ConstantExpr::get - Return a binary or shift operator constant expression, /// folding if possible. /// - static Constant *get(unsigned Opcode, Constant *C1, Constant *C2, - unsigned short pred = 0); + static Constant *get(unsigned Opcode, Constant *C1, Constant *C2); + + /// @brief Return an ICmp or FCmp comparison operator constante expression. + static Constant *getCompare(unsigned Opcode, unsigned short pred, + Constant *C1, Constant *C2); /// ConstantExpr::get* - Return some common constants without having to /// specify the full Instruction::OPCODE identifier. From reid at x10sys.com Mon Dec 4 15:35:39 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 15:35:39 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Message-ID: <200612042135.kB4LZdi7030327@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.178 -> 1.179 --- Log message: Separate getCompare from get and getCompareTy from getTy. --- Diffs of the changes: (+17 -16) Constants.cpp | 33 +++++++++++++++++---------------- 1 files changed, 17 insertions(+), 16 deletions(-) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.178 llvm/lib/VMCore/Constants.cpp:1.179 --- llvm/lib/VMCore/Constants.cpp:1.178 Mon Dec 4 14:17:56 2006 +++ llvm/lib/VMCore/Constants.cpp Mon Dec 4 15:35:24 2006 @@ -1660,14 +1660,10 @@ } Constant *ConstantExpr::getTy(const Type *ReqTy, unsigned Opcode, - Constant *C1, Constant *C2, unsigned short pred) { + Constant *C1, Constant *C2) { if (Opcode == Instruction::Shl || Opcode == Instruction::LShr || Opcode == Instruction::AShr) return getShiftTy(ReqTy, Opcode, C1, C2); - if (Opcode == Instruction::ICmp) - return getICmp(pred, C1, C2); - if (Opcode == Instruction::FCmp) - return getFCmp(pred, C1, C2); // Check the operands for consistency first assert(Opcode >= Instruction::BinaryOpsBegin && @@ -1682,11 +1678,18 @@ return FC; // Fold a few common cases... std::vector argVec(1, C1); argVec.push_back(C2); - ExprMapKeyType Key(Opcode, argVec, pred); + ExprMapKeyType Key(Opcode, argVec); return ExprConstants->getOrCreate(ReqTy, Key); } -Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2, unsigned short pred) { +Constant *ConstantExpr::getCompareTy(unsigned Opcode, unsigned short predicate, + Constant *C1, Constant *C2) { + if (Opcode == Instruction::ICmp) + return getICmp(predicate, C1, C2); + return getFCmp(predicate, C1, C2); +} + +Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2) { #ifndef NDEBUG switch (Opcode) { case Instruction::Add: @@ -1734,10 +1737,6 @@ case Instruction::SetGE: case Instruction::SetEQ: case Instruction::SetNE: assert(C1->getType() == C2->getType() && "Op types should be identical!"); break; - case Instruction::FCmp: - case Instruction::ICmp: - assert(C1->getType() == C2->getType() && "Op types should be identical!"); - break; case Instruction::Shl: case Instruction::LShr: case Instruction::AShr: @@ -1750,10 +1749,13 @@ } #endif - if (Instruction::isComparison(Opcode)) - return getTy(Type::BoolTy, Opcode, C1, C2, pred); - else - return getTy(C1->getType(), Opcode, C1, C2, pred); + return getTy(C1->getType(), Opcode, C1, C2); +} + +Constant *ConstantExpr::getCompare(unsigned Opcode, unsigned short pred, + Constant *C1, Constant *C2) { + assert(C1->getType() == C2->getType() && "Op types should be identical!"); + return getCompareTy(Opcode, pred, C1, C2); } Constant *ConstantExpr::getSelectTy(const Type *ReqTy, Constant *C, @@ -1793,7 +1795,6 @@ return ExprConstants->getOrCreate(ReqTy, Key); } - Constant *ConstantExpr::getGetElementPtrTy(const Type *ReqTy, Constant *C, const std::vector &IdxList) { assert(GetElementPtrInst::getIndexedType(C->getType(), IdxList, true) && From reid at x10sys.com Mon Dec 4 15:23:47 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 04 Dec 2006 13:23:47 -0800 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html In-Reply-To: <52E82006-23DF-49CB-8E48-410B8664469A@apple.com> References: <200612031654.kB3Gs313024917@zion.cs.uiuc.edu> <1165257636.26545.72.camel@bashful.x10sys.com> <52E82006-23DF-49CB-8E48-410B8664469A@apple.com> Message-ID: <1165267427.26545.92.camel@bashful.x10sys.com> On Mon, 2006-12-04 at 10:45 -0800, Chris Lattner wrote: > On Dec 4, 2006, at 10:40 AM, Reid Spencer wrote: > > > On Mon, 2006-12-04 at 10:29 -0800, Chris Lattner wrote: > > > >> I thought only 32- and 64-bit integers were allowed? > > > > I thought we agreed on any size for sequential type indices. See > > PR950. > > I codified the rules after we agreed on them. > > The bc format is currently more efficient due to this restriction. > Are going to lose that? Ah, you're right, and it encodes in only 2 bits for the 4 combinations so I'll fix the documentation. Reid. > > -Chris > -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061204/6503089d/attachment.bin From jlaskey at apple.com Mon Dec 4 16:01:09 2006 From: jlaskey at apple.com (Jim Laskey) Date: Mon, 4 Dec 2006 16:01:09 -0600 Subject: [llvm-commits] CVS: llvm-test/SingleSource/UnitTests/2006-12-04-DynAllocAndRestore.cpp Message-ID: <200612042201.kB4M19OH030729@zion.cs.uiuc.edu> Changes in directory llvm-test/SingleSource/UnitTests: 2006-12-04-DynAllocAndRestore.cpp added (r1.1) --- Log message: Make sure that restore stack does the right thing. --- Diffs of the changes: (+47 -0) 2006-12-04-DynAllocAndRestore.cpp | 47 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+) Index: llvm-test/SingleSource/UnitTests/2006-12-04-DynAllocAndRestore.cpp diff -c /dev/null llvm-test/SingleSource/UnitTests/2006-12-04-DynAllocAndRestore.cpp:1.1 *** /dev/null Mon Dec 4 16:01:04 2006 --- llvm-test/SingleSource/UnitTests/2006-12-04-DynAllocAndRestore.cpp Mon Dec 4 16:00:54 2006 *************** *** 0 **** --- 1,47 ---- + class MamaDebugTest { + private: + int N; + + protected: + MamaDebugTest(int n) : N(n) {} + + int getN() const { return N; } + + }; + + class BabyDebugTest : public MamaDebugTest { + private: + + public: + BabyDebugTest(int n) : MamaDebugTest(n) {} + + static int doh; + + int doit() { + int N = getN(); + int Table[N]; + + int sum = 0; + + for (int i = 0; i < N; ++i) { + int j = i; + Table[i] = j; + } + for (int i = 0; i < N; ++i) { + int j = Table[i]; + sum += j; + } + + return sum; + } + + }; + + int BabyDebugTest::doh; + + + int main(int argc, const char *argv[]) { + BabyDebugTest BDT(20); + BDT.doit(); + return 0; + } From jlaskey at apple.com Mon Dec 4 16:04:56 2006 From: jlaskey at apple.com (Jim Laskey) Date: Mon, 4 Dec 2006 16:04:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCISelLowering.cpp Message-ID: <200612042204.kB4M4uxM030863@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCISelLowering.cpp updated: 1.239 -> 1.240 --- Log message: Restoration of the stack pointer after a deallocation of a alloca was not updating the SP link. --- Diffs of the changes: (+28 -1) PPCISelLowering.cpp | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.239 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.240 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.239 Fri Dec 1 10:30:47 2006 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Mon Dec 4 16:04:42 2006 @@ -170,7 +170,7 @@ setOperationAction(ISD::VACOPY , MVT::Other, Expand); setOperationAction(ISD::VAEND , MVT::Other, Expand); setOperationAction(ISD::STACKSAVE , MVT::Other, Expand); - setOperationAction(ISD::STACKRESTORE , MVT::Other, Expand); + setOperationAction(ISD::STACKRESTORE , MVT::Other, Custom); setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32 , Custom); setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64 , Custom); @@ -1606,6 +1606,32 @@ return DAG.getNode(PPCISD::RET_FLAG, MVT::Other, Copy, Copy.getValue(1)); } +static SDOperand LowerSTACKRESTORE(SDOperand Op, SelectionDAG &DAG, + const PPCSubtarget &Subtarget) { + // When we pop the dynamic allocation we need to restore the SP link. + + // Get the corect type for pointers. + MVT::ValueType PtrVT = DAG.getTargetLoweringInfo().getPointerTy(); + + // Construct the stack pointer operand. + bool IsPPC64 = Subtarget.isPPC64(); + unsigned SP = IsPPC64 ? PPC::X1 : PPC::R1; + SDOperand StackPtr = DAG.getRegister(SP, PtrVT); + + // Get the operands for the STACKRESTORE. + SDOperand Chain = Op.getOperand(0); + SDOperand SaveSP = Op.getOperand(1); + + // Load the old link SP. + SDOperand LoadLinkSP = DAG.getLoad(PtrVT, Chain, StackPtr, NULL, 0); + + // Restore the stack pointer. + Chain = DAG.getCopyToReg(LoadLinkSP.getValue(1), SP, SaveSP); + + // Store the old link SP. + return DAG.getStore(Chain, LoadLinkSP, StackPtr, NULL, 0); +} + static SDOperand LowerDYNAMIC_STACKALLOC(SDOperand Op, SelectionDAG &DAG, const PPCSubtarget &Subtarget) { MachineFunction &MF = DAG.getMachineFunction(); @@ -2587,6 +2613,7 @@ return LowerFORMAL_ARGUMENTS(Op, DAG, VarArgsFrameIndex); case ISD::CALL: return LowerCALL(Op, DAG); case ISD::RET: return LowerRET(Op, DAG); + case ISD::STACKRESTORE: return LowerSTACKRESTORE(Op, DAG, PPCSubTarget); case ISD::DYNAMIC_STACKALLOC: return LowerDYNAMIC_STACKALLOC(Op, DAG, PPCSubTarget); From reid at x10sys.com Mon Dec 4 16:08:01 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 16:08:01 -0600 Subject: [llvm-commits] CVS: llvm-test/External/SPEC/Makefile.spec Message-ID: <200612042208.kB4M81jH030923@zion.cs.uiuc.edu> Changes in directory llvm-test/External/SPEC: Makefile.spec updated: 1.59 -> 1.60 --- Log message: Implement a new feature: output file filtering. A makefile can override the default filter (cat) to contort the test's output. This is necessary for things like 183.equake that put out the program name in its output messages. --- Diffs of the changes: (+21 -8) Makefile.spec | 29 +++++++++++++++++++++-------- 1 files changed, 21 insertions(+), 8 deletions(-) Index: llvm-test/External/SPEC/Makefile.spec diff -u llvm-test/External/SPEC/Makefile.spec:1.59 llvm-test/External/SPEC/Makefile.spec:1.60 --- llvm-test/External/SPEC/Makefile.spec:1.59 Sat Dec 2 07:40:36 2006 +++ llvm-test/External/SPEC/Makefile.spec Mon Dec 4 16:07:46 2006 @@ -19,6 +19,11 @@ REF_OUT_DIR := $(SPEC_BENCH_DIR)/data/$(RUN_TYPE)/output/ LOCAL_OUTPUTS := $(notdir $(wildcard $(REF_OUT_DIR)/*)) +# Sometimes a test will output its program name or some other gunk that +# we don't want to diff against. Tests can override this definition to +# provide a filter for the output files. +SPEC_OUTPUT_FILE_FILTER = cat + # Specify how to generate output from the SPEC programs. Basically we just run # the program in a sandbox (a special directory we create), then we cat all of @@ -29,7 +34,8 @@ -$(SPEC_SANDBOX) nat-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../$*.native $(RUN_OPTIONS) - -(cd Output/nat-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/nat-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/nat-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-lli): \ @@ -37,7 +43,8 @@ -$(SPEC_SANDBOX) lli-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ $(LLI) $(LLI_OPTS) ../$*.llvm.bc $(RUN_OPTIONS) - -(cd Output/lli-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/lli-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/lli-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-jit): \ @@ -45,7 +52,8 @@ -$(SPEC_SANDBOX) jit-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ $(LLI) $(JIT_OPTS) ../$*.llvm.bc $(RUN_OPTIONS) - -(cd Output/jit-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/jit-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/jit-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-jit-beta): \ @@ -53,7 +61,8 @@ -$(SPEC_SANDBOX) jit-beta-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ $(LLI) $(LLCBETAOPTION) $(JIT_OPTS) ../$*.llvm.bc $(RUN_OPTIONS) - -(cd Output/jit-beta-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/jit-beta-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/jit-beta-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-llc): \ @@ -61,7 +70,8 @@ -$(SPEC_SANDBOX) llc-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../$*.llc $(RUN_OPTIONS) - -(cd Output/llc-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/llc-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/llc-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-llc-beta): \ @@ -69,7 +79,8 @@ -$(SPEC_SANDBOX) llc-beta-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../$*.llc-beta $(RUN_OPTIONS) - -(cd Output/llc-beta-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/llc-beta-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/llc-beta-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-cbe): \ @@ -77,7 +88,8 @@ -$(SPEC_SANDBOX) cbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../$*.cbe $(RUN_OPTIONS) - -(cd Output/cbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ + -(cd Output/cbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > $@ -cp Output/cbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time # The RunSafely.sh script puts an "exit " line at the end of @@ -159,7 +171,8 @@ $(SPEC_SANDBOX) profile-$(RUN_TYPE) Output/$*.out-prof $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) $(LLI) $(JIT_OPTS)\ -fake-argv0 '../$*.llvm.bc' -load $(LIBPROFILESO) ../../$< -llvmprof-output ../../$@ $(RUN_OPTIONS) - -(cd Output/profile-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > Output/$*.out-prof + -(cd Output/profile-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) | \ + $(SPEC_OUTPUT_FILE_FILTER) > Output/$*.out-prof -cp Output/profile-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time -cp Output/profile-$(RUN_TYPE)/llvmprof.out $@ @cmp -s Output/$*.out-prof Output/$*.out-nat || \ From reid at x10sys.com Mon Dec 4 16:09:54 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 16:09:54 -0600 Subject: [llvm-commits] CVS: llvm-test/External/SPEC/CFP2000/183.equake/Makefile Message-ID: <200612042209.kB4M9smP030966@zion.cs.uiuc.edu> Changes in directory llvm-test/External/SPEC/CFP2000/183.equake: Makefile updated: 1.5 -> 1.6 --- Log message: Provide an output file filter for this test because 183.equake prints out the program name in its messages. The program name has a different suffix for native, llc, jit, and cbe. The filter wipes out the program name. --- Diffs of the changes: (+2 -0) Makefile | 2 ++ 1 files changed, 2 insertions(+) Index: llvm-test/External/SPEC/CFP2000/183.equake/Makefile diff -u llvm-test/External/SPEC/CFP2000/183.equake/Makefile:1.5 llvm-test/External/SPEC/CFP2000/183.equake/Makefile:1.6 --- llvm-test/External/SPEC/CFP2000/183.equake/Makefile:1.5 Mon Sep 6 22:41:15 2004 +++ llvm-test/External/SPEC/CFP2000/183.equake/Makefile Mon Dec 4 16:09:39 2006 @@ -6,3 +6,5 @@ CPPFLAGS = include ../../Makefile.spec2000 + +SPEC_OUTPUT_FILE_FILTER := sed -e 's/^\.\.\/183.equake.*://' From sabre at nondot.org Mon Dec 4 16:38:02 2006 From: sabre at nondot.org (Chris Lattner) Date: Mon, 4 Dec 2006 16:38:02 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/x86-64-asm.ll Message-ID: <200612042238.kB4Mc2im031658@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: x86-64-asm.ll added (r1.1) --- Log message: Testcase for PR1029: http://llvm.org/PR1029 , patch by Rafael ?vila de Esp??ndola --- Diffs of the changes: (+15 -0) x86-64-asm.ll | 15 +++++++++++++++ 1 files changed, 15 insertions(+) Index: llvm/test/Regression/CodeGen/X86/x86-64-asm.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/x86-64-asm.ll:1.1 *** /dev/null Mon Dec 4 16:37:58 2006 --- llvm/test/Regression/CodeGen/X86/x86-64-asm.ll Mon Dec 4 16:37:48 2006 *************** *** 0 **** --- 1,15 ---- + ; RUN: llvm-as < %s | llc + ; PR1029 + + target datalayout = "e-p:64:64" + target endian = little + target pointersize = 64 + target triple = "x86_64-unknown-linux-gnu" + + implementation ; Functions: + + void %frame_dummy() { + entry: + %tmp1 = tail call void (sbyte*)* (void (sbyte*)*)* asm "", "=r,0,~{dirflag},~{fpsr},~{flags}"( void (sbyte*)* null ) ; [#uses=0] + ret void + } From sabre at nondot.org Mon Dec 4 16:38:36 2006 From: sabre at nondot.org (Chris Lattner) Date: Mon, 4 Dec 2006 16:38:36 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200612042238.kB4Mca48031678@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.299 -> 1.300 --- Log message: Add support for 64-bit 'r' constraint. Patch by by Rafael ~Avila de Esp??ndol! This fixes PR1029: http://llvm.org/PR1029 and Regression/CodeGen/X86/x86-64-asm.ll --- Diffs of the changes: (+5 -0) X86ISelLowering.cpp | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.299 llvm/lib/Target/X86/X86ISelLowering.cpp:1.300 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.299 Thu Nov 30 15:55:46 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Mon Dec 4 16:38:21 2006 @@ -5528,6 +5528,11 @@ break; case 'r': // GENERAL_REGS case 'R': // LEGACY_REGS + if (VT == MVT::i64 && Subtarget->is64Bit()) + return make_vector(X86::RAX, X86::RDX, X86::RCX, X86::RBX, + X86::RSI, X86::RDI, X86::RBP, X86::RSP, + X86::R8, X86::R9, X86::R10, X86::R11, + X86::R12, X86::R13, X86::R14, X86::R15, 0); if (VT == MVT::i32) return make_vector(X86::EAX, X86::EDX, X86::ECX, X86::EBX, X86::ESI, X86::EDI, X86::EBP, X86::ESP, 0); From reid at x10sys.com Mon Dec 4 17:14:41 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 17:14:41 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h InstrTypes.h Message-ID: <200612042314.kB4NEfkv032265@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Constants.h updated: 1.101 -> 1.102 InstrTypes.h updated: 1.51 -> 1.52 --- Log message: Add cast creation functions for Pointer Casts, either BitCast or PtrToInt --- Diffs of the changes: (+23 -1) Constants.h | 8 +++++++- InstrTypes.h | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.101 llvm/include/llvm/Constants.h:1.102 --- llvm/include/llvm/Constants.h:1.101 Mon Dec 4 15:34:17 2006 +++ llvm/include/llvm/Constants.h Mon Dec 4 17:14:27 2006 @@ -561,6 +561,12 @@ const Type *Ty ///< The type to trunc or bitcast C to ); + /// @brief Create a BitCast or a PtrToInt cast constant expression + static Constant *getPointerCast( + Constant *C, ///< The pointer value to be casted (operand 0) + const Type *Ty ///< The type to which cast should be made + ); + // This method uses the CastInst::getCastOpcode method to infer the // cast opcode to use. // @brief Get a ConstantExpr Conversion operator that casts C to Ty @@ -597,7 +603,7 @@ /// static Constant *get(unsigned Opcode, Constant *C1, Constant *C2); - /// @brief Return an ICmp or FCmp comparison operator constante expression. + /// @brief Return an ICmp or FCmp comparison operator constant expression. static Constant *getCompare(unsigned Opcode, unsigned short pred, Constant *C1, Constant *C2); Index: llvm/include/llvm/InstrTypes.h diff -u llvm/include/llvm/InstrTypes.h:1.51 llvm/include/llvm/InstrTypes.h:1.52 --- llvm/include/llvm/InstrTypes.h:1.51 Mon Dec 4 14:17:56 2006 +++ llvm/include/llvm/InstrTypes.h Mon Dec 4 17:14:27 2006 @@ -323,6 +323,22 @@ Instruction *InsertBefore = 0 ///< Place to insert the instruction ); + /// @brief Create a BitCast or a PtrToInt cast instruction + static CastInst *createPointerCast( + Value *S, ///< The pointer value to be casted (operand 0) + const Type *Ty, ///< The type to which operand is casted + const std::string &Name, ///< The name for the instruction + BasicBlock *InsertAtEnd ///< The block to insert the instruction into + ); + + /// @brief Create a BitCast or a PtrToInt cast instruction + static CastInst *createPointerCast( + Value *S, ///< The pointer value to be casted (operand 0) + const Type *Ty, ///< The type to which cast should be made + const std::string &Name = "", ///< Name for the instruction + Instruction *InsertBefore = 0 ///< Place to insert the instruction + ); + /// @brief Create a SExt or BitCast cast instruction static CastInst *createSExtOrBitCast( Value *S, ///< The value to be casted (operand 0) From dpatel at apple.com Mon Dec 4 17:55:14 2006 From: dpatel at apple.com (Devang Patel) Date: Mon, 4 Dec 2006 17:55:14 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/SCCP/2006-12-04-PackedType.ll Message-ID: <200612042355.kB4NtEaa000457@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/SCCP: 2006-12-04-PackedType.ll added (r1.1) --- Log message: SCCP does not handle Packed Type properly. Disable Packed Type handling for now. --- Diffs of the changes: (+149 -0) 2006-12-04-PackedType.ll | 149 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 149 insertions(+) Index: llvm/test/Regression/Transforms/SCCP/2006-12-04-PackedType.ll diff -c /dev/null llvm/test/Regression/Transforms/SCCP/2006-12-04-PackedType.ll:1.1 *** /dev/null Mon Dec 4 17:55:09 2006 --- llvm/test/Regression/Transforms/SCCP/2006-12-04-PackedType.ll Mon Dec 4 17:54:59 2006 *************** *** 0 **** --- 1,149 ---- + ; Test PackedType handling by SCCP. + ; SCCP ignores PackedTypes until PR 1034 is fixed + ; + ; RUN: llvm-upgrade < %s | llvm-as | opt -sccp + target datalayout = "E-p:32:32" + target endian = big + target pointersize = 32 + target triple = "powerpc-apple-darwin8" + %struct.GLDAlphaTest = type { float, ushort, ubyte, ubyte } + %struct.GLDArrayRange = type { ubyte, ubyte, ubyte, ubyte } + %struct.GLDBlendMode = type { ushort, ushort, ushort, ushort, %struct.GLTColor4, ushort, ushort, ubyte, ubyte, ubyte, ubyte } + %struct.GLDBufferRec = type opaque + %struct.GLDBufferstate = type { %struct.GLTDimensions, %struct.GLTDimensions, %struct.GLTFixedColor4, %struct.GLTFixedColor4, ubyte, ubyte, ubyte, ubyte, [2 x %struct.GLSBuffer], [4 x %struct.GLSBuffer], %struct.GLSBuffer, %struct.GLSBuffer, %struct.GLSBuffer, [4 x %struct.GLSBuffer*], %struct.GLSBuffer*, %struct.GLSBuffer*, %struct.GLSBuffer*, ubyte, ubyte } + %struct.GLDClearColor = type { double, %struct.GLTColor4, %struct.GLTColor4, float, int } + %struct.GLDClipPlane = type { uint, [6 x %struct.GLTColor4] } + %struct.GLDColorBuffer = type { ushort, ushort, [4 x ushort] } + %struct.GLDColorMatrix = type { [16 x float]*, %struct.GLDImagingColorScale } + %struct.GLDContextRec = type { float, float, float, float, float, float, float, float, %struct.GLTColor4, %struct.GLTColor4, %struct.GLVMFPContext, %struct.GLDTextureMachine, %struct.GLGProcessor, %struct._GLVMConstants*, void (%struct.GLDContextRec*, int, int, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, int)*, %struct._GLVMFunction*, void (%struct.GLDContextRec*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*, %struct.GLDVertex*)*, %struct._GLVMFunction*, %struct._GLVMFunction*, %struct._GLVMFunction*, uint, uint, uint, float, float, float, uint, %struct.GLSDrawable, %struct.GLDRect, %struct.GLDFormat, %struct.GLDBufferstate, %struct.GLDSharedRec*, %struct.GLDState*, %struct.GLDPluginState*, %struct.GLTDimensions, %struct.GLTColor4*, %struct.GLTColor4*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentA! ttribRec*, %struct.GLDPipelineProgramRec*, %struct.GLDStateProgramRec, %struct.GLVMTextures, { [4 x sbyte*], sbyte*, sbyte* }, [64 x float], %struct.GLDStippleData, ushort, ubyte, ubyte, uint, %struct.GLDFramebufferRec*, ubyte, %struct.GLDQueryRec*, %struct.GLDQueryRec* } + %struct.GLDConvolution = type { %struct.GLTColor4, %struct.GLDImagingColorScale, ushort, ushort, float*, int, int } + %struct.GLDDepthTest = type { ushort, ushort, ubyte, ubyte, ubyte, ubyte, double, double } + %struct.GLDFogMode = type { %struct.GLTColor4, float, float, float, float, float, ushort, ushort, ushort, ubyte, ubyte } + %struct.GLDFormat = type { int, int, int, int, int, int, uint, uint, ubyte, ubyte, ubyte, ubyte, int, int, int } + %struct.GLDFramebufferAttachment = type { uint, uint, uint, int, uint, uint } + %struct.GLDFramebufferData = type { [6 x %struct.GLDFramebufferAttachment], [4 x ushort], ushort, ushort, ushort, ushort, uint } + %struct.GLDFramebufferRec = type { %struct.GLDFramebufferData*, %struct.GLDPluginFramebufferData*, %struct.GLDPixelFormat } + %struct.GLDHintMode = type { ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort } + %struct.GLDHistogram = type { %struct.GLTFixedColor4*, int, ushort, ubyte, ubyte } + %struct.GLDImagingColorScale = type { { float, float }, { float, float }, { float, float }, { float, float } } + %struct.GLDImagingSubset = type { %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDColorMatrix, %struct.GLDMinmax, %struct.GLDHistogram, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, uint } + %struct.GLDLight = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, float, float, float, float, %struct.GLTCoord3, float, float, float, float, float } + %struct.GLDLightModel = type { %struct.GLTColor4, [8 x %struct.GLDLight], [2 x %struct.GLDMaterial], uint, ushort, ushort, ushort, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } + %struct.GLDLightProduct = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4 } + %struct.GLDLineMode = type { float, int, ushort, ushort, ubyte, ubyte, ubyte, ubyte } + %struct.GLDLogicOp = type { ushort, ubyte, ubyte } + %struct.GLDMaskMode = type { uint, [3 x uint], ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } + %struct.GLDMaterial = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, float, float, float, float, [8 x %struct.GLDLightProduct], %struct.GLTColor4, [6 x int], [2 x int] } + %struct.GLDMinmax = type { %struct.GLDMinmaxTable*, ushort, ubyte, ubyte } + %struct.GLDMinmaxTable = type { %struct.GLTColor4, %struct.GLTColor4 } + %struct.GLDMipmaplevel = type { [4 x uint], [4 x float], [4 x uint], [4 x uint], [4 x float], [4 x uint], [3 x uint], uint, float*, float*, float*, uint, uint, sbyte*, short, ushort, ushort, short } + %struct.GLDMultisample = type { float, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } + %struct.GLDPipelineProgramData = type { ushort, ushort, uint, %struct._PPStreamToken*, ulong, %struct.GLDShaderSourceData*, %struct.GLTColor4*, uint } + %struct.GLDPipelineProgramRec = type { %struct.GLDPipelineProgramData*, %struct._PPStreamToken*, %struct._PPStreamToken*, %struct._GLVMFunction*, uint, uint, uint } + %struct.GLDPipelineProgramState = type { ubyte, ubyte, ubyte, ubyte, %struct.GLTColor4* } + %struct.GLDPixelFormat = type { ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } + %struct.GLDPixelMap = type { int*, float*, float*, float*, float*, float*, float*, float*, float*, int*, int, int, int, int, int, int, int, int, int, int } + %struct.GLDPixelMode = type { float, float, %struct.GLDPixelStore, %struct.GLDPixelTransfer, %struct.GLDPixelMap, %struct.GLDImagingSubset, uint, uint } + %struct.GLDPixelPack = type { int, int, int, int, int, int, int, int, ubyte, ubyte, ubyte, ubyte } + %struct.GLDPixelStore = type { %struct.GLDPixelPack, %struct.GLDPixelPack } + %struct.GLDPixelTransfer = type { float, float, float, float, float, float, float, float, float, float, int, int, float, float, float, float, float, float, float, float, float, float, float, float } + %struct.GLDPluginFramebufferData = type { [6 x %struct.GLDTextureRec*], uint, uint } + %struct.GLDPluginProgramData = type { [3 x %struct.GLDPipelineProgramRec*], %struct.GLDBufferRec**, uint } + %struct.GLDPluginState = type { [16 x [5 x %struct.GLDTextureRec*]], [3 x %struct.GLDTextureRec*], [16 x %struct.GLDTextureRec*], [3 x %struct.GLDPipelineProgramRec*], %struct.GLDProgramRec*, %struct.GLDVertexArrayRec*, [16 x %struct.GLDBufferRec*], %struct.GLDFramebufferRec*, %struct.GLDFramebufferRec* } + %struct.GLDPointMode = type { float, float, float, float, %struct.GLTCoord3, float, ubyte, ubyte, ubyte, ubyte, ushort, ushort, uint, ushort, ushort } + %struct.GLDPolygonMode = type { [128 x ubyte], float, float, ushort, ushort, ushort, ushort, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } + %struct.GLDProgramData = type { uint, [16 x int], int, int, uint, int } + %struct.GLDProgramRec = type { %struct.GLDProgramData*, %struct.GLDPluginProgramData*, uint } + %struct.GLDQueryRec = type { uint, uint, %struct.GLDQueryRec* } + %struct.GLDRect = type { int, int, int, int, int, int } + %struct.GLDRegisterCombiners = type { ubyte, ubyte, ubyte, ubyte, int, [2 x %struct.GLTColor4], [8 x %struct.GLDRegisterCombinersPerStageState], %struct.GLDRegisterCombinersFinalStageState } + %struct.GLDRegisterCombinersFinalStageState = type { ubyte, ubyte, ubyte, ubyte, [7 x %struct.GLDRegisterCombinersPerVariableState] } + %struct.GLDRegisterCombinersPerPortionState = type { [4 x %struct.GLDRegisterCombinersPerVariableState], ubyte, ubyte, ubyte, ubyte, ushort, ushort, ushort, ushort, ushort, ushort } + %struct.GLDRegisterCombinersPerStageState = type { [2 x %struct.GLDRegisterCombinersPerPortionState], [2 x %struct.GLTColor4] } + %struct.GLDRegisterCombinersPerVariableState = type { ushort, ushort, ushort, ushort } + %struct.GLDScissorTest = type { %struct.GLTFixedColor4, ubyte, ubyte, ubyte, ubyte } + %struct.GLDShaderSourceData = type { uint, uint, sbyte*, int*, uint, uint, sbyte*, int*, sbyte* } + %struct.GLDSharedRec = type opaque + %struct.GLDState = type { short, short, uint, uint, uint, [256 x %struct.GLTColor4], [128 x %struct.GLTColor4], %struct.GLDViewport, %struct.GLDTransform, %struct.GLDLightModel, uint*, int, int, int, %struct.GLDAlphaTest, %struct.GLDBlendMode, %struct.GLDClearColor, %struct.GLDColorBuffer, %struct.GLDDepthTest, %struct.GLDArrayRange, %struct.GLDFogMode, %struct.GLDHintMode, %struct.GLDLineMode, %struct.GLDLogicOp, %struct.GLDMaskMode, %struct.GLDPixelMode, %struct.GLDPointMode, %struct.GLDPolygonMode, %struct.GLDScissorTest, uint, %struct.GLDStencilTest, [16 x %struct.GLDTextureMode], %struct.GLDArrayRange, [8 x %struct.GLDTextureCoordGen], %struct.GLDClipPlane, %struct.GLDMultisample, %struct.GLDRegisterCombiners, %struct.GLDArrayRange, %struct.GLDArrayRange, [3 x %struct.GLDPipelineProgramState], %struct.GLDTransformFeedback } + %struct.GLDStateProgramRec = type { %struct.GLDPipelineProgramData*, %struct.GLDPipelineProgramRec* } + %struct.GLDStencilTest = type { [3 x { uint, int, ushort, ushort, ushort, ushort }], uint, [4 x ubyte] } + %struct.GLDStippleData = type { uint, ushort, ushort, [32 x [32 x ubyte]] } + %struct.GLDTextureCoordGen = type { { ushort, ushort, %struct.GLTColor4, %struct.GLTColor4 }, { ushort, ushort, %struct.GLTColor4, %struct.GLTColor4 }, { ushort, ushort, %struct.GLTColor4, %struct.GLTColor4 }, { ushort, ushort, %struct.GLTColor4, %struct.GLTColor4 }, ubyte, ubyte, ubyte, ubyte } + %struct.GLDTextureGeomState = type { ushort, ushort, ushort, ushort, ushort, ubyte, ubyte, ushort, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, [6 x ushort], [6 x ushort] } + %struct.GLDTextureLevel = type { uint, uint, ushort, ushort, ushort, ubyte, ubyte, ushort, ushort, ushort, ushort, ubyte* } + %struct.GLDTextureMachine = type { [8 x %struct.GLDTextureRec*], %struct.GLDTextureRec*, ubyte, ubyte, ubyte, ubyte } + %struct.GLDTextureMode = type { %struct.GLTColor4, uint, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, float, float, float, ushort, ushort, ushort, ushort, ushort, ushort, [4 x ushort], ubyte, ubyte, ubyte, ubyte, [3 x float], [4 x float], float, float } + %struct.GLDTextureParamState = type { ushort, ushort, ushort, ushort, ushort, ushort, %struct.GLTColor4, float, float, float, float, short, short, ushort, ushort, float, ushort, ubyte, ubyte, int, sbyte* } + %struct.GLDTextureRec = type { %struct.GLDTextureState*, int, [2 x float], float, uint, float, float, float, float, float, float, %struct.GLDMipmaplevel*, %struct.GLDMipmaplevel*, int, int, uint, uint, uint, uint, %struct.GLDTextureParamState, uint, [2 x %struct._PPStreamToken] } + %struct.GLDTextureState = type { ushort, ushort, ushort, float, uint, ushort, %struct.GLISWRSurface*, ubyte, ubyte, ubyte, ubyte, %struct.GLDTextureParamState, %struct.GLDTextureGeomState, %struct.GLDTextureLevel, [6 x [15 x %struct.GLDTextureLevel]] } + %struct.GLDTransform = type { [24 x [16 x float]], [24 x [16 x float]], [16 x float], float, float, float, float, int, float, ushort, ushort, ubyte, ubyte, ubyte, ubyte } + %struct.GLDTransformFeedback = type { ubyte, ubyte, ubyte, [16 x uint], [16 x uint] } + %struct.GLDVertex = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, %struct.GLTColor4, float, float, float, ubyte, ubyte, ubyte, ubyte, [4 x float], [2 x %struct.GLDMaterial*], uint, uint, [8 x %struct.GLTColor4] } + %struct.GLDVertexArrayRec = type opaque + %struct.GLDViewport = type { float, float, float, float, float, float, float, float, double, double, int, int, int, int, float, float, float, float } + %struct.GLGColorTable = type { uint, uint, int, sbyte* } + %struct.GLGOperation = type { sbyte*, sbyte*, int, uint, uint, int, uint, uint, uint, uint, uint, uint, uint, float, float, %struct.GLGColorTable, %struct.GLGColorTable, %struct.GLGColorTable } + %struct.GLGProcessor = type { void (%struct.GLDPixelMode*, %struct.GLGOperation*, %struct._GLGFunctionKey*)*, %struct._GLVMFunction*, %struct._GLGFunctionKey* } + %struct.GLISWRSurface = type { int, int, int, int, int, int, int, int, int, int, ubyte*, ubyte*, ubyte*, [4 x ubyte*], uint } + %struct.GLIWindow = type { uint, uint, uint } + %struct.GLSBuffer = type { sbyte* } + %struct.GLSDrawable = type { %struct.GLSWindowRec* } + %struct.GLSWindowRec = type { %struct.GLTDimensions, %struct.GLTDimensions, uint, uint, %struct.GLSDrawable, [2 x ubyte*], ubyte*, ubyte*, ubyte*, [4 x ubyte*], uint, uint, uint, uint, [4 x uint], ushort, ushort, ushort, %struct.GLIWindow, uint, uint, sbyte*, ubyte* } + %struct.GLTColor4 = type { float, float, float, float } + %struct.GLTCoord3 = type { float, float, float } + %struct.GLTDimensions = type { int, int } + %struct.GLTFixedColor4 = type { int, int, int, int } + %struct.GLVMFPContext = type { float, uint, uint, uint } + %struct.GLVMFragmentAttribRec = type { <4 x float>, <4 x float>, <4 x float>, <4 x float>, [8 x <4 x float>] } + %struct.GLVMTextures = type { [8 x %struct.GLDTextureRec*] } + %struct._GLGFunctionKey = type opaque + %struct._GLVMConstants = type opaque + %struct._GLVMFunction = type opaque + %struct._PPStreamToken = type { { ushort, ubyte, ubyte, uint } } + + implementation ; Functions: + + void %gldLLVMVecPointRender(%struct.GLDContextRec* %ctx) { + entry: + %tmp = getelementptr %struct.GLDContextRec* %ctx, int 0, uint 22 ; [#uses=1] + %tmp = load uint* %tmp ; [#uses=3] + %tmp91 = lshr uint %tmp, ubyte 5 ; [#uses=1] + %tmp92 = trunc uint %tmp91 to bool ; [#uses=1] + br bool %tmp92, label %cond_true93, label %cond_next116 + + cond_true93: ; preds = %entry + %tmp = getelementptr %struct.GLDContextRec* %ctx, int 0, uint 31, uint 14 ; [#uses=1] + %tmp95 = load int* %tmp ; [#uses=1] + %tmp95 = sitofp int %tmp95 to float ; [#uses=1] + %tmp108 = mul float undef, %tmp95 ; [#uses=1] + br label %cond_next116 + + cond_next116: ; preds = %cond_true93, %entry + %point_size.2 = phi float [ %tmp108, %cond_true93 ], [ undef, %entry ] ; [#uses=2] + %tmp457 = setlt float %point_size.2, 1.000000e+00 ; [#uses=1] + %tmp460 = lshr uint %tmp, ubyte 6 ; [#uses=1] + %tmp461 = trunc uint %tmp460 to bool ; [#uses=1] + br bool %tmp457, label %cond_true458, label %cond_next484 + + cond_true458: ; preds = %cond_next116 + br bool %tmp461, label %cond_true462, label %cond_next487 + + cond_true462: ; preds = %cond_true458 + %tmp26 = bitcast uint %tmp to int ; [#uses=1] + %tmp465 = and int %tmp26, 128 ; [#uses=1] + %tmp466 = seteq int %tmp465, 0 ; [#uses=1] + br bool %tmp466, label %cond_true467, label %cond_next487 + + cond_true467: ; preds = %cond_true462 + ret void + + cond_next484: ; preds = %cond_next116 + %tmp486 = mul float %point_size.2, 5.000000e-01 ; [#uses=1] + br label %cond_next487 + + cond_next487: ; preds = %cond_next484, %cond_true462, %cond_true458 + %radius.0 = phi float [ %tmp486, %cond_next484 ], [ 5.000000e-01, %cond_true458 ], [ 5.000000e-01, %cond_true462 ] ; [#uses=2] + %tmp494 = insertelement <4 x float> zeroinitializer, float %radius.0, uint 2 ; <<4 x float>> [#uses=1] + %tmp495 = insertelement <4 x float> %tmp494, float %radius.0, uint 3 ; <<4 x float>> [#uses=0] + ret void + } From dpatel at apple.com Mon Dec 4 17:55:16 2006 From: dpatel at apple.com (Devang Patel) Date: Mon, 4 Dec 2006 17:55:16 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/SCCP.cpp Message-ID: <200612042355.kB4NtGML000463@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: SCCP.cpp updated: 1.137 -> 1.138 --- Log message: SCCP does not handle Packed Type properly. Disable Packed Type handling for now. --- Diffs of the changes: (+17 -1) SCCP.cpp | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/SCCP.cpp diff -u llvm/lib/Transforms/Scalar/SCCP.cpp:1.137 llvm/lib/Transforms/Scalar/SCCP.cpp:1.138 --- llvm/lib/Transforms/Scalar/SCCP.cpp:1.137 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/SCCP.cpp Mon Dec 4 17:54:59 2006 @@ -749,6 +749,11 @@ } void SCCPSolver::visitExtractElementInst(ExtractElementInst &I) { + // FIXME : SCCP does not handle vectors properly. + markOverdefined(&I); + return; + +#if 0 LatticeVal &ValState = getValueState(I.getOperand(0)); LatticeVal &IdxState = getValueState(I.getOperand(1)); @@ -757,9 +762,14 @@ else if(ValState.isConstant() && IdxState.isConstant()) markConstant(&I, ConstantExpr::getExtractElement(ValState.getConstant(), IdxState.getConstant())); +#endif } void SCCPSolver::visitInsertElementInst(InsertElementInst &I) { + // FIXME : SCCP does not handle vectors properly. + markOverdefined(&I); + return; +#if 0 LatticeVal &ValState = getValueState(I.getOperand(0)); LatticeVal &EltState = getValueState(I.getOperand(1)); LatticeVal &IdxState = getValueState(I.getOperand(2)); @@ -773,13 +783,18 @@ EltState.getConstant(), IdxState.getConstant())); else if (ValState.isUndefined() && EltState.isConstant() && - IdxState.isConstant()) + IdxState.isConstant()) markConstant(&I, ConstantExpr::getInsertElement(UndefValue::get(I.getType()), EltState.getConstant(), IdxState.getConstant())); +#endif } void SCCPSolver::visitShuffleVectorInst(ShuffleVectorInst &I) { + // FIXME : SCCP does not handle vectors properly. + markOverdefined(&I); + return; +#if 0 LatticeVal &V1State = getValueState(I.getOperand(0)); LatticeVal &V2State = getValueState(I.getOperand(1)); LatticeVal &MaskState = getValueState(I.getOperand(2)); @@ -801,6 +816,7 @@ MaskState.getConstant() : UndefValue::get(I.getOperand(2)->getType()); markConstant(&I, ConstantExpr::getShuffleVector(V1, V2, Mask)); } +#endif } // Handle getelementptr instructions... if all operands are constants then we From sabre at nondot.org Mon Dec 4 19:26:44 2006 From: sabre at nondot.org (Chris Lattner) Date: Mon, 4 Dec 2006 19:26:44 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200612050126.kB51QilS001982@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.558 -> 1.559 --- Log message: add an instcombine xform. This speeds up 462.libquantum from 9.78s to 7.48s. This regression is due to unforseen consequences of the cast patch. --- Diffs of the changes: (+17 -0) InstructionCombining.cpp | 17 +++++++++++++++++ 1 files changed, 17 insertions(+) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.558 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.559 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.558 Sun Dec 3 20:48:01 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Mon Dec 4 19:26:29 2006 @@ -6023,6 +6023,23 @@ Value *V = InsertCastBefore(SrcI->getOperand(0), Ty, CI); return new ShiftInst(Instruction::LShr, V, SrcI->getOperand(1)); } + } else { // This is a variable shr. + + // Turn 'trunc (lshr X, Y) to bool' into '(X & (1 << Y)) != 0'. This is + // more LLVM instructions, but allows '1 << Y' to be hoisted if + // loop-invariant and CSE'd. + if (CI.getType() == Type::BoolTy && SrcI->hasOneUse()) { + Value *One = ConstantInt::get(SrcI->getType(), 1); + + Value *V = InsertNewInstBefore(new ShiftInst(Instruction::Shl, One, + SrcI->getOperand(1), + "tmp"), CI); + V = InsertNewInstBefore(BinaryOperator::createAnd(V, + SrcI->getOperand(0), + "tmp"), CI); + Value *Zero = Constant::getNullValue(V->getType()); + return BinaryOperator::createSetNE(V, Zero); + } } break; } From sabre at nondot.org Mon Dec 4 19:29:16 2006 From: sabre at nondot.org (Chris Lattner) Date: Mon, 4 Dec 2006 19:29:16 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/shl-trunc.ll Message-ID: <200612050129.kB51TGpb002291@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: shl-trunc.ll added (r1.1) --- Log message: new testcase --- Diffs of the changes: (+7 -0) shl-trunc.ll | 7 +++++++ 1 files changed, 7 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/shl-trunc.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/shl-trunc.ll:1.1 *** /dev/null Mon Dec 4 19:29:11 2006 --- llvm/test/Regression/Transforms/InstCombine/shl-trunc.ll Mon Dec 4 19:29:01 2006 *************** *** 0 **** --- 1,7 ---- + ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl + + bool %test(int %X, ubyte %A) { + %B = lshr int %X, ubyte %A + %D = trunc int %B to bool + ret bool %D + } From reid at x10sys.com Mon Dec 4 21:25:41 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 21:25:41 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Message-ID: <200612050325.kB53Pfal004909@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.179 -> 1.180 --- Log message: Implement getPointerCast. --- Diffs of the changes: (+10 -0) Constants.cpp | 10 ++++++++++ 1 files changed, 10 insertions(+) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.179 llvm/lib/VMCore/Constants.cpp:1.180 --- llvm/lib/VMCore/Constants.cpp:1.179 Mon Dec 4 15:35:24 2006 +++ llvm/lib/VMCore/Constants.cpp Mon Dec 4 21:25:26 2006 @@ -1552,6 +1552,16 @@ return getCast(Instruction::Trunc, C, Ty); } +Constant *ConstantExpr::getPointerCast(Constant *S, const Type *Ty) { + assert(isa(S->getType()) && "Invalid cast"); + assert((Ty->isIntegral() || Ty->getTypeID() == Type::PointerTyID) && + "Invalid cast"); + + if (Ty->isIntegral()) + return getCast(Instruction::PtrToInt, S, Ty); + return getCast(Instruction::BitCast, S, Ty); +} + Constant *ConstantExpr::getTrunc(Constant *C, const Type *Ty) { assert(C->getType()->isInteger() && "Trunc operand must be integer"); assert(Ty->isIntegral() && "Trunc produces only integral"); From reid at x10sys.com Mon Dec 4 21:28:41 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 21:28:41 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Instructions.cpp Message-ID: <200612050328.kB53SfJS004971@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Instructions.cpp updated: 1.51 -> 1.52 --- Log message: Implement createPointerCast. --- Diffs of the changes: (+25 -0) Instructions.cpp | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+) Index: llvm/lib/VMCore/Instructions.cpp diff -u llvm/lib/VMCore/Instructions.cpp:1.51 llvm/lib/VMCore/Instructions.cpp:1.52 --- llvm/lib/VMCore/Instructions.cpp:1.51 Mon Dec 4 14:17:56 2006 +++ llvm/lib/VMCore/Instructions.cpp Mon Dec 4 21:28:26 2006 @@ -1548,6 +1548,31 @@ return create(Instruction::Trunc, S, Ty, Name, InsertAtEnd); } +CastInst *CastInst::createPointerCast(Value *S, const Type *Ty, + const std::string &Name, + BasicBlock *InsertAtEnd) { + assert(isa(S->getType()) && "Invalid cast"); + assert((Ty->isIntegral() || Ty->getTypeID() == Type::PointerTyID) && + "Invalid cast"); + + if (Ty->isIntegral()) + return create(Instruction::PtrToInt, S, Ty, Name, InsertAtEnd); + return create(Instruction::BitCast, S, Ty, Name, InsertAtEnd); +} + +/// @brief Create a BitCast or a PtrToInt cast instruction +CastInst *CastInst::createPointerCast(Value *S, const Type *Ty, + const std::string &Name, + Instruction *InsertBefore) { + assert(isa(S->getType()) && "Invalid cast"); + assert((Ty->isIntegral() || Ty->getTypeID() == Type::PointerTyID) && + "Invalid cast"); + + if (Ty->isIntegral()) + return create(Instruction::PtrToInt, S, Ty, Name, InsertBefore); + return create(Instruction::BitCast, S, Ty, Name, InsertBefore); +} + // Provide a way to get a "cast" where the cast opcode is inferred from the // types and size of the operand. This, basically, is a parallel of the // logic in the checkCast function below. This axiom should hold: From reid at x10sys.com Mon Dec 4 21:30:24 2006 From: reid at x10sys.com (Reid Spencer) Date: Mon, 4 Dec 2006 21:30:24 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/ConstantFolding.cpp Message-ID: <200612050330.kB53UOkl005013@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: ConstantFolding.cpp updated: 1.107 -> 1.108 --- Log message: Remove the last inferred casts from VMCore. --- Diffs of the changes: (+7 -10) ConstantFolding.cpp | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) Index: llvm/lib/VMCore/ConstantFolding.cpp diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.107 llvm/lib/VMCore/ConstantFolding.cpp:1.108 --- llvm/lib/VMCore/ConstantFolding.cpp:1.107 Sun Dec 3 23:19:34 2006 +++ llvm/lib/VMCore/ConstantFolding.cpp Mon Dec 4 21:30:09 2006 @@ -777,8 +777,7 @@ uint64_t V = DoubleToBits(cast(CP->getOperand(i))->getValue()); Constant *C = ConstantInt::get(Type::ULongTy, V); - Result.push_back( - ConstantExpr::getInferredCast(C, false, DstEltTy, false)); + Result.push_back(ConstantExpr::getTruncOrBitCast(C, DstEltTy )); } return ConstantPacked::get(Result); } @@ -787,8 +786,7 @@ for (unsigned i = 0; i != SrcNumElts; ++i) { uint32_t V = FloatToBits(cast(CP->getOperand(i))->getValue()); Constant *C = ConstantInt::get(Type::UIntTy, V); - Result.push_back( - ConstantExpr::getInferredCast(C, false, DstEltTy, false)); + Result.push_back(ConstantExpr::getTruncOrBitCast(C, DstEltTy)); } return ConstantPacked::get(Result); } @@ -855,7 +853,7 @@ } if (isAllNull) // This is casting one pointer type to another, always BitCast - return ConstantExpr::getCast(CE->getOperand(0), DestTy); + return ConstantExpr::getPointerCast(CE->getOperand(0), DestTy); } } @@ -1644,7 +1642,7 @@ // We know R is unsigned, Idx0 is signed because it must be an index // through a sequential type (gep pointer operand) which is always // signed. - R = ConstantExpr::getInferredCast(R, false, Idx0->getType(), true); + R = ConstantExpr::getSExtOrBitCast(R, Idx0->getType()); R = ConstantExpr::getMul(R, Idx0); // signed multiply // R is a signed integer, C is the GEP pointer so -> IntToPtr return ConstantExpr::getCast(Instruction::IntToPtr, R, C->getType()); @@ -1676,10 +1674,9 @@ if (!Idx0->isNullValue()) { const Type *IdxTy = Combined->getType(); if (IdxTy != Idx0->getType()) { - Constant *C1 = ConstantExpr::getInferredCast( - Idx0, true, Type::LongTy, true); - Constant *C2 = ConstantExpr::getInferredCast( - Combined, true, Type::LongTy, true); + Constant *C1 = ConstantExpr::getSExtOrBitCast(Idx0, Type::LongTy); + Constant *C2 = ConstantExpr::getSExtOrBitCast(Combined, + Type::LongTy); Combined = ConstantExpr::get(Instruction::Add, C1, C2); } else { Combined = From evan.cheng at apple.com Mon Dec 4 21:58:38 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Mon, 4 Dec 2006 21:58:38 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/README-X86-64.txt Message-ID: <200612050358.kB53wcTC005443@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: README-X86-64.txt updated: 1.1 -> 1.2 --- Log message: Update --- Diffs of the changes: (+10 -0) README-X86-64.txt | 10 ++++++++++ 1 files changed, 10 insertions(+) Index: llvm/lib/Target/X86/README-X86-64.txt diff -u llvm/lib/Target/X86/README-X86-64.txt:1.1 llvm/lib/Target/X86/README-X86-64.txt:1.2 --- llvm/lib/Target/X86/README-X86-64.txt:1.1 Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/README-X86-64.txt Mon Dec 4 21:58:23 2006 @@ -252,6 +252,16 @@ possible. The above is actually one byte shorter than movq $_dst, _ptr +A better example is the code from PR1018. We are generating: + leaq xcalloc2(%rip), %rax + movq %rax, 8(%rsp) +when we should be generating: + movq $xcalloc2, 8(%rsp) + +The reason the better codegen isn't done now is support for static small +code model in JIT mode. The JIT cannot ensure that all GV's are placed in the +lower 4G so we are not treating GV labels as 32-bit values. + //===---------------------------------------------------------------------===// Right now the asm printer assumes GlobalAddress are accessed via RIP relative From evan.cheng at apple.com Mon Dec 4 22:01:18 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Mon, 4 Dec 2006 22:01:18 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86CodeEmitter.cpp X86ISelDAGToDAG.cpp X86ISelLowering.cpp X86InstrInfo.h X86InstrX86-64.td X86JITInfo.cpp X86Relocations.h Message-ID: <200612050401.kB541IXq005535@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86CodeEmitter.cpp updated: 1.124 -> 1.125 X86ISelDAGToDAG.cpp updated: 1.133 -> 1.134 X86ISelLowering.cpp updated: 1.300 -> 1.301 X86InstrInfo.h updated: 1.60 -> 1.61 X86InstrX86-64.td updated: 1.9 -> 1.10 X86JITInfo.cpp updated: 1.32 -> 1.33 X86Relocations.h updated: 1.3 -> 1.4 --- Log message: - Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit immediate in small code model. The JIT cannot ensure GV's are placed in the lower 4G. - Some preliminary support for large code model. --- Diffs of the changes: (+126 -129) X86CodeEmitter.cpp | 171 ++++++++++++++++++++++++++++++---------------------- X86ISelDAGToDAG.cpp | 18 ++--- X86ISelLowering.cpp | 39 +---------- X86InstrInfo.h | 4 - X86InstrX86-64.td | 13 --- X86JITInfo.cpp | 3 X86Relocations.h | 7 +- 7 files changed, 126 insertions(+), 129 deletions(-) Index: llvm/lib/Target/X86/X86CodeEmitter.cpp diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.124 llvm/lib/Target/X86/X86CodeEmitter.cpp:1.125 --- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.124 Fri Dec 1 15:52:58 2006 +++ llvm/lib/Target/X86/X86CodeEmitter.cpp Mon Dec 4 22:01:03 2006 @@ -59,12 +59,12 @@ void emitPCRelativeBlockAddress(MachineBasicBlock *MBB); void emitPCRelativeValue(intptr_t Address); void emitGlobalAddressForCall(GlobalValue *GV, bool DoesntNeedStub); - void emitGlobalAddressForPtr(GlobalValue *GV, bool isPCRelative, + void emitGlobalAddressForPtr(GlobalValue *GV, unsigned Reloc, int Disp = 0, unsigned PCAdj = 0); - void emitExternalSymbolAddress(const char *ES, bool isPCRelative); - void emitPCRelativeConstPoolAddress(unsigned CPI, int Disp = 0, - unsigned PCAdj = 0); - void emitPCRelativeJumpTableAddress(unsigned JTI, unsigned PCAdj = 0); + void emitExternalSymbolAddress(const char *ES, unsigned Reloc); + void emitConstPoolAddress(unsigned CPI, unsigned Reloc, int Disp = 0, + unsigned PCAdj = 0); + void emitJumpTableAddress(unsigned JTI, unsigned Reloc, unsigned PCAdj = 0); void emitDisplacementField(const MachineOperand *RelocOp, int DispVal, unsigned PCAdj = 0); @@ -144,41 +144,45 @@ /// emitGlobalAddress - Emit the specified address to the code stream assuming /// this is part of a "take the address of a global" instruction. /// -void Emitter::emitGlobalAddressForPtr(GlobalValue *GV, bool isPCRelative, +void Emitter::emitGlobalAddressForPtr(GlobalValue *GV, unsigned Reloc, int Disp /* = 0 */, unsigned PCAdj /* = 0 */) { - unsigned rt = isPCRelative ? X86::reloc_pcrel_word : X86::reloc_absolute_word; - MCE.addRelocation(MachineRelocation::getGV(MCE.getCurrentPCOffset(), rt, + MCE.addRelocation(MachineRelocation::getGV(MCE.getCurrentPCOffset(), Reloc, GV, PCAdj)); + if (Reloc == X86::reloc_absolute_dword) + MCE.emitWordLE(0); MCE.emitWordLE(Disp); // The relocated value will be added to the displacement } /// emitExternalSymbolAddress - Arrange for the address of an external symbol to /// be emitted to the current location in the function, and allow it to be PC /// relative. -void Emitter::emitExternalSymbolAddress(const char *ES, bool isPCRelative) { +void Emitter::emitExternalSymbolAddress(const char *ES, unsigned Reloc) { MCE.addRelocation(MachineRelocation::getExtSym(MCE.getCurrentPCOffset(), - isPCRelative ? X86::reloc_pcrel_word : X86::reloc_absolute_word, ES)); + Reloc, ES)); + if (Reloc == X86::reloc_absolute_dword) + MCE.emitWordLE(0); MCE.emitWordLE(0); } -/// emitPCRelativeConstPoolAddress - Arrange for the address of an constant pool +/// emitConstPoolAddress - Arrange for the address of an constant pool /// to be emitted to the current location in the function, and allow it to be PC /// relative. -void Emitter::emitPCRelativeConstPoolAddress(unsigned CPI, int Disp /* = 0 */, - unsigned PCAdj /* = 0 */) { +void Emitter::emitConstPoolAddress(unsigned CPI, unsigned Reloc, + int Disp /* = 0 */, + unsigned PCAdj /* = 0 */) { MCE.addRelocation(MachineRelocation::getConstPool(MCE.getCurrentPCOffset(), - X86::reloc_pcrel_word, CPI, PCAdj)); + Reloc, CPI, PCAdj)); MCE.emitWordLE(Disp); // The relocated value will be added to the displacement } -/// emitPCRelativeJumpTableAddress - Arrange for the address of a jump table to +/// emitJumpTableAddress - Arrange for the address of a jump table to /// be emitted to the current location in the function, and allow it to be PC /// relative. -void Emitter::emitPCRelativeJumpTableAddress(unsigned JTI, - unsigned PCAdj /* = 0 */) { +void Emitter::emitJumpTableAddress(unsigned JTI, unsigned Reloc, + unsigned PCAdj /* = 0 */) { MCE.addRelocation(MachineRelocation::getJumpTable(MCE.getCurrentPCOffset(), - X86::reloc_pcrel_word, JTI, PCAdj)); + Reloc, JTI, PCAdj)); MCE.emitWordLE(0); // The relocated value will be added to the displacement } @@ -291,15 +295,17 @@ // But it's probably not beneficial. // 89 05 00 00 00 00 mov %eax,0(%rip) # PC-relative // 89 04 25 00 00 00 00 mov %eax,0x0 # Absolute - emitGlobalAddressForPtr(RelocOp->getGlobal(), Is64BitMode, + unsigned rt= Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; + emitGlobalAddressForPtr(RelocOp->getGlobal(), rt, RelocOp->getOffset(), PCAdj); } else if (RelocOp->isConstantPoolIndex()) { // Must be in 64-bit mode. - emitPCRelativeConstPoolAddress(RelocOp->getConstantPoolIndex(), - RelocOp->getOffset(), PCAdj); + emitConstPoolAddress(RelocOp->getConstantPoolIndex(), X86::reloc_pcrel_word, + RelocOp->getOffset(), PCAdj); } else if (RelocOp->isJumpTableIndex()) { // Must be in 64-bit mode. - emitPCRelativeJumpTableAddress(RelocOp->getJumpTableIndex(), PCAdj); + emitJumpTableAddress(RelocOp->getJumpTableIndex(), X86::reloc_pcrel_word, + PCAdj); } else { assert(0 && "Unknown value to relocate!"); } @@ -417,8 +423,8 @@ } } -static unsigned sizeOfImm(const TargetInstrDescriptor &Desc) { - switch (Desc.TSFlags & X86II::ImmMask) { +static unsigned sizeOfImm(const TargetInstrDescriptor *Desc) { + switch (Desc->TSFlags & X86II::ImmMask) { case X86II::Imm8: return 1; case X86II::Imm16: return 2; case X86II::Imm32: return 4; @@ -459,19 +465,19 @@ /// size, and 3) use of X86-64 extended registers. unsigned Emitter::determineREX(const MachineInstr &MI) { unsigned REX = 0; - unsigned Opcode = MI.getOpcode(); - const TargetInstrDescriptor &Desc = II->get(Opcode); + const TargetInstrDescriptor *Desc = MI.getInstrDescriptor(); + unsigned Opcode = Desc->Opcode; // Pseudo instructions do not need REX prefix byte. - if ((Desc.TSFlags & X86II::FormMask) == X86II::Pseudo) + if ((Desc->TSFlags & X86II::FormMask) == X86II::Pseudo) return 0; - if (Desc.TSFlags & X86II::REX_W) + if (Desc->TSFlags & X86II::REX_W) REX |= 1 << 3; - unsigned NumOps = II->getNumOperands(Opcode); + unsigned NumOps = Desc->numOperands; if (NumOps) { bool isTwoAddr = NumOps > 1 && - II->getOperandConstraint(Opcode, 1, TOI::TIED_TO) != -1; + Desc->getOperandConstraint(1, TOI::TIED_TO) != -1; // If it accesses SPL, BPL, SIL, or DIL, then it requires a 0x40 REX prefix. bool isTrunc8 = isX86_64TruncToByte(Opcode); @@ -489,7 +495,7 @@ } } - switch (Desc.TSFlags & X86II::FormMask) { + switch (Desc->TSFlags & X86II::FormMask) { case X86II::MRMInitReg: if (isX86_64ExtendedReg(MI.getOperand(0))) REX |= (1 << 0) | (1 << 2); @@ -559,20 +565,20 @@ void Emitter::emitInstruction(const MachineInstr &MI) { NumEmitted++; // Keep track of the # of mi's emitted - unsigned Opcode = MI.getOpcode(); - const TargetInstrDescriptor &Desc = II->get(Opcode); + const TargetInstrDescriptor *Desc = MI.getInstrDescriptor(); + unsigned Opcode = Desc->Opcode; // Emit the repeat opcode prefix as needed. - if ((Desc.TSFlags & X86II::Op0Mask) == X86II::REP) MCE.emitByte(0xF3); + if ((Desc->TSFlags & X86II::Op0Mask) == X86II::REP) MCE.emitByte(0xF3); // Emit the operand size opcode prefix as needed. - if (Desc.TSFlags & X86II::OpSize) MCE.emitByte(0x66); + if (Desc->TSFlags & X86II::OpSize) MCE.emitByte(0x66); // Emit the address size opcode prefix as needed. - if (Desc.TSFlags & X86II::AdSize) MCE.emitByte(0x67); + if (Desc->TSFlags & X86II::AdSize) MCE.emitByte(0x67); bool Need0FPrefix = false; - switch (Desc.TSFlags & X86II::Op0Mask) { + switch (Desc->TSFlags & X86II::Op0Mask) { case X86II::TB: Need0FPrefix = true; // Two-byte opcode prefix break; @@ -588,7 +594,7 @@ case X86II::D8: case X86II::D9: case X86II::DA: case X86II::DB: case X86II::DC: case X86II::DD: case X86II::DE: case X86II::DF: MCE.emitByte(0xD8+ - (((Desc.TSFlags & X86II::Op0Mask)-X86II::D8) + (((Desc->TSFlags & X86II::Op0Mask)-X86II::D8) >> X86II::Op0Shift)); break; // Two-byte opcode prefix default: assert(0 && "Invalid prefix!"); @@ -607,14 +613,13 @@ MCE.emitByte(0x0F); // If this is a two-address instruction, skip one of the register operands. - unsigned NumOps = II->getNumOperands(Opcode); + unsigned NumOps = Desc->numOperands; unsigned CurOp = 0; - if (NumOps > 1 && - II->getOperandConstraint(Opcode, 1, TOI::TIED_TO) != -1) + if (NumOps > 1 && Desc->getOperandConstraint(1, TOI::TIED_TO) != -1) CurOp++; - unsigned char BaseOpcode = II->getBaseOpcodeFor(Opcode); - switch (Desc.TSFlags & X86II::FormMask) { + unsigned char BaseOpcode = II->getBaseOpcodeFor(Desc); + switch (Desc->TSFlags & X86II::FormMask) { default: assert(0 && "Unknown FormMask value in X86 MachineCodeEmitter!"); case X86II::Pseudo: #ifndef NDEBUG @@ -651,7 +656,7 @@ Opcode == X86::TAILJMPr || Opcode == X86::TAILJMPm; emitGlobalAddressForCall(MO.getGlobal(), !isTailCall); } else if (MO.isExternalSymbol()) { - emitExternalSymbolAddress(MO.getSymbolName(), true); + emitExternalSymbolAddress(MO.getSymbolName(), X86::reloc_pcrel_word); } else if (MO.isImmediate()) { emitConstant(MO.getImm(), sizeOfImm(Desc)); } else { @@ -665,20 +670,22 @@ if (CurOp != NumOps) { const MachineOperand &MO1 = MI.getOperand(CurOp++); - if (MO1.isGlobalAddress()) { - assert(sizeOfImm(Desc) == TD->getPointerSize() && - "Don't know how to emit non-pointer values!"); - emitGlobalAddressForPtr(MO1.getGlobal(), Is64BitMode, MO1.getOffset()); - } else if (MO1.isExternalSymbol()) { - assert(sizeOfImm(Desc) == TD->getPointerSize() && - "Don't know how to emit non-pointer values!"); - emitExternalSymbolAddress(MO1.getSymbolName(), false); - } else if (MO1.isJumpTableIndex()) { - assert(sizeOfImm(Desc) == TD->getPointerSize() && - "Don't know how to emit non-pointer values!"); - emitConstant(MCE.getJumpTableEntryAddress(MO1.getJumpTableIndex()), 4); - } else { - emitConstant(MO1.getImm(), sizeOfImm(Desc)); + unsigned Size = sizeOfImm(Desc); + if (MO1.isImmediate()) + emitConstant(MO1.getImm(), Size); + else { + unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; + // FIXME + if (Opcode == X86::MOV64ri) + rt = X86::reloc_absolute_dword; + if (MO1.isGlobalAddress()) + emitGlobalAddressForPtr(MO1.getGlobal(), rt, MO1.getOffset()); + else if (MO1.isExternalSymbol()) + emitExternalSymbolAddress(MO1.getSymbolName(), rt); + else if (MO1.isConstantPoolIndex()) + emitConstPoolAddress(MO1.getConstantPoolIndex(), rt); + else if (MO1.isJumpTableIndex()) + emitJumpTableAddress(MO1.getJumpTableIndex(), rt); } } break; @@ -728,10 +735,28 @@ case X86II::MRM6r: case X86II::MRM7r: MCE.emitByte(BaseOpcode); emitRegModRMByte(MI.getOperand(CurOp++).getReg(), - (Desc.TSFlags & X86II::FormMask)-X86II::MRM0r); + (Desc->TSFlags & X86II::FormMask)-X86II::MRM0r); - if (CurOp != NumOps && MI.getOperand(CurOp).isImmediate()) - emitConstant(MI.getOperand(CurOp++).getImm(), sizeOfImm(Desc)); + if (CurOp != NumOps) { + const MachineOperand &MO1 = MI.getOperand(CurOp++); + unsigned Size = sizeOfImm(Desc); + if (MO1.isImmediate()) + emitConstant(MO1.getImm(), Size); + else { + unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; + // FIXME + if (Opcode == X86::MOV64ri32) + rt = X86::reloc_absolute_word; + if (MO1.isGlobalAddress()) + emitGlobalAddressForPtr(MO1.getGlobal(), rt, MO1.getOffset()); + else if (MO1.isExternalSymbol()) + emitExternalSymbolAddress(MO1.getSymbolName(), rt); + else if (MO1.isConstantPoolIndex()) + emitConstPoolAddress(MO1.getConstantPoolIndex(), rt); + else if (MO1.isJumpTableIndex()) + emitJumpTableAddress(MO1.getJumpTableIndex(), rt); + } + } break; case X86II::MRM0m: case X86II::MRM1m: @@ -742,20 +767,26 @@ (MI.getOperand(CurOp+4).isImmediate() ? sizeOfImm(Desc) : 4) : 0; MCE.emitByte(BaseOpcode); - emitMemModRMByte(MI, CurOp, (Desc.TSFlags & X86II::FormMask)-X86II::MRM0m, + emitMemModRMByte(MI, CurOp, (Desc->TSFlags & X86II::FormMask)-X86II::MRM0m, PCAdj); CurOp += 4; if (CurOp != NumOps) { const MachineOperand &MO = MI.getOperand(CurOp++); + unsigned Size = sizeOfImm(Desc); if (MO.isImmediate()) - emitConstant(MO.getImm(), sizeOfImm(Desc)); - else if (MO.isGlobalAddress()) - emitGlobalAddressForPtr(MO.getGlobal(), Is64BitMode, MO.getOffset()); - else if (MO.isJumpTableIndex()) - emitConstant(MCE.getJumpTableEntryAddress(MO.getJumpTableIndex()), 4); - else - assert(0 && "Unknown operand!"); + emitConstant(MO.getImm(), Size); + else { + unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; + if (MO.isGlobalAddress()) + emitGlobalAddressForPtr(MO.getGlobal(), rt, MO.getOffset()); + else if (MO.isExternalSymbol()) + emitExternalSymbolAddress(MO.getSymbolName(), rt); + else if (MO.isConstantPoolIndex()) + emitConstPoolAddress(MO.getConstantPoolIndex(), rt); + else if (MO.isJumpTableIndex()) + emitJumpTableAddress(MO.getJumpTableIndex(), rt); + } } break; } @@ -769,6 +800,6 @@ break; } - assert((Desc.Flags & M_VARIABLE_OPS) != 0 || + assert((Desc->Flags & M_VARIABLE_OPS) != 0 || CurOp == NumOps && "Unknown encoding!"); } Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.133 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.134 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.133 Thu Nov 30 15:55:46 2006 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Mon Dec 4 22:01:03 2006 @@ -590,11 +590,10 @@ break; } - case X86ISD::Wrapper: - case X86ISD::WrapperRIP: { - bool isRIP = N.getOpcode() == X86ISD::WrapperRIP; + case X86ISD::Wrapper: { + bool is64Bit = Subtarget->is64Bit(); // Under X86-64 non-small code model, GV (and friends) are 64-bits. - if (!isRIP && Subtarget->is64Bit() && TM.getCodeModel() != CodeModel::Small) + if (is64Bit && TM.getCodeModel() != CodeModel::Small) break; // If value is available in a register both base and index components have @@ -603,7 +602,7 @@ if (!Available || (AM.Base.Reg.Val && AM.IndexReg.Val)) { // For X86-64 PIC code, only allow GV / CP + displacement so we can use // RIP relative addressing mode. - if (isRIP && + if (is64Bit && (AM.Base.Reg.Val || AM.Scale > 1 || AM.IndexReg.Val || AM.BaseType == X86ISelAddressMode::FrameIndexBase)) break; @@ -613,7 +612,7 @@ AM.CP = CP->getConstVal(); AM.Align = CP->getAlignment(); AM.Disp += CP->getOffset(); - AM.isRIPRel = isRIP; + AM.isRIPRel = is64Bit; return false; } } else if (GlobalAddressSDNode *G = @@ -621,10 +620,10 @@ if (AM.GV == 0) { AM.GV = G->getGlobal(); AM.Disp += G->getOffset(); - AM.isRIPRel = isRIP; + AM.isRIPRel = is64Bit; return false; } - } else if (isRoot && isRIP) { + } else if (isRoot && is64Bit) { if (ExternalSymbolSDNode *S = dyn_cast(N.getOperand(0))) { AM.ES = S->getSymbol(); @@ -997,8 +996,7 @@ SDOperand N0 = N.getOperand(0); SDOperand N1 = N.getOperand(1); if (N.Val->getValueType(0) == PtrVT && - (N0.getOpcode() == X86ISD::Wrapper - || N0.getOpcode() == X86ISD::WrapperRIP) && + N0.getOpcode() == X86ISD::Wrapper && N1.getOpcode() == ISD::Constant) { unsigned Offset = (unsigned)cast(N1)->getValue(); SDOperand C(0, 0); Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.300 llvm/lib/Target/X86/X86ISelLowering.cpp:1.301 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.300 Mon Dec 4 16:38:21 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Mon Dec 4 22:01:03 2006 @@ -3832,14 +3832,7 @@ SDOperand Result = DAG.getTargetConstantPool(CP->getConstVal(), getPointerTy(), CP->getAlignment()); - // Use X86ISD::WrapperRIP if we are in X86-64 small / medium PIC mode. - TargetMachine &tm = getTargetMachine(); - unsigned WrapperOpcode = (Subtarget->is64Bit() && - (tm.getCodeModel() == CodeModel::Small || - tm.getCodeModel() == CodeModel::Medium) && - tm.getRelocationModel() == Reloc::PIC_) - ? X86ISD::WrapperRIP : X86ISD::Wrapper; - Result = DAG.getNode(WrapperOpcode, getPointerTy(), Result); + Result = DAG.getNode(X86ISD::Wrapper, getPointerTy(), Result); if (Subtarget->isTargetDarwin()) { // With PIC, the address is actually $g + Offset. if (!Subtarget->is64Bit() && @@ -3855,14 +3848,7 @@ X86TargetLowering::LowerGlobalAddress(SDOperand Op, SelectionDAG &DAG) { GlobalValue *GV = cast(Op)->getGlobal(); SDOperand Result = DAG.getTargetGlobalAddress(GV, getPointerTy()); - // Use X86ISD::WrapperRIP if we are in X86-64 small / medium PIC mode. - TargetMachine &tm = getTargetMachine(); - unsigned WrapperOpcode = (Subtarget->is64Bit() && - (tm.getCodeModel() == CodeModel::Small || - tm.getCodeModel() == CodeModel::Medium) && - tm.getRelocationModel() == Reloc::PIC_) - ? X86ISD::WrapperRIP : X86ISD::Wrapper; - Result = DAG.getNode(WrapperOpcode, getPointerTy(), Result); + Result = DAG.getNode(X86ISD::Wrapper, getPointerTy(), Result); if (Subtarget->isTargetDarwin()) { // With PIC, the address is actually $g + Offset. if (!Subtarget->is64Bit() && @@ -3889,14 +3875,7 @@ X86TargetLowering::LowerExternalSymbol(SDOperand Op, SelectionDAG &DAG) { const char *Sym = cast(Op)->getSymbol(); SDOperand Result = DAG.getTargetExternalSymbol(Sym, getPointerTy()); - // Use X86ISD::WrapperRIP if we are in X86-64 small / medium PIC mode. - TargetMachine &tm = getTargetMachine(); - unsigned WrapperOpcode = (Subtarget->is64Bit() && - (tm.getCodeModel() == CodeModel::Small || - tm.getCodeModel() == CodeModel::Medium) && - tm.getRelocationModel() == Reloc::PIC_) - ? X86ISD::WrapperRIP : X86ISD::Wrapper; - Result = DAG.getNode(WrapperOpcode, getPointerTy(), Result); + Result = DAG.getNode(X86ISD::Wrapper, getPointerTy(), Result); if (Subtarget->isTargetDarwin()) { // With PIC, the address is actually $g + Offset. if (!Subtarget->is64Bit() && @@ -4264,14 +4243,7 @@ SDOperand X86TargetLowering::LowerJumpTable(SDOperand Op, SelectionDAG &DAG) { JumpTableSDNode *JT = cast(Op); SDOperand Result = DAG.getTargetJumpTable(JT->getIndex(), getPointerTy()); - // Use X86ISD::WrapperRIP if we are in X86-64 small / medium PIC mode. - TargetMachine &tm = getTargetMachine(); - unsigned WrapperOpcode = (Subtarget->is64Bit() && - (tm.getCodeModel() == CodeModel::Small || - tm.getCodeModel() == CodeModel::Medium) && - tm.getRelocationModel() == Reloc::PIC_) - ? X86ISD::WrapperRIP : X86ISD::Wrapper; - Result = DAG.getNode(WrapperOpcode, getPointerTy(), Result); + Result = DAG.getNode(X86ISD::Wrapper, getPointerTy(), Result); if (Subtarget->isTargetDarwin()) { // With PIC, the address is actually $g + Offset. if (!Subtarget->is64Bit() && @@ -5005,7 +4977,6 @@ case X86ISD::LOAD_UA: return "X86ISD::LOAD_UA"; case X86ISD::GlobalBaseReg: return "X86ISD::GlobalBaseReg"; case X86ISD::Wrapper: return "X86ISD::Wrapper"; - case X86ISD::WrapperRIP: return "X86ISD::WrapperRIP"; case X86ISD::S2VEC: return "X86ISD::S2VEC"; case X86ISD::PEXTRW: return "X86ISD::PEXTRW"; case X86ISD::PINSRW: return "X86ISD::PINSRW"; @@ -5249,7 +5220,7 @@ /// node is a GlobalAddress + an offset. static bool isGAPlusOffset(SDNode *N, GlobalValue* &GA, int64_t &Offset) { unsigned Opc = N->getOpcode(); - if (Opc == X86ISD::Wrapper || Opc == X86ISD::WrapperRIP) { + if (Opc == X86ISD::Wrapper) { if (dyn_cast(N->getOperand(0))) { GA = cast(N->getOperand(0))->getGlobal(); return true; Index: llvm/lib/Target/X86/X86InstrInfo.h diff -u llvm/lib/Target/X86/X86InstrInfo.h:1.60 llvm/lib/Target/X86/X86InstrInfo.h:1.61 --- llvm/lib/Target/X86/X86InstrInfo.h:1.60 Fri Dec 1 15:52:58 2006 +++ llvm/lib/Target/X86/X86InstrInfo.h Mon Dec 4 22:01:03 2006 @@ -277,8 +277,8 @@ // getBaseOpcodeFor - This function returns the "base" X86 opcode for the // specified opcode number. // - unsigned char getBaseOpcodeFor(unsigned Opcode) const { - return get(Opcode).TSFlags >> X86II::OpcodeShift; + unsigned char getBaseOpcodeFor(const TargetInstrDescriptor *TID) const { + return TID->TSFlags >> X86II::OpcodeShift; } }; Index: llvm/lib/Target/X86/X86InstrX86-64.td diff -u llvm/lib/Target/X86/X86InstrX86-64.td:1.9 llvm/lib/Target/X86/X86InstrX86-64.td:1.10 --- llvm/lib/Target/X86/X86InstrX86-64.td:1.9 Thu Nov 30 15:55:46 2006 +++ llvm/lib/Target/X86/X86InstrX86-64.td Mon Dec 4 22:01:03 2006 @@ -36,7 +36,7 @@ // Complex Pattern Definitions... // def lea64addr : ComplexPattern; //===----------------------------------------------------------------------===// @@ -1023,15 +1023,6 @@ // ConstantPool GlobalAddress, ExternalSymbol, and JumpTable def : Pat<(i64 (X86Wrapper tconstpool :$dst)), - (MOV64ri32 tconstpool :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper tjumptable :$dst)), - (MOV64ri32 tjumptable :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)), - (MOV64ri32 tglobaladdr :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper texternalsym:$dst)), - (MOV64ri32 texternalsym:$dst)>, Requires<[SmallCode]>; - -def : Pat<(i64 (X86Wrapper tconstpool :$dst)), (MOV64ri tconstpool :$dst)>, Requires<[NotSmallCode]>; def : Pat<(i64 (X86Wrapper tjumptable :$dst)), (MOV64ri tjumptable :$dst)>, Requires<[NotSmallCode]>; @@ -1040,10 +1031,12 @@ def : Pat<(i64 (X86Wrapper texternalsym:$dst)), (MOV64ri texternalsym:$dst)>, Requires<[NotSmallCode]>; +/* def : Pat<(store (i64 (X86Wrapper tglobaladdr:$src)), addr:$dst), (MOV64mi32 addr:$dst, tglobaladdr:$src)>, Requires<[SmallCode]>; def : Pat<(store (i64 (X86Wrapper texternalsym:$src)), addr:$dst), (MOV64mi32 addr:$dst, texternalsym:$src)>, Requires<[SmallCode]>; +*/ // Calls // Direct PC relative function call for small code model. 32-bit displacement Index: llvm/lib/Target/X86/X86JITInfo.cpp diff -u llvm/lib/Target/X86/X86JITInfo.cpp:1.32 llvm/lib/Target/X86/X86JITInfo.cpp:1.33 --- llvm/lib/Target/X86/X86JITInfo.cpp:1.32 Fri Nov 17 01:52:03 2006 +++ llvm/lib/Target/X86/X86JITInfo.cpp Mon Dec 4 22:01:03 2006 @@ -323,6 +323,9 @@ // in memory. *((unsigned*)RelocPos) += (unsigned)ResultPtr; break; + case X86::reloc_absolute_dword: + *((intptr_t*)RelocPos) += ResultPtr; + break; } } } Index: llvm/lib/Target/X86/X86Relocations.h diff -u llvm/lib/Target/X86/X86Relocations.h:1.3 llvm/lib/Target/X86/X86Relocations.h:1.4 --- llvm/lib/Target/X86/X86Relocations.h:1.3 Wed May 24 12:04:04 2006 +++ llvm/lib/Target/X86/X86Relocations.h Mon Dec 4 22:01:03 2006 @@ -23,9 +23,10 @@ // the value already in memory, after we adjust it for where the PC is. reloc_pcrel_word = 0, - // reloc_absolute_word - Absolute relocation, just add the relocated value - // to the value already in memory. - reloc_absolute_word = 1 + // reloc_absolute_word, reloc_absolute_dword - Absolute relocation, just + // add the relocated value to the value already in memory. + reloc_absolute_word = 1, + reloc_absolute_dword = 2 }; } } From reid at x10sys.com Tue Dec 5 00:16:08 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 00:16:08 -0600 Subject: [llvm-commits] CVS: llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c Message-ID: <200612050616.kB56G8eF008337@zion.cs.uiuc.edu> Changes in directory llvm-test/MultiSource/Benchmarks/McCat/09-vor: vor.c updated: 1.1 -> 1.2 --- Log message: Make this test return 0 reliably. --- Diffs of the changes: (+2 -2) vor.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c diff -u llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c:1.1 llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c:1.2 --- llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c:1.1 Mon May 12 13:25:11 2003 +++ llvm-test/MultiSource/Benchmarks/McCat/09-vor/vor.c Tue Dec 5 00:15:53 2006 @@ -355,9 +355,9 @@ /* ********************************************************************* */ /* PROCEDURE: main - starts the program */ -void main(int argc, char *argv[]) +int main(int argc, char *argv[]) { get_file(); construct_vor(); - + return 0; } From reid at x10sys.com Tue Dec 5 00:17:34 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 00:17:34 -0600 Subject: [llvm-commits] CVS: llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c Message-ID: <200612050617.kB56HYto008372@zion.cs.uiuc.edu> Changes in directory llvm-test/MultiSource/Benchmarks/McCat/05-eks: main.c updated: 1.1 -> 1.2 --- Log message: Make this program return 0 reliably. --- Diffs of the changes: (+2 -1) main.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c diff -u llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c:1.1 llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c:1.2 --- llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c:1.1 Mon May 12 13:56:38 2003 +++ llvm-test/MultiSource/Benchmarks/McCat/05-eks/main.c Tue Dec 5 00:17:20 2006 @@ -47,7 +47,7 @@ else return 0; } -main () +int main () { double a,b,c,d; int i,j,k,l,m; @@ -116,6 +116,7 @@ freeMatrix(U); freeMatrix(A); } + return 0; } void Check(Matrix A, Matrix U, int l) From evan.cheng at apple.com Tue Dec 5 00:44:12 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Tue, 5 Dec 2006 00:44:12 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp Message-ID: <200612050644.kB56iCpc008799@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.76 -> 1.77 --- Log message: Asm printing bug. --- Diffs of the changes: (+4 -6) X86ATTAsmPrinter.cpp | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.76 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.77 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.76 Fri Dec 1 01:38:23 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cpp Tue Dec 5 00:43:58 2006 @@ -192,7 +192,7 @@ if (X86PICStyle == PICStyle::Stub && TM.getRelocationModel() == Reloc::PIC_) O << "-\"L" << getFunctionNumber() << "$pb\""; - if (Subtarget->is64Bit()) + if (isMemOp && Subtarget->is64Bit()) O << "(%rip)"; return; } @@ -210,7 +210,7 @@ else if (Offset < 0) O << Offset; - if (Subtarget->is64Bit()) + if (isMemOp && Subtarget->is64Bit()) O << "(%rip)"; return; } @@ -265,8 +265,7 @@ else if (Offset < 0) O << Offset; - if (isMemOp && - Subtarget->is64Bit()) { + if (isMemOp && Subtarget->is64Bit()) { if (isExt && TM.getRelocationModel() != Reloc::Static) O << "@GOTPCREL"; O << "(%rip)"; @@ -288,8 +287,7 @@ if (!isCallOp) O << '$'; O << TAI->getGlobalPrefix() << MO.getSymbolName(); - if (!isCallOp && - Subtarget->is64Bit()) + if (!isCallOp && Subtarget->is64Bit()) O << "(%rip)"; return; From clattner at apple.com Tue Dec 5 00:52:38 2006 From: clattner at apple.com (Chris Lattner) Date: Mon, 4 Dec 2006 22:52:38 -0800 Subject: [llvm-commits] CVS: llvm/lib/VMCore/ConstantFolding.cpp In-Reply-To: <200612050330.kB53UOkl005013@zion.cs.uiuc.edu> References: <200612050330.kB53UOkl005013@zion.cs.uiuc.edu> Message-ID: <055914DD-D9C7-41D9-A1E0-AE18732BEB9F@apple.com> > Index: llvm/lib/VMCore/ConstantFolding.cpp > diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.107 llvm/lib/VMCore/ > ConstantFolding.cpp:1.108 > --- llvm/lib/VMCore/ConstantFolding.cpp:1.107 Sun Dec 3 23:19:34 2006 > +++ llvm/lib/VMCore/ConstantFolding.cpp Mon Dec 4 21:30:09 2006 > @@ -777,8 +777,7 @@ > uint64_t V = > DoubleToBits(cast(CP->getOperand(i))- > >getValue()); > Constant *C = ConstantInt::get(Type::ULongTy, V); > - Result.push_back( > - ConstantExpr::getInferredCast(C, false, DstEltTy, > false)); > + Result.push_back(ConstantExpr::getTruncOrBitCast(C, > DstEltTy )); > } > return ConstantPacked::get(Result); > } > @@ -787,8 +786,7 @@ > for (unsigned i = 0; i != SrcNumElts; ++i) { > uint32_t V = FloatToBits(cast(CP->getOperand(i))- > >getValue()); > Constant *C = ConstantInt::get(Type::UIntTy, V); > - Result.push_back( > - ConstantExpr::getInferredCast(C, false, DstEltTy, false)); > + Result.push_back(ConstantExpr::getTruncOrBitCast(C, DstEltTy)); > } > return ConstantPacked::get(Result); > } Again, these should only be bitcast. They can never be truncates. > @@ -855,7 +853,7 @@ > } > if (isAllNull) > // This is casting one pointer type to another, always > BitCast > - return ConstantExpr::getCast(CE->getOperand(0), DestTy); > + return ConstantExpr::getPointerCast(CE->getOperand(0), > DestTy); > } > } Likewise. -Chris From reid at x10sys.com Tue Dec 5 01:18:21 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 01:18:21 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/ConstantFolding.cpp Message-ID: <200612050718.kB57ILHR009314@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: ConstantFolding.cpp updated: 1.108 -> 1.109 --- Log message: Can't make these fail now with just BitCast. Previous failures must have been in conjunction with something else. By right, they should just be BitCasts. --- Diffs of the changes: (+2 -2) ConstantFolding.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/VMCore/ConstantFolding.cpp diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.108 llvm/lib/VMCore/ConstantFolding.cpp:1.109 --- llvm/lib/VMCore/ConstantFolding.cpp:1.108 Mon Dec 4 21:30:09 2006 +++ llvm/lib/VMCore/ConstantFolding.cpp Tue Dec 5 01:18:07 2006 @@ -777,7 +777,7 @@ uint64_t V = DoubleToBits(cast(CP->getOperand(i))->getValue()); Constant *C = ConstantInt::get(Type::ULongTy, V); - Result.push_back(ConstantExpr::getTruncOrBitCast(C, DstEltTy )); + Result.push_back(ConstantExpr::getBitCast(C, DstEltTy )); } return ConstantPacked::get(Result); } @@ -786,7 +786,7 @@ for (unsigned i = 0; i != SrcNumElts; ++i) { uint32_t V = FloatToBits(cast(CP->getOperand(i))->getValue()); Constant *C = ConstantInt::get(Type::UIntTy, V); - Result.push_back(ConstantExpr::getTruncOrBitCast(C, DstEltTy)); + Result.push_back(ConstantExpr::getBitCast(C, DstEltTy)); } return ConstantPacked::get(Result); } From evan.cheng at apple.com Tue Dec 5 01:30:10 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Tue, 5 Dec 2006 01:30:10 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86CodeEmitter.cpp Message-ID: <200612050730.kB57UAEg009510@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86CodeEmitter.cpp updated: 1.125 -> 1.126 --- Log message: JIT large code model support. --- Diffs of the changes: (+13 -7) X86CodeEmitter.cpp | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) Index: llvm/lib/Target/X86/X86CodeEmitter.cpp diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.125 llvm/lib/Target/X86/X86CodeEmitter.cpp:1.126 --- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.125 Mon Dec 4 22:01:03 2006 +++ llvm/lib/Target/X86/X86CodeEmitter.cpp Tue Dec 5 01:29:55 2006 @@ -173,6 +173,8 @@ unsigned PCAdj /* = 0 */) { MCE.addRelocation(MachineRelocation::getConstPool(MCE.getCurrentPCOffset(), Reloc, CPI, PCAdj)); + if (Reloc == X86::reloc_absolute_dword) + MCE.emitWordLE(0); MCE.emitWordLE(Disp); // The relocated value will be added to the displacement } @@ -183,6 +185,8 @@ unsigned PCAdj /* = 0 */) { MCE.addRelocation(MachineRelocation::getJumpTable(MCE.getCurrentPCOffset(), Reloc, JTI, PCAdj)); + if (Reloc == X86::reloc_absolute_dword) + MCE.emitWordLE(0); MCE.emitWordLE(0); // The relocated value will be added to the displacement } @@ -617,7 +621,7 @@ unsigned CurOp = 0; if (NumOps > 1 && Desc->getOperandConstraint(1, TOI::TIED_TO) != -1) CurOp++; - + unsigned char BaseOpcode = II->getBaseOpcodeFor(Desc); switch (Desc->TSFlags & X86II::FormMask) { default: assert(0 && "Unknown FormMask value in X86 MachineCodeEmitter!"); @@ -675,9 +679,8 @@ emitConstant(MO1.getImm(), Size); else { unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; - // FIXME if (Opcode == X86::MOV64ri) - rt = X86::reloc_absolute_dword; + rt = X86::reloc_absolute_dword; // FIXME: add X86II flag? if (MO1.isGlobalAddress()) emitGlobalAddressForPtr(MO1.getGlobal(), rt, MO1.getOffset()); else if (MO1.isExternalSymbol()) @@ -743,10 +746,10 @@ if (MO1.isImmediate()) emitConstant(MO1.getImm(), Size); else { - unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; - // FIXME + unsigned rt = Is64BitMode ? X86::reloc_pcrel_word + : X86::reloc_absolute_word; if (Opcode == X86::MOV64ri32) - rt = X86::reloc_absolute_word; + rt = X86::reloc_absolute_word; // FIXME: add X86II flag? if (MO1.isGlobalAddress()) emitGlobalAddressForPtr(MO1.getGlobal(), rt, MO1.getOffset()); else if (MO1.isExternalSymbol()) @@ -777,7 +780,10 @@ if (MO.isImmediate()) emitConstant(MO.getImm(), Size); else { - unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_absolute_word; + unsigned rt = Is64BitMode ? X86::reloc_pcrel_word + : X86::reloc_absolute_word; + if (Opcode == X86::MOV64mi32) + rt = X86::reloc_absolute_word; // FIXME: add X86II flag? if (MO.isGlobalAddress()) emitGlobalAddressForPtr(MO.getGlobal(), rt, MO.getOffset()); else if (MO.isExternalSymbol()) From jlaskey at apple.com Tue Dec 5 06:35:30 2006 From: jlaskey at apple.com (Jim Laskey) Date: Tue, 5 Dec 2006 08:35:30 -0400 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> Message-ID: <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> This patch should be in today's mirror ~6am PST. Cheers, -- Jim On Dec 4, 2006, at 4:32 PM, Rafael Esp?ndola wrote: > On 12/2/06, Jim Laskey wrote: >> Rafael, >> >> Please bracket portions of your changes that involve modification of >> C/C++ source code. For cases of modifying configuration scripts and >> make files, use your best judgement. Obviously having the brackets >> emitted in generated code is problematic (line numbers et cetera), so >> don't bother in those cases. >> >> Beside marking the changes we've made, the purpose of APPLE LOCAL >> brackets is reduce confusion when we merge with the main branch >> (sometimes a very hairy task when there are lots of conflicts.) > > I think that adding the marks may actually increase the number of > spurious conflicts (I had some problem with them while backporting > patches from 4.1). > > Anyway, I have attached a version with the brackets. Is it ok? I > believe that it is mostly ARM specific. A bootstrap on a AMD64 breaks > on the same spot as before :-) > >> Cheers, > > Best Regards, > Rafael > -------------- next part -------------- A non-text attachment was scrubbed... Name: arm.patch.bz2 Type: application/x-bzip2 Size: 37063 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/27236056/attachment.bz2 -------------- next part -------------- > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2417 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/27236056/attachment.bin From jlaskey at apple.com Tue Dec 5 07:39:29 2006 From: jlaskey at apple.com (Jim Laskey) Date: Tue, 5 Dec 2006 09:39:29 -0400 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> Message-ID: I had to revert these changes. When I did a clean build I was inundated with errors. I'm not sure if I made the cut off time for the mirror. -- Jim On Dec 5, 2006, at 8:35 AM, Jim Laskey wrote: > This patch should be in today's mirror ~6am PST. > > Cheers, > > -- Jim > > On Dec 4, 2006, at 4:32 PM, Rafael Esp?ndola wrote: > >> On 12/2/06, Jim Laskey wrote: >>> Rafael, >>> >>> Please bracket portions of your changes that involve modification of >>> C/C++ source code. For cases of modifying configuration scripts and >>> make files, use your best judgement. Obviously having the brackets >>> emitted in generated code is problematic (line numbers et >>> cetera), so >>> don't bother in those cases. >>> >>> Beside marking the changes we've made, the purpose of APPLE LOCAL >>> brackets is reduce confusion when we merge with the main branch >>> (sometimes a very hairy task when there are lots of conflicts.) >> >> I think that adding the marks may actually increase the number of >> spurious conflicts (I had some problem with them while backporting >> patches from 4.1). >> >> Anyway, I have attached a version with the brackets. Is it ok? I >> believe that it is mostly ARM specific. A bootstrap on a AMD64 breaks >> on the same spot as before :-) >> >>> Cheers, >> >> Best Regards, >> Rafael >> > > >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2417 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/c3044c65/attachment.bin From rafael.espindola at gmail.com Tue Dec 5 07:56:13 2006 From: rafael.espindola at gmail.com (=?UTF-8?Q?Rafael_Esp=C3=ADndola?=) Date: Tue, 5 Dec 2006 10:56:13 -0300 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> Message-ID: <564d96fb0612050556y4e507c21nd52a3ed217cdc711@mail.gmail.com> On 12/5/06, Jim Laskey wrote: > I had to revert these changes. When I did a clean build I was > inundated with errors. I'm not sure if I made the cut off time for > the mirror. Could you please send me the log? The bootstrap is broken on linux amd64 for some time now, so it is hard for me to do a full test :-( > -- Jim Sorry for the problems, Rafael From jlaskey at apple.com Tue Dec 5 08:30:09 2006 From: jlaskey at apple.com (Jim Laskey) Date: Tue, 5 Dec 2006 10:30:09 -0400 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: <564d96fb0612050556y4e507c21nd52a3ed217cdc711@mail.gmail.com> References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> <564d96fb0612050556y4e507c21nd52a3ed217cdc711@mail.gmail.com> Message-ID: <61F2733F-4D8A-4B59-AD44-4CA39EEF1AF9@apple.com> Log sent to Rafael offline. On Dec 5, 2006, at 9:56 AM, Rafael Esp?ndola wrote: > On 12/5/06, Jim Laskey wrote: >> I had to revert these changes. When I did a clean build I was >> inundated with errors. I'm not sure if I made the cut off time for >> the mirror. > Could you please send me the log? The bootstrap is broken on linux > amd64 for some time now, so it is hard for me to do a full test :-( > >> -- Jim > > Sorry for the problems, > Rafael -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2417 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/8f126cbb/attachment.bin From reid at x10sys.com Tue Dec 5 10:10:37 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 10:10:37 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Debugger/.cvsignore Message-ID: <200612051610.kB5GAbF0026727@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Debugger: .cvsignore updated: 1.2 -> 1.3 --- Log message: Ignore the Output directory. --- Diffs of the changes: (+1 -0) .cvsignore | 1 + 1 files changed, 1 insertion(+) Index: llvm/test/Regression/Debugger/.cvsignore diff -u /dev/null llvm/test/Regression/Debugger/.cvsignore:1.3 --- /dev/null Tue Dec 5 10:10:26 2006 +++ llvm/test/Regression/Debugger/.cvsignore Tue Dec 5 10:10:16 2006 @@ -0,0 +1 @@ +Output From rafael.espindola at gmail.com Tue Dec 5 11:00:37 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:00:37 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp Message-ID: <200612051700.kB5H0b9T009383@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.29 -> 1.30 --- Log message: add support for weak linkage --- Diffs of the changes: (+1 -1) ARMAsmPrinter.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.29 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.30 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.29 Thu Nov 9 07:58:55 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Tue Dec 5 11:00:17 2006 @@ -128,7 +128,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: - assert(0 && "Not implemented"); + O << "\t.weak\t" << CurrentFnName << "\n"; break; } EmitAlignment(2, F); From rafael.espindola at gmail.com Tue Dec 5 11:00:37 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:00:37 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/weak.ll Message-ID: <200612051700.kB5H0bnj009382@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/ARM: weak.ll added (r1.1) --- Log message: add support for weak linkage --- Diffs of the changes: (+9 -0) weak.ll | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/weak.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/weak.ll:1.1 *** /dev/null Tue Dec 5 11:00:27 2006 --- llvm/test/Regression/CodeGen/ARM/weak.ll Tue Dec 5 11:00:17 2006 *************** *** 0 **** --- 1,9 ---- + ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm && + ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep .weak + + implementation ; Functions: + + weak uint %f() { + entry: + unreachable + } From sabre at nondot.org Tue Dec 5 11:29:54 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 11:29:54 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200612051729.kB5HTs67011468@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.301 -> 1.302 --- Log message: Fix typo noticed by Lauro Ramos Venancio, thanks! --- Diffs of the changes: (+1 -1) X86ISelLowering.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.301 llvm/lib/Target/X86/X86ISelLowering.cpp:1.302 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.301 Mon Dec 4 22:01:03 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue Dec 5 11:29:40 2006 @@ -5511,7 +5511,7 @@ return make_vector(X86::AX, X86::DX, X86::CX, X86::BX, X86::SI, X86::DI, X86::BP, X86::SP, 0); else if (VT == MVT::i8) - return make_vector(X86::AL, X86::DL, X86::CL, X86::DL, 0); + return make_vector(X86::AL, X86::DL, X86::CL, X86::BL, 0); break; case 'l': // INDEX_REGS if (VT == MVT::i32) From rafael.espindola at gmail.com Tue Dec 5 11:37:47 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:37:47 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Message-ID: <200612051737.kB5HblV7011608@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMISelDAGToDAG.cpp updated: 1.85 -> 1.86 --- Log message: add support for the "r" asm constraint patch by Lauro Ramos Venancio --- Diffs of the changes: (+27 -0) ARMISelDAGToDAG.cpp | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+) Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.85 llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.86 --- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.85 Thu Nov 9 07:58:55 2006 +++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Tue Dec 5 11:37:31 2006 @@ -18,6 +18,7 @@ #include "llvm/Function.h" #include "llvm/Constants.h" #include "llvm/Intrinsics.h" +#include "llvm/ADT/VectorExtras.h" #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineInstrBuilder.h" @@ -37,6 +38,9 @@ ARMTargetLowering(TargetMachine &TM); virtual SDOperand LowerOperation(SDOperand Op, SelectionDAG &DAG); virtual const char *getTargetNodeName(unsigned Opcode) const; + std::vector + getRegClassForInlineAsmConstraint(const std::string &Constraint, + MVT::ValueType VT) const; }; } @@ -200,6 +204,29 @@ } } +std::vector ARMTargetLowering:: +getRegClassForInlineAsmConstraint(const std::string &Constraint, + MVT::ValueType VT) const { + if (Constraint.size() == 1) { + // FIXME: handling only r regs + switch (Constraint[0]) { + default: break; // Unknown constraint letter + + case 'r': // GENERAL_REGS + case 'R': // LEGACY_REGS + if (VT == MVT::i32) + return make_vector(ARM::R0, ARM::R1, ARM::R2, ARM::R3, + ARM::R4, ARM::R5, ARM::R6, ARM::R7, + ARM::R8, ARM::R9, ARM::R10, ARM::R11, + ARM::R12, ARM::R13, ARM::R14, 0); + break; + + } + } + + return std::vector(); +} + const char *ARMTargetLowering::getTargetNodeName(unsigned Opcode) const { switch (Opcode) { default: return 0; From rafael.espindola at gmail.com Tue Dec 5 11:37:45 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:37:45 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/arm-asm.ll Message-ID: <200612051737.kB5HbjQ5011603@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/ARM: arm-asm.ll added (r1.1) --- Log message: add support for the "r" asm constraint patch by Lauro Ramos Venancio --- Diffs of the changes: (+7 -0) arm-asm.ll | 7 +++++++ 1 files changed, 7 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/arm-asm.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/arm-asm.ll:1.1 *** /dev/null Tue Dec 5 11:37:41 2006 --- llvm/test/Regression/CodeGen/ARM/arm-asm.ll Tue Dec 5 11:37:31 2006 *************** *** 0 **** --- 1,7 ---- + ; RUN: llvm-as < %s | llc -march=arm + + void %frame_dummy() { + entry: + %tmp1 = tail call void (sbyte*)* (void (sbyte*)*)* asm "", "=r,0,~{dirflag},~{fpsr},~{flags}"( void (sbyte*)* null ) + ret void + } From reid at x10sys.com Tue Dec 5 11:53:41 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 11:53:41 -0600 Subject: [llvm-commits] CVS: llvm/lib/System/Unix/Mutex.inc Message-ID: <200612051753.kB5HrfUn011852@zion.cs.uiuc.edu> Changes in directory llvm/lib/System/Unix: Mutex.inc updated: 1.1 -> 1.2 --- Log message: Eliminate "control reaches end of non-void function" warnings. --- Diffs of the changes: (+3 -0) Mutex.inc | 3 +++ 1 files changed, 3 insertions(+) Index: llvm/lib/System/Unix/Mutex.inc diff -u llvm/lib/System/Unix/Mutex.inc:1.1 llvm/lib/System/Unix/Mutex.inc:1.2 --- llvm/lib/System/Unix/Mutex.inc:1.1 Tue Jul 12 10:37:43 2005 +++ llvm/lib/System/Unix/Mutex.inc Tue Dec 5 11:53:26 2006 @@ -31,16 +31,19 @@ bool Mutex::acquire() { + return true; } bool Mutex::release() { + return true; } bool Mutex::tryacquire( void ) { + return true; } } From rafael.espindola at gmail.com Tue Dec 5 11:57:38 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:57:38 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/memfunc.ll Message-ID: <200612051757.kB5HvcOX011932@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/ARM: memfunc.ll added (r1.1) --- Log message: expand memmove and memcpy --- Diffs of the changes: (+13 -0) memfunc.ll | 13 +++++++++++++ 1 files changed, 13 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/memfunc.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/memfunc.ll:1.1 *** /dev/null Tue Dec 5 11:57:33 2006 --- llvm/test/Regression/CodeGen/ARM/memfunc.ll Tue Dec 5 11:57:23 2006 *************** *** 0 **** --- 1,13 ---- + ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm + + void %f() { + entry: + call void %llvm.memmove.i32( sbyte* null, sbyte* null, uint 64, uint 0 ) + call void %llvm.memcpy.i32( sbyte* null, sbyte* null, uint 64, uint 0 ) + call void %llvm.memset.i32( sbyte* null, ubyte 64, uint 0, uint 0 ) + unreachable + } + + declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint) + declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint) + declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint) From rafael.espindola at gmail.com Tue Dec 5 11:57:39 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Tue, 5 Dec 2006 11:57:39 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Message-ID: <200612051757.kB5HvdNn011940@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMISelDAGToDAG.cpp updated: 1.86 -> 1.87 --- Log message: expand memmove and memcpy --- Diffs of the changes: (+2 -0) ARMISelDAGToDAG.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.86 llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.87 --- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.86 Tue Dec 5 11:37:31 2006 +++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Tue Dec 5 11:57:22 2006 @@ -75,7 +75,9 @@ setOperationAction(ISD::SELECT_CC, MVT::i32, Custom); + setOperationAction(ISD::MEMMOVE, MVT::Other, Expand); setOperationAction(ISD::MEMSET, MVT::Other, Expand); + setOperationAction(ISD::MEMCPY, MVT::Other, Expand); setOperationAction(ISD::BR_JT, MVT::Other, Expand); setOperationAction(ISD::BRIND, MVT::Other, Expand); From sabre at nondot.org Tue Dec 5 12:22:37 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 12:22:37 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200612051822.kB5IMbcm012662@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.302 -> 1.303 --- Log message: Fix PR1033: http://llvm.org/PR1033 and CodeGen/X86/bitcast.ll, by expanding bitcast to a load/store pair. This could be better, readme entry pending. --- Diffs of the changes: (+5 -0) X86ISelLowering.cpp | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.302 llvm/lib/Target/X86/X86ISelLowering.cpp:1.303 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.302 Tue Dec 5 11:29:40 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue Dec 5 12:22:22 2006 @@ -144,8 +144,13 @@ setOperationAction(ISD::FP_TO_UINT , MVT::i32 , Promote); } + // TODO: when we have SSE, these could be more efficient, by using movd/movq. setOperationAction(ISD::BIT_CONVERT , MVT::f32 , Expand); setOperationAction(ISD::BIT_CONVERT , MVT::i32 , Expand); + if (Subtarget->is64Bit()) { + setOperationAction(ISD::BIT_CONVERT , MVT::f64 , Expand); + setOperationAction(ISD::BIT_CONVERT , MVT::i64 , Expand); + } setOperationAction(ISD::BR_JT , MVT::Other, Expand); setOperationAction(ISD::BRCOND , MVT::Other, Custom); From sabre at nondot.org Tue Dec 5 12:22:07 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 12:22:07 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/bitcast.ll Message-ID: <200612051822.kB5IM7Ls012641@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: bitcast.ll added (r1.1) --- Log message: new testcase --- Diffs of the changes: (+24 -0) bitcast.ll | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+) Index: llvm/test/Regression/CodeGen/X86/bitcast.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/bitcast.ll:1.1 *** /dev/null Tue Dec 5 12:22:02 2006 --- llvm/test/Regression/CodeGen/X86/bitcast.ll Tue Dec 5 12:21:52 2006 *************** *** 0 **** --- 1,24 ---- + ; RUN: llvm-as < %s | llc && + ; RUN: llvm-as < %s | llc -march=x86 && + ; RUN: llvm-as < %s | llc -march=x86-64 + ; PR1033 + + long %test1(double %t) { + %u = bitcast double %t to long + ret long %u + } + + double %test2(long %t) { + %u = bitcast long %t to double + ret double %u + } + + int %test3(float %t) { + %u = bitcast float %t to int + ret int %u + } + + float %test4(int %t) { + %u = bitcast int %t to float + ret float %u + } From sabre at nondot.org Tue Dec 5 12:25:25 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 12:25:25 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/README-SSE.txt Message-ID: <200612051825.kB5IPPJ8012747@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: README-SSE.txt updated: 1.9 -> 1.10 --- Log message: Add a perf optzn corresponding to PR1033: http://llvm.org/PR1033 . --- Diffs of the changes: (+5 -0) README-SSE.txt | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm/lib/Target/X86/README-SSE.txt diff -u llvm/lib/Target/X86/README-SSE.txt:1.9 llvm/lib/Target/X86/README-SSE.txt:1.10 --- llvm/lib/Target/X86/README-SSE.txt:1.9 Fri Nov 10 16:09:17 2006 +++ llvm/lib/Target/X86/README-SSE.txt Tue Dec 5 12:25:10 2006 @@ -18,6 +18,11 @@ //===---------------------------------------------------------------------===// +Bitcast to<->from SSE registers should use movd/movq instead of going through +the stack. Testcase here: CodeGen/X86/bitcast.ll + +//===---------------------------------------------------------------------===// + This testcase should have no SSE instructions in it, and only one load from a constant pool: From sabre at nondot.org Tue Dec 5 12:45:20 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 12:45:20 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86InstrSSE.td Message-ID: <200612051845.kB5IjK5t013184@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.303 -> 1.304 X86InstrSSE.td updated: 1.172 -> 1.173 --- Log message: If we have ScalarSSE, we can select bitconvert into single instructions. This compiles bitcast.ll:test3/test4 into: _test3: movd %xmm0, %eax ret _test4: movd %edi, %xmm0 ret --- Diffs of the changes: (+14 -2) X86ISelLowering.cpp | 6 ++++-- X86InstrSSE.td | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.303 llvm/lib/Target/X86/X86ISelLowering.cpp:1.304 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.303 Tue Dec 5 12:22:22 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue Dec 5 12:45:06 2006 @@ -145,8 +145,10 @@ } // TODO: when we have SSE, these could be more efficient, by using movd/movq. - setOperationAction(ISD::BIT_CONVERT , MVT::f32 , Expand); - setOperationAction(ISD::BIT_CONVERT , MVT::i32 , Expand); + if (!X86ScalarSSE) { + setOperationAction(ISD::BIT_CONVERT , MVT::f32 , Expand); + setOperationAction(ISD::BIT_CONVERT , MVT::i32 , Expand); + } if (Subtarget->is64Bit()) { setOperationAction(ISD::BIT_CONVERT , MVT::f64 , Expand); setOperationAction(ISD::BIT_CONVERT , MVT::i64 , Expand); Index: llvm/lib/Target/X86/X86InstrSSE.td diff -u llvm/lib/Target/X86/X86InstrSSE.td:1.172 llvm/lib/Target/X86/X86InstrSSE.td:1.173 --- llvm/lib/Target/X86/X86InstrSSE.td:1.172 Thu Nov 16 17:33:25 2006 +++ llvm/lib/Target/X86/X86InstrSSE.td Tue Dec 5 12:45:06 2006 @@ -1683,6 +1683,11 @@ [(set VR128:$dst, (v4i32 (scalar_to_vector (loadi32 addr:$src))))]>; +def MOVDI2SSrr : PDI<0x6E, MRMSrcReg, (ops FR32:$dst, GR32:$src), + "movd {$src, $dst|$dst, $src}", + [(set FR32:$dst, (bitconvert GR32:$src))]>; + + // SSE2 instructions with XS prefix def MOVQI2PQIrm : I<0x7E, MRMSrcMem, (ops VR128:$dst, i64mem:$src), "movq {$src, $dst|$dst, $src}", @@ -1724,6 +1729,11 @@ [(store (i32 (vector_extract (v4i32 VR128:$src), (iPTR 0))), addr:$dst)]>; +def MOVDSS2DIrr : PDI<0x7E, MRMDestReg, (ops GR32:$dst, FR32:$src), + "movd {$src, $dst|$dst, $src}", + [(set GR32:$dst, (bitconvert FR32:$src))]>; + + // Move to lower bits of a VR128, leaving upper bits alone. // Three operand (but two address) aliases. let isTwoAddress = 1 in { From reid at x10sys.com Tue Dec 5 13:14:31 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:14:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp Message-ID: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ScalarEvolution.cpp updated: 1.63 -> 1.64 --- Log message: Bail on the getInferredCast idea. Remove the function and convert remaining uses to more specific casts. --- Diffs of the changes: (+10 -9) ScalarEvolution.cpp | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.63 llvm/lib/Analysis/ScalarEvolution.cpp:1.64 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.63 Mon Dec 4 15:33:23 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Tue Dec 5 13:14:13 2006 @@ -179,7 +179,7 @@ if (V->getType()->isSigned()) { const Type *NewTy = V->getType()->getUnsignedVersion(); V = cast( - ConstantExpr::getInferredCast(V, false, NewTy, false)); + ConstantExpr::getBitCast(V, NewTy)); } SCEVConstant *&R = (*SCEVConstants)[V]; @@ -466,7 +466,7 @@ C = ConstantInt::get(Ty, Val); else { C = ConstantInt::get(Ty->getSignedVersion(), Val); - C = ConstantExpr::getInferredCast(C, true, Ty, false); + C = ConstantExpr::getBitCast(C, Ty); } return SCEVUnknown::get(C); } @@ -513,7 +513,7 @@ Result *= Val-(NumSteps-1); Constant *Res = ConstantInt::get(Type::ULongTy, Result); return SCEVUnknown::get( - ConstantExpr::getInferredCast(Res, false, V->getType(), true)); + ConstantExpr::getTruncOrBitCast(Res, V->getType())); } const Type *Ty = V->getType(); @@ -559,7 +559,8 @@ SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type *Ty) { if (SCEVConstant *SC = dyn_cast(Op)) - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), Ty)); + return SCEVUnknown::get( + ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); // If the input value is a chrec scev made out of constants, truncate // all of the constants. @@ -582,7 +583,8 @@ SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const Type *Ty) { if (SCEVConstant *SC = dyn_cast(Op)) - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), Ty)); + return SCEVUnknown::get( + ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); // FIXME: If the input value is a chrec scev, and we can prove that the value // did not overflow the old, smaller, value, we can zero extend all of the @@ -998,11 +1000,10 @@ Constant *LHSCV = LHSC->getValue(); Constant *RHSCV = RHSC->getValue(); if (LHSCV->getType()->isUnsigned()) - LHSCV = ConstantExpr::getInferredCast( - LHSCV, false, LHSCV->getType()->getSignedVersion(), true); + LHSCV = ConstantExpr::getBitCast(LHSCV, + LHSCV->getType()->getSignedVersion()); if (RHSCV->getType()->isUnsigned()) - RHSCV = ConstantExpr::getInferredCast( - RHSCV, false, LHSCV->getType(), true); + RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); } } From reid at x10sys.com Tue Dec 5 13:14:30 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:14:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Message-ID: <200612051914.kB5JEUY7013785@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.180 -> 1.181 --- Log message: Bail on the getInferredCast idea. Remove the function and convert remaining uses to more specific casts. --- Diffs of the changes: (+8 -8) Constants.cpp | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.180 llvm/lib/VMCore/Constants.cpp:1.181 --- llvm/lib/VMCore/Constants.cpp:1.180 Mon Dec 4 21:25:26 2006 +++ llvm/lib/VMCore/Constants.cpp Tue Dec 5 13:14:13 2006 @@ -1500,14 +1500,7 @@ ExprMapKeyType Key(opc, argVec); return ExprConstants->getOrCreate(Ty, Key); } - -Constant *ConstantExpr::getInferredCast(Constant *C, bool SrcIsSigned, - const Type *Ty, bool DestIsSigned) { - // Note: we can't inline this because it requires the Instructions.h header - return getCast( - CastInst::getCastOpcode(C, SrcIsSigned, Ty, DestIsSigned), C, Ty); -} - + Constant *ConstantExpr::getCast(unsigned oc, Constant *C, const Type *Ty) { Instruction::CastOps opc = Instruction::CastOps(oc); assert(Instruction::isCast(opc) && "opcode out of range"); @@ -1532,8 +1525,15 @@ case Instruction::BitCast: return getBitCast(C, Ty); } return 0; +} + +Constant *ConstantExpr::getCast(Constant *C, const Type *Ty) { + // Note: we can't inline this because it requires the Instructions.h header + return getCast(CastInst::getCastOpcode( + C, C->getType()->isSigned(), Ty, Ty->isSigned()), C, Ty); } + Constant *ConstantExpr::getZExtOrBitCast(Constant *C, const Type *Ty) { if (C->getType()->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits()) return getCast(Instruction::BitCast, C, Ty); From reid at x10sys.com Tue Dec 5 13:14:31 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:14:31 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h Message-ID: <200612051914.kB5JEVlk013794@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Constants.h updated: 1.102 -> 1.103 --- Log message: Bail on the getInferredCast idea. Remove the function and convert remaining uses to more specific casts. --- Diffs of the changes: (+1 -9) Constants.h | 10 +--------- 1 files changed, 1 insertion(+), 9 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.102 llvm/include/llvm/Constants.h:1.103 --- llvm/include/llvm/Constants.h:1.102 Mon Dec 4 17:14:27 2006 +++ llvm/include/llvm/Constants.h Tue Dec 5 13:14:13 2006 @@ -567,15 +567,7 @@ const Type *Ty ///< The type to which cast should be made ); - // This method uses the CastInst::getCastOpcode method to infer the - // cast opcode to use. - // @brief Get a ConstantExpr Conversion operator that casts C to Ty - static Constant *getInferredCast(Constant *C, bool SrcIsSigned, - const Type *Ty, bool DestIsSigned); - - static Constant *getCast(Constant *C, const Type *Ty) { - return getInferredCast(C, C->getType()->isSigned(), Ty, Ty->isSigned()); - } + static Constant *getCast(Constant *C, const Type *Ty); /// @brief Return true if this is a convert constant expression bool isCast() const; From reid at x10sys.com Tue Dec 5 13:15:56 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:15:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y Message-ID: <200612051915.kB5JFuAX013835@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.y updated: 1.284 -> 1.285 --- Log message: Remove various old upgrade hacks that are no longer needed. --- Diffs of the changes: (+1 -41) llvmAsmParser.y | 42 +----------------------------------------- 1 files changed, 1 insertion(+), 41 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.284 llvm/lib/AsmParser/llvmAsmParser.y:1.285 --- llvm/lib/AsmParser/llvmAsmParser.y:1.284 Sun Dec 3 23:20:06 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y Tue Dec 5 13:15:41 2006 @@ -1629,17 +1629,6 @@ if (!isa($3->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin($3->getType(), $4->begin(), $4->end()), - GTE = gep_type_end($3->getType(), $4->begin(), $4->end()); - for (unsigned i = 0, e = $4->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*$4)[i])) - if (CUI->getType() == Type::UByteTy) - (*$4)[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - const Type *IdxTy = GetElementPtrInst::getIndexedType($3->getType(), *$4, true); if (!IdxTy) @@ -1669,25 +1658,7 @@ if ($3->getType() != $5->getType()) GEN_ERROR("Binary operator types must match!"); CHECK_FOR_ERROR; - - // HACK: llvm 1.3 and earlier used to emit invalid pointer constant exprs. - // To retain backward compatibility with these early compilers, we emit a - // cast to the appropriate integer type automatically if we are in the - // broken case. See PR424 for more information. - if (!isa($3->getType())) { - $$ = ConstantExpr::get($1, $3, $5); - } else { - const Type *IntPtrTy = 0; - switch (CurModule.CurrentModule->getPointerSize()) { - case Module::Pointer32: IntPtrTy = Type::IntTy; break; - case Module::Pointer64: IntPtrTy = Type::LongTy; break; - default: GEN_ERROR("invalid pointer binary constant expr!"); - } - $$ = ConstantExpr::get($1, ConstantExpr::getCast($3, IntPtrTy), - ConstantExpr::getCast($5, IntPtrTy)); - $$ = ConstantExpr::getCast($$, $3->getType()); - } - CHECK_FOR_ERROR + $$ = ConstantExpr::get($1, $3, $5); } | LogicalOps '(' ConstVal ',' ConstVal ')' { if ($3->getType() != $5->getType()) @@ -2800,17 +2771,6 @@ if (!isa($2->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin($2->get(), $4->begin(), $4->end()), - GTE = gep_type_end($2->get(), $4->begin(), $4->end()); - for (unsigned i = 0, e = $4->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*$4)[i])) - if (CUI->getType() == Type::UByteTy) - (*$4)[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - if (!GetElementPtrInst::getIndexedType(*$2, *$4, true)) GEN_ERROR("Invalid getelementptr indices for type '" + (*$2)->getDescription()+ "'!"); From reid at x10sys.com Tue Dec 5 13:16:27 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:16:27 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs llvmAsmParser.y.cvs Message-ID: <200612051916.kB5JGRpI013859@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.cpp.cvs updated: 1.32 -> 1.33 llvmAsmParser.y.cvs updated: 1.33 -> 1.34 --- Log message: Regenerate. --- Diffs of the changes: (+149 -229) llvmAsmParser.cpp.cvs | 336 ++++++++++++++++++++++---------------------------- llvmAsmParser.y.cvs | 42 ------ 2 files changed, 149 insertions(+), 229 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.32 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.33 --- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.32 Sun Dec 3 23:24:24 2006 +++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Tue Dec 5 13:16:11 2006 @@ -1758,21 +1758,21 @@ 1256, 1256, 1256, 1256, 1257, 1261, 1265, 1273, 1281, 1294, 1299, 1311, 1321, 1325, 1336, 1341, 1347, 1348, 1352, 1356, 1367, 1393, 1407, 1437, 1463, 1484, 1497, 1507, 1512, 1573, - 1580, 1588, 1594, 1600, 1604, 1608, 1616, 1628, 1660, 1668, - 1692, 1703, 1709, 1714, 1719, 1728, 1734, 1740, 1749, 1753, - 1761, 1761, 1771, 1779, 1784, 1788, 1792, 1796, 1811, 1833, - 1836, 1839, 1839, 1847, 1847, 1855, 1855, 1863, 1863, 1872, - 1875, 1878, 1882, 1895, 1896, 1898, 1902, 1911, 1915, 1920, - 1922, 1927, 1932, 1941, 1941, 1942, 1942, 1944, 1951, 1957, - 1964, 1968, 1974, 1979, 1984, 2079, 2079, 2081, 2089, 2089, - 2091, 2096, 2097, 2098, 2100, 2100, 2110, 2114, 2119, 2123, - 2127, 2131, 2135, 2139, 2143, 2147, 2151, 2176, 2180, 2194, - 2198, 2204, 2204, 2210, 2215, 2219, 2228, 2239, 2248, 2260, - 2273, 2277, 2281, 2286, 2295, 2314, 2323, 2379, 2383, 2390, - 2401, 2414, 2423, 2432, 2442, 2446, 2453, 2453, 2455, 2459, - 2464, 2483, 2498, 2512, 2523, 2534, 2547, 2556, 2567, 2575, - 2581, 2601, 2624, 2630, 2636, 2642, 2657, 2716, 2723, 2726, - 2731, 2735, 2742, 2747, 2753, 2758, 2764, 2772, 2784, 2799 + 1580, 1588, 1594, 1600, 1604, 1608, 1616, 1628, 1649, 1657, + 1663, 1674, 1680, 1685, 1690, 1699, 1705, 1711, 1720, 1724, + 1732, 1732, 1742, 1750, 1755, 1759, 1763, 1767, 1782, 1804, + 1807, 1810, 1810, 1818, 1818, 1826, 1826, 1834, 1834, 1843, + 1846, 1849, 1853, 1866, 1867, 1869, 1873, 1882, 1886, 1891, + 1893, 1898, 1903, 1912, 1912, 1913, 1913, 1915, 1922, 1928, + 1935, 1939, 1945, 1950, 1955, 2050, 2050, 2052, 2060, 2060, + 2062, 2067, 2068, 2069, 2071, 2071, 2081, 2085, 2090, 2094, + 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2147, 2151, 2165, + 2169, 2175, 2175, 2181, 2186, 2190, 2199, 2210, 2219, 2231, + 2244, 2248, 2252, 2257, 2266, 2285, 2294, 2350, 2354, 2361, + 2372, 2385, 2394, 2403, 2413, 2417, 2424, 2424, 2426, 2430, + 2435, 2454, 2469, 2483, 2494, 2505, 2518, 2527, 2538, 2546, + 2552, 2572, 2595, 2601, 2607, 2613, 2628, 2687, 2694, 2697, + 2702, 2706, 2713, 2718, 2724, 2729, 2735, 2743, 2755, 2770 }; #endif @@ -3969,17 +3969,6 @@ if (!isa((yyvsp[-2].ConstVal)->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin((yyvsp[-2].ConstVal)->getType(), (yyvsp[-1].ValueList)->begin(), (yyvsp[-1].ValueList)->end()), - GTE = gep_type_end((yyvsp[-2].ConstVal)->getType(), (yyvsp[-1].ValueList)->begin(), (yyvsp[-1].ValueList)->end()); - for (unsigned i = 0, e = (yyvsp[-1].ValueList)->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*(yyvsp[-1].ValueList))[i])) - if (CUI->getType() == Type::UByteTy) - (*(yyvsp[-1].ValueList))[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - const Type *IdxTy = GetElementPtrInst::getIndexedType((yyvsp[-2].ConstVal)->getType(), *(yyvsp[-1].ValueList), true); if (!IdxTy) @@ -4000,7 +3989,7 @@ break; case 158: -#line 1660 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1649 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy) GEN_ERROR("Select condition must be of boolean type!"); @@ -4012,35 +4001,17 @@ break; case 159: -#line 1668 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1657 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Binary operator types must match!"); CHECK_FOR_ERROR; - - // HACK: llvm 1.3 and earlier used to emit invalid pointer constant exprs. - // To retain backward compatibility with these early compilers, we emit a - // cast to the appropriate integer type automatically if we are in the - // broken case. See PR424 for more information. - if (!isa((yyvsp[-3].ConstVal)->getType())) { - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); - } else { - const Type *IntPtrTy = 0; - switch (CurModule.CurrentModule->getPointerSize()) { - case Module::Pointer32: IntPtrTy = Type::IntTy; break; - case Module::Pointer64: IntPtrTy = Type::LongTy; break; - default: GEN_ERROR("invalid pointer binary constant expr!"); - } - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), ConstantExpr::getCast((yyvsp[-3].ConstVal), IntPtrTy), - ConstantExpr::getCast((yyvsp[-1].ConstVal), IntPtrTy)); - (yyval.ConstVal) = ConstantExpr::getCast((yyval.ConstVal), (yyvsp[-3].ConstVal)->getType()); - } - CHECK_FOR_ERROR + (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); ;} break; case 160: -#line 1692 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1663 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Logical operator types must match!"); @@ -4055,7 +4026,7 @@ break; case 161: -#line 1703 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1674 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("setcc operand types must match!"); @@ -4065,7 +4036,7 @@ break; case 162: -#line 1709 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1680 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("icmp operand types must match!"); @@ -4074,7 +4045,7 @@ break; case 163: -#line 1714 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1685 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("fcmp operand types must match!"); @@ -4083,7 +4054,7 @@ break; case 164: -#line 1719 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1690 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy) GEN_ERROR("Shift count for shift constant must be unsigned byte!"); @@ -4096,7 +4067,7 @@ break; case 165: -#line 1728 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1699 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -4106,7 +4077,7 @@ break; case 166: -#line 1734 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1705 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -4116,7 +4087,7 @@ break; case 167: -#line 1740 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1711 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -4126,7 +4097,7 @@ break; case 168: -#line 1749 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1720 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -4134,7 +4105,7 @@ break; case 169: -#line 1753 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector) = new std::vector(); (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); @@ -4143,17 +4114,17 @@ break; case 170: -#line 1761 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; ;} break; case 171: -#line 1761 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; ;} break; case 172: -#line 1771 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal); CurModule.ModuleDone(); @@ -4162,7 +4133,7 @@ break; case 173: -#line 1779 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1750 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); @@ -4171,7 +4142,7 @@ break; case 174: -#line 1784 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4179,7 +4150,7 @@ break; case 175: -#line 1788 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1759 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); CHECK_FOR_ERROR @@ -4187,7 +4158,7 @@ break; case 176: -#line 1792 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1763 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4195,7 +4166,7 @@ break; case 177: -#line 1796 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1767 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -4212,7 +4183,7 @@ break; case 178: -#line 1811 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1782 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -4238,21 +4209,21 @@ break; case 179: -#line 1833 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool CHECK_FOR_ERROR ;} break; case 180: -#line 1836 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1807 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Asm blocks can be in the const pool CHECK_FOR_ERROR ;} break; case 181: -#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1810 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ConstVal) == 0) GEN_ERROR("Global value initializer is not a constant!"); @@ -4262,14 +4233,14 @@ break; case 182: -#line 1844 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1815 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ;} break; case 183: -#line 1847 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1818 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4278,7 +4249,7 @@ break; case 184: -#line 1851 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1822 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4286,7 +4257,7 @@ break; case 185: -#line 1855 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1826 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4295,7 +4266,7 @@ break; case 186: -#line 1859 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1830 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4303,7 +4274,7 @@ break; case 187: -#line 1863 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1834 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); @@ -4313,7 +4284,7 @@ break; case 188: -#line 1868 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4321,27 +4292,27 @@ break; case 189: -#line 1872 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1843 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 190: -#line 1875 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1846 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 191: -#line 1878 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1849 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ;} break; case 192: -#line 1882 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1853 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); @@ -4357,17 +4328,17 @@ break; case 193: -#line 1895 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1866 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::BigEndian; ;} break; case 194: -#line 1896 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1867 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::LittleEndian; ;} break; case 195: -#line 1898 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1869 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness)); CHECK_FOR_ERROR @@ -4375,7 +4346,7 @@ break; case 196: -#line 1902 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1873 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); @@ -4388,7 +4359,7 @@ break; case 197: -#line 1911 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1882 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4396,7 +4367,7 @@ break; case 198: -#line 1915 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1886 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4404,7 +4375,7 @@ break; case 200: -#line 1922 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1893 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4413,7 +4384,7 @@ break; case 201: -#line 1927 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1898 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4422,19 +4393,19 @@ break; case 202: -#line 1932 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1903 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 206: -#line 1942 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1913 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 207: -#line 1944 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1915 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (*(yyvsp[-1].TypeVal) == Type::VoidTy) GEN_ERROR("void typed arguments are invalid!"); @@ -4444,7 +4415,7 @@ break; case 208: -#line 1951 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1922 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4454,7 +4425,7 @@ break; case 209: -#line 1957 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1928 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = new std::vector >(); (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4464,7 +4435,7 @@ break; case 210: -#line 1964 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1935 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[0].ArgList); CHECK_FOR_ERROR @@ -4472,7 +4443,7 @@ break; case 211: -#line 1968 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyval.ArgList)->push_back(std::pair >(); (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); @@ -4491,7 +4462,7 @@ break; case 213: -#line 1979 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1950 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = 0; CHECK_FOR_ERROR @@ -4499,7 +4470,7 @@ break; case 214: -#line 1985 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1956 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { UnEscapeLexed((yyvsp[-5].StrVal)); std::string FunctionName((yyvsp[-5].StrVal)); @@ -4596,7 +4567,7 @@ break; case 217: -#line 2081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2052 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; @@ -4607,7 +4578,7 @@ break; case 220: -#line 2091 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4615,22 +4586,22 @@ break; case 222: -#line 2097 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 223: -#line 2098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} break; case 224: -#line 2100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ;} break; case 225: -#line 2100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; CurFun.FunctionDone(); @@ -4639,7 +4610,7 @@ break; case 226: -#line 2110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4647,7 +4618,7 @@ break; case 227: -#line 2114 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2085 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4655,7 +4626,7 @@ break; case 228: -#line 2119 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2090 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); CHECK_FOR_ERROR @@ -4663,7 +4634,7 @@ break; case 229: -#line 2123 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); CHECK_FOR_ERROR @@ -4671,7 +4642,7 @@ break; case 230: -#line 2127 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); CHECK_FOR_ERROR @@ -4679,7 +4650,7 @@ break; case 231: -#line 2131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue()); CHECK_FOR_ERROR @@ -4687,7 +4658,7 @@ break; case 232: -#line 2135 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse()); CHECK_FOR_ERROR @@ -4695,7 +4666,7 @@ break; case 233: -#line 2139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createNull(); CHECK_FOR_ERROR @@ -4703,7 +4674,7 @@ break; case 234: -#line 2143 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2114 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createUndef(); CHECK_FOR_ERROR @@ -4711,7 +4682,7 @@ break; case 235: -#line 2147 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2118 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A vector zero constant. (yyval.ValIDVal) = ValID::createZeroInit(); CHECK_FOR_ERROR @@ -4719,7 +4690,7 @@ break; case 236: -#line 2151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2122 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType(); int NumElements = (yyvsp[-1].ConstVector)->size(); @@ -4748,7 +4719,7 @@ break; case 237: -#line 2176 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2147 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -4756,7 +4727,7 @@ break; case 238: -#line 2180 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { char *End = UnEscapeLexed((yyvsp[-2].StrVal), true); std::string AsmStr = std::string((yyvsp[-2].StrVal), End); @@ -4770,7 +4741,7 @@ break; case 239: -#line 2194 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2165 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); CHECK_FOR_ERROR @@ -4778,7 +4749,7 @@ break; case 240: -#line 2198 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); CHECK_FOR_ERROR @@ -4786,7 +4757,7 @@ break; case 243: -#line 2210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal); CHECK_FOR_ERROR @@ -4794,7 +4765,7 @@ break; case 244: -#line 2215 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2186 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4802,7 +4773,7 @@ break; case 245: -#line 2219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2190 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4810,7 +4781,7 @@ break; case 246: -#line 2228 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2199 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal)); CHECK_FOR_ERROR @@ -4824,7 +4795,7 @@ break; case 247: -#line 2239 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (CastInst *CI1 = dyn_cast((yyvsp[0].InstVal))) if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) @@ -4837,7 +4808,7 @@ break; case 248: -#line 2248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR @@ -4853,7 +4824,7 @@ break; case 249: -#line 2260 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2231 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true); CHECK_FOR_ERROR @@ -4869,7 +4840,7 @@ break; case 250: -#line 2273 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2244 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with a result... (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal)); CHECK_FOR_ERROR @@ -4877,7 +4848,7 @@ break; case 251: -#line 2277 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with no result... (yyval.TermInstVal) = new ReturnInst(); CHECK_FOR_ERROR @@ -4885,7 +4856,7 @@ break; case 252: -#line 2281 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2252 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -4894,7 +4865,7 @@ break; case 253: -#line 2286 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2257 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal)); CHECK_FOR_ERROR @@ -4907,7 +4878,7 @@ break; case 254: -#line 2295 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2266 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal)); CHECK_FOR_ERROR @@ -4930,7 +4901,7 @@ break; case 255: -#line 2314 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2285 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal)); CHECK_FOR_ERROR @@ -4943,7 +4914,7 @@ break; case 256: -#line 2324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2295 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -5002,7 +4973,7 @@ break; case 257: -#line 2379 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2350 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnwindInst(); CHECK_FOR_ERROR @@ -5010,7 +4981,7 @@ break; case 258: -#line 2383 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2354 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnreachableInst(); CHECK_FOR_ERROR @@ -5018,7 +4989,7 @@ break; case 259: -#line 2390 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2361 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = (yyvsp[-5].JumpTable); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5033,7 +5004,7 @@ break; case 260: -#line 2401 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2372 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = new std::vector >(); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5049,7 +5020,7 @@ break; case 261: -#line 2414 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2385 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal)); @@ -5061,7 +5032,7 @@ break; case 262: -#line 2423 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes (yyval.PHIList) = new std::list >(); Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal)); @@ -5074,7 +5045,7 @@ break; case 263: -#line 2432 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2403 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.PHIList) = (yyvsp[-6].PHIList); Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal)); @@ -5086,7 +5057,7 @@ break; case 264: -#line 2442 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2413 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... (yyval.ValueList) = new std::vector(); (yyval.ValueList)->push_back((yyvsp[0].ValueVal)); @@ -5094,7 +5065,7 @@ break; case 265: -#line 2446 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2417 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[-2].ValueList); (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal)); @@ -5103,12 +5074,12 @@ break; case 267: -#line 2453 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2424 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = 0; ;} break; case 268: -#line 2455 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2426 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -5116,7 +5087,7 @@ break; case 269: -#line 2459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2430 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -5124,7 +5095,7 @@ break; case 270: -#line 2464 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && !isa((*(yyvsp[-3].TypeVal)).get())) @@ -5147,7 +5118,7 @@ break; case 271: -#line 2483 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2454 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isIntegral()) { if (!isa((yyvsp[-3].TypeVal)->get()) || @@ -5166,7 +5137,7 @@ break; case 272: -#line 2498 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2469 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if(isa((*(yyvsp[-3].TypeVal)).get())) { GEN_ERROR( @@ -5184,7 +5155,7 @@ break; case 273: -#line 2512 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2483 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by icmp instruction"); @@ -5199,7 +5170,7 @@ break; case 274: -#line 2523 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2494 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by fcmp instruction"); @@ -5214,7 +5185,7 @@ break; case 275: -#line 2534 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2505 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { llvm_cerr << "WARNING: Use of eliminated 'not' instruction:" << " Replacing with 'xor'.\n"; @@ -5231,7 +5202,7 @@ break; case 276: -#line 2547 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2518 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy) GEN_ERROR("Shift amount must be ubyte!"); @@ -5244,7 +5215,7 @@ break; case 277: -#line 2556 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2527 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* Val = (yyvsp[-2].ValueVal); const Type* Ty = (yyvsp[0].TypeVal)->get(); @@ -5259,7 +5230,7 @@ break; case 278: -#line 2567 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2538 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy) GEN_ERROR("select condition must be boolean!"); @@ -5271,7 +5242,7 @@ break; case 279: -#line 2575 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2546 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { NewVarArgs = true; (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal)); @@ -5281,7 +5252,7 @@ break; case 280: -#line 2581 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = (yyvsp[-2].ValueVal)->getType(); @@ -5305,7 +5276,7 @@ break; case 281: -#line 2601 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = (yyvsp[-2].ValueVal)->getType(); @@ -5332,7 +5303,7 @@ break; case 282: -#line 2624 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2595 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -5342,7 +5313,7 @@ break; case 283: -#line 2630 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2601 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -5352,7 +5323,7 @@ break; case 284: -#line 2636 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2607 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -5362,7 +5333,7 @@ break; case 285: -#line 2642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[0].PHIList)->front().first->getType(); if (!Ty->isFirstClassType()) @@ -5381,7 +5352,7 @@ break; case 286: -#line 2657 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2628 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy = 0; const FunctionType *Ty = 0; @@ -5444,7 +5415,7 @@ break; case 287: -#line 2716 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2687 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = (yyvsp[0].InstVal); CHECK_FOR_ERROR @@ -5452,7 +5423,7 @@ break; case 288: -#line 2723 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2694 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[0].ValueList); CHECK_FOR_ERROR @@ -5460,7 +5431,7 @@ break; case 289: -#line 2726 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2697 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = new std::vector(); CHECK_FOR_ERROR @@ -5468,7 +5439,7 @@ break; case 290: -#line 2731 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2702 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -5476,7 +5447,7 @@ break; case 291: -#line 2735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2706 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -5484,7 +5455,7 @@ break; case 292: -#line 2742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2713 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5493,7 +5464,7 @@ break; case 293: -#line 2747 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2718 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5503,7 +5474,7 @@ break; case 294: -#line 2753 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5512,7 +5483,7 @@ break; case 295: -#line 2758 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2729 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5522,7 +5493,7 @@ break; case 296: -#line 2764 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[0].ValueVal)->getType())) GEN_ERROR("Trying to free nonpointer type " + @@ -5533,7 +5504,7 @@ break; case 297: -#line 2772 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2743 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-1].TypeVal)->get())) GEN_ERROR("Can't load from nonpointer type: " + @@ -5549,7 +5520,7 @@ break; case 298: -#line 2784 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PT = dyn_cast((yyvsp[-1].TypeVal)->get()); if (!PT) @@ -5568,22 +5539,11 @@ break; case 299: -#line 2799 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2770 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-2].TypeVal)->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin((yyvsp[-2].TypeVal)->get(), (yyvsp[0].ValueList)->begin(), (yyvsp[0].ValueList)->end()), - GTE = gep_type_end((yyvsp[-2].TypeVal)->get(), (yyvsp[0].ValueList)->begin(), (yyvsp[0].ValueList)->end()); - for (unsigned i = 0, e = (yyvsp[0].ValueList)->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*(yyvsp[0].ValueList))[i])) - if (CUI->getType() == Type::UByteTy) - (*(yyvsp[0].ValueList))[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - if (!GetElementPtrInst::getIndexedType(*(yyvsp[-2].TypeVal), *(yyvsp[0].ValueList), true)) GEN_ERROR("Invalid getelementptr indices for type '" + (*(yyvsp[-2].TypeVal))->getDescription()+ "'!"); @@ -5600,7 +5560,7 @@ } /* Line 1126 of yacc.c. */ -#line 5604 "llvmAsmParser.tab.c" +#line 5564 "llvmAsmParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -5868,7 +5828,7 @@ } -#line 2825 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2785 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" void llvm::GenerateError(const std::string &message, int LineNo) { Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.33 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.34 --- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.33 Sun Dec 3 23:24:24 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y.cvs Tue Dec 5 13:16:11 2006 @@ -1629,17 +1629,6 @@ if (!isa($3->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin($3->getType(), $4->begin(), $4->end()), - GTE = gep_type_end($3->getType(), $4->begin(), $4->end()); - for (unsigned i = 0, e = $4->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*$4)[i])) - if (CUI->getType() == Type::UByteTy) - (*$4)[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - const Type *IdxTy = GetElementPtrInst::getIndexedType($3->getType(), *$4, true); if (!IdxTy) @@ -1669,25 +1658,7 @@ if ($3->getType() != $5->getType()) GEN_ERROR("Binary operator types must match!"); CHECK_FOR_ERROR; - - // HACK: llvm 1.3 and earlier used to emit invalid pointer constant exprs. - // To retain backward compatibility with these early compilers, we emit a - // cast to the appropriate integer type automatically if we are in the - // broken case. See PR424 for more information. - if (!isa($3->getType())) { - $$ = ConstantExpr::get($1, $3, $5); - } else { - const Type *IntPtrTy = 0; - switch (CurModule.CurrentModule->getPointerSize()) { - case Module::Pointer32: IntPtrTy = Type::IntTy; break; - case Module::Pointer64: IntPtrTy = Type::LongTy; break; - default: GEN_ERROR("invalid pointer binary constant expr!"); - } - $$ = ConstantExpr::get($1, ConstantExpr::getCast($3, IntPtrTy), - ConstantExpr::getCast($5, IntPtrTy)); - $$ = ConstantExpr::getCast($$, $3->getType()); - } - CHECK_FOR_ERROR + $$ = ConstantExpr::get($1, $3, $5); } | LogicalOps '(' ConstVal ',' ConstVal ')' { if ($3->getType() != $5->getType()) @@ -2800,17 +2771,6 @@ if (!isa($2->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); - // LLVM 1.2 and earlier used ubyte struct indices. Convert any ubyte struct - // indices to uint struct indices for compatibility. - generic_gep_type_iterator::iterator> - GTI = gep_type_begin($2->get(), $4->begin(), $4->end()), - GTE = gep_type_end($2->get(), $4->begin(), $4->end()); - for (unsigned i = 0, e = $4->size(); i != e && GTI != GTE; ++i, ++GTI) - if (isa(*GTI)) // Only change struct indices - if (ConstantInt *CUI = dyn_cast((*$4)[i])) - if (CUI->getType() == Type::UByteTy) - (*$4)[i] = ConstantExpr::getCast(CUI, Type::UIntTy); - if (!GetElementPtrInst::getIndexedType(*$2, *$4, true)) GEN_ERROR("Invalid getelementptr indices for type '" + (*$2)->getDescription()+ "'!"); From reid at x10sys.com Tue Dec 5 13:18:43 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:18:43 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/ParserInternals.h UpgradeParser.y Message-ID: <200612051918.kB5JIh4r013904@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: ParserInternals.h updated: 1.7 -> 1.8 UpgradeParser.y updated: 1.17 -> 1.18 --- Log message: For PR645: http://llvm.org/PR645 : Keep track of global constant and variable definitions for eventual use in resolving conflicts between global and local symbol usage. --- Diffs of the changes: (+19 -4) ParserInternals.h | 6 ++++++ UpgradeParser.y | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) Index: llvm/tools/llvm-upgrade/ParserInternals.h diff -u llvm/tools/llvm-upgrade/ParserInternals.h:1.7 llvm/tools/llvm-upgrade/ParserInternals.h:1.8 --- llvm/tools/llvm-upgrade/ParserInternals.h:1.7 Sat Dec 2 14:19:56 2006 +++ llvm/tools/llvm-upgrade/ParserInternals.h Tue Dec 5 13:18:29 2006 @@ -60,6 +60,12 @@ void destroy() const { delete newTy; } + TypeInfo clone() const { + TypeInfo result = *this; + result.newTy = new std::string(*newTy); + return result; + } + Types getElementType() const { return elemTy; } bool isSigned() const { Index: llvm/tools/llvm-upgrade/UpgradeParser.y diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.17 llvm/tools/llvm-upgrade/UpgradeParser.y:1.18 --- llvm/tools/llvm-upgrade/UpgradeParser.y:1.17 Sun Dec 3 01:10:26 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y Tue Dec 5 13:18:29 2006 @@ -39,6 +39,7 @@ static TypeVector EnumeratedTypes; typedef std::map TypeMap; static TypeMap NamedTypes; +static TypeMap Globals; void destroy(ValueList* VL) { while (!VL->empty()) { @@ -777,29 +778,37 @@ $$ = 0; } | ConstPool OptAssign OptLinkage GlobalType ConstVal GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.type.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.cnst << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign External GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign DLLIMPORT GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign EXTERN_WEAK GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; From reid at x10sys.com Tue Dec 5 13:21:39 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 13:21:39 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.cpp.cvs UpgradeParser.h UpgradeParser.h.cvs UpgradeParser.y.cvs Message-ID: <200612051921.kB5JLdsa013981@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.cpp updated: 1.18 -> 1.19 UpgradeParser.cpp.cvs updated: 1.18 -> 1.19 UpgradeParser.h updated: 1.13 -> 1.14 UpgradeParser.h.cvs updated: 1.13 -> 1.14 UpgradeParser.y.cvs updated: 1.17 -> 1.18 --- Log message: Regenerate. --- Diffs of the changes: (+423 -396) UpgradeParser.cpp | 399 +++++++++++++++++++++++++------------------------- UpgradeParser.cpp.cvs | 399 +++++++++++++++++++++++++------------------------- UpgradeParser.h | 2 UpgradeParser.h.cvs | 2 UpgradeParser.y.cvs | 17 +- 5 files changed, 423 insertions(+), 396 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.18 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.19 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.18 Mon Dec 4 09:41:36 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Tue Dec 5 13:21:25 2006 @@ -397,6 +397,7 @@ static TypeVector EnumeratedTypes; typedef std::map TypeMap; static TypeMap NamedTypes; +static TypeMap Globals; void destroy(ValueList* VL) { while (!VL->empty()) { @@ -641,7 +642,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -650,7 +651,7 @@ ValueList* ValList; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 654 "UpgradeParser.tab.c" +#line 655 "UpgradeParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -662,7 +663,7 @@ /* Line 219 of yacc.c. */ -#line 666 "UpgradeParser.tab.c" +#line 667 "UpgradeParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1016,36 +1017,36 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 332, 332, 332, 333, 333, 337, 337, 337, 337, - 337, 337, 337, 338, 338, 338, 338, 339, 339, 339, - 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, + 0, 333, 333, 333, 334, 334, 338, 338, 338, 338, + 338, 338, 338, 339, 339, 339, 339, 340, 340, 340, 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 343, 343, 343, 343, - 343, 343, 344, 344, 344, 344, 345, 345, 345, 345, - 345, 345, 345, 346, 346, 346, 346, 346, 346, 351, - 351, 351, 351, 352, 352, 352, 352, 353, 353, 354, - 354, 357, 360, 365, 365, 365, 365, 365, 365, 366, - 367, 370, 370, 370, 370, 370, 371, 372, 377, 382, - 383, 386, 387, 395, 401, 402, 405, 406, 415, 416, - 429, 429, 430, 430, 431, 435, 435, 435, 435, 435, - 435, 435, 436, 436, 436, 436, 436, 438, 442, 446, - 449, 454, 460, 468, 476, 482, 486, 497, 500, 508, - 509, 514, 517, 527, 533, 538, 544, 550, 556, 561, - 567, 573, 579, 585, 591, 597, 603, 609, 615, 623, - 637, 649, 654, 660, 665, 673, 678, 683, 691, 696, - 701, 711, 716, 721, 721, 731, 736, 739, 744, 748, - 752, 754, 754, 757, 769, 774, 779, 786, 793, 800, - 807, 812, 817, 822, 824, 824, 827, 832, 839, 844, - 851, 858, 863, 864, 872, 872, 873, 873, 875, 882, - 886, 890, 893, 898, 901, 903, 923, 924, 926, 935, - 936, 938, 946, 947, 948, 952, 965, 966, 969, 969, - 969, 969, 969, 969, 969, 970, 971, 976, 977, 986, - 986, 990, 996, 1007, 1013, 1016, 1024, 1028, 1033, 1036, - 1042, 1042, 1044, 1049, 1054, 1059, 1067, 1074, 1080, 1100, - 1105, 1111, 1116, 1124, 1133, 1140, 1148, 1152, 1159, 1160, - 1164, 1169, 1172, 1178, 1183, 1191, 1196, 1201, 1206, 1214, - 1228, 1233, 1238, 1243, 1248, 1253, 1258, 1275, 1280, 1281, - 1285, 1286, 1289, 1296, 1303, 1310, 1317, 1322, 1329, 1336 + 343, 343, 343, 343, 343, 343, 344, 344, 344, 344, + 344, 344, 345, 345, 345, 345, 346, 346, 346, 346, + 346, 346, 346, 347, 347, 347, 347, 347, 347, 352, + 352, 352, 352, 353, 353, 353, 353, 354, 354, 355, + 355, 358, 361, 366, 366, 366, 366, 366, 366, 367, + 368, 371, 371, 371, 371, 371, 372, 373, 378, 383, + 384, 387, 388, 396, 402, 403, 406, 407, 416, 417, + 430, 430, 431, 431, 432, 436, 436, 436, 436, 436, + 436, 436, 437, 437, 437, 437, 437, 439, 443, 447, + 450, 455, 461, 469, 477, 483, 487, 498, 501, 509, + 510, 515, 518, 528, 534, 539, 545, 551, 557, 562, + 568, 574, 580, 586, 592, 598, 604, 610, 616, 624, + 638, 650, 655, 661, 666, 674, 679, 684, 692, 697, + 702, 712, 717, 722, 722, 732, 737, 740, 745, 749, + 753, 755, 755, 758, 770, 775, 780, 789, 798, 807, + 816, 821, 826, 831, 833, 833, 836, 841, 848, 853, + 860, 867, 872, 873, 881, 881, 882, 882, 884, 891, + 895, 899, 902, 907, 910, 912, 932, 933, 935, 944, + 945, 947, 955, 956, 957, 961, 974, 975, 978, 978, + 978, 978, 978, 978, 978, 979, 980, 985, 986, 995, + 995, 999, 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, + 1051, 1051, 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, + 1114, 1120, 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, + 1173, 1178, 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, + 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, + 1294, 1295, 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 }; #endif @@ -2392,26 +2393,26 @@ switch (yyn) { case 81: -#line 357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 358 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 361 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 373 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2420,27 +2421,27 @@ break; case 98: -#line 377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 378 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 382 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2450,7 +2451,7 @@ break; case 103: -#line 395 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 396 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2459,17 +2460,17 @@ break; case 104: -#line 401 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 405 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 407 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2480,7 +2481,7 @@ break; case 109: -#line 416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2489,7 +2490,7 @@ break; case 127: -#line 438 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2497,7 +2498,7 @@ break; case 128: -#line 442 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2505,14 +2506,14 @@ break; case 129: -#line 446 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 447 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 450 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2521,7 +2522,7 @@ break; case 131: -#line 454 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 455 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2531,7 +2532,7 @@ break; case 132: -#line 460 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2543,7 +2544,7 @@ break; case 133: -#line 468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 469 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2555,7 +2556,7 @@ break; case 134: -#line 476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2565,7 +2566,7 @@ break; case 135: -#line 482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2573,7 +2574,7 @@ break; case 136: -#line 486 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 487 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2583,14 +2584,14 @@ break; case 137: -#line 497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 500 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2599,7 +2600,7 @@ break; case 140: -#line 509 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 510 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2608,21 +2609,21 @@ break; case 141: -#line 514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 517 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 527 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 528 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2632,7 +2633,7 @@ break; case 144: -#line 533 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 534 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2641,7 +2642,7 @@ break; case 145: -#line 538 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2651,7 +2652,7 @@ break; case 146: -#line 544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 545 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2661,7 +2662,7 @@ break; case 147: -#line 550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 551 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2671,7 +2672,7 @@ break; case 148: -#line 556 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 557 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2680,7 +2681,7 @@ break; case 149: -#line 561 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2690,7 +2691,7 @@ break; case 150: -#line 567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2700,7 +2701,7 @@ break; case 151: -#line 573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2710,7 +2711,7 @@ break; case 152: -#line 579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2720,7 +2721,7 @@ break; case 153: -#line 585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2730,7 +2731,7 @@ break; case 154: -#line 591 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 592 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2740,7 +2741,7 @@ break; case 155: -#line 597 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 598 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2750,7 +2751,7 @@ break; case 156: -#line 603 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 604 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2760,7 +2761,7 @@ break; case 157: -#line 609 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2770,7 +2771,7 @@ break; case 158: -#line 615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2780,7 +2781,7 @@ break; case 159: -#line 623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2798,7 +2799,7 @@ break; case 160: -#line 637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2814,7 +2815,7 @@ break; case 161: -#line 649 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2823,7 +2824,7 @@ break; case 162: -#line 654 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2833,7 +2834,7 @@ break; case 163: -#line 660 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 661 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2842,7 +2843,7 @@ break; case 164: -#line 665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2854,7 +2855,7 @@ break; case 165: -#line 673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2863,7 +2864,7 @@ break; case 166: -#line 678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2872,7 +2873,7 @@ break; case 167: -#line 683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2884,7 +2885,7 @@ break; case 168: -#line 691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2893,7 +2894,7 @@ break; case 169: -#line 696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2902,7 +2903,7 @@ break; case 170: -#line 701 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2911,7 +2912,7 @@ break; case 171: -#line 711 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2920,25 +2921,25 @@ break; case 172: -#line 716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 717 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 732 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 737 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2947,7 +2948,7 @@ break; case 178: -#line 744 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2955,7 +2956,7 @@ break; case 179: -#line 748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2963,17 +2964,17 @@ break; case 180: -#line 752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 753 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 758 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2989,7 +2990,7 @@ break; case 184: -#line 769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2998,7 +2999,7 @@ break; case 185: -#line 774 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3007,10 +3008,12 @@ break; case 186: -#line 779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Const).type.clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3018,10 +3021,12 @@ break; case 187: -#line 786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3029,10 +3034,12 @@ break; case 188: -#line 793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3040,10 +3047,12 @@ break; case 189: -#line 800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3051,7 +3060,7 @@ break; case 190: -#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 816 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3060,7 +3069,7 @@ break; case 191: -#line 812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 821 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3069,14 +3078,14 @@ break; case 192: -#line 817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3085,7 +3094,7 @@ break; case 197: -#line 832 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 841 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3096,7 +3105,7 @@ break; case 198: -#line 839 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3105,7 +3114,7 @@ break; case 199: -#line 844 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 853 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3123,7 @@ break; case 200: -#line 851 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3123,7 +3132,7 @@ break; case 201: -#line 858 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3132,19 +3141,19 @@ break; case 203: -#line 864 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 884 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3154,7 +3163,7 @@ break; case 209: -#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3162,21 +3171,21 @@ break; case 210: -#line 886 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 895 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 890 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 899 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 893 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 902 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3185,19 +3194,19 @@ break; case 213: -#line 898 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 901 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 910 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3219,17 +3228,17 @@ break; case 216: -#line 923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 932 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3241,17 +3250,17 @@ break; case 219: -#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 944 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 945 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 938 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 947 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3261,12 +3270,12 @@ break; case 222: -#line 946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3278,12 +3287,12 @@ break; case 226: -#line 965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3292,7 +3301,7 @@ break; case 238: -#line 977 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3304,7 +3313,7 @@ break; case 241: -#line 990 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 999 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3314,7 +3323,7 @@ break; case 242: -#line 996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3324,7 +3333,7 @@ break; case 243: -#line 1007 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3333,28 +3342,28 @@ break; case 244: -#line 1013 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1025 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1028 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1037 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3363,14 +3372,14 @@ break; case 248: -#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1045 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3379,12 +3388,12 @@ break; case 251: -#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1051 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1044 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3393,7 +3402,7 @@ break; case 253: -#line 1049 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3402,7 +3411,7 @@ break; case 254: -#line 1054 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1063 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3411,7 +3420,7 @@ break; case 255: -#line 1059 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3423,7 +3432,7 @@ break; case 256: -#line 1067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3434,7 +3443,7 @@ break; case 257: -#line 1074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3444,7 +3453,7 @@ break; case 258: -#line 1081 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3467,7 +3476,7 @@ break; case 259: -#line 1100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3476,7 +3485,7 @@ break; case 260: -#line 1105 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1114 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3494,7 @@ break; case 261: -#line 1111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1120 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3494,7 +3503,7 @@ break; case 262: -#line 1116 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3504,7 +3513,7 @@ break; case 263: -#line 1124 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3515,7 +3524,7 @@ break; case 264: -#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1142 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3526,7 +3535,7 @@ break; case 265: -#line 1140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1149 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3535,7 +3544,7 @@ break; case 266: -#line 1148 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3543,7 +3552,7 @@ break; case 267: -#line 1152 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1161 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3551,17 +3560,17 @@ break; case 268: -#line 1159 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1168 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1169 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3570,7 +3579,7 @@ break; case 272: -#line 1172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1181 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3580,7 +3589,7 @@ break; case 273: -#line 1178 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1187 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3589,7 +3598,7 @@ break; case 274: -#line 1183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1192 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3601,7 +3610,7 @@ break; case 275: -#line 1191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3610,7 +3619,7 @@ break; case 276: -#line 1196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3628,7 @@ break; case 277: -#line 1201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1210 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3628,7 +3637,7 @@ break; case 278: -#line 1206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3640,7 +3649,7 @@ break; case 279: -#line 1214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1223 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3658,7 +3667,7 @@ break; case 280: -#line 1228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1237 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3667,7 +3676,7 @@ break; case 281: -#line 1233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3676,7 +3685,7 @@ break; case 282: -#line 1238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1247 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3685,7 +3694,7 @@ break; case 283: -#line 1243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3703,7 @@ break; case 284: -#line 1248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3712,7 @@ break; case 285: -#line 1253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3712,7 +3721,7 @@ break; case 286: -#line 1258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3733,22 +3742,22 @@ break; case 288: -#line 1280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1286 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1295 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1298 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3759,7 +3768,7 @@ break; case 293: -#line 1296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3770,7 +3779,7 @@ break; case 294: -#line 1303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3781,7 +3790,7 @@ break; case 295: -#line 1310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1319 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3792,7 +3801,7 @@ break; case 296: -#line 1317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3801,7 +3810,7 @@ break; case 297: -#line 1322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1331 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3812,7 +3821,7 @@ break; case 298: -#line 1329 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3823,7 +3832,7 @@ break; case 299: -#line 1336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -3854,7 +3863,7 @@ } /* Line 1126 of yacc.c. */ -#line 3858 "UpgradeParser.tab.c" +#line 3867 "UpgradeParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -4122,7 +4131,7 @@ } -#line 1360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.18 llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.19 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.18 Mon Dec 4 09:41:36 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs Tue Dec 5 13:21:25 2006 @@ -397,6 +397,7 @@ static TypeVector EnumeratedTypes; typedef std::map TypeMap; static TypeMap NamedTypes; +static TypeMap Globals; void destroy(ValueList* VL) { while (!VL->empty()) { @@ -641,7 +642,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -650,7 +651,7 @@ ValueList* ValList; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 654 "UpgradeParser.tab.c" +#line 655 "UpgradeParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -662,7 +663,7 @@ /* Line 219 of yacc.c. */ -#line 666 "UpgradeParser.tab.c" +#line 667 "UpgradeParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1016,36 +1017,36 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 332, 332, 332, 333, 333, 337, 337, 337, 337, - 337, 337, 337, 338, 338, 338, 338, 339, 339, 339, - 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, + 0, 333, 333, 333, 334, 334, 338, 338, 338, 338, + 338, 338, 338, 339, 339, 339, 339, 340, 340, 340, 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 343, 343, 343, 343, - 343, 343, 344, 344, 344, 344, 345, 345, 345, 345, - 345, 345, 345, 346, 346, 346, 346, 346, 346, 351, - 351, 351, 351, 352, 352, 352, 352, 353, 353, 354, - 354, 357, 360, 365, 365, 365, 365, 365, 365, 366, - 367, 370, 370, 370, 370, 370, 371, 372, 377, 382, - 383, 386, 387, 395, 401, 402, 405, 406, 415, 416, - 429, 429, 430, 430, 431, 435, 435, 435, 435, 435, - 435, 435, 436, 436, 436, 436, 436, 438, 442, 446, - 449, 454, 460, 468, 476, 482, 486, 497, 500, 508, - 509, 514, 517, 527, 533, 538, 544, 550, 556, 561, - 567, 573, 579, 585, 591, 597, 603, 609, 615, 623, - 637, 649, 654, 660, 665, 673, 678, 683, 691, 696, - 701, 711, 716, 721, 721, 731, 736, 739, 744, 748, - 752, 754, 754, 757, 769, 774, 779, 786, 793, 800, - 807, 812, 817, 822, 824, 824, 827, 832, 839, 844, - 851, 858, 863, 864, 872, 872, 873, 873, 875, 882, - 886, 890, 893, 898, 901, 903, 923, 924, 926, 935, - 936, 938, 946, 947, 948, 952, 965, 966, 969, 969, - 969, 969, 969, 969, 969, 970, 971, 976, 977, 986, - 986, 990, 996, 1007, 1013, 1016, 1024, 1028, 1033, 1036, - 1042, 1042, 1044, 1049, 1054, 1059, 1067, 1074, 1080, 1100, - 1105, 1111, 1116, 1124, 1133, 1140, 1148, 1152, 1159, 1160, - 1164, 1169, 1172, 1178, 1183, 1191, 1196, 1201, 1206, 1214, - 1228, 1233, 1238, 1243, 1248, 1253, 1258, 1275, 1280, 1281, - 1285, 1286, 1289, 1296, 1303, 1310, 1317, 1322, 1329, 1336 + 343, 343, 343, 343, 343, 343, 344, 344, 344, 344, + 344, 344, 345, 345, 345, 345, 346, 346, 346, 346, + 346, 346, 346, 347, 347, 347, 347, 347, 347, 352, + 352, 352, 352, 353, 353, 353, 353, 354, 354, 355, + 355, 358, 361, 366, 366, 366, 366, 366, 366, 367, + 368, 371, 371, 371, 371, 371, 372, 373, 378, 383, + 384, 387, 388, 396, 402, 403, 406, 407, 416, 417, + 430, 430, 431, 431, 432, 436, 436, 436, 436, 436, + 436, 436, 437, 437, 437, 437, 437, 439, 443, 447, + 450, 455, 461, 469, 477, 483, 487, 498, 501, 509, + 510, 515, 518, 528, 534, 539, 545, 551, 557, 562, + 568, 574, 580, 586, 592, 598, 604, 610, 616, 624, + 638, 650, 655, 661, 666, 674, 679, 684, 692, 697, + 702, 712, 717, 722, 722, 732, 737, 740, 745, 749, + 753, 755, 755, 758, 770, 775, 780, 789, 798, 807, + 816, 821, 826, 831, 833, 833, 836, 841, 848, 853, + 860, 867, 872, 873, 881, 881, 882, 882, 884, 891, + 895, 899, 902, 907, 910, 912, 932, 933, 935, 944, + 945, 947, 955, 956, 957, 961, 974, 975, 978, 978, + 978, 978, 978, 978, 978, 979, 980, 985, 986, 995, + 995, 999, 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, + 1051, 1051, 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, + 1114, 1120, 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, + 1173, 1178, 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, + 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, + 1294, 1295, 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 }; #endif @@ -2392,26 +2393,26 @@ switch (yyn) { case 81: -#line 357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 358 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 361 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 373 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2420,27 +2421,27 @@ break; case 98: -#line 377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 378 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 382 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2450,7 +2451,7 @@ break; case 103: -#line 395 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 396 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2459,17 +2460,17 @@ break; case 104: -#line 401 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 405 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 407 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2480,7 +2481,7 @@ break; case 109: -#line 416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2489,7 +2490,7 @@ break; case 127: -#line 438 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2497,7 +2498,7 @@ break; case 128: -#line 442 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2505,14 +2506,14 @@ break; case 129: -#line 446 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 447 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 450 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2521,7 +2522,7 @@ break; case 131: -#line 454 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 455 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2531,7 +2532,7 @@ break; case 132: -#line 460 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2543,7 +2544,7 @@ break; case 133: -#line 468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 469 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2555,7 +2556,7 @@ break; case 134: -#line 476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2565,7 +2566,7 @@ break; case 135: -#line 482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2573,7 +2574,7 @@ break; case 136: -#line 486 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 487 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2583,14 +2584,14 @@ break; case 137: -#line 497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 500 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2599,7 +2600,7 @@ break; case 140: -#line 509 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 510 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2608,21 +2609,21 @@ break; case 141: -#line 514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 517 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 527 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 528 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2632,7 +2633,7 @@ break; case 144: -#line 533 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 534 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2641,7 +2642,7 @@ break; case 145: -#line 538 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2651,7 +2652,7 @@ break; case 146: -#line 544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 545 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2661,7 +2662,7 @@ break; case 147: -#line 550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 551 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2671,7 +2672,7 @@ break; case 148: -#line 556 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 557 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2680,7 +2681,7 @@ break; case 149: -#line 561 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2690,7 +2691,7 @@ break; case 150: -#line 567 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2700,7 +2701,7 @@ break; case 151: -#line 573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2710,7 +2711,7 @@ break; case 152: -#line 579 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2720,7 +2721,7 @@ break; case 153: -#line 585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2730,7 +2731,7 @@ break; case 154: -#line 591 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 592 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2740,7 +2741,7 @@ break; case 155: -#line 597 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 598 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2750,7 +2751,7 @@ break; case 156: -#line 603 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 604 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2760,7 +2761,7 @@ break; case 157: -#line 609 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2770,7 +2771,7 @@ break; case 158: -#line 615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2780,7 +2781,7 @@ break; case 159: -#line 623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2798,7 +2799,7 @@ break; case 160: -#line 637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2814,7 +2815,7 @@ break; case 161: -#line 649 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2823,7 +2824,7 @@ break; case 162: -#line 654 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2833,7 +2834,7 @@ break; case 163: -#line 660 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 661 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2842,7 +2843,7 @@ break; case 164: -#line 665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2854,7 +2855,7 @@ break; case 165: -#line 673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2863,7 +2864,7 @@ break; case 166: -#line 678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2872,7 +2873,7 @@ break; case 167: -#line 683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2884,7 +2885,7 @@ break; case 168: -#line 691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2893,7 +2894,7 @@ break; case 169: -#line 696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2902,7 +2903,7 @@ break; case 170: -#line 701 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2911,7 +2912,7 @@ break; case 171: -#line 711 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2920,25 +2921,25 @@ break; case 172: -#line 716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 717 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 732 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 737 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2947,7 +2948,7 @@ break; case 178: -#line 744 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2955,7 +2956,7 @@ break; case 179: -#line 748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2963,17 +2964,17 @@ break; case 180: -#line 752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 753 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 758 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2989,7 +2990,7 @@ break; case 184: -#line 769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2998,7 +2999,7 @@ break; case 185: -#line 774 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3007,10 +3008,12 @@ break; case 186: -#line 779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Const).type.clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3018,10 +3021,12 @@ break; case 187: -#line 786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3029,10 +3034,12 @@ break; case 188: -#line 793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3040,10 +3047,12 @@ break; case 189: -#line 800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { - if (!(yyvsp[-4].String)->empty()) + if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); (yyval.String) = 0; @@ -3051,7 +3060,7 @@ break; case 190: -#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 816 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3060,7 +3069,7 @@ break; case 191: -#line 812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 821 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3069,14 +3078,14 @@ break; case 192: -#line 817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3085,7 +3094,7 @@ break; case 197: -#line 832 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 841 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3096,7 +3105,7 @@ break; case 198: -#line 839 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3105,7 +3114,7 @@ break; case 199: -#line 844 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 853 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3123,7 @@ break; case 200: -#line 851 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3123,7 +3132,7 @@ break; case 201: -#line 858 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3132,19 +3141,19 @@ break; case 203: -#line 864 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 884 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3154,7 +3163,7 @@ break; case 209: -#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3162,21 +3171,21 @@ break; case 210: -#line 886 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 895 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 890 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 899 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 893 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 902 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3185,19 +3194,19 @@ break; case 213: -#line 898 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 901 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 910 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3219,17 +3228,17 @@ break; case 216: -#line 923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 932 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3241,17 +3250,17 @@ break; case 219: -#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 944 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 945 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 938 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 947 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3261,12 +3270,12 @@ break; case 222: -#line 946 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3278,12 +3287,12 @@ break; case 226: -#line 965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3292,7 +3301,7 @@ break; case 238: -#line 977 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3304,7 +3313,7 @@ break; case 241: -#line 990 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 999 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3314,7 +3323,7 @@ break; case 242: -#line 996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3324,7 +3333,7 @@ break; case 243: -#line 1007 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3333,28 +3342,28 @@ break; case 244: -#line 1013 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1025 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1028 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1037 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3363,14 +3372,14 @@ break; case 248: -#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1045 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3379,12 +3388,12 @@ break; case 251: -#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1051 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1044 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3393,7 +3402,7 @@ break; case 253: -#line 1049 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3402,7 +3411,7 @@ break; case 254: -#line 1054 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1063 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3411,7 +3420,7 @@ break; case 255: -#line 1059 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3423,7 +3432,7 @@ break; case 256: -#line 1067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3434,7 +3443,7 @@ break; case 257: -#line 1074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3444,7 +3453,7 @@ break; case 258: -#line 1081 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3467,7 +3476,7 @@ break; case 259: -#line 1100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3476,7 +3485,7 @@ break; case 260: -#line 1105 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1114 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3494,7 @@ break; case 261: -#line 1111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1120 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3494,7 +3503,7 @@ break; case 262: -#line 1116 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3504,7 +3513,7 @@ break; case 263: -#line 1124 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3515,7 +3524,7 @@ break; case 264: -#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1142 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3526,7 +3535,7 @@ break; case 265: -#line 1140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1149 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3535,7 +3544,7 @@ break; case 266: -#line 1148 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3543,7 +3552,7 @@ break; case 267: -#line 1152 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1161 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3551,17 +3560,17 @@ break; case 268: -#line 1159 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1168 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1169 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3570,7 +3579,7 @@ break; case 272: -#line 1172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1181 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3580,7 +3589,7 @@ break; case 273: -#line 1178 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1187 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3589,7 +3598,7 @@ break; case 274: -#line 1183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1192 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3601,7 +3610,7 @@ break; case 275: -#line 1191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3610,7 +3619,7 @@ break; case 276: -#line 1196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3628,7 @@ break; case 277: -#line 1201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1210 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3628,7 +3637,7 @@ break; case 278: -#line 1206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3640,7 +3649,7 @@ break; case 279: -#line 1214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1223 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3658,7 +3667,7 @@ break; case 280: -#line 1228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1237 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3667,7 +3676,7 @@ break; case 281: -#line 1233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3676,7 +3685,7 @@ break; case 282: -#line 1238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1247 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3685,7 +3694,7 @@ break; case 283: -#line 1243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3703,7 @@ break; case 284: -#line 1248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3712,7 @@ break; case 285: -#line 1253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3712,7 +3721,7 @@ break; case 286: -#line 1258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3733,22 +3742,22 @@ break; case 288: -#line 1280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1286 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1295 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1298 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3759,7 +3768,7 @@ break; case 293: -#line 1296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3770,7 +3779,7 @@ break; case 294: -#line 1303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3781,7 +3790,7 @@ break; case 295: -#line 1310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1319 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3792,7 +3801,7 @@ break; case 296: -#line 1317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3801,7 +3810,7 @@ break; case 297: -#line 1322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1331 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3812,7 +3821,7 @@ break; case 298: -#line 1329 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3823,7 +3832,7 @@ break; case 299: -#line 1336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -3854,7 +3863,7 @@ } /* Line 1126 of yacc.c. */ -#line 3858 "UpgradeParser.tab.c" +#line 3867 "UpgradeParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -4122,7 +4131,7 @@ } -#line 1360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.h diff -u llvm/tools/llvm-upgrade/UpgradeParser.h:1.13 llvm/tools/llvm-upgrade/UpgradeParser.h:1.14 --- llvm/tools/llvm-upgrade/UpgradeParser.h:1.13 Mon Dec 4 09:41:36 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h Tue Dec 5 13:21:25 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; Index: llvm/tools/llvm-upgrade/UpgradeParser.h.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.13 llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.14 --- llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.13 Mon Dec 4 09:41:36 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h.cvs Tue Dec 5 13:21:25 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; Index: llvm/tools/llvm-upgrade/UpgradeParser.y.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.17 llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.18 --- llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.17 Sun Dec 3 01:10:26 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y.cvs Tue Dec 5 13:21:25 2006 @@ -39,6 +39,7 @@ static TypeVector EnumeratedTypes; typedef std::map TypeMap; static TypeMap NamedTypes; +static TypeMap Globals; void destroy(ValueList* VL) { while (!VL->empty()) { @@ -777,29 +778,37 @@ $$ = 0; } | ConstPool OptAssign OptLinkage GlobalType ConstVal GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.type.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.cnst << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign External GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign DLLIMPORT GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign EXTERN_WEAK GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; From sabre at nondot.org Tue Dec 5 13:43:57 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 13:43:57 -0600 Subject: [llvm-commits] CVS: llvm/tools/opt/AnalysisWrappers.cpp Message-ID: <200612051943.kB5JhvhN014351@zion.cs.uiuc.edu> Changes in directory llvm/tools/opt: AnalysisWrappers.cpp updated: 1.19 -> 1.20 --- Log message: This needs the callgraph data structure to stick around as long as the printer does. --- Diffs of the changes: (+1 -1) AnalysisWrappers.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/opt/AnalysisWrappers.cpp diff -u llvm/tools/opt/AnalysisWrappers.cpp:1.19 llvm/tools/opt/AnalysisWrappers.cpp:1.20 --- llvm/tools/opt/AnalysisWrappers.cpp:1.19 Sun Aug 27 17:30:17 2006 +++ llvm/tools/opt/AnalysisWrappers.cpp Tue Dec 5 13:43:42 2006 @@ -67,7 +67,7 @@ struct CallGraphPrinter : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); - AU.addRequired(); + AU.addRequiredTransitive(); } virtual bool runOnModule(Module &M) { return false; } From sabre at nondot.org Tue Dec 5 13:46:26 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 13:46:26 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/CallGraph.cpp Message-ID: <200612051946.kB5JkQ3t014473@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: CallGraph.cpp updated: 1.60 -> 1.61 --- Log message: straighten out various memory ownership issues in the callgraph stuff. This fixes Regression/Other/2002-01-31-CallGraph.ll. --- Diffs of the changes: (+2 -3) CallGraph.cpp | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: llvm/lib/Analysis/IPA/CallGraph.cpp diff -u llvm/lib/Analysis/IPA/CallGraph.cpp:1.60 llvm/lib/Analysis/IPA/CallGraph.cpp:1.61 --- llvm/lib/Analysis/IPA/CallGraph.cpp:1.60 Mon Dec 4 15:22:45 2006 +++ llvm/lib/Analysis/IPA/CallGraph.cpp Tue Dec 5 13:46:12 2006 @@ -51,11 +51,9 @@ public: BasicCallGraph() : Root(0), ExternalCallingNode(0), CallsExternalNode(0) {} - ~BasicCallGraph() { destroy(); } // runOnModule - Compute the call graph for the specified module. virtual bool runOnModule(Module &M) { - destroy(); CallGraph::initialize(M); ExternalCallingNode = getOrInsertFunction(0); @@ -182,8 +180,10 @@ // // destroy - Release memory for the call graph virtual void destroy() { + /// CallsExternalNode is not in the function map, delete it explicitly. delete CallsExternalNode; CallsExternalNode = 0; + CallGraph::destroy(); } }; @@ -194,7 +194,6 @@ } //End anonymous namespace void CallGraph::initialize(Module &M) { - destroy(); Mod = &M; } From evan.cheng at apple.com Tue Dec 5 13:50:35 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Tue, 5 Dec 2006 13:50:35 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/README-X86-64.txt X86ATTAsmPrinter.cpp X86ATTAsmPrinter.h X86ISelDAGToDAG.cpp X86InstrInfo.td X86InstrX86-64.td X86TargetMachine.cpp Message-ID: <200612051950.kB5JoZjG014572@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: README-X86-64.txt updated: 1.2 -> 1.3 X86ATTAsmPrinter.cpp updated: 1.77 -> 1.78 X86ATTAsmPrinter.h updated: 1.17 -> 1.18 X86ISelDAGToDAG.cpp updated: 1.134 -> 1.135 X86InstrInfo.td updated: 1.296 -> 1.297 X86InstrX86-64.td updated: 1.10 -> 1.11 X86TargetMachine.cpp updated: 1.129 -> 1.130 --- Log message: - Switch X86-64 JIT to large code size model. - Re-enable some codegen niceties for X86-64 static relocation model codegen. - Clean ups, etc. --- Diffs of the changes: (+61 -82) README-X86-64.txt | 35 --------------------------------- X86ATTAsmPrinter.cpp | 17 ++++++++++------ X86ATTAsmPrinter.h | 2 - X86ISelDAGToDAG.cpp | 53 +++++++++++++++++++++++++-------------------------- X86InstrInfo.td | 19 +++++++++--------- X86InstrX86-64.td | 14 +++++++++---- X86TargetMachine.cpp | 3 ++ 7 files changed, 61 insertions(+), 82 deletions(-) Index: llvm/lib/Target/X86/README-X86-64.txt diff -u llvm/lib/Target/X86/README-X86-64.txt:1.2 llvm/lib/Target/X86/README-X86-64.txt:1.3 --- llvm/lib/Target/X86/README-X86-64.txt:1.2 Mon Dec 4 21:58:23 2006 +++ llvm/lib/Target/X86/README-X86-64.txt Tue Dec 5 13:50:18 2006 @@ -229,41 +229,6 @@ //===---------------------------------------------------------------------===// -For this: - -extern int dst[]; -extern int* ptr; - -void test(void) { - ptr = dst; -} - -We generate this code for static relocation model: - -_test: - leaq _dst(%rip), %rax - movq %rax, _ptr(%rip) - ret - -If we are in small code model, they we can treat _dst as a 32-bit constant. - movq $_dst, _ptr(%rip) - -Note, however, we should continue to use RIP relative addressing mode as much as -possible. The above is actually one byte shorter than - movq $_dst, _ptr - -A better example is the code from PR1018. We are generating: - leaq xcalloc2(%rip), %rax - movq %rax, 8(%rsp) -when we should be generating: - movq $xcalloc2, 8(%rsp) - -The reason the better codegen isn't done now is support for static small -code model in JIT mode. The JIT cannot ensure that all GV's are placed in the -lower 4G so we are not treating GV labels as 32-bit values. - -//===---------------------------------------------------------------------===// - Right now the asm printer assumes GlobalAddress are accessed via RIP relative addressing. Therefore, it is not possible to generate this: movabsq $__ZTV10polynomialIdE+16, %rax Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.77 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.78 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.77 Tue Dec 5 00:43:58 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cpp Tue Dec 5 13:50:18 2006 @@ -156,7 +156,7 @@ } void X86ATTAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo, - const char *Modifier) { + const char *Modifier, bool NotRIPRel) { const MachineOperand &MO = MI->getOperand(OpNo); const MRegisterInfo &RI = *TM.getRegisterInfo(); switch (MO.getType()) { @@ -192,7 +192,7 @@ if (X86PICStyle == PICStyle::Stub && TM.getRelocationModel() == Reloc::PIC_) O << "-\"L" << getFunctionNumber() << "$pb\""; - if (isMemOp && Subtarget->is64Bit()) + if (isMemOp && Subtarget->is64Bit() && !NotRIPRel) O << "(%rip)"; return; } @@ -210,7 +210,7 @@ else if (Offset < 0) O << Offset; - if (isMemOp && Subtarget->is64Bit()) + if (isMemOp && Subtarget->is64Bit() && !NotRIPRel) O << "(%rip)"; return; } @@ -267,8 +267,12 @@ if (isMemOp && Subtarget->is64Bit()) { if (isExt && TM.getRelocationModel() != Reloc::Static) - O << "@GOTPCREL"; - O << "(%rip)"; + O << "@GOTPCREL(%rip)"; + else if (!NotRIPRel) + // Use rip when possible to reduce code size, except when index or + // base register are also part of the address. e.g. + // foo(%rip)(%rcx,%rax,4) is not legal + O << "(%rip)"; } return; @@ -329,10 +333,11 @@ return; } + bool NotRIPRel = IndexReg.getReg() || BaseReg.getReg(); if (DispSpec.isGlobalAddress() || DispSpec.isConstantPoolIndex() || DispSpec.isJumpTableIndex()) { - printOperand(MI, Op+3, "mem"); + printOperand(MI, Op+3, "mem", NotRIPRel); } else { int DispVal = DispSpec.getImmedValue(); if (DispVal || (!IndexReg.getReg() && !BaseReg.getReg())) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.h diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.17 llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.18 --- llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.17 Wed Oct 4 21:43:52 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.h Tue Dec 5 13:50:18 2006 @@ -35,7 +35,7 @@ // These methods are used by the tablegen'erated instruction printer. void printOperand(const MachineInstr *MI, unsigned OpNo, - const char *Modifier = 0); + const char *Modifier = 0, bool NotRIPRel = false); void printi8mem(const MachineInstr *MI, unsigned OpNo) { printMemReference(MI, OpNo); } Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.134 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.135 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.134 Mon Dec 4 22:01:03 2006 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Dec 5 13:50:18 2006 @@ -595,44 +595,43 @@ // Under X86-64 non-small code model, GV (and friends) are 64-bits. if (is64Bit && TM.getCodeModel() != CodeModel::Small) break; - + if (AM.GV != 0 || AM.CP != 0 || AM.ES != 0 || AM.JT != -1) + break; // If value is available in a register both base and index components have // been picked, we can't fit the result available in the register in the // addressing mode. Duplicate GlobalAddress or ConstantPool as displacement. if (!Available || (AM.Base.Reg.Val && AM.IndexReg.Val)) { - // For X86-64 PIC code, only allow GV / CP + displacement so we can use - // RIP relative addressing mode. - if (is64Bit && - (AM.Base.Reg.Val || AM.Scale > 1 || AM.IndexReg.Val || - AM.BaseType == X86ISelAddressMode::FrameIndexBase)) - break; - if (ConstantPoolSDNode *CP = - dyn_cast(N.getOperand(0))) { - if (AM.CP == 0) { + bool isStatic = TM.getRelocationModel() == Reloc::Static; + SDOperand N0 = N.getOperand(0); + if (GlobalAddressSDNode *G = dyn_cast(N0)) { + GlobalValue *GV = G->getGlobal(); + bool isAbs32 = !is64Bit || + (isStatic && !(GV->isExternal() || GV->hasWeakLinkage() || + GV->hasLinkOnceLinkage())); + if (isAbs32 || isRoot) { + AM.GV = G->getGlobal(); + AM.Disp += G->getOffset(); + AM.isRIPRel = !isAbs32; + return false; + } + } else if (ConstantPoolSDNode *CP = dyn_cast(N0)) { + if (!is64Bit || isStatic || isRoot) { AM.CP = CP->getConstVal(); AM.Align = CP->getAlignment(); AM.Disp += CP->getOffset(); - AM.isRIPRel = is64Bit; - return false; - } - } else if (GlobalAddressSDNode *G = - dyn_cast(N.getOperand(0))) { - if (AM.GV == 0) { - AM.GV = G->getGlobal(); - AM.Disp += G->getOffset(); - AM.isRIPRel = is64Bit; + AM.isRIPRel = !isStatic; return false; } - } else if (isRoot && is64Bit) { - if (ExternalSymbolSDNode *S = - dyn_cast(N.getOperand(0))) { + } else if (ExternalSymbolSDNode *S =dyn_cast(N0)) { + if (isStatic || isRoot) { AM.ES = S->getSymbol(); - AM.isRIPRel = true; + AM.isRIPRel = !isStatic; return false; - } else if (JumpTableSDNode *J = - dyn_cast(N.getOperand(0))) { + } + } else if (JumpTableSDNode *J = dyn_cast(N0)) { + if (isStatic || isRoot) { AM.JT = J->getIndex(); - AM.isRIPRel = true; + AM.isRIPRel = !isStatic; return false; } } @@ -908,7 +907,7 @@ if (AM.GV || AM.CP || AM.ES || AM.JT != -1) { // For X86-64, we should always use lea to materialize RIP relative // addresses. - if (Subtarget->is64Bit()) + if (Subtarget->is64Bit() && TM.getRelocationModel() != Reloc::Static) Complexity = 4; else Complexity += 2; Index: llvm/lib/Target/X86/X86InstrInfo.td diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.296 llvm/lib/Target/X86/X86InstrInfo.td:1.297 --- llvm/lib/Target/X86/X86InstrInfo.td:1.296 Thu Nov 30 15:55:46 2006 +++ llvm/lib/Target/X86/X86InstrInfo.td Tue Dec 5 13:50:18 2006 @@ -163,15 +163,16 @@ //===----------------------------------------------------------------------===// // X86 Instruction Predicate Definitions. -def HasMMX : Predicate<"Subtarget->hasMMX()">; -def HasSSE1 : Predicate<"Subtarget->hasSSE1()">; -def HasSSE2 : Predicate<"Subtarget->hasSSE2()">; -def HasSSE3 : Predicate<"Subtarget->hasSSE3()">; -def FPStack : Predicate<"!Subtarget->hasSSE2()">; -def In32BitMode : Predicate<"!Subtarget->is64Bit()">; -def In64BitMode : Predicate<"Subtarget->is64Bit()">; -def SmallCode : Predicate<"TM.getCodeModel() == CodeModel::Small">; -def NotSmallCode :Predicate<"TM.getCodeModel() != CodeModel::Small">; +def HasMMX : Predicate<"Subtarget->hasMMX()">; +def HasSSE1 : Predicate<"Subtarget->hasSSE1()">; +def HasSSE2 : Predicate<"Subtarget->hasSSE2()">; +def HasSSE3 : Predicate<"Subtarget->hasSSE3()">; +def FPStack : Predicate<"!Subtarget->hasSSE2()">; +def In32BitMode : Predicate<"!Subtarget->is64Bit()">; +def In64BitMode : Predicate<"Subtarget->is64Bit()">; +def SmallCode : Predicate<"TM.getCodeModel() == CodeModel::Small">; +def NotSmallCode : Predicate<"TM.getCodeModel() != CodeModel::Small">; +def IsStatic : Predicate<"TM.getRelocationModel() == Reloc::Static">; //===----------------------------------------------------------------------===// // X86 specific pattern fragments. Index: llvm/lib/Target/X86/X86InstrX86-64.td diff -u llvm/lib/Target/X86/X86InstrX86-64.td:1.10 llvm/lib/Target/X86/X86InstrX86-64.td:1.11 --- llvm/lib/Target/X86/X86InstrX86-64.td:1.10 Mon Dec 4 22:01:03 2006 +++ llvm/lib/Target/X86/X86InstrX86-64.td Tue Dec 5 13:50:18 2006 @@ -1031,12 +1031,18 @@ def : Pat<(i64 (X86Wrapper texternalsym:$dst)), (MOV64ri texternalsym:$dst)>, Requires<[NotSmallCode]>; -/* +def : Pat<(store (i64 (X86Wrapper tconstpool:$src)), addr:$dst), + (MOV64mi32 addr:$dst, tconstpool:$src)>, + Requires<[SmallCode, IsStatic]>; +def : Pat<(store (i64 (X86Wrapper tjumptable:$src)), addr:$dst), + (MOV64mi32 addr:$dst, tjumptable:$src)>, + Requires<[SmallCode, IsStatic]>; def : Pat<(store (i64 (X86Wrapper tglobaladdr:$src)), addr:$dst), - (MOV64mi32 addr:$dst, tglobaladdr:$src)>, Requires<[SmallCode]>; + (MOV64mi32 addr:$dst, tglobaladdr:$src)>, + Requires<[SmallCode, IsStatic]>; def : Pat<(store (i64 (X86Wrapper texternalsym:$src)), addr:$dst), - (MOV64mi32 addr:$dst, texternalsym:$src)>, Requires<[SmallCode]>; -*/ + (MOV64mi32 addr:$dst, texternalsym:$src)>, + Requires<[SmallCode, IsStatic]>; // Calls // Direct PC relative function call for small code model. 32-bit displacement Index: llvm/lib/Target/X86/X86TargetMachine.cpp diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.129 llvm/lib/Target/X86/X86TargetMachine.cpp:1.130 --- llvm/lib/Target/X86/X86TargetMachine.cpp:1.129 Mon Dec 4 12:07:10 2006 +++ llvm/lib/Target/X86/X86TargetMachine.cpp Tue Dec 5 13:50:18 2006 @@ -158,6 +158,9 @@ MachineCodeEmitter &MCE) { // FIXME: Move this to TargetJITInfo! setRelocationModel(Reloc::Static); + // JIT cannot ensure globals are placed in the lower 4G of address. + if (Subtarget.is64Bit()) + setCodeModel(CodeModel::Large); PM.add(createX86CodeEmitterPass(*this, MCE)); return false; From clattner at apple.com Tue Dec 5 13:52:02 2006 From: clattner at apple.com (Chris Lattner) Date: Tue, 5 Dec 2006 11:52:02 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> References: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> Message-ID: > SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type > *Ty) { > if (SCEVConstant *SC = dyn_cast(Op)) > - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > Ty)); > + return SCEVUnknown::get( > + ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); Shouldn't this one always bit a truncate? > SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const > Type *Ty) { > if (SCEVConstant *SC = dyn_cast(Op)) > - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > Ty)); > + return SCEVUnknown::get( > + ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); Likewise, always a zext? > @@ -998,11 +1000,10 @@ > Constant *LHSCV = LHSC->getValue(); > Constant *RHSCV = RHSC->getValue(); > if (LHSCV->getType()->isUnsigned()) > - LHSCV = ConstantExpr::getInferredCast( > - LHSCV, false, LHSCV->getType()->getSignedVersion(), > true); > + LHSCV = ConstantExpr::getBitCast(LHSCV, > + LHSCV->getType()- > >getSignedVersion()); > if (RHSCV->getType()->isUnsigned()) > - RHSCV = ConstantExpr::getInferredCast( > - RHSCV, false, LHSCV->getType(), true); > + RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); > return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); > } > } As I mentioned before, these casts can all go away. sdiv is signless now. -Chris From clattner at apple.com Tue Dec 5 13:54:16 2006 From: clattner at apple.com (Chris Lattner) Date: Tue, 5 Dec 2006 11:54:16 -0800 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y In-Reply-To: <200612051915.kB5JFuAX013835@zion.cs.uiuc.edu> References: <200612051915.kB5JFuAX013835@zion.cs.uiuc.edu> Message-ID: On Dec 5, 2006, at 11:15 AM, Reid Spencer wrote: > > > Changes in directory llvm/lib/AsmParser: > > llvmAsmParser.y updated: 1.284 -> 1.285 > --- > Log message: > > Remove various old upgrade hacks that are no longer needed. > Nice. You should also be able to nuke VAARG_old/VANEXT_old, as well as CurBB, ObsoleteVarArgs etc. -Chris From reid at x10sys.com Tue Dec 5 13:58:10 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 05 Dec 2006 11:58:10 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: References: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> Message-ID: <1165348690.26545.122.camel@bashful.x10sys.com> On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote: > > SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type > > *Ty) { > > if (SCEVConstant *SC = dyn_cast(Op)) > > - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > > Ty)); > > + return SCEVUnknown::get( > > + ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); > > Shouldn't this one always bit a truncate? No, they could be the same size. > > > SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const > > Type *Ty) { > > if (SCEVConstant *SC = dyn_cast(Op)) > > - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > > Ty)); > > + return SCEVUnknown::get( > > + ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); > > Likewise, always a zext? No, they could be the same size. > > > @@ -998,11 +1000,10 @@ > > Constant *LHSCV = LHSC->getValue(); > > Constant *RHSCV = RHSC->getValue(); > > if (LHSCV->getType()->isUnsigned()) > > - LHSCV = ConstantExpr::getInferredCast( > > - LHSCV, false, LHSCV->getType()->getSignedVersion(), > > true); > > + LHSCV = ConstantExpr::getBitCast(LHSCV, > > + LHSCV->getType()- > > >getSignedVersion()); > > if (RHSCV->getType()->isUnsigned()) > > - RHSCV = ConstantExpr::getInferredCast( > > - RHSCV, false, LHSCV->getType(), true); > > + RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); > > return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); > > } > > } > > As I mentioned before, these casts can all go away. sdiv is signless > now. One thing at a time. This patch is getting rid of getInferredCast and no more. > > -Chris > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/4e29c758/attachment.bin From clattner at apple.com Tue Dec 5 14:07:14 2006 From: clattner at apple.com (Chris Lattner) Date: Tue, 5 Dec 2006 12:07:14 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: <1165348690.26545.122.camel@bashful.x10sys.com> References: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> <1165348690.26545.122.camel@bashful.x10sys.com> Message-ID: On Dec 5, 2006, at 11:58 AM, Reid Spencer wrote: > On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote: >>> SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type >>> *Ty) { >>> if (SCEVConstant *SC = dyn_cast(Op)) >>> - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), >>> Ty)); >>> + return SCEVUnknown::get( >>> + ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); >> >> Shouldn't this one always bit a truncate? > > No, they could be the same size. How? The two call sites are: if (SrcTy->getPrimitiveSize() > Ty->getPrimitiveSize()) return SCEVTruncateExpr::get(V, Ty); and: case Instruction::Trunc: if (I->getType()->isInteger() && I->getOperand(0)->getType()- >isInteger()) return SCEVTruncateExpr::get(getSCEV(I->getOperand(0)), I->getType()->getUnsignedVersion ()); The first can't be the same size, obviously. The second can't be the same size because it's coming from a trunc instruction. Further, the 'I->getOperand(0)->getType()->isInteger()' in the second code is also redundant with 'truncness'. >> >>> SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const >>> Type *Ty) { >>> if (SCEVConstant *SC = dyn_cast(Op)) >>> - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), >>> Ty)); >>> + return SCEVUnknown::get( >>> + ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); >> >> Likewise, always a zext? > > No, they could be the same size. This is called in two places very similar to trunc. If you believe that these can be called with srcsize=destsize, please explain how. >> >>> @@ -998,11 +1000,10 @@ >>> Constant *LHSCV = LHSC->getValue(); >>> Constant *RHSCV = RHSC->getValue(); >>> if (LHSCV->getType()->isUnsigned()) >>> - LHSCV = ConstantExpr::getInferredCast( >>> - LHSCV, false, LHSCV->getType()->getSignedVersion(), >>> true); >>> + LHSCV = ConstantExpr::getBitCast(LHSCV, >>> + LHSCV->getType()- >>>> getSignedVersion()); >>> if (RHSCV->getType()->isUnsigned()) >>> - RHSCV = ConstantExpr::getInferredCast( >>> - RHSCV, false, LHSCV->getType(), true); >>> + RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); >>> return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); >>> } >>> } >> >> As I mentioned before, these casts can all go away. sdiv is signless >> now. > > One thing at a time. This patch is getting rid of getInferredCast and > no more. Fair enough, please make sure it happens at some point though. -Chris From reid at x10sys.com Tue Dec 5 15:43:04 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 05 Dec 2006 13:43:04 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: References: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> <1165348690.26545.122.camel@bashful.x10sys.com> Message-ID: <1165354984.26545.138.camel@bashful.x10sys.com> On Tue, 2006-12-05 at 12:07 -0800, Chris Lattner wrote: > On Dec 5, 2006, at 11:58 AM, Reid Spencer wrote: > > On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote: > >>> SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type > >>> *Ty) { > >>> if (SCEVConstant *SC = dyn_cast(Op)) > >>> - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > >>> Ty)); > >>> + return SCEVUnknown::get( > >>> + ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); > >> > >> Shouldn't this one always bit a truncate? > > > > No, they could be the same size. > > How? The two call sites are: > > if (SrcTy->getPrimitiveSize() > Ty->getPrimitiveSize()) > return SCEVTruncateExpr::get(V, Ty); > > and: > > case Instruction::Trunc: > if (I->getType()->isInteger() && I->getOperand(0)->getType()- > >isInteger()) > return SCEVTruncateExpr::get(getSCEV(I->getOperand(0)), > I->getType()->getUnsignedVersion > ()); > > The first can't be the same size, obviously. The second can't be the > same size because it's coming from a trunc instruction. Further, the > 'I->getOperand(0)->getType()->isInteger()' in the second code is also > redundant with 'truncness'. Okay, this one appears to be correct as just Trunc. The issue I had was not related to these but to another recommendation you made. See below. > > >> > >>> SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const > >>> Type *Ty) { > >>> if (SCEVConstant *SC = dyn_cast(Op)) > >>> - return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(), > >>> Ty)); > >>> + return SCEVUnknown::get( > >>> + ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); > >> > >> Likewise, always a zext? > > > > No, they could be the same size. > > This is called in two places very similar to trunc. Same deal. > > If you believe that these can be called with srcsize=destsize, please > explain how. After debugging it, the problem that arose is that the constructor for SCEVTruncExpr or SCEVZeroExtendExpr would fail because the operand to be casted was SCEVUnknown. This situation resulted from removing the integer checks in createSCEV for Trunc and ZExt which can validly cast BoolTy (e.g. setne). However, for setne and friends, createSCEV creates an SCEVUnknown which would then be passed down to the SCEV*Expr constructor and assert out. Long and short of it, I put the checks for integer back in and changed the casts to use getTrunc or getZExt. Seems to work. > > >> > >>> @@ -998,11 +1000,10 @@ > >>> Constant *LHSCV = LHSC->getValue(); > >>> Constant *RHSCV = RHSC->getValue(); > >>> if (LHSCV->getType()->isUnsigned()) > >>> - LHSCV = ConstantExpr::getInferredCast( > >>> - LHSCV, false, LHSCV->getType()->getSignedVersion(), > >>> true); > >>> + LHSCV = ConstantExpr::getBitCast(LHSCV, > >>> + LHSCV->getType()- > >>>> getSignedVersion()); > >>> if (RHSCV->getType()->isUnsigned()) > >>> - RHSCV = ConstantExpr::getInferredCast( > >>> - RHSCV, false, LHSCV->getType(), true); > >>> + RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); > >>> return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); > >>> } > >>> } > >> > >> As I mentioned before, these casts can all go away. sdiv is signless > >> now. > > > > One thing at a time. This patch is getting rid of getInferredCast and > > no more. > > Fair enough, please make sure it happens at some point though. Okay, these are done now. Once stuff passes tests, I'll commit it. Reid. > > -Chris > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061205/1a070edf/attachment.bin From evan.cheng at apple.com Tue Dec 5 16:03:55 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Tue, 5 Dec 2006 16:03:55 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Message-ID: <200612052203.kB5M3tEq016937@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelDAGToDAG.cpp updated: 1.135 -> 1.136 --- Log message: Revert an unintended change. --- Diffs of the changes: (+1 -1) X86ISelDAGToDAG.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.135 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.136 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.135 Tue Dec 5 13:50:18 2006 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Dec 5 16:03:40 2006 @@ -907,7 +907,7 @@ if (AM.GV || AM.CP || AM.ES || AM.JT != -1) { // For X86-64, we should always use lea to materialize RIP relative // addresses. - if (Subtarget->is64Bit() && TM.getRelocationModel() != Reloc::Static) + if (Subtarget->is64Bit()) Complexity = 4; else Complexity += 2; From clattner at apple.com Tue Dec 5 16:23:30 2006 From: clattner at apple.com (Chris Lattner) Date: Tue, 5 Dec 2006 14:23:30 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: <1165354984.26545.138.camel@bashful.x10sys.com> References: <200612051914.kB5JEVOE013791@zion.cs.uiuc.edu> <1165348690.26545.122.camel@bashful.x10sys.com> <1165354984.26545.138.camel@bashful.x10sys.com> Message-ID: <0C2E342E-45BC-442A-8661-EC184500AE43@apple.com> > Long and short of it, I put the checks for integer back in and changed > the casts to use getTrunc or getZExt. Seems to work. Ok >> Fair enough, please make sure it happens at some point though. > > Okay, these are done now. Once stuff passes tests, I'll commit it. Thanks Reid! -Chris From reid at x10sys.com Tue Dec 5 16:40:13 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 16:40:13 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp Message-ID: <200612052240.kB5MeDl3017549@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ScalarEvolution.cpp updated: 1.64 -> 1.65 --- Log message: Finally get the casting right in this file. Also, remove some unnecessary casting because sdiv doesn't require operand signs to match any more. --- Diffs of the changes: (+6 -7) ScalarEvolution.cpp | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.64 llvm/lib/Analysis/ScalarEvolution.cpp:1.65 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.64 Tue Dec 5 13:14:13 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Tue Dec 5 16:39:58 2006 @@ -560,7 +560,7 @@ SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type *Ty) { if (SCEVConstant *SC = dyn_cast(Op)) return SCEVUnknown::get( - ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); + ConstantExpr::getTrunc(SC->getValue(), Ty)); // If the input value is a chrec scev made out of constants, truncate // all of the constants. @@ -584,7 +584,7 @@ SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const Type *Ty) { if (SCEVConstant *SC = dyn_cast(Op)) return SCEVUnknown::get( - ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); + ConstantExpr::getZeroExtend(SC->getValue(), Ty)); // FIXME: If the input value is a chrec scev, and we can prove that the value // did not overflow the old, smaller, value, we can zero extend all of the @@ -999,11 +999,6 @@ if (SCEVConstant *LHSC = dyn_cast(LHS)) { Constant *LHSCV = LHSC->getValue(); Constant *RHSCV = RHSC->getValue(); - if (LHSCV->getType()->isUnsigned()) - LHSCV = ConstantExpr::getBitCast(LHSCV, - LHSCV->getType()->getSignedVersion()); - if (RHSCV->getType()->isUnsigned()) - RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); } } @@ -1376,12 +1371,16 @@ break; case Instruction::Trunc: + // We must prevent boolean types such as setne, etc. from entering here + // because we don't want to pass SCEVUnknown to the TruncateExpr. if (I->getType()->isInteger() && I->getOperand(0)->getType()->isInteger()) return SCEVTruncateExpr::get(getSCEV(I->getOperand(0)), I->getType()->getUnsignedVersion()); break; case Instruction::ZExt: + // We must prevent boolean types such as setne, etc. from entering here + // because we don't want to pass SCEVUnknown to the ZExtExpr. if (I->getType()->isInteger() && I->getOperand(0)->getType()->isInteger()) return SCEVZeroExtendExpr::get(getSCEV(I->getOperand(0)), I->getType()->getUnsignedVersion()); From clattner at apple.com Tue Dec 5 17:08:53 2006 From: clattner at apple.com (Chris Lattner) Date: Tue, 5 Dec 2006 15:08:53 -0800 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp In-Reply-To: <200612052240.kB5MeDl3017549@zion.cs.uiuc.edu> References: <200612052240.kB5MeDl3017549@zion.cs.uiuc.edu> Message-ID: nice, thanks Reid! -Chris On Dec 5, 2006, at 2:40 PM, Reid Spencer wrote: > > > Changes in directory llvm/lib/Analysis: > > ScalarEvolution.cpp updated: 1.64 -> 1.65 > --- > Log message: > > Finally get the casting right in this file. Also, remove some > unnecessary > casting because sdiv doesn't require operand signs to match any more. > > > --- > Diffs of the changes: (+6 -7) > > ScalarEvolution.cpp | 13 ++++++------- > 1 files changed, 6 insertions(+), 7 deletions(-) > > > Index: llvm/lib/Analysis/ScalarEvolution.cpp > diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.64 llvm/lib/ > Analysis/ScalarEvolution.cpp:1.65 > --- llvm/lib/Analysis/ScalarEvolution.cpp:1.64 Tue Dec 5 13:14:13 > 2006 > +++ llvm/lib/Analysis/ScalarEvolution.cpp Tue Dec 5 16:39:58 2006 > @@ -560,7 +560,7 @@ > SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type > *Ty) { > if (SCEVConstant *SC = dyn_cast(Op)) > return SCEVUnknown::get( > - ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty)); > + ConstantExpr::getTrunc(SC->getValue(), Ty)); > > // If the input value is a chrec scev made out of constants, > truncate > // all of the constants. > @@ -584,7 +584,7 @@ > SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const > Type *Ty) { > if (SCEVConstant *SC = dyn_cast(Op)) > return SCEVUnknown::get( > - ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty)); > + ConstantExpr::getZeroExtend(SC->getValue(), Ty)); > > // FIXME: If the input value is a chrec scev, and we can prove > that the value > // did not overflow the old, smaller, value, we can zero extend > all of the > @@ -999,11 +999,6 @@ > if (SCEVConstant *LHSC = dyn_cast(LHS)) { > Constant *LHSCV = LHSC->getValue(); > Constant *RHSCV = RHSC->getValue(); > - if (LHSCV->getType()->isUnsigned()) > - LHSCV = ConstantExpr::getBitCast(LHSCV, > - LHSCV->getType()- > >getSignedVersion()); > - if (RHSCV->getType()->isUnsigned()) > - RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType()); > return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV)); > } > } > @@ -1376,12 +1371,16 @@ > break; > > case Instruction::Trunc: > + // We must prevent boolean types such as setne, etc. from > entering here > + // because we don't want to pass SCEVUnknown to the > TruncateExpr. > if (I->getType()->isInteger() && I->getOperand(0)->getType()- > >isInteger()) > return SCEVTruncateExpr::get(getSCEV(I->getOperand(0)), > I->getType()- > >getUnsignedVersion()); > break; > > case Instruction::ZExt: > + // We must prevent boolean types such as setne, etc. from > entering here > + // because we don't want to pass SCEVUnknown to the ZExtExpr. > if (I->getType()->isInteger() && I->getOperand(0)->getType()- > >isInteger()) > return SCEVZeroExtendExpr::get(getSCEV(I->getOperand(0)), > I->getType()- > >getUnsignedVersion()); > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From reid at x10sys.com Tue Dec 5 17:28:21 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 17:28:21 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y Message-ID: <200612052328.kB5NSLI0018255@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.y updated: 1.285 -> 1.286 --- Log message: Dump the old va_arg and va_next upgrade support. No need to keep track of the current basic block any more either. --- Diffs of the changes: (+2 -156) llvmAsmParser.y | 158 -------------------------------------------------------- 1 files changed, 2 insertions(+), 156 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.285 llvm/lib/AsmParser/llvmAsmParser.y:1.286 --- llvm/lib/AsmParser/llvmAsmParser.y:1.285 Tue Dec 5 13:15:41 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y Tue Dec 5 17:28:06 2006 @@ -64,9 +64,7 @@ #define YYERROR_VERBOSE 1 -static bool ObsoleteVarArgs; static bool NewVarArgs; -static BasicBlock *CurBB; static GlobalVariable *CurGV; @@ -811,7 +809,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - ObsoleteVarArgs = false; NewVarArgs = false; CurModule.CurrentModule = M; @@ -830,113 +827,6 @@ Module *Result = ParserResult; ParserResult = 0; - //Not all functions use vaarg, so make a second check for ObsoleteVarArgs - { - Function* F; - if ((F = Result->getNamedFunction("llvm.va_start")) - && F->getFunctionType()->getNumParams() == 0) - ObsoleteVarArgs = true; - if((F = Result->getNamedFunction("llvm.va_copy")) - && F->getFunctionType()->getNumParams() == 1) - ObsoleteVarArgs = true; - } - - if (ObsoleteVarArgs && NewVarArgs) { - GenerateError( - "This file is corrupt: it uses both new and old style varargs"); - return 0; - } - - if(ObsoleteVarArgs) { - if(Function* F = Result->getNamedFunction("llvm.va_start")) { - if (F->arg_size() != 0) { - GenerateError("Obsolete va_start takes 0 argument!"); - return 0; - } - - //foo = va_start() - // -> - //bar = alloca typeof(foo) - //va_start(bar) - //foo = load bar - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_start", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vastart.fix.1", CI); - new CallInst(NF, bar, "", CI); - Value* foo = new LoadInst(bar, "vastart.fix.2", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_end")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_end takes 1 argument!"); - return 0; - } - - //vaend foo - // -> - //bar = alloca 1 of typeof(foo) - //vaend bar - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getParamType(0); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_end", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); - new StoreInst(CI->getOperand(1), bar, CI); - new CallInst(NF, bar, "", CI); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_copy")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_copy takes 1 argument!"); - return 0; - } - //foo = vacopy(bar) - // -> - //a = alloca 1 of typeof(foo) - //b = alloca 1 of typeof(foo) - //store bar -> b - //vacopy(a, b) - //foo = load a - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_copy", - RetTy, ArgTyPtr, ArgTyPtr, - (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* a = new AllocaInst(ArgTy, 0, "vacopy.fix.1", CI); - AllocaInst* b = new AllocaInst(ArgTy, 0, "vacopy.fix.2", CI); - new StoreInst(CI->getOperand(1), b, CI); - new CallInst(NF, a, b, "", CI); - Value* foo = new LoadInst(a, "vacopy.fix.3", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - } - return Result; } @@ -1092,7 +982,6 @@ %type ShiftOps %token PHI_TOK SELECT SHL LSHR ASHR VAARG %token EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR -%token VAARG_old VANEXT_old //OBSOLETE %start Module @@ -2217,7 +2106,7 @@ CHECK_FOR_ERROR } | /* empty */ { - $$ = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); + $$ = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -2229,7 +2118,7 @@ CHECK_FOR_ERROR } | LABELSTR { - $$ = CurBB = getBBVal(ValID::create($1), true); + $$ = getBBVal(ValID::create($1), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -2549,49 +2438,6 @@ delete $4; CHECK_FOR_ERROR } - | VAARG_old ResolvedVal ',' Types { - ObsoleteVarArgs = true; - const Type* ArgTy = $2->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vaarg a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //b = vaarg foo, t - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vaarg.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, $2); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - $$ = new VAArgInst(foo, *$4); - delete $4; - CHECK_FOR_ERROR - } - | VANEXT_old ResolvedVal ',' Types { - ObsoleteVarArgs = true; - const Type* ArgTy = $2->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vanext a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //tmp = vaarg foo, t - //b = load foo - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vanext.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, $2); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - Instruction* tmp = new VAArgInst(foo, *$4); - CurBB->getInstList().push_back(tmp); - $$ = new LoadInst(foo); - delete $4; - CHECK_FOR_ERROR - } | EXTRACTELEMENT ResolvedVal ',' ResolvedVal { if (!ExtractElementInst::isValidOperands($2, $4)) GEN_ERROR("Invalid extractelement operands!"); From reid at x10sys.com Tue Dec 5 17:29:56 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 17:29:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y.cvs Message-ID: <200612052329.kB5NTucw018304@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.cpp.cvs updated: 1.33 -> 1.34 llvmAsmParser.h.cvs updated: 1.26 -> 1.27 llvmAsmParser.y.cvs updated: 1.34 -> 1.35 --- Log message: Regenerate. --- Diffs of the changes: (+863 -1202) llvmAsmParser.cpp.cvs | 1897 ++++++++++++++++++++++---------------------------- llvmAsmParser.h.cvs | 10 llvmAsmParser.y.cvs | 158 ---- 3 files changed, 863 insertions(+), 1202 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.33 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.34 --- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.33 Tue Dec 5 13:16:11 2006 +++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Tue Dec 5 17:29:42 2006 @@ -205,9 +205,7 @@ VAARG = 396, EXTRACTELEMENT = 397, INSERTELEMENT = 398, - SHUFFLEVECTOR = 399, - VAARG_old = 400, - VANEXT_old = 401 + SHUFFLEVECTOR = 399 }; #endif /* Tokens. */ @@ -353,8 +351,6 @@ #define EXTRACTELEMENT 397 #define INSERTELEMENT 398 #define SHUFFLEVECTOR 399 -#define VAARG_old 400 -#define VANEXT_old 401 @@ -414,9 +410,7 @@ #define YYERROR_VERBOSE 1 -static bool ObsoleteVarArgs; static bool NewVarArgs; -static BasicBlock *CurBB; static GlobalVariable *CurGV; @@ -1161,7 +1155,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - ObsoleteVarArgs = false; NewVarArgs = false; CurModule.CurrentModule = M; @@ -1180,113 +1173,6 @@ Module *Result = ParserResult; ParserResult = 0; - //Not all functions use vaarg, so make a second check for ObsoleteVarArgs - { - Function* F; - if ((F = Result->getNamedFunction("llvm.va_start")) - && F->getFunctionType()->getNumParams() == 0) - ObsoleteVarArgs = true; - if((F = Result->getNamedFunction("llvm.va_copy")) - && F->getFunctionType()->getNumParams() == 1) - ObsoleteVarArgs = true; - } - - if (ObsoleteVarArgs && NewVarArgs) { - GenerateError( - "This file is corrupt: it uses both new and old style varargs"); - return 0; - } - - if(ObsoleteVarArgs) { - if(Function* F = Result->getNamedFunction("llvm.va_start")) { - if (F->arg_size() != 0) { - GenerateError("Obsolete va_start takes 0 argument!"); - return 0; - } - - //foo = va_start() - // -> - //bar = alloca typeof(foo) - //va_start(bar) - //foo = load bar - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_start", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vastart.fix.1", CI); - new CallInst(NF, bar, "", CI); - Value* foo = new LoadInst(bar, "vastart.fix.2", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_end")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_end takes 1 argument!"); - return 0; - } - - //vaend foo - // -> - //bar = alloca 1 of typeof(foo) - //vaend bar - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getParamType(0); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_end", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); - new StoreInst(CI->getOperand(1), bar, CI); - new CallInst(NF, bar, "", CI); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_copy")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_copy takes 1 argument!"); - return 0; - } - //foo = vacopy(bar) - // -> - //a = alloca 1 of typeof(foo) - //b = alloca 1 of typeof(foo) - //store bar -> b - //vacopy(a, b) - //foo = load a - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_copy", - RetTy, ArgTyPtr, ArgTyPtr, - (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* a = new AllocaInst(ArgTy, 0, "vacopy.fix.1", CI); - AllocaInst* b = new AllocaInst(ArgTy, 0, "vacopy.fix.2", CI); - new StoreInst(CI->getOperand(1), b, CI); - new CallInst(NF, a, b, "", CI); - Value* foo = new LoadInst(a, "vacopy.fix.3", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - } - return Result; } @@ -1333,7 +1219,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 967 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 857 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1377,7 +1263,7 @@ llvm::FCmpInst::Predicate FPredicate; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 1381 "llvmAsmParser.tab.c" +#line 1267 "llvmAsmParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1389,7 +1275,7 @@ /* Line 219 of yacc.c. */ -#line 1393 "llvmAsmParser.tab.c" +#line 1279 "llvmAsmParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1540,20 +1426,20 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1556 +#define YYLAST 1509 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 161 +#define YYNTOKENS 159 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 78 /* YYNRULES -- Number of rules. */ -#define YYNRULES 299 +#define YYNRULES 297 /* YYNRULES -- Number of states. */ -#define YYNSTATES 586 +#define YYNSTATES 578 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 401 +#define YYMAXUTOK 399 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -1565,15 +1451,15 @@ 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, - 150, 151, 159, 2, 148, 2, 2, 2, 2, 2, + 148, 149, 157, 2, 146, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 155, 147, 156, 2, 2, 2, 2, 2, 2, 2, + 153, 145, 154, 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, 152, 149, 154, 2, 2, 2, 2, 2, 160, + 2, 150, 147, 152, 2, 2, 2, 2, 2, 158, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 153, 2, 2, 157, 2, 158, 2, 2, 2, 2, + 151, 2, 2, 155, 2, 156, 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, @@ -1600,8 +1486,7 @@ 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 + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 }; #if YYDEBUG @@ -1637,14 +1522,14 @@ 686, 689, 692, 696, 706, 716, 725, 739, 741, 743, 750, 756, 759, 766, 774, 776, 780, 782, 783, 786, 788, 794, 800, 806, 813, 820, 823, 828, 833, 840, - 845, 850, 855, 860, 867, 874, 877, 885, 887, 890, - 891, 893, 894, 898, 905, 909, 916, 919, 924, 931 + 845, 850, 857, 864, 867, 875, 877, 880, 881, 883, + 884, 888, 895, 899, 906, 909, 914, 921 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short int yyrhs[] = { - 195, 0, -1, 5, -1, 6, -1, 3, -1, 4, + 193, 0, -1, 5, -1, 6, -1, 3, -1, 4, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, @@ -1658,121 +1543,120 @@ -1, 115, -1, 116, -1, 117, -1, 104, -1, 105, -1, 106, -1, 107, -1, 27, -1, 28, -1, 16, -1, 14, -1, 12, -1, 10, -1, 17, -1, 15, - -1, 13, -1, 11, -1, 171, -1, 172, -1, 18, - -1, 19, -1, 207, 147, -1, -1, 41, -1, 42, + -1, 13, -1, 11, -1, 169, -1, 170, -1, 18, + -1, 19, -1, 205, 145, -1, -1, 41, -1, 42, -1, 43, -1, 44, -1, 45, -1, 46, -1, 47, -1, -1, -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, 64, 4, -1, -1, 57, - 4, -1, -1, 148, 57, 4, -1, 34, 24, -1, - -1, 180, -1, -1, 148, 183, 182, -1, 180, -1, - 57, 4, -1, 186, -1, 8, -1, 188, -1, 8, - -1, 188, -1, 9, -1, 10, -1, 11, -1, 12, + 4, -1, -1, 146, 57, 4, -1, 34, 24, -1, + -1, 178, -1, -1, 146, 181, 180, -1, 178, -1, + 57, 4, -1, 184, -1, 8, -1, 186, -1, 8, + -1, 186, -1, 9, -1, 10, -1, 11, -1, 12, -1, 13, -1, 14, -1, 15, -1, 16, -1, 17, -1, 18, -1, 19, -1, 20, -1, 21, -1, 48, - -1, 187, -1, 222, -1, 149, 4, -1, 185, 150, - 190, 151, -1, 152, 4, 153, 188, 154, -1, 155, - 4, 153, 188, 156, -1, 157, 189, 158, -1, 157, - 158, -1, 188, 159, -1, 188, -1, 189, 148, 188, - -1, 189, -1, 189, 148, 37, -1, 37, -1, -1, - 186, 152, 193, 154, -1, 186, 152, 154, -1, 186, - 160, 24, -1, 186, 155, 193, 156, -1, 186, 157, - 193, 158, -1, 186, 157, 158, -1, 186, 38, -1, - 186, 39, -1, 186, 222, -1, 186, 192, -1, 186, - 26, -1, 171, 163, -1, 172, 4, -1, 9, 27, - -1, 9, 28, -1, 174, 7, -1, 167, 150, 191, - 36, 186, 151, -1, 123, 150, 191, 236, 151, -1, - 137, 150, 191, 148, 191, 148, 191, 151, -1, 164, - 150, 191, 148, 191, 151, -1, 165, 150, 191, 148, - 191, 151, -1, 166, 150, 191, 148, 191, 151, -1, - 96, 169, 150, 191, 148, 191, 151, -1, 97, 170, - 150, 191, 148, 191, 151, -1, 168, 150, 191, 148, - 191, 151, -1, 142, 150, 191, 148, 191, 151, -1, - 143, 150, 191, 148, 191, 148, 191, 151, -1, 144, - 150, 191, 148, 191, 148, 191, 151, -1, 193, 148, - 191, -1, 191, -1, 32, -1, 33, -1, 196, -1, - 196, 216, -1, 196, 218, -1, 196, 62, 61, 202, - -1, 196, 25, -1, 197, -1, 197, 175, 20, 184, - -1, 197, 218, -1, 197, 62, 61, 202, -1, -1, - 197, 175, 176, 194, 191, 198, 182, -1, -1, 197, - 175, 50, 194, 186, 199, 182, -1, -1, 197, 175, - 45, 194, 186, 200, 182, -1, -1, 197, 175, 47, - 194, 186, 201, 182, -1, 197, 51, 204, -1, 197, - 58, 147, 205, -1, -1, 24, -1, 56, -1, 55, - -1, 53, 147, 203, -1, 54, 147, 4, -1, 52, - 147, 24, -1, 71, 147, 24, -1, 152, 206, 154, - -1, 206, 148, 24, -1, 24, -1, -1, 22, -1, - 24, -1, 207, -1, -1, 186, 208, -1, 210, 148, - 209, -1, 209, -1, 210, -1, 210, 148, 37, -1, - 37, -1, -1, 177, 184, 207, 150, 211, 151, 181, - 178, -1, 29, -1, 157, -1, 176, 212, 213, -1, - 30, -1, 158, -1, 225, 215, -1, -1, 45, -1, - 47, -1, -1, 31, 219, 217, 212, -1, -1, 63, + -1, 185, -1, 220, -1, 147, 4, -1, 183, 148, + 188, 149, -1, 150, 4, 151, 186, 152, -1, 153, + 4, 151, 186, 154, -1, 155, 187, 156, -1, 155, + 156, -1, 186, 157, -1, 186, -1, 187, 146, 186, + -1, 187, -1, 187, 146, 37, -1, 37, -1, -1, + 184, 150, 191, 152, -1, 184, 150, 152, -1, 184, + 158, 24, -1, 184, 153, 191, 154, -1, 184, 155, + 191, 156, -1, 184, 155, 156, -1, 184, 38, -1, + 184, 39, -1, 184, 220, -1, 184, 190, -1, 184, + 26, -1, 169, 161, -1, 170, 4, -1, 9, 27, + -1, 9, 28, -1, 172, 7, -1, 165, 148, 189, + 36, 184, 149, -1, 123, 148, 189, 234, 149, -1, + 137, 148, 189, 146, 189, 146, 189, 149, -1, 162, + 148, 189, 146, 189, 149, -1, 163, 148, 189, 146, + 189, 149, -1, 164, 148, 189, 146, 189, 149, -1, + 96, 167, 148, 189, 146, 189, 149, -1, 97, 168, + 148, 189, 146, 189, 149, -1, 166, 148, 189, 146, + 189, 149, -1, 142, 148, 189, 146, 189, 149, -1, + 143, 148, 189, 146, 189, 146, 189, 149, -1, 144, + 148, 189, 146, 189, 146, 189, 149, -1, 191, 146, + 189, -1, 189, -1, 32, -1, 33, -1, 194, -1, + 194, 214, -1, 194, 216, -1, 194, 62, 61, 200, + -1, 194, 25, -1, 195, -1, 195, 173, 20, 182, + -1, 195, 216, -1, 195, 62, 61, 200, -1, -1, + 195, 173, 174, 192, 189, 196, 180, -1, -1, 195, + 173, 50, 192, 184, 197, 180, -1, -1, 195, 173, + 45, 192, 184, 198, 180, -1, -1, 195, 173, 47, + 192, 184, 199, 180, -1, 195, 51, 202, -1, 195, + 58, 145, 203, -1, -1, 24, -1, 56, -1, 55, + -1, 53, 145, 201, -1, 54, 145, 4, -1, 52, + 145, 24, -1, 71, 145, 24, -1, 150, 204, 152, + -1, 204, 146, 24, -1, 24, -1, -1, 22, -1, + 24, -1, 205, -1, -1, 184, 206, -1, 208, 146, + 207, -1, 207, -1, 208, -1, 208, 146, 37, -1, + 37, -1, -1, 175, 182, 205, 148, 209, 149, 179, + 176, -1, 29, -1, 155, -1, 174, 210, 211, -1, + 30, -1, 156, -1, 223, 213, -1, -1, 45, -1, + 47, -1, -1, 31, 217, 215, 210, -1, -1, 63, -1, 3, -1, 4, -1, 7, -1, 27, -1, 28, - -1, 38, -1, 39, -1, 26, -1, 155, 193, 156, - -1, 192, -1, 61, 220, 24, 148, 24, -1, 162, - -1, 207, -1, 222, -1, 221, -1, 186, 223, -1, - 225, 226, -1, 214, 226, -1, 227, 175, 228, -1, - 227, 230, -1, -1, 23, -1, 72, 224, -1, 72, - 8, -1, 73, 21, 223, -1, 73, 9, 223, 148, - 21, 223, 148, 21, 223, -1, 74, 173, 223, 148, - 21, 223, 152, 229, 154, -1, 74, 173, 223, 148, - 21, 223, 152, 154, -1, 75, 177, 184, 223, 150, - 233, 151, 36, 21, 223, 76, 21, 223, -1, 76, - -1, 77, -1, 229, 173, 221, 148, 21, 223, -1, - 173, 221, 148, 21, 223, -1, 175, 235, -1, 186, - 152, 223, 148, 223, 154, -1, 231, 148, 152, 223, - 148, 223, 154, -1, 224, -1, 232, 148, 224, -1, - 232, -1, -1, 60, 59, -1, 59, -1, 164, 186, - 223, 148, 223, -1, 165, 186, 223, 148, 223, -1, - 166, 186, 223, 148, 223, -1, 96, 169, 186, 223, - 148, 223, -1, 97, 170, 186, 223, 148, 223, -1, - 49, 224, -1, 168, 224, 148, 224, -1, 167, 224, - 36, 186, -1, 137, 224, 148, 224, 148, 224, -1, - 141, 224, 148, 186, -1, 145, 224, 148, 186, -1, - 146, 224, 148, 186, -1, 142, 224, 148, 224, -1, - 143, 224, 148, 224, 148, 224, -1, 144, 224, 148, - 224, 148, 224, -1, 136, 231, -1, 234, 177, 184, - 223, 150, 233, 151, -1, 238, -1, 148, 232, -1, - -1, 35, -1, -1, 118, 186, 179, -1, 118, 186, - 148, 15, 223, 179, -1, 119, 186, 179, -1, 119, - 186, 148, 15, 223, 179, -1, 120, 224, -1, 237, - 121, 186, 223, -1, 237, 122, 224, 148, 186, 223, - -1, 123, 186, 223, 236, -1 + -1, 38, -1, 39, -1, 26, -1, 153, 191, 154, + -1, 190, -1, 61, 218, 24, 146, 24, -1, 160, + -1, 205, -1, 220, -1, 219, -1, 184, 221, -1, + 223, 224, -1, 212, 224, -1, 225, 173, 226, -1, + 225, 228, -1, -1, 23, -1, 72, 222, -1, 72, + 8, -1, 73, 21, 221, -1, 73, 9, 221, 146, + 21, 221, 146, 21, 221, -1, 74, 171, 221, 146, + 21, 221, 150, 227, 152, -1, 74, 171, 221, 146, + 21, 221, 150, 152, -1, 75, 175, 182, 221, 148, + 231, 149, 36, 21, 221, 76, 21, 221, -1, 76, + -1, 77, -1, 227, 171, 219, 146, 21, 221, -1, + 171, 219, 146, 21, 221, -1, 173, 233, -1, 184, + 150, 221, 146, 221, 152, -1, 229, 146, 150, 221, + 146, 221, 152, -1, 222, -1, 230, 146, 222, -1, + 230, -1, -1, 60, 59, -1, 59, -1, 162, 184, + 221, 146, 221, -1, 163, 184, 221, 146, 221, -1, + 164, 184, 221, 146, 221, -1, 96, 167, 184, 221, + 146, 221, -1, 97, 168, 184, 221, 146, 221, -1, + 49, 222, -1, 166, 222, 146, 222, -1, 165, 222, + 36, 184, -1, 137, 222, 146, 222, 146, 222, -1, + 141, 222, 146, 184, -1, 142, 222, 146, 222, -1, + 143, 222, 146, 222, 146, 222, -1, 144, 222, 146, + 222, 146, 222, -1, 136, 229, -1, 232, 175, 182, + 221, 148, 231, 149, -1, 236, -1, 146, 230, -1, + -1, 35, -1, -1, 118, 184, 177, -1, 118, 184, + 146, 15, 221, 177, -1, 119, 184, 177, -1, 119, + 184, 146, 15, 221, 177, -1, 120, 222, -1, 235, + 121, 184, 221, -1, 235, 122, 222, 146, 184, 221, + -1, 123, 184, 221, 234, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 1103, 1103, 1104, 1112, 1113, 1123, 1123, 1123, 1123, - 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1125, 1125, - 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1126, - 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128, 1130, - 1130, 1131, 1131, 1132, 1132, 1133, 1133, 1134, 1134, 1138, - 1138, 1139, 1139, 1140, 1140, 1141, 1141, 1142, 1142, 1143, - 1143, 1144, 1144, 1145, 1146, 1151, 1151, 1151, 1151, 1152, - 1152, 1152, 1152, 1153, 1153, 1154, 1154, 1157, 1161, 1166, - 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1175, 1176, 1177, - 1178, 1179, 1180, 1181, 1182, 1191, 1192, 1198, 1199, 1207, - 1215, 1216, 1221, 1222, 1223, 1228, 1242, 1242, 1243, 1243, - 1245, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1256, 1256, - 1256, 1256, 1256, 1256, 1257, 1261, 1265, 1273, 1281, 1294, - 1299, 1311, 1321, 1325, 1336, 1341, 1347, 1348, 1352, 1356, - 1367, 1393, 1407, 1437, 1463, 1484, 1497, 1507, 1512, 1573, - 1580, 1588, 1594, 1600, 1604, 1608, 1616, 1628, 1649, 1657, - 1663, 1674, 1680, 1685, 1690, 1699, 1705, 1711, 1720, 1724, - 1732, 1732, 1742, 1750, 1755, 1759, 1763, 1767, 1782, 1804, - 1807, 1810, 1810, 1818, 1818, 1826, 1826, 1834, 1834, 1843, - 1846, 1849, 1853, 1866, 1867, 1869, 1873, 1882, 1886, 1891, - 1893, 1898, 1903, 1912, 1912, 1913, 1913, 1915, 1922, 1928, - 1935, 1939, 1945, 1950, 1955, 2050, 2050, 2052, 2060, 2060, - 2062, 2067, 2068, 2069, 2071, 2071, 2081, 2085, 2090, 2094, - 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2147, 2151, 2165, - 2169, 2175, 2175, 2181, 2186, 2190, 2199, 2210, 2219, 2231, - 2244, 2248, 2252, 2257, 2266, 2285, 2294, 2350, 2354, 2361, - 2372, 2385, 2394, 2403, 2413, 2417, 2424, 2424, 2426, 2430, - 2435, 2454, 2469, 2483, 2494, 2505, 2518, 2527, 2538, 2546, - 2552, 2572, 2595, 2601, 2607, 2613, 2628, 2687, 2694, 2697, - 2702, 2706, 2713, 2718, 2724, 2729, 2735, 2743, 2755, 2770 + 0, 992, 992, 993, 1001, 1002, 1012, 1012, 1012, 1012, + 1012, 1012, 1012, 1012, 1012, 1013, 1013, 1013, 1014, 1014, + 1014, 1014, 1014, 1014, 1015, 1015, 1015, 1015, 1015, 1015, + 1016, 1016, 1016, 1016, 1016, 1016, 1017, 1017, 1017, 1019, + 1019, 1020, 1020, 1021, 1021, 1022, 1022, 1023, 1023, 1027, + 1027, 1028, 1028, 1029, 1029, 1030, 1030, 1031, 1031, 1032, + 1032, 1033, 1033, 1034, 1035, 1040, 1040, 1040, 1040, 1041, + 1041, 1041, 1041, 1042, 1042, 1043, 1043, 1046, 1050, 1055, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1064, 1065, 1066, + 1067, 1068, 1069, 1070, 1071, 1080, 1081, 1087, 1088, 1096, + 1104, 1105, 1110, 1111, 1112, 1117, 1131, 1131, 1132, 1132, + 1134, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, + 1145, 1145, 1145, 1145, 1146, 1150, 1154, 1162, 1170, 1183, + 1188, 1200, 1210, 1214, 1225, 1230, 1236, 1237, 1241, 1245, + 1256, 1282, 1296, 1326, 1352, 1373, 1386, 1396, 1401, 1462, + 1469, 1477, 1483, 1489, 1493, 1497, 1505, 1517, 1538, 1546, + 1552, 1563, 1569, 1574, 1579, 1588, 1594, 1600, 1609, 1613, + 1621, 1621, 1631, 1639, 1644, 1648, 1652, 1656, 1671, 1693, + 1696, 1699, 1699, 1707, 1707, 1715, 1715, 1723, 1723, 1732, + 1735, 1738, 1742, 1755, 1756, 1758, 1762, 1771, 1775, 1780, + 1782, 1787, 1792, 1801, 1801, 1802, 1802, 1804, 1811, 1817, + 1824, 1828, 1834, 1839, 1844, 1939, 1939, 1941, 1949, 1949, + 1951, 1956, 1957, 1958, 1960, 1960, 1970, 1974, 1979, 1983, + 1987, 1991, 1995, 1999, 2003, 2007, 2011, 2036, 2040, 2054, + 2058, 2064, 2064, 2070, 2075, 2079, 2088, 2099, 2108, 2120, + 2133, 2137, 2141, 2146, 2155, 2174, 2183, 2239, 2243, 2250, + 2261, 2274, 2283, 2292, 2302, 2306, 2313, 2313, 2315, 2319, + 2324, 2343, 2358, 2372, 2383, 2394, 2407, 2416, 2427, 2435, + 2441, 2447, 2453, 2459, 2474, 2533, 2540, 2543, 2548, 2552, + 2559, 2564, 2570, 2575, 2581, 2589, 2601, 2616 }; #endif @@ -1802,24 +1686,24 @@ "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP", "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK", "SELECT", "SHL", "LSHR", "ASHR", "VAARG", "EXTRACTELEMENT", - "INSERTELEMENT", "SHUFFLEVECTOR", "VAARG_old", "VANEXT_old", "'='", - "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", - "'}'", "'*'", "'c'", "$accept", "INTVAL", "EINT64VAL", "ArithmeticOps", - "LogicalOps", "SetCondOps", "CastOps", "ShiftOps", "IPredicates", - "FPredicates", "SIntType", "UIntType", "IntType", "FPType", "OptAssign", - "OptLinkage", "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", - "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", - "UpRTypesV", "Types", "PrimType", "UpRTypes", "TypeListI", - "ArgTypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType", - "Module", "FunctionList", "ConstPool", "@1", "@2", "@3", "@4", - "AsmBlock", "BigOrLittle", "TargetDefinition", "LibrariesDefinition", - "LibList", "Name", "OptName", "ArgVal", "ArgListH", "ArgList", - "FunctionHeaderH", "BEGIN", "FunctionHeader", "END", "Function", - "FnDeclareLinkage", "FunctionProto", "@5", "OptSideEffect", - "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal", - "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst", - "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE", - "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0 + "INSERTELEMENT", "SHUFFLEVECTOR", "'='", "','", "'\\\\'", "'('", "')'", + "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", + "INTVAL", "EINT64VAL", "ArithmeticOps", "LogicalOps", "SetCondOps", + "CastOps", "ShiftOps", "IPredicates", "FPredicates", "SIntType", + "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage", + "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection", + "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV", + "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal", + "ConstExpr", "ConstVector", "GlobalType", "Module", "FunctionList", + "ConstPool", "@1", "@2", "@3", "@4", "AsmBlock", "BigOrLittle", + "TargetDefinition", "LibrariesDefinition", "LibList", "Name", "OptName", + "ArgVal", "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", + "FunctionHeader", "END", "Function", "FnDeclareLinkage", "FunctionProto", + "@5", "OptSideEffect", "ConstValueRef", "SymbolicValueRef", "ValueRef", + "ResolvedVal", "BasicBlockList", "BasicBlock", "InstructionList", + "BBTerminatorInst", "JumpTable", "Inst", "PHIList", "ValueRefList", + "ValueRefListE", "OptTailCall", "InstVal", "IndexList", "OptVolatile", + "MemoryInst", 0 }; #endif @@ -1842,45 +1726,44 @@ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 61, 44, 92, - 40, 41, 91, 120, 93, 60, 62, 123, 125, 42, - 99 + 395, 396, 397, 398, 399, 61, 44, 92, 40, 41, + 91, 120, 93, 60, 62, 123, 125, 42, 99 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 161, 162, 162, 163, 163, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 165, 165, 165, 166, 166, - 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 168, 168, 168, 169, - 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 171, 172, - 172, 172, 172, 173, 173, 174, 174, 175, 175, 176, - 176, 176, 176, 176, 176, 176, 176, 177, 177, 177, - 177, 177, 177, 177, 177, 178, 178, 179, 179, 180, - 181, 181, 182, 182, 183, 183, 184, 184, 185, 185, - 186, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 189, 189, 190, 190, 190, 190, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, - 194, 194, 195, 196, 196, 196, 196, 196, 197, 197, - 197, 198, 197, 199, 197, 200, 197, 201, 197, 197, - 197, 197, 202, 203, 203, 204, 204, 204, 204, 205, - 206, 206, 206, 207, 207, 208, 208, 209, 210, 210, - 211, 211, 211, 211, 212, 213, 213, 214, 215, 215, - 216, 217, 217, 217, 219, 218, 220, 220, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, - 222, 223, 223, 224, 225, 225, 226, 227, 227, 227, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, - 229, 230, 231, 231, 232, 232, 233, 233, 234, 234, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 236, 236, - 237, 237, 238, 238, 238, 238, 238, 238, 238, 238 + 0, 159, 160, 160, 161, 161, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, + 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 166, 166, 166, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 169, 169, 169, 169, 170, + 170, 170, 170, 171, 171, 172, 172, 173, 173, 174, + 174, 174, 174, 174, 174, 174, 174, 175, 175, 175, + 175, 175, 175, 175, 175, 176, 176, 177, 177, 178, + 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 187, 187, 188, 188, 188, 188, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 191, 191, + 192, 192, 193, 194, 194, 194, 194, 194, 195, 195, + 195, 196, 195, 197, 195, 198, 195, 199, 195, 195, + 195, 195, 200, 201, 201, 202, 202, 202, 202, 203, + 204, 204, 204, 205, 205, 206, 206, 207, 208, 208, + 209, 209, 209, 209, 210, 211, 211, 212, 213, 213, + 214, 215, 215, 215, 217, 216, 218, 218, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 220, + 220, 221, 221, 222, 223, 223, 224, 225, 225, 225, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, + 227, 228, 229, 229, 230, 230, 231, 231, 232, 232, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 234, 234, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1914,8 +1797,8 @@ 2, 2, 3, 9, 9, 8, 13, 1, 1, 6, 5, 2, 6, 7, 1, 3, 1, 0, 2, 1, 5, 5, 5, 6, 6, 2, 4, 4, 6, 4, - 4, 4, 4, 6, 6, 2, 7, 1, 2, 0, - 1, 0, 3, 6, 3, 6, 2, 4, 6, 4 + 4, 6, 6, 2, 7, 1, 2, 0, 1, 0, + 3, 6, 3, 6, 2, 4, 6, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1932,148 +1815,146 @@ 223, 87, 192, 175, 94, 2, 3, 107, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 239, 0, 0, 106, - 125, 110, 240, 126, 215, 216, 217, 291, 247, 0, + 125, 110, 240, 126, 215, 216, 217, 289, 247, 0, 0, 0, 0, 202, 190, 180, 178, 170, 171, 0, 0, 0, 0, 225, 127, 0, 0, 109, 132, 134, - 0, 0, 139, 133, 290, 0, 269, 0, 0, 0, + 0, 0, 139, 133, 288, 0, 269, 0, 0, 0, 0, 87, 257, 258, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 36, 37, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 246, 87, 261, 0, - 287, 197, 194, 193, 195, 196, 198, 201, 0, 185, - 187, 183, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 0, 0, 0, 0, 181, 0, 0, - 0, 131, 213, 138, 136, 0, 0, 275, 268, 251, - 250, 0, 0, 68, 72, 67, 71, 66, 70, 65, - 69, 73, 74, 0, 0, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 0, 63, 64, 59, 60, - 61, 62, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 97, 97, 296, 0, 0, 285, 0, + 0, 0, 0, 0, 246, 87, 261, 0, 285, 197, + 194, 193, 195, 196, 198, 201, 0, 185, 187, 183, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 0, 0, 0, 0, 181, 0, 0, 0, 131, + 213, 138, 136, 0, 0, 275, 268, 251, 250, 0, + 0, 68, 72, 67, 71, 66, 70, 65, 69, 73, + 74, 0, 0, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 0, 63, 64, 59, 60, 61, 62, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 0, 97, 97, 294, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 199, 102, 102, 102, 153, - 154, 4, 5, 151, 152, 155, 150, 146, 147, 0, + 0, 199, 102, 102, 102, 153, 154, 4, 5, 151, + 152, 155, 150, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 148, 102, 108, 108, - 135, 212, 206, 209, 210, 0, 0, 128, 228, 229, - 230, 235, 231, 232, 233, 234, 226, 0, 237, 242, - 241, 243, 0, 252, 0, 0, 0, 0, 0, 292, - 0, 294, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 149, 148, 102, 108, 108, 135, 212, 206, 209, + 210, 0, 0, 128, 228, 229, 230, 235, 231, 232, + 233, 234, 226, 0, 237, 242, 241, 243, 0, 252, + 0, 0, 0, 0, 0, 290, 0, 292, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 200, 0, 186, 188, 184, 0, 0, 0, 0, 0, - 0, 0, 141, 169, 0, 0, 145, 0, 142, 0, - 0, 0, 0, 0, 182, 129, 130, 205, 207, 0, - 100, 137, 227, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 0, 0, 0, 279, 282, - 0, 0, 280, 281, 0, 0, 0, 277, 276, 0, - 297, 0, 0, 0, 104, 102, 0, 0, 289, 0, - 0, 0, 0, 0, 140, 143, 144, 0, 0, 0, - 0, 0, 211, 208, 101, 95, 0, 236, 0, 0, - 267, 0, 0, 97, 98, 97, 264, 288, 0, 0, - 0, 0, 0, 270, 271, 272, 267, 0, 99, 105, - 103, 0, 0, 0, 0, 0, 0, 0, 168, 0, - 0, 0, 0, 0, 0, 214, 0, 0, 0, 266, - 0, 273, 274, 0, 293, 295, 0, 0, 0, 278, - 283, 284, 0, 298, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 96, 238, 0, 0, - 0, 265, 262, 0, 286, 0, 0, 0, 165, 0, - 0, 159, 160, 161, 156, 164, 0, 255, 0, 0, - 0, 263, 162, 163, 0, 0, 0, 253, 0, 254, - 0, 0, 158, 166, 167, 0, 0, 0, 0, 0, - 0, 260, 0, 0, 259, 256 + 0, 0, 0, 0, 200, 0, 186, 188, 184, 0, + 0, 0, 0, 0, 0, 0, 141, 169, 0, 0, + 145, 0, 142, 0, 0, 0, 0, 0, 182, 129, + 130, 205, 207, 0, 100, 137, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, + 0, 0, 279, 280, 0, 0, 0, 0, 0, 277, + 276, 0, 295, 0, 0, 0, 104, 102, 0, 0, + 287, 0, 0, 0, 0, 0, 140, 143, 144, 0, + 0, 0, 0, 0, 211, 208, 101, 95, 0, 236, + 0, 0, 267, 0, 0, 97, 98, 97, 264, 286, + 0, 0, 0, 0, 0, 270, 271, 272, 267, 0, + 99, 105, 103, 0, 0, 0, 0, 0, 0, 0, + 168, 0, 0, 0, 0, 0, 0, 214, 0, 0, + 0, 266, 0, 273, 274, 0, 291, 293, 0, 0, + 0, 278, 281, 282, 0, 296, 0, 0, 157, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 238, + 0, 0, 0, 265, 262, 0, 284, 0, 0, 0, + 165, 0, 0, 159, 160, 161, 156, 164, 0, 255, + 0, 0, 0, 263, 162, 163, 0, 0, 0, 253, + 0, 254, 0, 0, 158, 166, 167, 0, 0, 0, + 0, 0, 0, 260, 0, 0, 259, 256 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short int yydefgoto[] = { - -1, 86, 303, 320, 321, 322, 323, 324, 255, 272, - 213, 214, 243, 215, 25, 15, 37, 505, 359, 444, - 465, 382, 445, 87, 88, 216, 90, 91, 120, 225, - 393, 348, 394, 109, 1, 2, 3, 327, 298, 296, - 297, 63, 194, 50, 104, 198, 92, 408, 333, 334, - 335, 38, 96, 16, 44, 17, 61, 18, 28, 413, - 349, 93, 351, 476, 19, 40, 41, 186, 559, 98, - 278, 509, 510, 187, 188, 424, 189, 190 + -1, 86, 299, 316, 317, 318, 319, 320, 253, 270, + 211, 212, 241, 213, 25, 15, 37, 497, 355, 436, + 457, 376, 437, 87, 88, 214, 90, 91, 120, 223, + 387, 344, 388, 109, 1, 2, 3, 323, 294, 292, + 293, 63, 192, 50, 104, 196, 92, 402, 329, 330, + 331, 38, 96, 16, 44, 17, 61, 18, 28, 407, + 345, 93, 347, 468, 19, 40, 41, 184, 551, 98, + 276, 501, 502, 185, 186, 418, 187, 188 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -536 +#define YYPACT_NINF -517 static const short int yypact[] = { - -536, 28, 149, 426, -536, -536, -536, -536, -536, -536, - -536, -536, -536, -536, -16, 158, 41, -536, -536, -1, - -536, -536, 14, -67, 25, 80, -31, -536, 30, 130, - 155, -536, -536, -536, -536, -536, -536, 1242, -4, -536, - -536, 65, -536, -536, -536, -536, 32, 36, 37, 39, - -536, 35, 130, 1242, 69, 69, 69, 69, -536, -536, - -536, 158, -536, -536, -536, -536, -536, 38, -536, -536, - -536, -536, -536, -536, -536, -536, -536, -536, -536, -536, - -536, -536, 185, 193, 194, 659, -536, 65, 50, -536, - -536, -113, -536, -536, -536, -536, -536, 1410, -536, 177, - 59, 198, 179, 180, -536, -536, -536, -536, -536, 1262, - 1262, 1262, 1303, -536, -536, 52, 57, -536, -536, -113, - -118, 62, 1047, -536, -536, 1262, -536, 150, 1323, 15, - 151, 158, -536, -536, -536, -536, -536, -536, -536, -536, - -536, -536, -536, -536, -536, -536, -536, -536, -536, -536, - -536, -536, 399, 210, 1262, 1262, 1262, 1262, -536, -536, - -536, -536, -536, -536, -536, -536, -536, -536, -536, -536, - 1262, 1262, -536, -536, -536, 1262, 1262, 1262, 1262, 1262, - 1262, 1262, 1262, 1262, 1262, 1262, -536, 158, -536, 7, - -536, -536, -536, -536, -536, -536, -536, -536, -85, -536, - -536, -536, 104, 152, 209, 167, 212, 172, 215, 174, - 216, 207, 225, 178, 229, 227, 566, -536, 1262, 1262, - 1262, -536, 1088, -536, 91, 89, 757, -536, -536, 38, - -536, 757, 757, -536, -536, -536, -536, -536, -536, -536, - -536, -536, -536, 757, 1242, -536, -536, -536, -536, -536, - -536, -536, -536, -536, -536, 1262, -536, -536, -536, -536, - -536, -536, -536, -536, -536, -536, -536, -536, -536, -536, - -536, -536, 1262, 94, 100, -536, 757, 97, 102, 103, - 109, 110, 111, 112, 113, 114, 757, 757, 757, 232, - 117, 1242, 1262, 1262, 245, -536, 122, 122, 122, -536, - -536, -536, -536, -536, -536, -536, -536, -536, -536, 399, - 210, 121, 124, 125, 126, 127, 992, 1303, 719, 248, - 128, 129, 131, 133, 134, -536, -536, 122, -111, -80, - -113, -536, 65, -536, 132, 135, 1145, -536, -536, -536, - -536, -536, -536, -536, -536, -536, 222, 1303, -536, -536, - -536, -536, 139, -536, 140, 757, 757, 757, 0, -536, - 2, -536, 141, 757, 138, 1262, 1262, 1262, 1262, 1262, - 1262, 1262, 153, 154, 156, 1262, 1262, 757, 757, 162, - -536, -24, -536, -536, -536, 148, 161, 1303, 1303, 1303, - 1303, 1303, -536, -536, -70, -98, -536, -117, -536, 1303, - 1303, 1303, 1303, 1303, -536, -536, -536, -536, -536, 1201, - 265, -536, -536, 276, -86, 291, 316, 190, 195, 196, - 757, 337, 757, 1262, -536, 197, 757, 201, -536, -536, - 202, 206, -536, -536, 757, 757, 757, -536, -536, 192, - -536, 1262, 331, 356, -536, 122, 1303, 1303, 141, 213, - 214, 217, 219, 1303, -536, -536, -536, 220, 221, 223, - 327, 226, -536, -536, -536, 307, 228, -536, 757, 757, - 1262, 757, 757, 231, -536, 231, -536, 233, 757, 234, - 1262, 1262, 1262, -536, -536, -536, 1262, 757, -536, -536, - -536, 235, 236, 224, 1303, 1303, 1303, 1303, -536, 1303, - 1303, 1303, 1262, 1303, 366, -536, 361, 239, 237, 233, - 240, -536, -536, 323, -536, -536, 1262, 241, 757, -536, - -536, -536, 242, -536, 1303, 1303, -536, 246, 247, 249, - 251, 257, 259, 260, 262, 267, -536, -536, 367, 82, - 354, -536, -536, 266, -536, 268, 270, 1303, -536, 1303, - 1303, -536, -536, -536, -536, -536, 757, -536, 899, 93, - 375, -536, -536, -536, 271, 273, 274, -536, 278, -536, - 899, 757, -536, -536, -536, 406, 280, 353, 757, 414, - 415, -536, 757, 757, -536, -536 + -517, 40, 69, 528, -517, -517, -517, -517, -517, -517, + -517, -517, -517, -517, 16, 90, 76, -517, -517, 5, + -517, -517, 50, -40, 71, 37, -15, -517, -4, 124, + 164, -517, -517, -517, -517, -517, -517, 1244, -18, -517, + -517, 125, -517, -517, -517, -517, 45, 53, 54, 59, + -517, 67, 124, 1244, 103, 103, 103, 103, -517, -517, + -517, 90, -517, -517, -517, -517, -517, 70, -517, -517, + -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, + -517, -517, 197, 215, 216, 670, -517, 125, 73, -517, + -517, -62, -517, -517, -517, -517, -517, 1349, -517, 198, + 111, 219, 200, 201, -517, -517, -517, -517, -517, 1264, + 1264, 1264, 1309, -517, -517, 75, 77, -517, -517, -62, + -108, 81, 1051, -517, -517, 1264, -517, 168, 1354, 24, + 112, 90, -517, -517, -517, -517, -517, -517, -517, -517, + -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, + -517, -517, 108, 65, 1264, 1264, 1264, 1264, -517, -517, + -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, + 1264, 1264, -517, -517, -517, 1264, 1264, 1264, 1264, 1264, + 1264, 1264, 1264, 1264, -517, 90, -517, 42, -517, -517, + -517, -517, -517, -517, -517, -517, -110, -517, -517, -517, + 157, 183, 226, 185, 227, 189, 228, 191, 230, 231, + 235, 193, 239, 237, 577, -517, 1264, 1264, 1264, -517, + 1092, -517, 89, 96, 763, -517, -517, 70, -517, 763, + 763, -517, -517, -517, -517, -517, -517, -517, -517, -517, + -517, 763, 1244, -517, -517, -517, -517, -517, -517, -517, + -517, -517, -517, 1264, -517, -517, -517, -517, -517, -517, + -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, + 1264, 101, 102, -517, 763, 99, 107, 109, 110, 113, + 114, 115, 763, 763, 763, 218, 116, 1244, 1264, 1264, + 233, -517, 117, 117, 117, -517, -517, -517, -517, -517, + -517, -517, -517, -517, -517, 108, 65, 119, 120, 121, + 123, 126, 998, 1309, 728, 234, 127, 128, 129, 130, + 131, -517, -517, 117, -56, -142, -62, -517, 125, -517, + 118, 132, 1149, -517, -517, -517, -517, -517, -517, -517, + -517, -517, 202, 1309, -517, -517, -517, -517, 136, -517, + 137, 763, 763, 763, -7, -517, -2, -517, 138, 763, + 122, 1264, 1264, 1264, 1264, 1264, 146, 147, 148, 1264, + 1264, 763, 763, 149, -517, -20, -517, -517, -517, 150, + 156, 1309, 1309, 1309, 1309, 1309, -517, -517, -76, -57, + -517, -71, -517, 1309, 1309, 1309, 1309, 1309, -517, -517, + -517, -517, -517, 1203, 262, -517, -517, 249, -48, 284, + 285, 159, 165, 166, 763, 306, 763, 1264, -517, 167, + 763, 169, -517, -517, 170, 171, 763, 763, 763, -517, + -517, 173, -517, 1264, 290, 314, -517, 117, 1309, 1309, + 138, 176, 177, 188, 190, 1309, -517, -517, -517, 195, + 196, 206, 283, 208, -517, -517, -517, 272, 209, -517, + 763, 763, 1264, 763, 763, 210, -517, 210, -517, 211, + 763, 212, 1264, 1264, 1264, -517, -517, -517, 1264, 763, + -517, -517, -517, 213, 214, 186, 1309, 1309, 1309, 1309, + -517, 1309, 1309, 1309, 1264, 1309, 333, -517, 319, 221, + 220, 211, 222, -517, -517, 289, -517, -517, 1264, 217, + 763, -517, -517, -517, 223, -517, 1309, 1309, -517, 229, + 224, 232, 236, 225, 238, 240, 241, 242, -517, -517, + 326, 10, 328, -517, -517, 248, -517, 253, 254, 1309, + -517, 1309, 1309, -517, -517, -517, -517, -517, 763, -517, + 905, 51, 344, -517, -517, -517, 256, 261, 263, -517, + 265, -517, 905, 763, -517, -517, -517, 347, 267, 300, + 763, 356, 358, -517, 763, 763, -517, -517 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -536, -536, -536, 342, 343, 344, 345, 350, 142, 144, - -127, -125, -525, -536, 411, 435, -122, -536, -267, 51, - -536, -285, -536, -45, -536, -37, -536, -83, 340, -536, - -94, 250, -298, 56, -536, -536, -536, -536, -536, -536, - -536, 412, -536, -536, -536, -536, 3, -536, 54, -536, - -536, 413, -536, -536, -536, -536, -536, 472, -536, -536, - -535, -205, 60, -124, -536, 459, -536, -536, -536, -536, - -536, 58, -3, -536, -536, 42, -536, -536 + -517, -517, -517, 286, 288, 291, 317, 320, 134, 80, + -127, -125, -502, -517, 340, 391, -114, -517, -265, 14, + -517, -284, -517, -51, -517, -37, -517, -66, 297, -517, + -94, 207, -283, 52, -517, -517, -517, -517, -517, -517, + -517, 368, -517, -517, -517, -517, 3, -517, 26, -517, + -517, 372, -517, -517, -517, -517, -517, 431, -517, -517, + -516, 56, 79, -124, -517, 421, -517, -517, -517, -517, + -517, 25, -35, -517, -517, 4, -517, -517 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -2083,387 +1964,376 @@ #define YYTABLE_NINF -173 static const short int yytable[] = { - 89, 227, 119, 241, 230, 242, 26, 361, 106, 244, - 442, 326, 383, 384, 558, 420, 89, 422, 217, 395, - 397, 350, 39, 568, 231, 94, 350, 350, 4, 42, - 220, 453, 275, 443, 570, 576, 232, -108, 350, 119, - 221, 456, 404, 405, 26, 29, 123, 279, 123, 414, - 453, 280, 281, 282, 283, 284, 285, 421, 455, 421, - 289, 290, 453, 294, 39, 291, 46, 47, 48, 295, - 467, 350, 199, 200, 201, 59, 406, 60, 453, 123, - 51, 350, 350, 350, 454, 49, 52, 20, 226, 21, - 121, 226, 233, 234, 235, 236, 237, 238, 239, 240, - 53, 107, 108, 233, 234, 235, 236, 237, 238, 239, - 240, 110, 111, 112, 192, 193, 58, 273, 274, 226, - 276, 7, 8, 9, 10, 54, 12, 55, 292, 293, - 56, 299, 300, 277, 226, 328, 329, 330, 226, 226, - 226, 226, 226, 226, 286, 287, 288, 226, 226, -172, - 350, 350, 350, 95, 62, -68, -68, 43, 350, 64, - 490, 233, 234, 235, 236, 237, 238, 239, 240, 379, - -67, -67, 350, 350, 5, -66, -66, -65, -65, 99, - 6, 301, 302, 100, 101, 332, 102, 103, -109, 114, - 7, 8, 9, 10, 11, 12, 13, 115, 116, 355, - 122, 191, 195, 196, 197, 218, 514, 89, 515, 228, - 219, 14, 222, -72, -75, 350, -71, 350, 356, -70, - -69, 350, 30, 31, 32, 33, 34, 35, 36, 350, - 350, 350, -76, 304, 305, 357, 557, 256, 257, 336, - 337, 427, 358, 429, 430, 431, 377, 569, 360, 363, - 364, 365, 438, 330, 89, 378, 226, 366, 367, 368, - 369, 370, 371, 350, 350, 376, 350, 350, 375, 380, - 381, 387, 398, 350, 388, 389, 390, 391, 399, 400, - 409, 401, 350, 402, 403, 412, 410, 415, 416, 423, - 426, 352, 353, 448, 449, 450, 451, 452, 446, 442, - 466, 434, 435, 354, 436, 457, 458, 459, 460, 461, - 441, 447, 468, 350, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 226, 428, - 226, 226, 226, 432, 433, 407, 362, 469, 437, 226, - 470, 474, 486, 471, 472, 478, 372, 373, 374, 480, - 481, 350, 491, 492, 482, 488, 519, 520, 521, 498, - 489, 494, 495, 502, 504, 496, 350, 497, 499, 500, - 536, 501, 332, 350, 503, 526, 506, 350, 350, 513, - 421, 516, 518, 524, 525, 537, 226, 538, 556, 539, - 560, 540, 541, 544, 547, 542, 571, 549, 548, 550, - 527, 528, 529, 530, 487, 531, 532, 533, 551, 535, - 552, 553, 241, 554, 242, 417, 418, 419, 555, 562, - 561, 563, 572, 425, 573, 574, 575, 578, 579, 580, - 545, 546, 241, 226, 242, 582, 583, 439, 440, 181, - 182, 183, 184, 226, 226, 226, -78, 185, 20, 226, - 21, 385, 97, 564, 386, 565, 566, 6, -78, -78, - 57, 464, 224, 463, 105, 534, 325, -78, -78, -78, - -78, -78, -78, -78, 113, 27, -78, 22, 45, 226, - 473, 477, 475, 522, 23, 0, 479, 0, 24, 0, - 493, 0, 0, 0, 483, 484, 485, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 507, 508, - 0, 511, 512, 0, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, + 89, 225, 106, 239, 228, 240, 26, 357, 414, 377, + 378, 94, 400, 416, 434, 123, 89, 242, 215, 119, + 231, 232, 233, 234, 235, 236, 237, 238, 39, 550, + 389, 391, 273, 229, 560, 42, 290, 435, 218, 398, + 4, 59, 291, 60, 26, 230, 568, 277, 219, 562, + 415, 278, 279, 280, 281, 415, 119, 53, 285, 286, + 408, 231, 232, 233, 234, 235, 236, 237, 238, -172, + 445, 287, 197, 198, 199, 445, 446, 29, 7, 8, + 9, 10, 54, 12, 55, 448, -108, 56, 224, 445, + 121, 224, 254, 255, 5, 123, 399, 447, 445, 39, + 6, 123, 46, 47, 48, 51, 459, 110, 111, 112, + 7, 8, 9, 10, 11, 12, 13, 271, 272, 224, + 274, 49, 231, 232, 233, 234, 235, 236, 237, 238, + 58, 14, 52, 275, 224, 107, 108, 95, 224, 224, + 224, 224, 282, 283, 284, 224, 224, 20, 62, 21, + 324, 325, 326, 482, 30, 31, 32, 33, 34, 35, + 36, 43, 549, 288, 289, 373, 190, 191, 64, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 328, 295, 296, -68, -68, -67, -67, + 99, 351, -66, -66, -65, -65, 297, 298, 100, 101, + 506, 114, 507, 561, 102, 89, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 352, 103, -109, 115, + 116, 122, 189, 193, 194, 195, 216, 226, 217, 220, + -72, -71, -70, 353, -69, 332, 371, 421, -75, 423, + 424, 425, -76, 300, 301, 333, 430, 354, 356, 359, + 89, 372, 224, 360, 369, 361, 362, 374, 392, 363, + 364, 365, 370, 375, 403, 406, 326, 381, 382, 383, + 322, 384, 420, 458, 385, 393, 394, 395, 396, 397, + 346, 404, 409, 410, 417, 346, 346, 440, 441, 442, + 443, 444, 426, 427, 428, 433, 434, 346, 438, 449, + 450, 451, 452, 453, 439, 460, 461, 462, 348, 349, + 466, 463, 464, 470, 480, 472, 473, 474, 481, 494, + 350, 478, 486, 487, 224, 422, 224, 224, 224, 496, + 346, 401, 429, 224, 488, 518, 489, 528, 346, 346, + 346, 491, 492, 529, 483, 484, 415, 548, 511, 512, + 513, 490, 493, 358, 495, 498, 505, 508, 510, 516, + 517, 366, 367, 368, 552, 563, 328, 530, 570, 534, + 531, 532, 536, 540, 543, 539, 572, 574, 541, 575, + 224, 97, 542, 179, 533, 180, 380, 544, 181, 545, + 546, 547, 519, 520, 521, 522, 479, 523, 524, 525, + 553, 527, 554, 555, 239, 564, 240, 346, 346, 346, + 565, 567, 566, 571, 182, 346, 57, 183, 456, 222, + 105, 321, 537, 538, 239, 224, 240, 346, 346, 455, + 411, 412, 413, 113, 27, 224, 224, 224, 419, 379, + 45, 224, 469, 514, 485, 556, 0, 557, 558, 0, + 431, 432, 0, 0, 0, 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 66, 0, 0, 0, 0, 0, 543, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 21, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 307, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 577, 0, 0, 0, 0, 0, 0, 581, 0, - 0, 0, 584, 585, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 309, 310, 65, 66, 0, 117, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 20, 0, 21, 0, 0, 0, 0, 0, 311, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 0, 312, 172, 173, 174, 81, 313, 314, - 315, 0, 0, 0, 0, 0, 0, 0, 316, 0, - 0, 317, 0, 318, 65, 66, 319, 117, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 79, - 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 338, 339, 65, 66, 340, 0, 0, 81, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 0, 21, 0, 341, 342, 343, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 344, 345, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 0, 83, 0, 0, 84, 0, 85, 118, 346, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 134, 135, 136, 137, 138, + 346, 224, 346, 0, 0, 0, 346, 0, 0, 0, + 0, 0, 346, 346, 346, 0, 0, 0, 0, 0, + 0, 0, 0, 465, 0, 467, 0, 0, 0, 471, + 0, 0, 0, 0, 0, 475, 476, 477, 0, 0, + 0, 0, 0, 0, 0, 0, 346, 346, 0, 346, + 346, 0, 0, 0, 0, 0, 346, 0, 0, 0, + 0, 0, 0, 0, 0, 346, 0, 0, 0, 499, + 500, 0, 503, 504, 0, 0, 0, 0, -78, 509, + 20, 0, 21, 0, 0, 0, 0, 0, 515, 6, + -78, -78, 0, 0, 0, 0, 346, 0, 0, -78, + -78, -78, -78, -78, -78, -78, 0, 0, -78, 22, + 0, 0, 65, 66, 0, 0, 23, 0, 0, 535, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 0, 21, 0, 302, 346, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 0, 0, 346, + 0, 0, 0, 0, 0, 0, 346, 559, 0, 0, + 346, 346, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 569, 0, 0, 0, 0, 0, 0, 573, + 0, 0, 0, 576, 577, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 309, 310, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 0, 83, 0, 0, 84, 0, 85, 396, 0, 0, - 311, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 0, 312, 172, 173, 174, 0, 313, - 314, 315, 338, 339, 0, 0, 340, 0, 0, 0, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 344, 345, 0, + 149, 150, 151, 305, 306, 65, 66, 0, 117, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 20, 0, 21, 0, 0, 0, 0, 0, + 307, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 0, 308, 172, 173, 174, 81, 309, + 310, 311, 0, 0, 0, 0, 0, 312, 0, 0, + 313, 0, 314, 65, 66, 315, 117, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 79, 80, + 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 334, 335, 65, 66, + 336, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 0, 21, 0, 337, + 338, 339, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 340, 341, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 0, 0, 84, 342, 85, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 305, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 0, + 0, 84, 0, 85, 390, 0, 307, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, + 308, 172, 173, 174, 0, 309, 310, 311, 334, 335, + 0, 0, 336, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 309, 310, 65, 66, 0, - 117, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 79, 80, 20, 0, 21, 0, 0, 0, - 0, 0, 311, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 0, 312, 172, 173, 174, - 81, 313, 314, 315, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 66, 347, 117, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, - 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 81, 117, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, - 0, 82, 0, 0, 83, 0, 392, 84, 0, 85, - 65, 66, 0, 117, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 20, 0, 21, + 0, 337, 338, 339, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 340, 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 411, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 81, 0, 0, 82, 0, 0, 83, - 0, 0, 84, 0, 85, 0, 65, 66, 0, 117, + 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 305, 306, 65, 66, 0, 117, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 79, 80, + 20, 0, 21, 0, 0, 0, 0, 0, 307, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 0, 308, 172, 173, 174, 81, 309, 310, 311, + 0, 0, 0, 0, 0, 0, 65, 66, 343, 117, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 82, 462, 0, - 83, 0, 0, 84, 0, 85, 0, 65, 66, 81, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 20, 0, 21, 65, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 81, 117, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, 0, - 81, 0, 0, 0, 82, 0, 0, 83, 0, 0, - 84, 0, 85, 0, 0, 0, 0, 0, 65, 66, - 81, 117, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 79, 80, 20, 0, 21, 65, 66, - 0, 229, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, - 82, 81, 0, 83, 0, 0, 84, 0, 85, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 82, 0, 0, 83, 0, 0, 84, 0, 85, + 81, 0, 0, 0, 0, 82, 0, 0, 83, 0, + 386, 84, 0, 85, 65, 66, 0, 117, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, + 0, 83, 0, 0, 84, 0, 85, 0, 65, 66, + 0, 117, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, + 454, 0, 83, 0, 0, 84, 0, 85, 0, 65, + 66, 81, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 20, 0, 21, 65, + 66, 0, 117, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, + 0, 0, 81, 0, 0, 0, 82, 0, 0, 83, + 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, + 0, 0, 81, 0, 65, 66, 0, 117, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 79, + 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 0, 0, 84, 81, 85, 65, + 66, 0, 227, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, + 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 0, 0, 84, 125, 85, + 0, 0, 81, 0, 0, 0, 0, 0, 126, 127, 0, 82, 0, 0, 83, 0, 0, 84, 0, 85, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, - 0, 0, 82, 0, 0, 83, 0, 0, 84, 125, - 85, 0, 0, 0, 0, 0, 0, 0, 0, 126, - 127, 0, 82, 0, 0, 83, 0, 0, 84, 0, - 85, 0, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, - 156, 0, 0, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180 + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 0, 0, 84, 0, 85, 0, 0, 154, 155, 156, + 0, 0, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 0, 0, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 0, 0, 84, 0, 85 }; static const short int yycheck[] = { - 37, 125, 85, 130, 128, 130, 3, 274, 53, 131, - 34, 216, 297, 298, 539, 15, 53, 15, 112, 317, - 318, 226, 23, 558, 9, 29, 231, 232, 0, 30, - 148, 148, 156, 57, 559, 570, 21, 150, 243, 122, - 158, 158, 327, 154, 41, 61, 159, 171, 159, 347, - 148, 175, 176, 177, 178, 179, 180, 57, 156, 57, - 184, 185, 148, 148, 23, 187, 52, 53, 54, 154, - 156, 276, 109, 110, 111, 45, 156, 47, 148, 159, - 147, 286, 287, 288, 154, 71, 61, 22, 125, 24, - 87, 128, 10, 11, 12, 13, 14, 15, 16, 17, - 20, 32, 33, 10, 11, 12, 13, 14, 15, 16, - 17, 55, 56, 57, 55, 56, 147, 154, 155, 156, - 157, 41, 42, 43, 44, 45, 46, 47, 121, 122, - 50, 27, 28, 170, 171, 218, 219, 220, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 0, - 355, 356, 357, 157, 24, 3, 4, 158, 363, 4, - 445, 10, 11, 12, 13, 14, 15, 16, 17, 293, - 3, 4, 377, 378, 25, 3, 4, 3, 4, 147, - 31, 3, 4, 147, 147, 222, 147, 152, 150, 4, - 41, 42, 43, 44, 45, 46, 47, 4, 4, 244, - 150, 24, 4, 24, 24, 153, 473, 244, 475, 59, - 153, 62, 150, 4, 7, 420, 4, 422, 255, 4, - 4, 426, 64, 65, 66, 67, 68, 69, 70, 434, - 435, 436, 7, 4, 7, 272, 154, 27, 28, 148, - 151, 365, 148, 367, 368, 369, 291, 154, 148, 152, - 148, 148, 376, 336, 291, 292, 293, 148, 148, 148, - 148, 148, 148, 468, 469, 148, 471, 472, 36, 24, - 148, 150, 24, 478, 150, 150, 150, 150, 150, 150, - 148, 150, 487, 150, 150, 63, 151, 148, 148, 148, - 152, 231, 232, 387, 388, 389, 390, 391, 150, 34, - 24, 148, 148, 243, 148, 399, 400, 401, 402, 403, - 148, 150, 21, 518, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 365, 366, - 367, 368, 369, 370, 371, 332, 276, 21, 375, 376, - 150, 4, 150, 148, 148, 148, 286, 287, 288, 148, - 148, 556, 446, 447, 148, 24, 480, 481, 482, 453, - 4, 148, 148, 36, 57, 148, 571, 148, 148, 148, - 4, 148, 409, 578, 148, 151, 148, 582, 583, 148, - 57, 148, 148, 148, 148, 24, 423, 148, 21, 152, - 36, 151, 516, 151, 148, 154, 21, 148, 151, 148, - 494, 495, 496, 497, 441, 499, 500, 501, 151, 503, - 151, 151, 539, 151, 539, 355, 356, 357, 151, 151, - 154, 151, 151, 363, 151, 151, 148, 21, 148, 76, - 524, 525, 559, 470, 559, 21, 21, 377, 378, 97, - 97, 97, 97, 480, 481, 482, 20, 97, 22, 486, - 24, 309, 41, 547, 310, 549, 550, 31, 32, 33, - 25, 410, 122, 409, 52, 502, 216, 41, 42, 43, - 44, 45, 46, 47, 61, 3, 50, 51, 19, 516, - 420, 423, 422, 486, 58, -1, 426, -1, 62, -1, - 448, -1, -1, -1, 434, 435, 436, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 468, 469, - -1, 471, 472, -1, -1, -1, -1, -1, 478, -1, - -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5, 6, -1, -1, -1, -1, -1, 518, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - 24, -1, 26, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, 39, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 556, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 571, -1, -1, -1, -1, -1, -1, 578, -1, - -1, -1, 582, 583, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 5, 6, -1, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, -1, 24, -1, -1, -1, -1, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, -1, 137, 138, 139, 140, 48, 142, 143, - 144, -1, -1, -1, -1, -1, -1, -1, 152, -1, - -1, 155, -1, 157, 5, 6, 160, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 7, -1, -1, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, 24, -1, 26, 27, 28, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 149, -1, - -1, 152, -1, -1, 155, -1, 157, 158, 61, -1, + 37, 125, 53, 130, 128, 130, 3, 272, 15, 293, + 294, 29, 154, 15, 34, 157, 53, 131, 112, 85, + 10, 11, 12, 13, 14, 15, 16, 17, 23, 531, + 313, 314, 156, 9, 550, 30, 146, 57, 146, 323, + 0, 45, 152, 47, 41, 21, 562, 171, 156, 551, + 57, 175, 176, 177, 178, 57, 122, 20, 182, 183, + 343, 10, 11, 12, 13, 14, 15, 16, 17, 0, + 146, 185, 109, 110, 111, 146, 152, 61, 41, 42, + 43, 44, 45, 46, 47, 156, 148, 50, 125, 146, + 87, 128, 27, 28, 25, 157, 152, 154, 146, 23, + 31, 157, 52, 53, 54, 145, 154, 55, 56, 57, + 41, 42, 43, 44, 45, 46, 47, 154, 155, 156, + 157, 71, 10, 11, 12, 13, 14, 15, 16, 17, + 145, 62, 61, 170, 171, 32, 33, 155, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 22, 24, 24, + 216, 217, 218, 437, 64, 65, 66, 67, 68, 69, + 70, 156, 152, 121, 122, 289, 55, 56, 4, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 220, 27, 28, 3, 4, 3, 4, + 145, 242, 3, 4, 3, 4, 3, 4, 145, 145, + 465, 4, 467, 152, 145, 242, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 253, 150, 148, 4, + 4, 148, 24, 4, 24, 24, 151, 59, 151, 148, + 4, 4, 4, 270, 4, 146, 287, 361, 7, 363, + 364, 365, 7, 4, 7, 149, 370, 146, 146, 150, + 287, 288, 289, 146, 36, 146, 146, 24, 24, 146, + 146, 146, 146, 146, 146, 63, 332, 148, 148, 148, + 214, 148, 150, 24, 148, 148, 148, 148, 148, 148, + 224, 149, 146, 146, 146, 229, 230, 381, 382, 383, + 384, 385, 146, 146, 146, 146, 34, 241, 148, 393, + 394, 395, 396, 397, 148, 21, 21, 148, 229, 230, + 4, 146, 146, 146, 24, 146, 146, 146, 4, 36, + 241, 148, 146, 146, 361, 362, 363, 364, 365, 57, + 274, 328, 369, 370, 146, 149, 146, 4, 282, 283, + 284, 146, 146, 24, 438, 439, 57, 21, 472, 473, + 474, 445, 146, 274, 146, 146, 146, 146, 146, 146, + 146, 282, 283, 284, 36, 21, 403, 146, 21, 152, + 150, 149, 149, 149, 149, 146, 76, 21, 146, 21, + 417, 41, 146, 97, 508, 97, 306, 149, 97, 149, + 149, 149, 486, 487, 488, 489, 433, 491, 492, 493, + 152, 495, 149, 149, 531, 149, 531, 351, 352, 353, + 149, 146, 149, 146, 97, 359, 25, 97, 404, 122, + 52, 214, 516, 517, 551, 462, 551, 371, 372, 403, + 351, 352, 353, 61, 3, 472, 473, 474, 359, 305, + 19, 478, 417, 478, 440, 539, -1, 541, 542, -1, + 371, 372, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, + 414, 508, 416, -1, -1, -1, 420, -1, -1, -1, + -1, -1, 426, 427, 428, -1, -1, -1, -1, -1, + -1, -1, -1, 414, -1, 416, -1, -1, -1, 420, + -1, -1, -1, -1, -1, 426, 427, 428, -1, -1, + -1, -1, -1, -1, -1, -1, 460, 461, -1, 463, + 464, -1, -1, -1, -1, -1, 470, -1, -1, -1, + -1, -1, -1, -1, -1, 479, -1, -1, -1, 460, + 461, -1, 463, 464, -1, -1, -1, -1, 20, 470, + 22, -1, 24, -1, -1, -1, -1, -1, 479, 31, + 32, 33, -1, -1, -1, -1, 510, -1, -1, 41, + 42, 43, 44, 45, 46, 47, -1, -1, 50, 51, + -1, -1, 5, 6, -1, -1, 58, -1, -1, 510, + 62, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, 24, -1, 26, 548, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 38, 39, -1, -1, 563, + -1, -1, -1, -1, -1, -1, 570, 548, -1, -1, + 574, 575, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 563, -1, -1, -1, -1, -1, -1, 570, + -1, -1, -1, 574, 575, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 149, -1, - -1, 152, -1, -1, 155, -1, 157, 158, -1, -1, + 93, 94, 95, 96, 97, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, - 143, 144, 3, 4, -1, -1, 7, -1, -1, -1, - -1, -1, 155, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 26, 27, 28, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 5, 6, -1, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, - 48, 142, 143, 144, -1, -1, -1, -1, -1, -1, - -1, -1, 5, 6, 155, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, - -1, -1, -1, 5, 6, 48, 8, 9, 10, 11, + 133, 134, 135, -1, 137, 138, 139, 140, 48, 142, + 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, + 153, -1, 155, 5, 6, 158, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, - -1, 149, -1, -1, 152, -1, 154, 155, -1, 157, - 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, -1, -1, -1, -1, -1, 48, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, 24, -1, 26, + 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 38, 39, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, + 150, -1, -1, 153, 61, 155, 156, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 147, -1, -1, 150, -1, + -1, 153, -1, 155, 156, -1, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + 137, 138, 139, 140, -1, 142, 143, 144, 3, 4, + -1, -1, 7, -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 48, -1, -1, 149, -1, -1, 152, - -1, -1, 155, -1, 157, -1, 5, 6, -1, 8, + -1, 26, 27, 28, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 38, 39, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 5, 6, -1, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, -1, 24, -1, -1, -1, -1, -1, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, 137, 138, 139, 140, 48, 142, 143, 144, + -1, -1, -1, -1, -1, -1, 5, 6, 153, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 149, 37, -1, - 152, -1, -1, 155, -1, 157, -1, 5, 6, 48, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, -1, 24, 5, 6, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 6, 48, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, - 48, -1, -1, -1, 149, -1, -1, 152, -1, -1, - 155, -1, 157, -1, -1, -1, -1, -1, 5, 6, - 48, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, -1, 24, 5, 6, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 48, -1, -1, -1, -1, 147, -1, -1, 150, -1, + 152, 153, -1, 155, 5, 6, -1, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 147, -1, + -1, 150, -1, -1, 153, -1, 155, -1, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, - 149, 48, -1, 152, -1, -1, 155, -1, 157, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 149, -1, -1, 152, -1, -1, 155, -1, 157, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 149, -1, -1, 152, -1, -1, 155, -1, 157, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, - -1, -1, 149, -1, -1, 152, -1, -1, 155, 49, - 157, -1, -1, -1, -1, -1, -1, -1, -1, 59, - 60, -1, 149, -1, -1, 152, -1, -1, 155, -1, - 157, -1, 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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, + 37, -1, 150, -1, -1, 153, -1, 155, -1, 5, + 6, 48, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, -1, 24, 5, + 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, + -1, -1, 48, -1, -1, -1, 147, -1, -1, 150, + -1, -1, 153, -1, 155, -1, -1, -1, -1, -1, + -1, -1, 48, -1, 5, 6, -1, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, - 120, -1, -1, 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, -1, -1, 150, -1, -1, 153, 48, 155, 5, + 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, + -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, + -1, 147, -1, -1, 150, -1, -1, 153, 49, 155, + -1, -1, 48, -1, -1, -1, -1, -1, 59, 60, + -1, 147, -1, -1, 150, -1, -1, 153, -1, 155, + -1, 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, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 147, -1, -1, 150, + -1, -1, 153, -1, 155, -1, -1, 118, 119, 120, + -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, + -1, 147, -1, -1, 150, -1, -1, 153, -1, 155 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 195, 196, 197, 0, 25, 31, 41, 42, 43, - 44, 45, 46, 47, 62, 176, 214, 216, 218, 225, - 22, 24, 51, 58, 62, 175, 207, 218, 219, 61, - 64, 65, 66, 67, 68, 69, 70, 177, 212, 23, - 226, 227, 30, 158, 215, 226, 52, 53, 54, 71, - 204, 147, 61, 20, 45, 47, 50, 176, 147, 45, - 47, 217, 24, 202, 4, 5, 6, 8, 9, 10, + 0, 193, 194, 195, 0, 25, 31, 41, 42, 43, + 44, 45, 46, 47, 62, 174, 212, 214, 216, 223, + 22, 24, 51, 58, 62, 173, 205, 216, 217, 61, + 64, 65, 66, 67, 68, 69, 70, 175, 210, 23, + 224, 225, 30, 156, 213, 224, 52, 53, 54, 71, + 202, 145, 61, 20, 45, 47, 50, 174, 145, 45, + 47, 215, 24, 200, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 48, 149, 152, 155, 157, 162, 184, 185, 186, - 187, 188, 207, 222, 29, 157, 213, 175, 230, 147, - 147, 147, 147, 152, 205, 202, 184, 32, 33, 194, - 194, 194, 194, 212, 4, 4, 4, 8, 158, 188, - 189, 207, 150, 159, 35, 49, 59, 60, 72, 73, + 21, 48, 147, 150, 153, 155, 160, 182, 183, 184, + 185, 186, 205, 220, 29, 155, 211, 173, 228, 145, + 145, 145, 145, 150, 203, 200, 182, 32, 33, 192, + 192, 192, 192, 210, 4, 4, 4, 8, 156, 186, + 187, 205, 148, 157, 35, 49, 59, 60, 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, 118, 119, 120, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 164, 165, 166, 167, 168, 228, 234, 235, 237, - 238, 24, 55, 56, 203, 4, 24, 24, 206, 186, - 186, 186, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 171, 172, 174, 186, 191, 153, 153, - 148, 158, 150, 37, 189, 190, 186, 224, 59, 8, - 224, 9, 21, 10, 11, 12, 13, 14, 15, 16, - 17, 171, 172, 173, 177, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 169, 27, 28, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 170, 186, 186, 224, 186, 186, 231, 224, - 224, 224, 224, 224, 224, 224, 186, 186, 186, 224, - 224, 177, 121, 122, 148, 154, 200, 201, 199, 27, - 28, 3, 4, 163, 4, 7, 26, 38, 39, 96, - 97, 123, 137, 142, 143, 144, 152, 155, 157, 160, - 164, 165, 166, 167, 168, 192, 222, 198, 188, 188, - 188, 37, 186, 209, 210, 211, 148, 151, 3, 4, - 7, 26, 27, 28, 38, 39, 61, 155, 192, 221, - 222, 223, 223, 223, 223, 184, 186, 186, 148, 179, - 148, 179, 223, 152, 148, 148, 148, 148, 148, 148, - 148, 148, 223, 223, 223, 36, 148, 184, 186, 224, - 24, 148, 182, 182, 182, 169, 170, 150, 150, 150, - 150, 150, 154, 191, 193, 193, 158, 193, 24, 150, - 150, 150, 150, 150, 182, 154, 156, 207, 208, 148, - 151, 37, 63, 220, 193, 148, 148, 223, 223, 223, - 15, 57, 15, 148, 236, 223, 152, 224, 186, 224, - 224, 224, 186, 186, 148, 148, 148, 186, 224, 223, - 223, 148, 34, 57, 180, 183, 150, 150, 191, 191, - 191, 191, 191, 148, 154, 156, 158, 191, 191, 191, - 191, 191, 37, 209, 180, 181, 24, 156, 21, 21, - 150, 148, 148, 223, 4, 223, 224, 232, 148, 223, - 148, 148, 148, 223, 223, 223, 150, 186, 24, 4, - 182, 191, 191, 236, 148, 148, 148, 148, 191, 148, - 148, 148, 36, 148, 57, 178, 148, 223, 223, 232, - 233, 223, 223, 148, 179, 179, 148, 223, 148, 224, - 224, 224, 233, 223, 148, 148, 151, 191, 191, 191, - 191, 191, 191, 191, 186, 191, 4, 24, 148, 152, - 151, 224, 154, 223, 151, 191, 191, 148, 151, 148, - 148, 151, 151, 151, 151, 151, 21, 154, 173, 229, - 36, 154, 151, 151, 191, 191, 191, 223, 221, 154, - 173, 21, 151, 151, 151, 148, 221, 223, 21, 148, - 76, 223, 21, 21, 223, 223 + 136, 137, 138, 139, 140, 141, 142, 143, 144, 162, + 163, 164, 165, 166, 226, 232, 233, 235, 236, 24, + 55, 56, 201, 4, 24, 24, 204, 184, 184, 184, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 169, 170, 172, 184, 189, 151, 151, 146, 156, + 148, 37, 187, 188, 184, 222, 59, 8, 222, 9, + 21, 10, 11, 12, 13, 14, 15, 16, 17, 169, + 170, 171, 175, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 167, 27, 28, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 168, 184, 184, 222, 184, 184, 229, 222, 222, 222, + 222, 222, 184, 184, 184, 222, 222, 175, 121, 122, + 146, 152, 198, 199, 197, 27, 28, 3, 4, 161, + 4, 7, 26, 38, 39, 96, 97, 123, 137, 142, + 143, 144, 150, 153, 155, 158, 162, 163, 164, 165, + 166, 190, 220, 196, 186, 186, 186, 37, 184, 207, + 208, 209, 146, 149, 3, 4, 7, 26, 27, 28, + 38, 39, 61, 153, 190, 219, 220, 221, 221, 221, + 221, 182, 184, 184, 146, 177, 146, 177, 221, 150, + 146, 146, 146, 146, 146, 146, 221, 221, 221, 36, + 146, 182, 184, 222, 24, 146, 180, 180, 180, 167, + 168, 148, 148, 148, 148, 148, 152, 189, 191, 191, + 156, 191, 24, 148, 148, 148, 148, 148, 180, 152, + 154, 205, 206, 146, 149, 37, 63, 218, 191, 146, + 146, 221, 221, 221, 15, 57, 15, 146, 234, 221, + 150, 222, 184, 222, 222, 222, 146, 146, 146, 184, + 222, 221, 221, 146, 34, 57, 178, 181, 148, 148, + 189, 189, 189, 189, 189, 146, 152, 154, 156, 189, + 189, 189, 189, 189, 37, 207, 178, 179, 24, 154, + 21, 21, 148, 146, 146, 221, 4, 221, 222, 230, + 146, 221, 146, 146, 146, 221, 221, 221, 148, 184, + 24, 4, 180, 189, 189, 234, 146, 146, 146, 146, + 189, 146, 146, 146, 36, 146, 57, 176, 146, 221, + 221, 230, 231, 221, 221, 146, 177, 177, 146, 221, + 146, 222, 222, 222, 231, 221, 146, 146, 149, 189, + 189, 189, 189, 189, 189, 189, 184, 189, 4, 24, + 146, 150, 149, 222, 152, 221, 149, 189, 189, 146, + 149, 146, 146, 149, 149, 149, 149, 149, 21, 152, + 171, 227, 36, 152, 149, 149, 189, 189, 189, 221, + 219, 152, 171, 21, 149, 149, 149, 146, 219, 221, + 21, 146, 76, 221, 21, 21, 221, 221 }; #define yyerrok (yyerrstatus = 0) @@ -3133,7 +3003,7 @@ switch (yyn) { case 3: -#line 1104 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3143,7 +3013,7 @@ break; case 5: -#line 1113 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1002 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3153,137 +3023,137 @@ break; case 39: -#line 1130 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;} break; case 40: -#line 1130 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;} break; case 41: -#line 1131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;} break; case 42: -#line 1131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;} break; case 43: -#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;} break; case 44: -#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;} break; case 45: -#line 1133 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1022 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;} break; case 46: -#line 1133 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1022 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;} break; case 47: -#line 1134 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1023 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;} break; case 48: -#line 1134 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1023 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;} break; case 49: -#line 1138 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;} break; case 50: -#line 1138 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;} break; case 51: -#line 1139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;} break; case 52: -#line 1139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;} break; case 53: -#line 1140 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;} break; case 54: -#line 1140 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;} break; case 55: -#line 1141 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;} break; case 56: -#line 1141 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;} break; case 57: -#line 1142 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;} break; case 58: -#line 1142 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;} break; case 59: -#line 1143 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;} break; case 60: -#line 1143 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;} break; case 61: -#line 1144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;} break; case 62: -#line 1144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;} break; case 63: -#line 1145 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1034 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;} break; case 64: -#line 1146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1035 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;} break; case 77: -#line 1157 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1046 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[-1].StrVal); CHECK_FOR_ERROR @@ -3291,7 +3161,7 @@ break; case 78: -#line 1161 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1050 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; CHECK_FOR_ERROR @@ -3299,82 +3169,82 @@ break; case 79: -#line 1166 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1055 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 80: -#line 1167 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 81: -#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1057 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 82: -#line 1169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 83: -#line 1170 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 84: -#line 1171 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1060 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 85: -#line 1172 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1061 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 86: -#line 1173 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 87: -#line 1175 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 88: -#line 1176 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1065 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 89: -#line 1177 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1066 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::CSRet; ;} break; case 90: -#line 1178 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1067 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Fast; ;} break; case 91: -#line 1179 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Cold; ;} break; case 92: -#line 1180 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} break; case 93: -#line 1181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1070 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} break; case 94: -#line 1182 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) GEN_ERROR("Calling conv too large!"); @@ -3384,12 +3254,12 @@ break; case 95: -#line 1191 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1080 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 96: -#line 1192 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3399,12 +3269,12 @@ break; case 97: -#line 1198 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1087 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 98: -#line 1199 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1088 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3414,7 +3284,7 @@ break; case 99: -#line 1207 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1096 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') @@ -3425,27 +3295,27 @@ break; case 100: -#line 1215 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1104 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 101: -#line 1216 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[0].StrVal); ;} break; case 102: -#line 1221 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" {;} break; case 103: -#line 1222 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" {;} break; case 104: -#line 1223 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1112 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV->setSection((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -3454,7 +3324,7 @@ break; case 105: -#line 1228 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1117 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) GEN_ERROR("Alignment must be a power of two!"); @@ -3464,17 +3334,17 @@ break; case 107: -#line 1242 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} break; case 109: -#line 1243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} break; case 110: -#line 1245 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1134 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription()); @@ -3484,7 +3354,7 @@ break; case 124: -#line 1257 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder(OpaqueType::get()); CHECK_FOR_ERROR @@ -3492,7 +3362,7 @@ break; case 125: -#line 1261 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1150 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); CHECK_FOR_ERROR @@ -3500,7 +3370,7 @@ break; case 126: -#line 1265 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1154 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... const Type* tmp = getTypeVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -3509,7 +3379,7 @@ break; case 127: -#line 1273 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1162 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Type UpReference if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder @@ -3521,7 +3391,7 @@ break; case 128: -#line 1281 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1170 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector Params; for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3538,7 +3408,7 @@ break; case 129: -#line 1294 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1183 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Sized array type? (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val)))); delete (yyvsp[-1].TypeVal); @@ -3547,7 +3417,7 @@ break; case 130: -#line 1299 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1188 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Packed array type? const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get(); if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) @@ -3563,7 +3433,7 @@ break; case 131: -#line 1311 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1200 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector Elements; for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3577,7 +3447,7 @@ break; case 132: -#line 1321 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector())); CHECK_FOR_ERROR @@ -3585,7 +3455,7 @@ break; case 133: -#line 1325 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1214 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Pointer type? if (*(yyvsp[-1].TypeVal) == Type::LabelTy) GEN_ERROR("Cannot form a pointer to a basic block"); @@ -3596,7 +3466,7 @@ break; case 134: -#line 1336 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1225 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); @@ -3605,7 +3475,7 @@ break; case 135: -#line 1341 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1230 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); CHECK_FOR_ERROR @@ -3613,7 +3483,7 @@ break; case 137: -#line 1348 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1237 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(Type::VoidTy); CHECK_FOR_ERROR @@ -3621,7 +3491,7 @@ break; case 138: -#line 1352 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList) = new std::list())->push_back(Type::VoidTy); CHECK_FOR_ERROR @@ -3629,7 +3499,7 @@ break; case 139: -#line 1356 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1245 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); CHECK_FOR_ERROR @@ -3637,7 +3507,7 @@ break; case 140: -#line 1367 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1256 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (ATy == 0) @@ -3667,7 +3537,7 @@ break; case 141: -#line 1393 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1282 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (ATy == 0) @@ -3685,7 +3555,7 @@ break; case 142: -#line 1407 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1296 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (ATy == 0) @@ -3719,7 +3589,7 @@ break; case 143: -#line 1437 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1326 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const PackedType *PTy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (PTy == 0) @@ -3749,7 +3619,7 @@ break; case 144: -#line 1463 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1352 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (STy == 0) @@ -3774,7 +3644,7 @@ break; case 145: -#line 1484 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1373 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (STy == 0) @@ -3791,7 +3661,7 @@ break; case 146: -#line 1497 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1386 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PTy = dyn_cast((yyvsp[-1].TypeVal)->get()); if (PTy == 0) @@ -3805,7 +3675,7 @@ break; case 147: -#line 1507 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1396 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get()); delete (yyvsp[-1].TypeVal); @@ -3814,7 +3684,7 @@ break; case 148: -#line 1512 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1401 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *Ty = dyn_cast((yyvsp[-1].TypeVal)->get()); if (Ty == 0) @@ -3879,7 +3749,7 @@ break; case 149: -#line 1573 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1462 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType()) GEN_ERROR("Mismatched types for constant expression!"); @@ -3890,7 +3760,7 @@ break; case 150: -#line 1580 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1469 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[-1].TypeVal)->get(); if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) @@ -3902,7 +3772,7 @@ break; case 151: -#line 1588 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1477 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); @@ -3912,7 +3782,7 @@ break; case 152: -#line 1594 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1483 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); @@ -3922,7 +3792,7 @@ break; case 153: -#line 1600 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1489 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getTrue(); CHECK_FOR_ERROR @@ -3930,7 +3800,7 @@ break; case 154: -#line 1604 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1493 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getFalse(); CHECK_FOR_ERROR @@ -3938,7 +3808,7 @@ break; case 155: -#line 1608 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1497 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal))) GEN_ERROR("Floating point constant invalid for type!!"); @@ -3948,7 +3818,7 @@ break; case 156: -#line 1616 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1505 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Constant *Val = (yyvsp[-3].ConstVal); const Type *Ty = (yyvsp[-1].TypeVal)->get(); @@ -3964,7 +3834,7 @@ break; case 157: -#line 1628 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1517 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-2].ConstVal)->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); @@ -3989,7 +3859,7 @@ break; case 158: -#line 1649 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1538 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy) GEN_ERROR("Select condition must be of boolean type!"); @@ -4001,7 +3871,7 @@ break; case 159: -#line 1657 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1546 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Binary operator types must match!"); @@ -4011,7 +3881,7 @@ break; case 160: -#line 1663 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Logical operator types must match!"); @@ -4026,7 +3896,7 @@ break; case 161: -#line 1674 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1563 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("setcc operand types must match!"); @@ -4036,7 +3906,7 @@ break; case 162: -#line 1680 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1569 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("icmp operand types must match!"); @@ -4045,7 +3915,7 @@ break; case 163: -#line 1685 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1574 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("fcmp operand types must match!"); @@ -4054,7 +3924,7 @@ break; case 164: -#line 1690 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1579 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy) GEN_ERROR("Shift count for shift constant must be unsigned byte!"); @@ -4067,7 +3937,7 @@ break; case 165: -#line 1699 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1588 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -4077,7 +3947,7 @@ break; case 166: -#line 1705 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1594 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -4087,7 +3957,7 @@ break; case 167: -#line 1711 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1600 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -4097,7 +3967,7 @@ break; case 168: -#line 1720 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1609 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -4105,7 +3975,7 @@ break; case 169: -#line 1724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector) = new std::vector(); (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); @@ -4114,17 +3984,17 @@ break; case 170: -#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1621 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; ;} break; case 171: -#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1621 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; ;} break; case 172: -#line 1742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1631 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal); CurModule.ModuleDone(); @@ -4133,7 +4003,7 @@ break; case 173: -#line 1750 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1639 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); @@ -4142,7 +4012,7 @@ break; case 174: -#line 1755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1644 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4150,7 +4020,7 @@ break; case 175: -#line 1759 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1648 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); CHECK_FOR_ERROR @@ -4158,7 +4028,7 @@ break; case 176: -#line 1763 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1652 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4166,7 +4036,7 @@ break; case 177: -#line 1767 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1656 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -4183,7 +4053,7 @@ break; case 178: -#line 1782 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1671 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -4209,21 +4079,21 @@ break; case 179: -#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1693 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool CHECK_FOR_ERROR ;} break; case 180: -#line 1807 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1696 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Asm blocks can be in the const pool CHECK_FOR_ERROR ;} break; case 181: -#line 1810 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1699 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ConstVal) == 0) GEN_ERROR("Global value initializer is not a constant!"); @@ -4233,14 +4103,14 @@ break; case 182: -#line 1815 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1704 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ;} break; case 183: -#line 1818 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1707 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4249,7 +4119,7 @@ break; case 184: -#line 1822 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1711 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4257,7 +4127,7 @@ break; case 185: -#line 1826 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1715 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4266,7 +4136,7 @@ break; case 186: -#line 1830 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1719 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4274,7 +4144,7 @@ break; case 187: -#line 1834 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1723 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); @@ -4284,7 +4154,7 @@ break; case 188: -#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1728 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4292,27 +4162,27 @@ break; case 189: -#line 1843 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 190: -#line 1846 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 191: -#line 1849 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1738 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ;} break; case 192: -#line 1853 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); @@ -4328,17 +4198,17 @@ break; case 193: -#line 1866 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::BigEndian; ;} break; case 194: -#line 1867 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1756 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::LittleEndian; ;} break; case 195: -#line 1869 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1758 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness)); CHECK_FOR_ERROR @@ -4346,7 +4216,7 @@ break; case 196: -#line 1873 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1762 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); @@ -4359,7 +4229,7 @@ break; case 197: -#line 1882 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1771 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4367,7 +4237,7 @@ break; case 198: -#line 1886 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1775 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4375,7 +4245,7 @@ break; case 200: -#line 1893 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1782 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4384,7 +4254,7 @@ break; case 201: -#line 1898 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1787 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4393,19 +4263,19 @@ break; case 202: -#line 1903 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1792 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 206: -#line 1913 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1802 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 207: -#line 1915 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (*(yyvsp[-1].TypeVal) == Type::VoidTy) GEN_ERROR("void typed arguments are invalid!"); @@ -4415,7 +4285,7 @@ break; case 208: -#line 1922 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1811 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4425,7 +4295,7 @@ break; case 209: -#line 1928 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1817 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = new std::vector >(); (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4435,7 +4305,7 @@ break; case 210: -#line 1935 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1824 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[0].ArgList); CHECK_FOR_ERROR @@ -4443,7 +4313,7 @@ break; case 211: -#line 1939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1828 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyval.ArgList)->push_back(std::pair >(); (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); @@ -4462,7 +4332,7 @@ break; case 213: -#line 1950 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = 0; CHECK_FOR_ERROR @@ -4470,7 +4340,7 @@ break; case 214: -#line 1956 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1845 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { UnEscapeLexed((yyvsp[-5].StrVal)); std::string FunctionName((yyvsp[-5].StrVal)); @@ -4567,7 +4437,7 @@ break; case 217: -#line 2052 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1941 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; @@ -4578,7 +4448,7 @@ break; case 220: -#line 2062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1951 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4586,22 +4456,22 @@ break; case 222: -#line 2068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1957 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 223: -#line 2069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} break; case 224: -#line 2071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1960 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ;} break; case 225: -#line 2071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1960 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; CurFun.FunctionDone(); @@ -4610,7 +4480,7 @@ break; case 226: -#line 2081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1970 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4618,7 +4488,7 @@ break; case 227: -#line 2085 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1974 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4626,7 +4496,7 @@ break; case 228: -#line 2090 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1979 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); CHECK_FOR_ERROR @@ -4634,7 +4504,7 @@ break; case 229: -#line 2094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1983 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); CHECK_FOR_ERROR @@ -4642,7 +4512,7 @@ break; case 230: -#line 2098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1987 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); CHECK_FOR_ERROR @@ -4650,7 +4520,7 @@ break; case 231: -#line 2102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1991 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue()); CHECK_FOR_ERROR @@ -4658,7 +4528,7 @@ break; case 232: -#line 2106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1995 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse()); CHECK_FOR_ERROR @@ -4666,7 +4536,7 @@ break; case 233: -#line 2110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1999 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createNull(); CHECK_FOR_ERROR @@ -4674,7 +4544,7 @@ break; case 234: -#line 2114 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2003 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createUndef(); CHECK_FOR_ERROR @@ -4682,7 +4552,7 @@ break; case 235: -#line 2118 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2007 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A vector zero constant. (yyval.ValIDVal) = ValID::createZeroInit(); CHECK_FOR_ERROR @@ -4690,7 +4560,7 @@ break; case 236: -#line 2122 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2011 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType(); int NumElements = (yyvsp[-1].ConstVector)->size(); @@ -4719,7 +4589,7 @@ break; case 237: -#line 2147 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2036 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -4727,7 +4597,7 @@ break; case 238: -#line 2151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2040 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { char *End = UnEscapeLexed((yyvsp[-2].StrVal), true); std::string AsmStr = std::string((yyvsp[-2].StrVal), End); @@ -4741,7 +4611,7 @@ break; case 239: -#line 2165 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); CHECK_FOR_ERROR @@ -4749,7 +4619,7 @@ break; case 240: -#line 2169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); CHECK_FOR_ERROR @@ -4757,7 +4627,7 @@ break; case 243: -#line 2181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2070 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal); CHECK_FOR_ERROR @@ -4765,7 +4635,7 @@ break; case 244: -#line 2186 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2075 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4773,7 +4643,7 @@ break; case 245: -#line 2190 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2079 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4781,7 +4651,7 @@ break; case 246: -#line 2199 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2088 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal)); CHECK_FOR_ERROR @@ -4795,7 +4665,7 @@ break; case 247: -#line 2210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (CastInst *CI1 = dyn_cast((yyvsp[0].InstVal))) if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) @@ -4808,9 +4678,9 @@ break; case 248: -#line 2219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { - (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); + (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -4824,9 +4694,9 @@ break; case 249: -#line 2231 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2120 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { - (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true); + (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[0].StrVal)), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -4840,7 +4710,7 @@ break; case 250: -#line 2244 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2133 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with a result... (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal)); CHECK_FOR_ERROR @@ -4848,7 +4718,7 @@ break; case 251: -#line 2248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2137 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with no result... (yyval.TermInstVal) = new ReturnInst(); CHECK_FOR_ERROR @@ -4856,7 +4726,7 @@ break; case 252: -#line 2252 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2141 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -4865,7 +4735,7 @@ break; case 253: -#line 2257 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal)); CHECK_FOR_ERROR @@ -4878,7 +4748,7 @@ break; case 254: -#line 2266 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2155 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal)); CHECK_FOR_ERROR @@ -4901,7 +4771,7 @@ break; case 255: -#line 2285 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2174 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal)); CHECK_FOR_ERROR @@ -4914,7 +4784,7 @@ break; case 256: -#line 2295 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2184 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -4973,7 +4843,7 @@ break; case 257: -#line 2350 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2239 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnwindInst(); CHECK_FOR_ERROR @@ -4981,7 +4851,7 @@ break; case 258: -#line 2354 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnreachableInst(); CHECK_FOR_ERROR @@ -4989,7 +4859,7 @@ break; case 259: -#line 2361 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2250 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = (yyvsp[-5].JumpTable); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5004,7 +4874,7 @@ break; case 260: -#line 2372 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2261 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = new std::vector >(); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5020,7 +4890,7 @@ break; case 261: -#line 2385 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2274 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal)); @@ -5032,7 +4902,7 @@ break; case 262: -#line 2394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2283 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes (yyval.PHIList) = new std::list >(); Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal)); @@ -5045,7 +4915,7 @@ break; case 263: -#line 2403 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2292 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.PHIList) = (yyvsp[-6].PHIList); Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal)); @@ -5057,7 +4927,7 @@ break; case 264: -#line 2413 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2302 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... (yyval.ValueList) = new std::vector(); (yyval.ValueList)->push_back((yyvsp[0].ValueVal)); @@ -5065,7 +4935,7 @@ break; case 265: -#line 2417 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2306 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[-2].ValueList); (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal)); @@ -5074,12 +4944,12 @@ break; case 267: -#line 2424 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2313 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = 0; ;} break; case 268: -#line 2426 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2315 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -5087,7 +4957,7 @@ break; case 269: -#line 2430 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2319 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -5095,7 +4965,7 @@ break; case 270: -#line 2435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && !isa((*(yyvsp[-3].TypeVal)).get())) @@ -5118,7 +4988,7 @@ break; case 271: -#line 2454 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2343 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isIntegral()) { if (!isa((yyvsp[-3].TypeVal)->get()) || @@ -5137,7 +5007,7 @@ break; case 272: -#line 2469 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2358 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if(isa((*(yyvsp[-3].TypeVal)).get())) { GEN_ERROR( @@ -5155,7 +5025,7 @@ break; case 273: -#line 2483 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2372 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by icmp instruction"); @@ -5170,7 +5040,7 @@ break; case 274: -#line 2494 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2383 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by fcmp instruction"); @@ -5185,7 +5055,7 @@ break; case 275: -#line 2505 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { llvm_cerr << "WARNING: Use of eliminated 'not' instruction:" << " Replacing with 'xor'.\n"; @@ -5202,7 +5072,7 @@ break; case 276: -#line 2518 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2407 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy) GEN_ERROR("Shift amount must be ubyte!"); @@ -5215,7 +5085,7 @@ break; case 277: -#line 2527 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2416 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* Val = (yyvsp[-2].ValueVal); const Type* Ty = (yyvsp[0].TypeVal)->get(); @@ -5230,7 +5100,7 @@ break; case 278: -#line 2538 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2427 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy) GEN_ERROR("select condition must be boolean!"); @@ -5242,7 +5112,7 @@ break; case 279: -#line 2546 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { NewVarArgs = true; (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal)); @@ -5252,58 +5122,7 @@ break; case 280: -#line 2552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" - { - ObsoleteVarArgs = true; - const Type* ArgTy = (yyvsp[-2].ValueVal)->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vaarg a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //b = vaarg foo, t - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vaarg.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, (yyvsp[-2].ValueVal)); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - (yyval.InstVal) = new VAArgInst(foo, *(yyvsp[0].TypeVal)); - delete (yyvsp[0].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 281: -#line 2572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" - { - ObsoleteVarArgs = true; - const Type* ArgTy = (yyvsp[-2].ValueVal)->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vanext a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //tmp = vaarg foo, t - //b = load foo - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vanext.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, (yyvsp[-2].ValueVal)); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - Instruction* tmp = new VAArgInst(foo, *(yyvsp[0].TypeVal)); - CurBB->getInstList().push_back(tmp); - (yyval.InstVal) = new LoadInst(foo); - delete (yyvsp[0].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 282: -#line 2595 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2441 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -5312,8 +5131,8 @@ ;} break; - case 283: -#line 2601 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 281: +#line 2447 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -5322,8 +5141,8 @@ ;} break; - case 284: -#line 2607 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 282: +#line 2453 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -5332,8 +5151,8 @@ ;} break; - case 285: -#line 2613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 283: +#line 2459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[0].PHIList)->front().first->getType(); if (!Ty->isFirstClassType()) @@ -5351,8 +5170,8 @@ ;} break; - case 286: -#line 2628 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 284: +#line 2474 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy = 0; const FunctionType *Ty = 0; @@ -5414,48 +5233,48 @@ ;} break; - case 287: -#line 2687 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 285: +#line 2533 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = (yyvsp[0].InstVal); CHECK_FOR_ERROR ;} break; - case 288: -#line 2694 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 286: +#line 2540 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[0].ValueList); CHECK_FOR_ERROR ;} break; - case 289: -#line 2697 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 287: +#line 2543 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = new std::vector(); CHECK_FOR_ERROR ;} break; - case 290: -#line 2702 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 288: +#line 2548 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR ;} break; - case 291: -#line 2706 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 289: +#line 2552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR ;} break; - case 292: -#line 2713 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 290: +#line 2559 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5463,8 +5282,8 @@ ;} break; - case 293: -#line 2718 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 291: +#line 2564 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5473,8 +5292,8 @@ ;} break; - case 294: -#line 2724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 292: +#line 2570 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5482,8 +5301,8 @@ ;} break; - case 295: -#line 2729 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 293: +#line 2575 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5492,8 +5311,8 @@ ;} break; - case 296: -#line 2735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 294: +#line 2581 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[0].ValueVal)->getType())) GEN_ERROR("Trying to free nonpointer type " + @@ -5503,8 +5322,8 @@ ;} break; - case 297: -#line 2743 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 295: +#line 2589 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-1].TypeVal)->get())) GEN_ERROR("Can't load from nonpointer type: " + @@ -5519,8 +5338,8 @@ ;} break; - case 298: -#line 2755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 296: +#line 2601 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PT = dyn_cast((yyvsp[-1].TypeVal)->get()); if (!PT) @@ -5538,8 +5357,8 @@ ;} break; - case 299: -#line 2770 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" + case 297: +#line 2616 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-2].TypeVal)->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); @@ -5560,7 +5379,7 @@ } /* Line 1126 of yacc.c. */ -#line 5564 "llvmAsmParser.tab.c" +#line 5383 "llvmAsmParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -5828,7 +5647,7 @@ } -#line 2785 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2631 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" void llvm::GenerateError(const std::string &message, int LineNo) { Index: llvm/lib/AsmParser/llvmAsmParser.h.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.26 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.27 --- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.26 Sun Dec 3 23:24:24 2006 +++ llvm/lib/AsmParser/llvmAsmParser.h.cvs Tue Dec 5 17:29:42 2006 @@ -170,9 +170,7 @@ VAARG = 396, EXTRACTELEMENT = 397, INSERTELEMENT = 398, - SHUFFLEVECTOR = 399, - VAARG_old = 400, - VANEXT_old = 401 + SHUFFLEVECTOR = 399 }; #endif /* Tokens. */ @@ -318,14 +316,12 @@ #define EXTRACTELEMENT 397 #define INSERTELEMENT 398 #define SHUFFLEVECTOR 399 -#define VAARG_old 400 -#define VANEXT_old 401 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 967 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 857 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -369,7 +365,7 @@ llvm::FCmpInst::Predicate FPredicate; } YYSTYPE; /* Line 1447 of yacc.c. */ -#line 373 "llvmAsmParser.tab.h" +#line 369 "llvmAsmParser.tab.h" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.34 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.35 --- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.34 Tue Dec 5 13:16:11 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y.cvs Tue Dec 5 17:29:42 2006 @@ -64,9 +64,7 @@ #define YYERROR_VERBOSE 1 -static bool ObsoleteVarArgs; static bool NewVarArgs; -static BasicBlock *CurBB; static GlobalVariable *CurGV; @@ -811,7 +809,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - ObsoleteVarArgs = false; NewVarArgs = false; CurModule.CurrentModule = M; @@ -830,113 +827,6 @@ Module *Result = ParserResult; ParserResult = 0; - //Not all functions use vaarg, so make a second check for ObsoleteVarArgs - { - Function* F; - if ((F = Result->getNamedFunction("llvm.va_start")) - && F->getFunctionType()->getNumParams() == 0) - ObsoleteVarArgs = true; - if((F = Result->getNamedFunction("llvm.va_copy")) - && F->getFunctionType()->getNumParams() == 1) - ObsoleteVarArgs = true; - } - - if (ObsoleteVarArgs && NewVarArgs) { - GenerateError( - "This file is corrupt: it uses both new and old style varargs"); - return 0; - } - - if(ObsoleteVarArgs) { - if(Function* F = Result->getNamedFunction("llvm.va_start")) { - if (F->arg_size() != 0) { - GenerateError("Obsolete va_start takes 0 argument!"); - return 0; - } - - //foo = va_start() - // -> - //bar = alloca typeof(foo) - //va_start(bar) - //foo = load bar - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_start", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vastart.fix.1", CI); - new CallInst(NF, bar, "", CI); - Value* foo = new LoadInst(bar, "vastart.fix.2", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_end")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_end takes 1 argument!"); - return 0; - } - - //vaend foo - // -> - //bar = alloca 1 of typeof(foo) - //vaend bar - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getParamType(0); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_end", - RetTy, ArgTyPtr, (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); - new StoreInst(CI->getOperand(1), bar, CI); - new CallInst(NF, bar, "", CI); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - - if(Function* F = Result->getNamedFunction("llvm.va_copy")) { - if(F->arg_size() != 1) { - GenerateError("Obsolete va_copy takes 1 argument!"); - return 0; - } - //foo = vacopy(bar) - // -> - //a = alloca 1 of typeof(foo) - //b = alloca 1 of typeof(foo) - //store bar -> b - //vacopy(a, b) - //foo = load a - - const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); - const Type* ArgTy = F->getFunctionType()->getReturnType(); - const Type* ArgTyPtr = PointerType::get(ArgTy); - Function* NF = Result->getOrInsertFunction("llvm.va_copy", - RetTy, ArgTyPtr, ArgTyPtr, - (Type *)0); - - while (!F->use_empty()) { - CallInst* CI = cast(F->use_back()); - AllocaInst* a = new AllocaInst(ArgTy, 0, "vacopy.fix.1", CI); - AllocaInst* b = new AllocaInst(ArgTy, 0, "vacopy.fix.2", CI); - new StoreInst(CI->getOperand(1), b, CI); - new CallInst(NF, a, b, "", CI); - Value* foo = new LoadInst(a, "vacopy.fix.3", CI); - CI->replaceAllUsesWith(foo); - CI->getParent()->getInstList().erase(CI); - } - Result->getFunctionList().erase(F); - } - } - return Result; } @@ -1092,7 +982,6 @@ %type ShiftOps %token PHI_TOK SELECT SHL LSHR ASHR VAARG %token EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR -%token VAARG_old VANEXT_old //OBSOLETE %start Module @@ -2217,7 +2106,7 @@ CHECK_FOR_ERROR } | /* empty */ { - $$ = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); + $$ = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -2229,7 +2118,7 @@ CHECK_FOR_ERROR } | LABELSTR { - $$ = CurBB = getBBVal(ValID::create($1), true); + $$ = getBBVal(ValID::create($1), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -2549,49 +2438,6 @@ delete $4; CHECK_FOR_ERROR } - | VAARG_old ResolvedVal ',' Types { - ObsoleteVarArgs = true; - const Type* ArgTy = $2->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vaarg a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //b = vaarg foo, t - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vaarg.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, $2); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - $$ = new VAArgInst(foo, *$4); - delete $4; - CHECK_FOR_ERROR - } - | VANEXT_old ResolvedVal ',' Types { - ObsoleteVarArgs = true; - const Type* ArgTy = $2->getType(); - Function* NF = CurModule.CurrentModule-> - getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, (Type *)0); - - //b = vanext a, t -> - //foo = alloca 1 of t - //bar = vacopy a - //store bar -> foo - //tmp = vaarg foo, t - //b = load foo - AllocaInst* foo = new AllocaInst(ArgTy, 0, "vanext.fix"); - CurBB->getInstList().push_back(foo); - CallInst* bar = new CallInst(NF, $2); - CurBB->getInstList().push_back(bar); - CurBB->getInstList().push_back(new StoreInst(bar, foo)); - Instruction* tmp = new VAArgInst(foo, *$4); - CurBB->getInstList().push_back(tmp); - $$ = new LoadInst(foo); - delete $4; - CHECK_FOR_ERROR - } | EXTRACTELEMENT ResolvedVal ',' ResolvedVal { if (!ExtractElementInst::isValidOperands($2, $4)) GEN_ERROR("Invalid extractelement operands!"); From sabre at nondot.org Tue Dec 5 17:43:35 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 17:43:35 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll Message-ID: <200612052343.kB5NhYcD018593@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: 2006-12-05-fp-to-int-ext.ll added (r1.1) --- Log message: Instcombine shouldn't fold these casts. --- Diffs of the changes: (+13 -0) 2006-12-05-fp-to-int-ext.ll | 13 +++++++++++++ 1 files changed, 13 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll:1.1 *** /dev/null Tue Dec 5 17:43:30 2006 --- llvm/test/Regression/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll Tue Dec 5 17:43:20 2006 *************** *** 0 **** --- 1,13 ---- + ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext + + ; Never merge these two conversions, even though it's possible: this is + ; significantly more expensive than the two conversions on some targets + ; and it causes libgcc to be compile __fixunsdfdi into a recursive + ; function. + + + long %test(double %D) { + %A = fptoui double %D to uint + %B = zext uint %A to long + ret long %B + } From sabre at nondot.org Tue Dec 5 17:44:13 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 17:44:13 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Instructions.cpp Message-ID: <200612052344.kB5NiD0f018629@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Instructions.cpp updated: 1.52 -> 1.53 --- Log message: Fix Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll, fixing an out-of- stack-space issue in the ppc bootstrap. --- Diffs of the changes: (+10 -3) Instructions.cpp | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) Index: llvm/lib/VMCore/Instructions.cpp diff -u llvm/lib/VMCore/Instructions.cpp:1.52 llvm/lib/VMCore/Instructions.cpp:1.53 --- llvm/lib/VMCore/Instructions.cpp:1.52 Mon Dec 4 21:28:26 2006 +++ llvm/lib/VMCore/Instructions.cpp Tue Dec 5 17:43:59 2006 @@ -1337,7 +1337,14 @@ // PTRTOINT n/a Pointer n/a Integral Unsigned // INTTOPTR n/a Integral Unsigned Pointer n/a // BITCONVERT = FirstClass n/a FirstClass n/a - // + // + // NOTE: some transforms are safe, but we consider them to be non-profitable. + // For example, we could merge "fptoui double to uint" + "zext uint to ulong", + // into "fptoui double to ulong", but this loses information about the range + // of the produced value (we no longer know the top-part is all zeros). + // Further this conversion is often much more expensive for typical hardware, + // and causes issues when building libgcc. We disallow fptosi+sext for the + // same reason. const unsigned numCastOps = Instruction::CastOpsEnd - Instruction::CastOpsBegin; static const uint8_t CastResults[numCastOps][numCastOps] = { @@ -1349,8 +1356,8 @@ { 1, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // Trunc -+ { 8, 1, 9,99,99, 2, 0,99,99,99, 2, 3 }, // ZExt | { 8, 0, 1,99,99, 0, 2,99,99,99, 0, 3 }, // SExt | - { 0, 1, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToUI | - { 0, 0, 1,99,99, 0, 0,99,99,99, 0, 3 }, // FPToSI | + { 0, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToUI | + { 0, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToSI | { 99,99,99, 0, 0,99,99, 0, 0,99,99, 4 }, // UIToFP +- firstOp { 99,99,99, 0, 0,99,99, 0, 0,99,99, 4 }, // SIToFP | { 99,99,99, 0, 0,99,99, 1, 0,99,99, 4 }, // FPTrunc | From reid at x10sys.com Tue Dec 5 17:46:56 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 17:46:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y Message-ID: <200612052346.kB5Nkuox018680@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.y updated: 1.286 -> 1.287 --- Log message: Remove dead var NewVarArgs. --- Diffs of the changes: (+0 -3) llvmAsmParser.y | 3 --- 1 files changed, 3 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.286 llvm/lib/AsmParser/llvmAsmParser.y:1.287 --- llvm/lib/AsmParser/llvmAsmParser.y:1.286 Tue Dec 5 17:28:06 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y Tue Dec 5 17:46:41 2006 @@ -64,7 +64,6 @@ #define YYERROR_VERBOSE 1 -static bool NewVarArgs; static GlobalVariable *CurGV; @@ -809,7 +808,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - NewVarArgs = false; CurModule.CurrentModule = M; // Check to make sure the parser succeeded @@ -2433,7 +2431,6 @@ CHECK_FOR_ERROR } | VAARG ResolvedVal ',' Types { - NewVarArgs = true; $$ = new VAArgInst($2, *$4); delete $4; CHECK_FOR_ERROR From reid at x10sys.com Tue Dec 5 17:51:03 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 17:51:03 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y.cvs Message-ID: <200612052351.kB5Np3IM018757@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.cpp.cvs updated: 1.34 -> 1.35 llvmAsmParser.h.cvs updated: 1.27 -> 1.28 llvmAsmParser.y.cvs updated: 1.35 -> 1.36 --- Log message: Regenerate. --- Diffs of the changes: (+257 -263) llvmAsmParser.cpp.cvs | 515 ++++++++++++++++++++++++-------------------------- llvmAsmParser.h.cvs | 2 llvmAsmParser.y.cvs | 3 3 files changed, 257 insertions(+), 263 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.34 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.35 --- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.34 Tue Dec 5 17:29:42 2006 +++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Tue Dec 5 17:50:48 2006 @@ -410,7 +410,6 @@ #define YYERROR_VERBOSE 1 -static bool NewVarArgs; static GlobalVariable *CurGV; @@ -1155,7 +1154,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - NewVarArgs = false; CurModule.CurrentModule = M; // Check to make sure the parser succeeded @@ -1219,7 +1217,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 857 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 855 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1263,7 +1261,7 @@ llvm::FCmpInst::Predicate FPredicate; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 1267 "llvmAsmParser.tab.c" +#line 1265 "llvmAsmParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1275,7 +1273,7 @@ /* Line 219 of yacc.c. */ -#line 1279 "llvmAsmParser.tab.c" +#line 1277 "llvmAsmParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1627,36 +1625,36 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 992, 992, 993, 1001, 1002, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 1012, 1012, 1013, 1013, 1013, 1014, 1014, - 1014, 1014, 1014, 1014, 1015, 1015, 1015, 1015, 1015, 1015, - 1016, 1016, 1016, 1016, 1016, 1016, 1017, 1017, 1017, 1019, - 1019, 1020, 1020, 1021, 1021, 1022, 1022, 1023, 1023, 1027, - 1027, 1028, 1028, 1029, 1029, 1030, 1030, 1031, 1031, 1032, - 1032, 1033, 1033, 1034, 1035, 1040, 1040, 1040, 1040, 1041, - 1041, 1041, 1041, 1042, 1042, 1043, 1043, 1046, 1050, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1064, 1065, 1066, - 1067, 1068, 1069, 1070, 1071, 1080, 1081, 1087, 1088, 1096, - 1104, 1105, 1110, 1111, 1112, 1117, 1131, 1131, 1132, 1132, - 1134, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, - 1145, 1145, 1145, 1145, 1146, 1150, 1154, 1162, 1170, 1183, - 1188, 1200, 1210, 1214, 1225, 1230, 1236, 1237, 1241, 1245, - 1256, 1282, 1296, 1326, 1352, 1373, 1386, 1396, 1401, 1462, - 1469, 1477, 1483, 1489, 1493, 1497, 1505, 1517, 1538, 1546, - 1552, 1563, 1569, 1574, 1579, 1588, 1594, 1600, 1609, 1613, - 1621, 1621, 1631, 1639, 1644, 1648, 1652, 1656, 1671, 1693, - 1696, 1699, 1699, 1707, 1707, 1715, 1715, 1723, 1723, 1732, - 1735, 1738, 1742, 1755, 1756, 1758, 1762, 1771, 1775, 1780, - 1782, 1787, 1792, 1801, 1801, 1802, 1802, 1804, 1811, 1817, - 1824, 1828, 1834, 1839, 1844, 1939, 1939, 1941, 1949, 1949, - 1951, 1956, 1957, 1958, 1960, 1960, 1970, 1974, 1979, 1983, - 1987, 1991, 1995, 1999, 2003, 2007, 2011, 2036, 2040, 2054, - 2058, 2064, 2064, 2070, 2075, 2079, 2088, 2099, 2108, 2120, - 2133, 2137, 2141, 2146, 2155, 2174, 2183, 2239, 2243, 2250, - 2261, 2274, 2283, 2292, 2302, 2306, 2313, 2313, 2315, 2319, - 2324, 2343, 2358, 2372, 2383, 2394, 2407, 2416, 2427, 2435, - 2441, 2447, 2453, 2459, 2474, 2533, 2540, 2543, 2548, 2552, - 2559, 2564, 2570, 2575, 2581, 2589, 2601, 2616 + 0, 990, 990, 991, 999, 1000, 1010, 1010, 1010, 1010, + 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1011, 1012, 1012, + 1012, 1012, 1012, 1012, 1013, 1013, 1013, 1013, 1013, 1013, + 1014, 1014, 1014, 1014, 1014, 1014, 1015, 1015, 1015, 1017, + 1017, 1018, 1018, 1019, 1019, 1020, 1020, 1021, 1021, 1025, + 1025, 1026, 1026, 1027, 1027, 1028, 1028, 1029, 1029, 1030, + 1030, 1031, 1031, 1032, 1033, 1038, 1038, 1038, 1038, 1039, + 1039, 1039, 1039, 1040, 1040, 1041, 1041, 1044, 1048, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1078, 1079, 1085, 1086, 1094, + 1102, 1103, 1108, 1109, 1110, 1115, 1129, 1129, 1130, 1130, + 1132, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143, + 1143, 1143, 1143, 1143, 1144, 1148, 1152, 1160, 1168, 1181, + 1186, 1198, 1208, 1212, 1223, 1228, 1234, 1235, 1239, 1243, + 1254, 1280, 1294, 1324, 1350, 1371, 1384, 1394, 1399, 1460, + 1467, 1475, 1481, 1487, 1491, 1495, 1503, 1515, 1536, 1544, + 1550, 1561, 1567, 1572, 1577, 1586, 1592, 1598, 1607, 1611, + 1619, 1619, 1629, 1637, 1642, 1646, 1650, 1654, 1669, 1691, + 1694, 1697, 1697, 1705, 1705, 1713, 1713, 1721, 1721, 1730, + 1733, 1736, 1740, 1753, 1754, 1756, 1760, 1769, 1773, 1778, + 1780, 1785, 1790, 1799, 1799, 1800, 1800, 1802, 1809, 1815, + 1822, 1826, 1832, 1837, 1842, 1937, 1937, 1939, 1947, 1947, + 1949, 1954, 1955, 1956, 1958, 1958, 1968, 1972, 1977, 1981, + 1985, 1989, 1993, 1997, 2001, 2005, 2009, 2034, 2038, 2052, + 2056, 2062, 2062, 2068, 2073, 2077, 2086, 2097, 2106, 2118, + 2131, 2135, 2139, 2144, 2153, 2172, 2181, 2237, 2241, 2248, + 2259, 2272, 2281, 2290, 2300, 2304, 2311, 2311, 2313, 2317, + 2322, 2341, 2356, 2370, 2381, 2392, 2405, 2414, 2425, 2433, + 2438, 2444, 2450, 2456, 2471, 2530, 2537, 2540, 2545, 2549, + 2556, 2561, 2567, 2572, 2578, 2586, 2598, 2613 }; #endif @@ -3003,7 +3001,7 @@ switch (yyn) { case 3: -#line 993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 991 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3013,7 +3011,7 @@ break; case 5: -#line 1002 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1000 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); @@ -3023,137 +3021,137 @@ break; case 39: -#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;} break; case 40: -#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;} break; case 41: -#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1018 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;} break; case 42: -#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1018 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;} break; case 43: -#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;} break; case 44: -#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;} break; case 45: -#line 1022 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;} break; case 46: -#line 1022 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;} break; case 47: -#line 1023 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;} break; case 48: -#line 1023 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;} break; case 49: -#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1025 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;} break; case 50: -#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1025 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;} break; case 51: -#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1026 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;} break; case 52: -#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1026 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;} break; case 53: -#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;} break; case 54: -#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;} break; case 55: -#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;} break; case 56: -#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;} break; case 57: -#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;} break; case 58: -#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;} break; case 59: -#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;} break; case 60: -#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;} break; case 61: -#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;} break; case 62: -#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;} break; case 63: -#line 1034 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;} break; case 64: -#line 1035 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;} break; case 77: -#line 1046 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1044 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[-1].StrVal); CHECK_FOR_ERROR @@ -3161,7 +3159,7 @@ break; case 78: -#line 1050 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1048 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; CHECK_FOR_ERROR @@ -3169,82 +3167,82 @@ break; case 79: -#line 1055 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1053 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 80: -#line 1056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 81: -#line 1057 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1055 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 82: -#line 1058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 83: -#line 1059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1057 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 84: -#line 1060 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 85: -#line 1061 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 86: -#line 1062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1060 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 87: -#line 1064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 88: -#line 1065 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1063 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 89: -#line 1066 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::CSRet; ;} break; case 90: -#line 1067 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1065 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Fast; ;} break; case 91: -#line 1068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1066 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Cold; ;} break; case 92: -#line 1069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1067 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} break; case 93: -#line 1070 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} break; case 94: -#line 1071 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) GEN_ERROR("Calling conv too large!"); @@ -3254,12 +3252,12 @@ break; case 95: -#line 1080 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1078 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 96: -#line 1081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1079 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3269,12 +3267,12 @@ break; case 97: -#line 1087 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1085 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 98: -#line 1088 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1086 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -3284,7 +3282,7 @@ break; case 99: -#line 1096 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') @@ -3295,27 +3293,27 @@ break; case 100: -#line 1104 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 101: -#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = (yyvsp[0].StrVal); ;} break; case 102: -#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" {;} break; case 103: -#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" {;} break; case 104: -#line 1112 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV->setSection((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -3324,7 +3322,7 @@ break; case 105: -#line 1117 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1115 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) GEN_ERROR("Alignment must be a power of two!"); @@ -3334,17 +3332,17 @@ break; case 107: -#line 1131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1129 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} break; case 109: -#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1130 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} break; case 110: -#line 1134 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription()); @@ -3354,7 +3352,7 @@ break; case 124: -#line 1146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder(OpaqueType::get()); CHECK_FOR_ERROR @@ -3362,7 +3360,7 @@ break; case 125: -#line 1150 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1148 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); CHECK_FOR_ERROR @@ -3370,7 +3368,7 @@ break; case 126: -#line 1154 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1152 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... const Type* tmp = getTypeVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -3379,7 +3377,7 @@ break; case 127: -#line 1162 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1160 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Type UpReference if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder @@ -3391,7 +3389,7 @@ break; case 128: -#line 1170 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector Params; for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3408,7 +3406,7 @@ break; case 129: -#line 1183 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Sized array type? (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val)))); delete (yyvsp[-1].TypeVal); @@ -3417,7 +3415,7 @@ break; case 130: -#line 1188 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1186 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Packed array type? const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get(); if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) @@ -3433,7 +3431,7 @@ break; case 131: -#line 1200 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1198 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector Elements; for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3447,7 +3445,7 @@ break; case 132: -#line 1210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1208 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector())); CHECK_FOR_ERROR @@ -3455,7 +3453,7 @@ break; case 133: -#line 1214 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1212 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Pointer type? if (*(yyvsp[-1].TypeVal) == Type::LabelTy) GEN_ERROR("Cannot form a pointer to a basic block"); @@ -3466,7 +3464,7 @@ break; case 134: -#line 1225 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1223 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); @@ -3475,7 +3473,7 @@ break; case 135: -#line 1230 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1228 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); CHECK_FOR_ERROR @@ -3483,7 +3481,7 @@ break; case 137: -#line 1237 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1235 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(Type::VoidTy); CHECK_FOR_ERROR @@ -3491,7 +3489,7 @@ break; case 138: -#line 1241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1239 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList) = new std::list())->push_back(Type::VoidTy); CHECK_FOR_ERROR @@ -3499,7 +3497,7 @@ break; case 139: -#line 1245 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); CHECK_FOR_ERROR @@ -3507,7 +3505,7 @@ break; case 140: -#line 1256 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1254 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (ATy == 0) @@ -3537,7 +3535,7 @@ break; case 141: -#line 1282 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1280 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (ATy == 0) @@ -3555,7 +3553,7 @@ break; case 142: -#line 1296 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1294 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (ATy == 0) @@ -3589,7 +3587,7 @@ break; case 143: -#line 1326 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const PackedType *PTy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (PTy == 0) @@ -3619,7 +3617,7 @@ break; case 144: -#line 1352 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1350 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast((yyvsp[-3].TypeVal)->get()); if (STy == 0) @@ -3644,7 +3642,7 @@ break; case 145: -#line 1373 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1371 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast((yyvsp[-2].TypeVal)->get()); if (STy == 0) @@ -3661,7 +3659,7 @@ break; case 146: -#line 1386 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1384 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PTy = dyn_cast((yyvsp[-1].TypeVal)->get()); if (PTy == 0) @@ -3675,7 +3673,7 @@ break; case 147: -#line 1396 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get()); delete (yyvsp[-1].TypeVal); @@ -3684,7 +3682,7 @@ break; case 148: -#line 1401 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1399 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *Ty = dyn_cast((yyvsp[-1].TypeVal)->get()); if (Ty == 0) @@ -3749,7 +3747,7 @@ break; case 149: -#line 1462 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1460 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType()) GEN_ERROR("Mismatched types for constant expression!"); @@ -3760,7 +3758,7 @@ break; case 150: -#line 1469 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1467 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[-1].TypeVal)->get(); if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) @@ -3772,7 +3770,7 @@ break; case 151: -#line 1477 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1475 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); @@ -3782,7 +3780,7 @@ break; case 152: -#line 1483 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1481 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); @@ -3792,7 +3790,7 @@ break; case 153: -#line 1489 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1487 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getTrue(); CHECK_FOR_ERROR @@ -3800,7 +3798,7 @@ break; case 154: -#line 1493 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1491 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getFalse(); CHECK_FOR_ERROR @@ -3808,7 +3806,7 @@ break; case 155: -#line 1497 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1495 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal))) GEN_ERROR("Floating point constant invalid for type!!"); @@ -3818,7 +3816,7 @@ break; case 156: -#line 1505 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1503 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Constant *Val = (yyvsp[-3].ConstVal); const Type *Ty = (yyvsp[-1].TypeVal)->get(); @@ -3834,7 +3832,7 @@ break; case 157: -#line 1517 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1515 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-2].ConstVal)->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); @@ -3859,7 +3857,7 @@ break; case 158: -#line 1538 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1536 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy) GEN_ERROR("Select condition must be of boolean type!"); @@ -3871,7 +3869,7 @@ break; case 159: -#line 1546 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1544 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Binary operator types must match!"); @@ -3881,7 +3879,7 @@ break; case 160: -#line 1552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1550 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("Logical operator types must match!"); @@ -3896,7 +3894,7 @@ break; case 161: -#line 1563 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1561 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("setcc operand types must match!"); @@ -3906,7 +3904,7 @@ break; case 162: -#line 1569 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1567 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("icmp operand types must match!"); @@ -3915,7 +3913,7 @@ break; case 163: -#line 1574 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) GEN_ERROR("fcmp operand types must match!"); @@ -3924,7 +3922,7 @@ break; case 164: -#line 1579 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1577 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy) GEN_ERROR("Shift count for shift constant must be unsigned byte!"); @@ -3937,7 +3935,7 @@ break; case 165: -#line 1588 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1586 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -3947,7 +3945,7 @@ break; case 166: -#line 1594 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1592 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -3957,7 +3955,7 @@ break; case 167: -#line 1600 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1598 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -3967,7 +3965,7 @@ break; case 168: -#line 1609 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1607 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -3975,7 +3973,7 @@ break; case 169: -#line 1613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1611 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector) = new std::vector(); (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); @@ -3984,17 +3982,17 @@ break; case 170: -#line 1621 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1619 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; ;} break; case 171: -#line 1621 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1619 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; ;} break; case 172: -#line 1631 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1629 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal); CurModule.ModuleDone(); @@ -4003,7 +4001,7 @@ break; case 173: -#line 1639 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1637 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); @@ -4012,7 +4010,7 @@ break; case 174: -#line 1644 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4020,7 +4018,7 @@ break; case 175: -#line 1648 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1646 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); CHECK_FOR_ERROR @@ -4028,7 +4026,7 @@ break; case 176: -#line 1652 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1650 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CHECK_FOR_ERROR @@ -4036,7 +4034,7 @@ break; case 177: -#line 1656 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1654 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -4053,7 +4051,7 @@ break; case 178: -#line 1671 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1669 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -4079,21 +4077,21 @@ break; case 179: -#line 1693 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1691 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool CHECK_FOR_ERROR ;} break; case 180: -#line 1696 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1694 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Asm blocks can be in the const pool CHECK_FOR_ERROR ;} break; case 181: -#line 1699 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1697 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ConstVal) == 0) GEN_ERROR("Global value initializer is not a constant!"); @@ -4103,14 +4101,14 @@ break; case 182: -#line 1704 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1702 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ;} break; case 183: -#line 1707 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1705 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4119,7 +4117,7 @@ break; case 184: -#line 1711 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1709 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4127,7 +4125,7 @@ break; case 185: -#line 1715 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1713 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); CHECK_FOR_ERROR @@ -4136,7 +4134,7 @@ break; case 186: -#line 1719 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1717 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4144,7 +4142,7 @@ break; case 187: -#line 1723 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1721 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); @@ -4154,7 +4152,7 @@ break; case 188: -#line 1728 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1726 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4162,27 +4160,27 @@ break; case 189: -#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1730 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 190: -#line 1735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1733 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 191: -#line 1738 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1736 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { ;} break; case 192: -#line 1742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1740 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); @@ -4198,17 +4196,17 @@ break; case 193: -#line 1755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1753 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::BigEndian; ;} break; case 194: -#line 1756 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1754 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::LittleEndian; ;} break; case 195: -#line 1758 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1756 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness)); CHECK_FOR_ERROR @@ -4216,7 +4214,7 @@ break; case 196: -#line 1762 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1760 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].UInt64Val) == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); @@ -4229,7 +4227,7 @@ break; case 197: -#line 1771 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1769 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4237,7 +4235,7 @@ break; case 198: -#line 1775 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1773 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4245,7 +4243,7 @@ break; case 200: -#line 1782 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1780 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4254,7 +4252,7 @@ break; case 201: -#line 1787 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1785 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4263,19 +4261,19 @@ break; case 202: -#line 1792 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1790 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 206: -#line 1802 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1800 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 207: -#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1802 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (*(yyvsp[-1].TypeVal) == Type::VoidTy) GEN_ERROR("void typed arguments are invalid!"); @@ -4285,7 +4283,7 @@ break; case 208: -#line 1811 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1809 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4295,7 +4293,7 @@ break; case 209: -#line 1817 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1815 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = new std::vector >(); (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -4305,7 +4303,7 @@ break; case 210: -#line 1824 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1822 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[0].ArgList); CHECK_FOR_ERROR @@ -4313,7 +4311,7 @@ break; case 211: -#line 1828 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1826 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyval.ArgList)->push_back(std::pair >(); (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); @@ -4332,7 +4330,7 @@ break; case 213: -#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1837 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = 0; CHECK_FOR_ERROR @@ -4340,7 +4338,7 @@ break; case 214: -#line 1845 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1843 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { UnEscapeLexed((yyvsp[-5].StrVal)); std::string FunctionName((yyvsp[-5].StrVal)); @@ -4437,7 +4435,7 @@ break; case 217: -#line 1941 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; @@ -4448,7 +4446,7 @@ break; case 220: -#line 1951 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1949 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4456,22 +4454,22 @@ break; case 222: -#line 1957 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1955 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 223: -#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1956 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} break; case 224: -#line 1960 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ;} break; case 225: -#line 1960 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; CurFun.FunctionDone(); @@ -4480,7 +4478,7 @@ break; case 226: -#line 1970 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1968 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4488,7 +4486,7 @@ break; case 227: -#line 1974 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1972 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4496,7 +4494,7 @@ break; case 228: -#line 1979 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1977 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); CHECK_FOR_ERROR @@ -4504,7 +4502,7 @@ break; case 229: -#line 1983 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1981 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); CHECK_FOR_ERROR @@ -4512,7 +4510,7 @@ break; case 230: -#line 1987 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1985 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); CHECK_FOR_ERROR @@ -4520,7 +4518,7 @@ break; case 231: -#line 1991 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1989 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue()); CHECK_FOR_ERROR @@ -4528,7 +4526,7 @@ break; case 232: -#line 1995 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse()); CHECK_FOR_ERROR @@ -4536,7 +4534,7 @@ break; case 233: -#line 1999 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1997 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createNull(); CHECK_FOR_ERROR @@ -4544,7 +4542,7 @@ break; case 234: -#line 2003 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2001 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createUndef(); CHECK_FOR_ERROR @@ -4552,7 +4550,7 @@ break; case 235: -#line 2007 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2005 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // A vector zero constant. (yyval.ValIDVal) = ValID::createZeroInit(); CHECK_FOR_ERROR @@ -4560,7 +4558,7 @@ break; case 236: -#line 2011 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2009 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType(); int NumElements = (yyvsp[-1].ConstVector)->size(); @@ -4589,7 +4587,7 @@ break; case 237: -#line 2036 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2034 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal)); CHECK_FOR_ERROR @@ -4597,7 +4595,7 @@ break; case 238: -#line 2040 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2038 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { char *End = UnEscapeLexed((yyvsp[-2].StrVal), true); std::string AsmStr = std::string((yyvsp[-2].StrVal), End); @@ -4611,7 +4609,7 @@ break; case 239: -#line 2054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2052 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); CHECK_FOR_ERROR @@ -4619,7 +4617,7 @@ break; case 240: -#line 2058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); CHECK_FOR_ERROR @@ -4627,7 +4625,7 @@ break; case 243: -#line 2070 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal); CHECK_FOR_ERROR @@ -4635,7 +4633,7 @@ break; case 244: -#line 2075 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2073 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4643,7 +4641,7 @@ break; case 245: -#line 2079 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2077 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); CHECK_FOR_ERROR @@ -4651,7 +4649,7 @@ break; case 246: -#line 2088 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2086 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal)); CHECK_FOR_ERROR @@ -4665,7 +4663,7 @@ break; case 247: -#line 2099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2097 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (CastInst *CI1 = dyn_cast((yyvsp[0].InstVal))) if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) @@ -4678,7 +4676,7 @@ break; case 248: -#line 2108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR @@ -4694,7 +4692,7 @@ break; case 249: -#line 2120 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2118 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[0].StrVal)), true); CHECK_FOR_ERROR @@ -4710,7 +4708,7 @@ break; case 250: -#line 2133 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with a result... (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal)); CHECK_FOR_ERROR @@ -4718,7 +4716,7 @@ break; case 251: -#line 2137 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2135 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Return with no result... (yyval.TermInstVal) = new ReturnInst(); CHECK_FOR_ERROR @@ -4726,7 +4724,7 @@ break; case 252: -#line 2141 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); CHECK_FOR_ERROR @@ -4735,7 +4733,7 @@ break; case 253: -#line 2146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal)); CHECK_FOR_ERROR @@ -4748,7 +4746,7 @@ break; case 254: -#line 2155 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2153 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal)); CHECK_FOR_ERROR @@ -4771,7 +4769,7 @@ break; case 255: -#line 2174 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2172 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal)); CHECK_FOR_ERROR @@ -4784,7 +4782,7 @@ break; case 256: -#line 2184 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2182 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -4843,7 +4841,7 @@ break; case 257: -#line 2239 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2237 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnwindInst(); CHECK_FOR_ERROR @@ -4851,7 +4849,7 @@ break; case 258: -#line 2243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnreachableInst(); CHECK_FOR_ERROR @@ -4859,7 +4857,7 @@ break; case 259: -#line 2250 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = (yyvsp[-5].JumpTable); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -4874,7 +4872,7 @@ break; case 260: -#line 2261 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2259 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = new std::vector >(); Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -4890,7 +4888,7 @@ break; case 261: -#line 2274 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2272 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal)); @@ -4902,7 +4900,7 @@ break; case 262: -#line 2283 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2281 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes (yyval.PHIList) = new std::list >(); Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal)); @@ -4915,7 +4913,7 @@ break; case 263: -#line 2292 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2290 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.PHIList) = (yyvsp[-6].PHIList); Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal)); @@ -4927,7 +4925,7 @@ break; case 264: -#line 2302 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2300 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... (yyval.ValueList) = new std::vector(); (yyval.ValueList)->push_back((yyvsp[0].ValueVal)); @@ -4935,7 +4933,7 @@ break; case 265: -#line 2306 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2304 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[-2].ValueList); (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal)); @@ -4944,12 +4942,12 @@ break; case 267: -#line 2313 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2311 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = 0; ;} break; case 268: -#line 2315 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2313 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4957,7 +4955,7 @@ break; case 269: -#line 2319 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2317 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4965,7 +4963,7 @@ break; case 270: -#line 2324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2322 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && !isa((*(yyvsp[-3].TypeVal)).get())) @@ -4988,7 +4986,7 @@ break; case 271: -#line 2343 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2341 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!(*(yyvsp[-3].TypeVal))->isIntegral()) { if (!isa((yyvsp[-3].TypeVal)->get()) || @@ -5007,7 +5005,7 @@ break; case 272: -#line 2358 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2356 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if(isa((*(yyvsp[-3].TypeVal)).get())) { GEN_ERROR( @@ -5025,7 +5023,7 @@ break; case 273: -#line 2372 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2370 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by icmp instruction"); @@ -5040,7 +5038,7 @@ break; case 274: -#line 2383 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2381 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (isa((*(yyvsp[-3].TypeVal)).get())) GEN_ERROR("Packed types not supported by fcmp instruction"); @@ -5055,7 +5053,7 @@ break; case 275: -#line 2394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2392 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { llvm_cerr << "WARNING: Use of eliminated 'not' instruction:" << " Replacing with 'xor'.\n"; @@ -5072,7 +5070,7 @@ break; case 276: -#line 2407 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2405 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy) GEN_ERROR("Shift amount must be ubyte!"); @@ -5085,7 +5083,7 @@ break; case 277: -#line 2416 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2414 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* Val = (yyvsp[-2].ValueVal); const Type* Ty = (yyvsp[0].TypeVal)->get(); @@ -5100,7 +5098,7 @@ break; case 278: -#line 2427 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2425 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy) GEN_ERROR("select condition must be boolean!"); @@ -5112,9 +5110,8 @@ break; case 279: -#line 2435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2433 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { - NewVarArgs = true; (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); CHECK_FOR_ERROR @@ -5122,7 +5119,7 @@ break; case 280: -#line 2441 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2438 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid extractelement operands!"); @@ -5132,7 +5129,7 @@ break; case 281: -#line 2447 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2444 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid insertelement operands!"); @@ -5142,7 +5139,7 @@ break; case 282: -#line 2453 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2450 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) GEN_ERROR("Invalid shufflevector operands!"); @@ -5152,7 +5149,7 @@ break; case 283: -#line 2459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2456 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = (yyvsp[0].PHIList)->front().first->getType(); if (!Ty->isFirstClassType()) @@ -5171,7 +5168,7 @@ break; case 284: -#line 2474 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2471 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy = 0; const FunctionType *Ty = 0; @@ -5234,7 +5231,7 @@ break; case 285: -#line 2533 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2530 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = (yyvsp[0].InstVal); CHECK_FOR_ERROR @@ -5242,7 +5239,7 @@ break; case 286: -#line 2540 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2537 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = (yyvsp[0].ValueList); CHECK_FOR_ERROR @@ -5250,7 +5247,7 @@ break; case 287: -#line 2543 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2540 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = new std::vector(); CHECK_FOR_ERROR @@ -5258,7 +5255,7 @@ break; case 288: -#line 2548 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2545 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -5266,7 +5263,7 @@ break; case 289: -#line 2552 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2549 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -5274,7 +5271,7 @@ break; case 290: -#line 2559 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2556 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5283,7 +5280,7 @@ break; case 291: -#line 2564 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2561 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5293,7 +5290,7 @@ break; case 292: -#line 2570 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2567 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); delete (yyvsp[-1].TypeVal); @@ -5302,7 +5299,7 @@ break; case 293: -#line 2575 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); CHECK_FOR_ERROR @@ -5312,7 +5309,7 @@ break; case 294: -#line 2581 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2578 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[0].ValueVal)->getType())) GEN_ERROR("Trying to free nonpointer type " + @@ -5323,7 +5320,7 @@ break; case 295: -#line 2589 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2586 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-1].TypeVal)->get())) GEN_ERROR("Can't load from nonpointer type: " + @@ -5339,7 +5336,7 @@ break; case 296: -#line 2601 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2598 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { const PointerType *PT = dyn_cast((yyvsp[-1].TypeVal)->get()); if (!PT) @@ -5358,7 +5355,7 @@ break; case 297: -#line 2616 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" { if (!isa((yyvsp[-2].TypeVal)->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); @@ -5379,7 +5376,7 @@ } /* Line 1126 of yacc.c. */ -#line 5383 "llvmAsmParser.tab.c" +#line 5380 "llvmAsmParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -5647,7 +5644,7 @@ } -#line 2631 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2628 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" void llvm::GenerateError(const std::string &message, int LineNo) { Index: llvm/lib/AsmParser/llvmAsmParser.h.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.27 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.28 --- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.27 Tue Dec 5 17:29:42 2006 +++ llvm/lib/AsmParser/llvmAsmParser.h.cvs Tue Dec 5 17:50:48 2006 @@ -321,7 +321,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 857 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 855 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.35 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.36 --- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.35 Tue Dec 5 17:29:42 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y.cvs Tue Dec 5 17:50:48 2006 @@ -64,7 +64,6 @@ #define YYERROR_VERBOSE 1 -static bool NewVarArgs; static GlobalVariable *CurGV; @@ -809,7 +808,6 @@ static Module* RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... - NewVarArgs = false; CurModule.CurrentModule = M; // Check to make sure the parser succeeded @@ -2433,7 +2431,6 @@ CHECK_FOR_ERROR } | VAARG ResolvedVal ',' Types { - NewVarArgs = true; $$ = new VAArgInst($2, *$4); delete $4; CHECK_FOR_ERROR From reid at x10sys.com Tue Dec 5 18:25:24 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 18:25:24 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/ConstantFolding.cpp Message-ID: <200612060025.kB60POGE019373@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: ConstantFolding.cpp updated: 1.109 -> 1.110 --- Log message: Fix constant folding to deal with external weak global values. --- Diffs of the changes: (+22 -14) ConstantFolding.cpp | 36 ++++++++++++++++++++++-------------- 1 files changed, 22 insertions(+), 14 deletions(-) Index: llvm/lib/VMCore/ConstantFolding.cpp diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.109 llvm/lib/VMCore/ConstantFolding.cpp:1.110 --- llvm/lib/VMCore/ConstantFolding.cpp:1.109 Tue Dec 5 01:18:07 2006 +++ llvm/lib/VMCore/ConstantFolding.cpp Tue Dec 5 18:25:09 2006 @@ -1202,17 +1202,14 @@ // Now we know that the RHS is a GlobalValue or simple constant, // which (since the types must match) means that it's a ConstantPointerNull. if (const GlobalValue *CPR2 = dyn_cast(V2)) { - assert(CPR1 != CPR2 && - "GVs for the same value exist at different addresses??"); - // FIXME: If both globals are external weak, they might both be null! - return Instruction::SetNE; + if (!CPR1->hasExternalWeakLinkage() || !CPR2->hasExternalWeakLinkage()) + return Instruction::SetNE; } else { + // GlobalVals can never be null. assert(isa(V2) && "Canonicalization guarantee!"); - // Global can never be null. FIXME: if we implement external weak - // linkage, this is not necessarily true! - return Instruction::SetNE; + if (!CPR1->hasExternalWeakLinkage()) + return Instruction::SetNE; } - } else { // Ok, the LHS is known to be a constantexpr. The RHS can be any of a // constantexpr, a CPR, or a simple constant. @@ -1258,10 +1255,15 @@ if (isa(V2)) { // If we are comparing a GEP to a null pointer, check to see if the base // of the GEP equals the null pointer. - if (isa(CE1Op0)) { - // FIXME: this is not true when we have external weak references! - // No offset can go from a global to a null pointer. - return Instruction::SetGT; + if (GlobalValue *GV = dyn_cast(CE1Op0)) { + if (GV->hasExternalWeakLinkage()) + // Weak linkage GVals could be zero or not. We're comparing that + // to null pointer so its greater-or-equal + return Instruction::SetGE; + else + // If its not weak linkage, the GVal must have a non-zero address + // so the result is greater-than + return Instruction::SetGT; } else if (isa(CE1Op0)) { // If we are indexing from a null pointer, check to see if we have any // non-zero indices. @@ -1275,8 +1277,14 @@ // Otherwise, we can't really say if the first operand is null or not. } else if (const GlobalValue *CPR2 = dyn_cast(V2)) { if (isa(CE1Op0)) { - // FIXME: This is not true with external weak references. - return Instruction::SetLT; + if (CPR2->hasExternalWeakLinkage()) + // Weak linkage GVals could be zero or not. We're comparing it to + // a null pointer, so its less-or-equal + return Instruction::SetLE; + else + // If its not weak linkage, the GVal must have a non-zero address + // so the result is less-than + return Instruction::SetLT; } else if (const GlobalValue *CPR1 = dyn_cast(CE1Op0)) { if (CPR1 == CPR2) { // If this is a getelementptr of the same global, then it must be From lattner at cs.uiuc.edu Tue Dec 5 18:46:28 2006 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Tue, 5 Dec 2006 18:46:28 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-12-04-X86-64-Bitcast.ll Message-ID: <200612060046.kB60kSVK019785@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/X86: 2006-12-04-X86-64-Bitcast.ll (r1.2) removed --- Log message: this is a subset of Codegen/X86/bitcast.ll, remove it. --- Diffs of the changes: (+0 -0) 0 files changed From sabre at nondot.org Tue Dec 5 19:01:28 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:01:28 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/ManagedStatic.h Message-ID: <200612060101.kB611SlX020044@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: ManagedStatic.h updated: 1.1 -> 1.2 --- Log message: add a helper to call llvm_shutdown() --- Diffs of the changes: (+8 -0) ManagedStatic.h | 8 ++++++++ 1 files changed, 8 insertions(+) Index: llvm/include/llvm/Support/ManagedStatic.h diff -u llvm/include/llvm/Support/ManagedStatic.h:1.1 llvm/include/llvm/Support/ManagedStatic.h:1.2 --- llvm/include/llvm/Support/ManagedStatic.h:1.1 Wed Sep 27 19:31:55 2006 +++ llvm/include/llvm/Support/ManagedStatic.h Tue Dec 5 19:01:14 2006 @@ -74,6 +74,14 @@ /// llvm_shutdown - Deallocate and destroy all ManagedStatic variables. void llvm_shutdown(); + +/// llvm_shutdown_obj - This is a simple helper class that calls +/// llvm_shutdown() when it is destroyed. +struct llvm_shutdown_obj { + llvm_shutdown_obj() {} + ~llvm_shutdown_obj() { llvm_shutdown(); } +}; + } #endif From sabre at nondot.org Tue Dec 5 19:18:51 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-ld/llvm-ld.cpp Message-ID: <200612060118.kB61IpLf020471@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-ld: llvm-ld.cpp updated: 1.43 -> 1.44 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-ld.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-ld/llvm-ld.cpp diff -u llvm/tools/llvm-ld/llvm-ld.cpp:1.43 llvm/tools/llvm-ld/llvm-ld.cpp:1.44 --- llvm/tools/llvm-ld/llvm-ld.cpp:1.43 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-ld/llvm-ld.cpp Tue Dec 5 19:18:01 2006 @@ -32,6 +32,7 @@ #include "llvm/Target/TargetMachineRegistry.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileUtilities.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" @@ -433,6 +434,7 @@ } int main(int argc, char **argv, char **envp) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { // Initial global variable above for convenience printing of program name. progname = sys::Path(argv[0]).getBasename(); From sabre at nondot.org Tue Dec 5 19:18:50 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:50 -0600 Subject: [llvm-commits] CVS: llvm/tools/bugpoint/bugpoint.cpp Message-ID: <200612060118.kB61IoHe020461@zion.cs.uiuc.edu> Changes in directory llvm/tools/bugpoint: bugpoint.cpp updated: 1.34 -> 1.35 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) bugpoint.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/bugpoint/bugpoint.cpp diff -u llvm/tools/bugpoint/bugpoint.cpp:1.34 llvm/tools/bugpoint/bugpoint.cpp:1.35 --- llvm/tools/bugpoint/bugpoint.cpp:1.34 Fri Nov 17 04:07:24 2006 +++ llvm/tools/bugpoint/bugpoint.cpp Tue Dec 5 19:18:00 2006 @@ -18,6 +18,7 @@ #include "llvm/LinkAllPasses.h" #include "llvm/Support/PassNameParser.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PluginLoader.h" #include "llvm/System/Process.h" #include "llvm/System/Signals.h" @@ -59,6 +60,7 @@ } int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, " LLVM automatic testcase reducer. See\nhttp://" "llvm.org/docs/CommandGuide/bugpoint.html" From sabre at nondot.org Tue Dec 5 19:18:51 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-ar/llvm-ar.cpp Message-ID: <200612060118.kB61IpUA020467@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-ar: llvm-ar.cpp updated: 1.39 -> 1.40 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -1) llvm-ar.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/tools/llvm-ar/llvm-ar.cpp diff -u llvm/tools/llvm-ar/llvm-ar.cpp:1.39 llvm/tools/llvm-ar/llvm-ar.cpp:1.40 --- llvm/tools/llvm-ar/llvm-ar.cpp:1.39 Thu Nov 2 14:25:50 2006 +++ llvm/tools/llvm-ar/llvm-ar.cpp Tue Dec 5 19:18:00 2006 @@ -16,12 +16,12 @@ #include "llvm/Bytecode/Archive.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compressor.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include #include #include - using namespace llvm; // Option for compatibility with ASIX, not used but must allow it to be present. @@ -696,6 +696,7 @@ // main - main program for llvm-ar .. see comments in the code int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. // Have the command line options parsed and handle things // like --help and --version. From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/llc/llc.cpp Message-ID: <200612060118.kB61IqHr020511@zion.cs.uiuc.edu> Changes in directory llvm/tools/llc: llc.cpp updated: 1.140 -> 1.141 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llc.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llc/llc.cpp diff -u llvm/tools/llc/llc.cpp:1.140 llvm/tools/llc/llc.cpp:1.141 --- llvm/tools/llc/llc.cpp:1.140 Sun Sep 3 23:14:57 2006 +++ llvm/tools/llc/llc.cpp Tue Dec 5 19:18:00 2006 @@ -24,6 +24,7 @@ #include "llvm/PassManager.h" #include "llvm/Pass.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PluginLoader.h" #include "llvm/Support/FileUtilities.h" #include "llvm/Analysis/Verifier.h" @@ -168,6 +169,7 @@ // main - Entry point for the llc compiler. // int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:53 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:53 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-prof/llvm-prof.cpp Message-ID: <200612060118.kB61IrWf020519@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-prof: llvm-prof.cpp updated: 1.28 -> 1.29 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-prof.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-prof/llvm-prof.cpp diff -u llvm/tools/llvm-prof/llvm-prof.cpp:1.28 llvm/tools/llvm-prof/llvm-prof.cpp:1.29 --- llvm/tools/llvm-prof/llvm-prof.cpp:1.28 Wed May 24 14:21:12 2006 +++ llvm/tools/llvm-prof/llvm-prof.cpp Tue Dec 5 19:18:01 2006 @@ -19,6 +19,7 @@ #include "llvm/Analysis/ProfileInfoLoader.h" #include "llvm/Bytecode/Reader.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include @@ -107,6 +108,7 @@ int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm profile dump decoder\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-as/llvm-as.cpp Message-ID: <200612060118.kB61Iqim020504@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-as: llvm-as.cpp updated: 1.48 -> 1.49 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-as.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-as/llvm-as.cpp diff -u llvm/tools/llvm-as/llvm-as.cpp:1.48 llvm/tools/llvm-as/llvm-as.cpp:1.49 --- llvm/tools/llvm-as/llvm-as.cpp:1.48 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-as/llvm-as.cpp Tue Dec 5 19:18:00 2006 @@ -20,6 +20,7 @@ #include "llvm/Bytecode/Writer.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" @@ -50,6 +51,7 @@ cl::desc("Do not run verifier on input LLVM (dangerous!)")); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:53 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:53 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-ranlib/llvm-ranlib.cpp Message-ID: <200612060118.kB61Irjg020526@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-ranlib: llvm-ranlib.cpp updated: 1.10 -> 1.11 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-ranlib.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-ranlib/llvm-ranlib.cpp diff -u llvm/tools/llvm-ranlib/llvm-ranlib.cpp:1.10 llvm/tools/llvm-ranlib/llvm-ranlib.cpp:1.11 --- llvm/tools/llvm-ranlib/llvm-ranlib.cpp:1.10 Fri Aug 25 00:29:36 2006 +++ llvm/tools/llvm-ranlib/llvm-ranlib.cpp Tue Dec 5 19:18:01 2006 @@ -14,6 +14,7 @@ #include "llvm/Module.h" #include "llvm/Bytecode/Archive.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include @@ -41,6 +42,7 @@ } int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. // Have the command line options parsed and handle things // like --help and --version. From sabre at nondot.org Tue Dec 5 19:18:55 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:55 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-nm/llvm-nm.cpp Message-ID: <200612060118.kB61IsDM020558@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-nm: llvm-nm.cpp updated: 1.28 -> 1.29 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+16 -14) llvm-nm.cpp | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) Index: llvm/tools/llvm-nm/llvm-nm.cpp diff -u llvm/tools/llvm-nm/llvm-nm.cpp:1.28 llvm/tools/llvm-nm/llvm-nm.cpp:1.29 --- llvm/tools/llvm-nm/llvm-nm.cpp:1.28 Tue Aug 1 13:22:21 2006 +++ llvm/tools/llvm-nm/llvm-nm.cpp Tue Dec 5 19:18:01 2006 @@ -20,6 +20,7 @@ #include "llvm/Bytecode/Reader.h" #include "llvm/Bytecode/Archive.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include @@ -65,18 +66,18 @@ std::string ToolName; } -char TypeCharForSymbol (GlobalValue &GV) { - if (GV.isExternal ()) return 'U'; - if (GV.hasLinkOnceLinkage ()) return 'C'; - if (GV.hasWeakLinkage ()) return 'W'; - if (isa (GV) && GV.hasInternalLinkage ()) return 't'; - if (isa (GV)) return 'T'; - if (isa (GV) && GV.hasInternalLinkage ()) return 'd'; - if (isa (GV)) return 'D'; +static char TypeCharForSymbol(GlobalValue &GV) { + if (GV.isExternal()) return 'U'; + if (GV.hasLinkOnceLinkage()) return 'C'; + if (GV.hasWeakLinkage()) return 'W'; + if (isa(GV) && GV.hasInternalLinkage()) return 't'; + if (isa(GV)) return 'T'; + if (isa(GV) && GV.hasInternalLinkage()) return 'd'; + if (isa(GV)) return 'D'; return '?'; } -void DumpSymbolNameForGlobalValue (GlobalValue &GV) { +static void DumpSymbolNameForGlobalValue(GlobalValue &GV) { const std::string SymbolAddrStr = " "; // Not used yet... char TypeChar = TypeCharForSymbol (GV); if ((TypeChar != 'U') && UndefinedOnly) @@ -101,7 +102,7 @@ } } -void DumpSymbolNamesFromModule (Module *M) { +static void DumpSymbolNamesFromModule(Module *M) { const std::string &Filename = M->getModuleIdentifier (); if (OutputFormat == posix && MultipleFiles) { std::cout << Filename << ":\n"; @@ -116,7 +117,7 @@ std::for_each (M->global_begin (), M->global_end (), DumpSymbolNameForGlobalValue); } -void DumpSymbolNamesFromFile (std::string &Filename) { +static void DumpSymbolNamesFromFile(std::string &Filename) { std::string ErrorMessage; sys::Path aPath(Filename); if (Filename != "-") { @@ -135,16 +136,16 @@ } } else if (aPath.isArchive()) { std::string ErrMsg; - Archive* archive = Archive::OpenAndLoad(sys::Path(Filename),&ErrorMessage); + Archive* archive = Archive::OpenAndLoad(sys::Path(Filename), &ErrorMessage); if (!archive) std::cerr << ToolName << ": " << Filename << ": " << ErrorMessage << "\n"; std::vector Modules; - if (archive->getAllModules(Modules,&ErrorMessage)) { + if (archive->getAllModules(Modules, &ErrorMessage)) { std::cerr << ToolName << ": " << Filename << ": " << ErrorMessage << "\n"; return; } MultipleFiles = true; - std::for_each (Modules.begin (), Modules.end (), DumpSymbolNamesFromModule); + std::for_each (Modules.begin(), Modules.end(), DumpSymbolNamesFromModule); } else { std::cerr << ToolName << ": " << Filename << ": " << "unrecognizable file type\n"; @@ -153,6 +154,7 @@ } int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm symbol table dumper\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/gccas/gccas.cpp Message-ID: <200612060118.kB61IqZ1020492@zion.cs.uiuc.edu> Changes in directory llvm/tools/gccas: gccas.cpp updated: 1.121 -> 1.122 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) gccas.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/gccas/gccas.cpp diff -u llvm/tools/gccas/gccas.cpp:1.121 llvm/tools/gccas/gccas.cpp:1.122 --- llvm/tools/gccas/gccas.cpp:1.121 Tue Nov 28 18:19:40 2006 +++ llvm/tools/gccas/gccas.cpp Tue Dec 5 19:18:00 2006 @@ -24,6 +24,7 @@ #include "llvm/Transforms/Scalar.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Streams.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include @@ -133,6 +134,7 @@ int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm .s -> .o assembler for GCC\n"); From sabre at nondot.org Tue Dec 5 19:18:51 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/lli/lli.cpp Message-ID: <200612060118.kB61IpKW020468@zion.cs.uiuc.edu> Changes in directory llvm/tools/lli: lli.cpp updated: 1.60 -> 1.61 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) lli.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/lli/lli.cpp diff -u llvm/tools/lli/lli.cpp:1.60 llvm/tools/lli/lli.cpp:1.61 --- llvm/tools/lli/lli.cpp:1.60 Thu Sep 14 01:17:09 2006 +++ llvm/tools/lli/lli.cpp Tue Dec 5 19:18:00 2006 @@ -22,6 +22,7 @@ #include "llvm/ExecutionEngine/Interpreter.h" #include "llvm/ExecutionEngine/GenericValue.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PluginLoader.h" #include "llvm/System/Process.h" #include "llvm/System/Signals.h" @@ -56,6 +57,7 @@ // main Driver function // int main(int argc, char **argv, char * const *envp) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm interpreter & dynamic compiler\n"); From sabre at nondot.org Tue Dec 5 19:18:54 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:54 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-db/llvm-db.cpp Message-ID: <200612060118.kB61IsJ6020550@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-db: llvm-db.cpp updated: 1.12 -> 1.13 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -1) llvm-db.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/tools/llvm-db/llvm-db.cpp diff -u llvm/tools/llvm-db/llvm-db.cpp:1.12 llvm/tools/llvm-db/llvm-db.cpp:1.13 --- llvm/tools/llvm-db/llvm-db.cpp:1.12 Wed Jun 7 19:25:44 2006 +++ llvm/tools/llvm-db/llvm-db.cpp Tue Dec 5 19:18:00 2006 @@ -14,9 +14,9 @@ #include "CLIDebugger.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include - using namespace llvm; namespace { @@ -49,6 +49,7 @@ // main Driver function // int main(int argc, char **argv, char * const *envp) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. std::cout << "NOTE: llvm-db is known useless right now.\n"; try { cl::ParseCommandLineOptions(argc, argv, From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/opt/opt.cpp Message-ID: <200612060118.kB61Iqam020495@zion.cs.uiuc.edu> Changes in directory llvm/tools/opt: opt.cpp updated: 1.123 -> 1.124 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) opt.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/opt/opt.cpp diff -u llvm/tools/opt/opt.cpp:1.123 llvm/tools/opt/opt.cpp:1.124 --- llvm/tools/opt/opt.cpp:1.123 Fri Dec 1 15:59:37 2006 +++ llvm/tools/opt/opt.cpp Tue Dec 5 19:18:01 2006 @@ -22,6 +22,7 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Support/PassNameParser.h" #include "llvm/System/Signals.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PluginLoader.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" @@ -156,6 +157,7 @@ // main for opt // int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .bc modular optimizer and analysis printer \n"); From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/llvm-upgrade.cpp Message-ID: <200612060118.kB61Iq7T020513@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: llvm-upgrade.cpp updated: 1.3 -> 1.4 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-upgrade.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-upgrade/llvm-upgrade.cpp diff -u llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.3 llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.4 --- llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.3 Fri Dec 1 14:26:20 2006 +++ llvm/tools/llvm-upgrade/llvm-upgrade.cpp Tue Dec 5 19:18:01 2006 @@ -21,6 +21,7 @@ #include "ParserInternals.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" @@ -44,6 +45,7 @@ cl::init(false)); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:51 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-extract/llvm-extract.cpp Message-ID: <200612060118.kB61IpeL020486@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-extract: llvm-extract.cpp updated: 1.31 -> 1.32 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-extract.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-extract/llvm-extract.cpp diff -u llvm/tools/llvm-extract/llvm-extract.cpp:1.31 llvm/tools/llvm-extract/llvm-extract.cpp:1.32 --- llvm/tools/llvm-extract/llvm-extract.cpp:1.31 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-extract/llvm-extract.cpp Tue Dec 5 19:18:01 2006 @@ -19,6 +19,7 @@ #include "llvm/Transforms/IPO.h" #include "llvm/Target/TargetData.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/System/Signals.h" #include @@ -47,6 +48,7 @@ cl::value_desc("function")); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:53 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:53 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-link/llvm-link.cpp Message-ID: <200612060118.kB61IrTU020536@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-link: llvm-link.cpp updated: 1.59 -> 1.60 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-link.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-link/llvm-link.cpp diff -u llvm/tools/llvm-link/llvm-link.cpp:1.59 llvm/tools/llvm-link/llvm-link.cpp:1.60 --- llvm/tools/llvm-link/llvm-link.cpp:1.59 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-link/llvm-link.cpp Tue Dec 5 19:18:01 2006 @@ -18,6 +18,7 @@ #include "llvm/Bytecode/Reader.h" #include "llvm/Bytecode/Writer.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/System/Signals.h" #include "llvm/System/Path.h" @@ -75,6 +76,7 @@ } int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm linker\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:53 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:53 -0600 Subject: [llvm-commits] CVS: llvm/tools/gccld/gccld.cpp Message-ID: <200612060118.kB61Irg9020531@zion.cs.uiuc.edu> Changes in directory llvm/tools/gccld: gccld.cpp updated: 1.113 -> 1.114 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) gccld.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/gccld/gccld.cpp diff -u llvm/tools/gccld/gccld.cpp:1.113 llvm/tools/gccld/gccld.cpp:1.114 --- llvm/tools/gccld/gccld.cpp:1.113 Thu Nov 30 19:05:14 2006 +++ llvm/tools/gccld/gccld.cpp Tue Dec 5 19:18:00 2006 @@ -30,6 +30,7 @@ #include "llvm/Transforms/Scalar.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileUtilities.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/System/Signals.h" #include "llvm/Support/SystemUtils.h" @@ -214,6 +215,7 @@ } int main(int argc, char **argv, char **envp ) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, " llvm linker for GCC\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:54 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:54 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp Message-ID: <200612060118.kB61Is4w020548@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-bcanalyzer: llvm-bcanalyzer.cpp updated: 1.8 -> 1.9 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+3 -2) llvm-bcanalyzer.cpp | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp diff -u llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp:1.8 llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp:1.9 --- llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp:1.8 Thu Nov 2 14:25:50 2006 +++ llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp Tue Dec 5 19:18:00 2006 @@ -32,6 +32,7 @@ #include "llvm/Analysis/Verifier.h" #include "llvm/Bytecode/Analyzer.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/System/Signals.h" #include #include @@ -48,8 +49,8 @@ static cl::opt Dump ("dump", cl::desc("Dump low level bytecode trace")); static cl::opt Verify ("verify", cl::desc("Progressively verify module")); -int -main(int argc, char **argv) { +int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm-bcanalyzer Analysis of ByteCode Dumper\n"); From sabre at nondot.org Tue Dec 5 19:18:54 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:54 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm2cpp/CppWriter.cpp llvm2cpp.cpp Message-ID: <200612060118.kB61Ispg020543@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm2cpp: CppWriter.cpp updated: 1.22 -> 1.23 llvm2cpp.cpp updated: 1.5 -> 1.6 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+5 -2) CppWriter.cpp | 5 +++-- llvm2cpp.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) Index: llvm/tools/llvm2cpp/CppWriter.cpp diff -u llvm/tools/llvm2cpp/CppWriter.cpp:1.22 llvm/tools/llvm2cpp/CppWriter.cpp:1.23 --- llvm/tools/llvm2cpp/CppWriter.cpp:1.22 Sun Nov 26 19:05:10 2006 +++ llvm/tools/llvm2cpp/CppWriter.cpp Tue Dec 5 19:18:01 2006 @@ -20,11 +20,12 @@ #include "llvm/Instructions.h" #include "llvm/Module.h" #include "llvm/SymbolTable.h" -#include "llvm/Support/CFG.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/STLExtras.h" -#include "llvm/Support/MathExtras.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/CFG.h" +#include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/MathExtras.h" #include "llvm/Config/config.h" #include #include Index: llvm/tools/llvm2cpp/llvm2cpp.cpp diff -u llvm/tools/llvm2cpp/llvm2cpp.cpp:1.5 llvm/tools/llvm2cpp/llvm2cpp.cpp:1.6 --- llvm/tools/llvm2cpp/llvm2cpp.cpp:1.5 Thu Jul 6 18:48:57 2006 +++ llvm/tools/llvm2cpp/llvm2cpp.cpp Tue Dec 5 19:18:01 2006 @@ -20,6 +20,7 @@ #include "llvm/Bytecode/Reader.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" #include "CppWriter.h" @@ -41,6 +42,7 @@ Force("f", cl::desc("Overwrite output files")); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .cpp assembler\n"); sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:51 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvmc/llvmc.cpp Message-ID: <200612060118.kB61IpYp020475@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvmc: llvmc.cpp updated: 1.31 -> 1.32 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+37 -39) llvmc.cpp | 76 ++++++++++++++++++++++++++++++-------------------------------- 1 files changed, 37 insertions(+), 39 deletions(-) Index: llvm/tools/llvmc/llvmc.cpp diff -u llvm/tools/llvmc/llvmc.cpp:1.31 llvm/tools/llvmc/llvmc.cpp:1.32 --- llvm/tools/llvmc/llvmc.cpp:1.31 Mon Sep 4 00:59:09 2006 +++ llvm/tools/llvmc/llvmc.cpp Tue Dec 5 19:18:01 2006 @@ -17,17 +17,16 @@ #include "CompilerDriver.h" #include "Configuration.h" #include "llvm/Pass.h" -#include "llvm/System/Signals.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" +#include "llvm/System/Signals.h" #include - using namespace llvm; -namespace { //===----------------------------------------------------------------------===// //=== PHASE OPTIONS //===----------------------------------------------------------------------===// -cl::opt FinalPhase(cl::Optional, +static cl::opt FinalPhase(cl::Optional, cl::desc("Choose final phase of compilation:"), cl::init(CompilerDriver::LINKING), cl::values( @@ -46,7 +45,7 @@ //===----------------------------------------------------------------------===// //=== OPTIMIZATION OPTIONS //===----------------------------------------------------------------------===// -cl::opt OptLevel(cl::ZeroOrMore, +static cl::opt OptLevel(cl::ZeroOrMore, cl::desc("Choose level of optimization to apply:"), cl::init(CompilerDriver::OPT_FAST_COMPILE), cl::values( @@ -70,48 +69,48 @@ //=== TOOL OPTIONS //===----------------------------------------------------------------------===// -cl::list PreprocessorToolOpts("Tpre", cl::ZeroOrMore, +static cl::list PreprocessorToolOpts("Tpre", cl::ZeroOrMore, cl::desc("Pass specific options to the pre-processor"), cl::value_desc("option")); -cl::alias PreprocessorToolOptsAlias("Wp,", cl::ZeroOrMore, +static cl::alias PreprocessorToolOptsAlias("Wp,", cl::ZeroOrMore, cl::desc("Alias for -Tpre"), cl::aliasopt(PreprocessorToolOpts)); -cl::list TranslatorToolOpts("Ttrn", cl::ZeroOrMore, +static cl::list TranslatorToolOpts("Ttrn", cl::ZeroOrMore, cl::desc("Pass specific options to the assembler"), cl::value_desc("option")); -cl::list AssemblerToolOpts("Tasm", cl::ZeroOrMore, +static cl::list AssemblerToolOpts("Tasm", cl::ZeroOrMore, cl::desc("Pass specific options to the assembler"), cl::value_desc("option")); -cl::alias AssemblerToolOptsAlias("Wa,", cl::ZeroOrMore, +static cl::alias AssemblerToolOptsAlias("Wa,", cl::ZeroOrMore, cl::desc("Alias for -Tasm"), cl::aliasopt(AssemblerToolOpts)); -cl::list OptimizerToolOpts("Topt", cl::ZeroOrMore, +static cl::list OptimizerToolOpts("Topt", cl::ZeroOrMore, cl::desc("Pass specific options to the optimizer"), cl::value_desc("option")); -cl::list LinkerToolOpts("Tlnk", cl::ZeroOrMore, +static cl::list LinkerToolOpts("Tlnk", cl::ZeroOrMore, cl::desc("Pass specific options to the linker"), cl::value_desc("option")); -cl::alias LinkerToolOptsAlias("Wl,", cl::ZeroOrMore, +static cl::alias LinkerToolOptsAlias("Wl,", cl::ZeroOrMore, cl::desc("Alias for -Tlnk"), cl::aliasopt(LinkerToolOpts)); -cl::list fOpts("f", cl::ZeroOrMore, cl::Prefix, +static cl::list fOpts("f", cl::ZeroOrMore, cl::Prefix, cl::desc("Pass through -f options to compiler tools"), cl::value_desc("option")); -cl::list MOpts("M", cl::ZeroOrMore, cl::Prefix, +static cl::list MOpts("M", cl::ZeroOrMore, cl::Prefix, cl::desc("Pass through -M options to compiler tools"), cl::value_desc("option")); -cl::list WOpts("W", cl::ZeroOrMore, cl::Prefix, +static cl::list WOpts("W", cl::ZeroOrMore, cl::Prefix, cl::desc("Pass through -W options to compiler tools"), cl::value_desc("option")); -cl::list BOpt("B", cl::ZeroOrMore, cl::Prefix, +static cl::list BOpt("B", cl::ZeroOrMore, cl::Prefix, cl::desc("Specify path to find llvmc sub-tools"), cl::value_desc("dir")); @@ -119,17 +118,17 @@ //=== INPUT OPTIONS //===----------------------------------------------------------------------===// -cl::list LibPaths("L", cl::Prefix, +static cl::list LibPaths("L", cl::Prefix, cl::desc("Specify a library search path"), cl::value_desc("dir")); -cl::list Libraries("l", cl::Prefix, +static cl::list Libraries("l", cl::Prefix, cl::desc("Specify base name of libraries to link to"), cl::value_desc("lib")); -cl::list Includes("I", cl::Prefix, +static cl::list Includes("I", cl::Prefix, cl::desc("Specify location to search for included source"), cl::value_desc("dir")); -cl::list Defines("D", cl::Prefix, +static cl::list Defines("D", cl::Prefix, cl::desc("Specify a pre-processor symbol to define"), cl::value_desc("symbol")); @@ -137,22 +136,22 @@ //=== OUTPUT OPTIONS //===----------------------------------------------------------------------===// -cl::opt OutputFilename("o", +static cl::opt OutputFilename("o", cl::desc("Override output filename"), cl::value_desc("file")); -cl::opt OutputMachine("m", cl::Prefix, +static cl::opt OutputMachine("m", cl::Prefix, cl::desc("Specify a target machine"), cl::value_desc("machine")); -cl::opt Native("native", cl::init(false), +static cl::opt Native("native", cl::init(false), cl::desc("Generative native code instead of bytecode")); -cl::opt DebugOutput("g", cl::init(false), +static cl::opt DebugOutput("g", cl::init(false), cl::desc("Generate objects that include debug symbols")); -cl::opt StripOutput("strip", cl::init(false), +static cl::opt StripOutput("strip", cl::init(false), cl::desc("Strip all symbols from linked output file")); -cl::opt PrintFileName("print-fname", cl::Optional, +static cl::opt PrintFileName("print-fname", cl::Optional, cl::value_desc("file"), cl::desc("Print the full path for the option's value")); @@ -160,28 +159,28 @@ //=== INFORMATION OPTIONS //===----------------------------------------------------------------------===// -cl::opt DryRun("dry-run", cl::Optional, cl::init(false), +static cl::opt DryRun("dry-run", cl::Optional, cl::init(false), cl::desc("Do everything but perform the compilation actions")); -cl::alias DryRunAlias("y", cl::Optional, +static cl::alias DryRunAlias("y", cl::Optional, cl::desc("Alias for -dry-run"), cl::aliasopt(DryRun)); -cl::opt Verbose("verbose", cl::Optional, cl::init(false), +static cl::opt Verbose("verbose", cl::Optional, cl::init(false), cl::desc("Print out each action taken")); -cl::alias VerboseAlias("v", cl::Optional, +static cl::alias VerboseAlias("v", cl::Optional, cl::desc("Alias for -verbose"), cl::aliasopt(Verbose)); -cl::opt Debug("debug", cl::Optional, cl::init(false), +static cl::opt Debug("debug", cl::Optional, cl::init(false), cl::Hidden, cl::desc("Print out debugging information")); -cl::alias DebugAlias("d", cl::Optional, +static cl::alias DebugAlias("d", cl::Optional, cl::desc("Alias for -debug"), cl::aliasopt(Debug)); -cl::opt TimeActions("time-actions", cl::Optional, cl::init(false), +static cl::opt TimeActions("time-actions", cl::Optional, cl::init(false), cl::desc("Print execution time for each action taken")); -cl::opt ShowStats("stats", cl::Optional, cl::init(false), +static cl::opt ShowStats("stats", cl::Optional, cl::init(false), cl::desc("Print statistics accumulated during optimization")); //===----------------------------------------------------------------------===// @@ -215,7 +214,7 @@ //===----------------------------------------------------------------------===// //=== GetFileType - determine type of a file //===----------------------------------------------------------------------===// -const std::string GetFileType(const std::string& fname, unsigned pos) { +static const std::string GetFileType(const std::string& fname, unsigned pos) { static std::vector::iterator langIt = Languages.begin(); static std::string CurrLang = ""; @@ -236,9 +235,7 @@ return fname.substr(fname.rfind('.', fname.size()) + 1); } -} // end anonymous namespace - -void handleTerminatingOptions(CompilerDriver* CD) { +static void handleTerminatingOptions(CompilerDriver* CD) { if (!PrintFileName.empty()) { sys::Path path = CD->GetPathForLinkageItem(PrintFileName, false); std::string p = path.toString(); @@ -252,6 +249,7 @@ /// @brief The main program for llvmc int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. // Make sure we print stack trace if we get bad signals sys::PrintStackTraceOnErrorSignal(); From sabre at nondot.org Tue Dec 5 19:18:52 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:18:52 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-dis/llvm-dis.cpp Message-ID: <200612060118.kB61IqWC020501@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-dis: llvm-dis.cpp updated: 1.52 -> 1.53 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+3 -0) llvm-dis.cpp | 3 +++ 1 files changed, 3 insertions(+) Index: llvm/tools/llvm-dis/llvm-dis.cpp diff -u llvm/tools/llvm-dis/llvm-dis.cpp:1.52 llvm/tools/llvm-dis/llvm-dis.cpp:1.53 --- llvm/tools/llvm-dis/llvm-dis.cpp:1.52 Tue Nov 28 17:33:06 2006 +++ llvm/tools/llvm-dis/llvm-dis.cpp Tue Dec 5 19:18:01 2006 @@ -21,6 +21,7 @@ #include "llvm/Bytecode/Reader.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Streams.h" #include "llvm/System/Signals.h" #include @@ -39,6 +40,7 @@ Force("f", cl::desc("Overwrite output files")); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n"); sys::PrintStackTraceOnErrorSignal(); @@ -115,6 +117,7 @@ } catch (...) { llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } + return 1; } From sabre at nondot.org Tue Dec 5 19:49:10 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:49:10 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/RegAllocLinearScan.cpp Message-ID: <200612060149.kB61nAuG021017@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: RegAllocLinearScan.cpp updated: 1.133 -> 1.134 --- Log message: eliminate fp statistic --- Diffs of the changes: (+3 -3) RegAllocLinearScan.cpp | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp diff -u llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.133 llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.134 --- llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.133 Fri Dec 1 20:22:01 2006 +++ llvm/lib/CodeGen/RegAllocLinearScan.cpp Tue Dec 5 19:48:55 2006 @@ -37,8 +37,8 @@ namespace { - static Statistic efficiency - ("regalloc", "Ratio of intervals processed over total intervals"); + static Statistic<> NumIters + ("regalloc", "Number of iterations performed"); static Statistic<> NumBacktracks ("regalloc", "Number of times we had to backtrack"); @@ -273,7 +273,7 @@ DEBUG(printIntervals("inactive", inactive_.begin(), inactive_.end())); } numIntervals += li_->getNumIntervals(); - efficiency = double(numIterations) / double(numIntervals); + NumIters += numIterations; // expire any remaining active intervals for (IntervalPtrs::reverse_iterator From sabre at nondot.org Tue Dec 5 19:50:18 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 19:50:18 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Hello/Hello.cpp Message-ID: <200612060150.kB61oIhP021068@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Hello: Hello.cpp updated: 1.9 -> 1.10 --- Log message: counter should be unsigned. --- Diffs of the changes: (+1 -1) Hello.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Hello/Hello.cpp diff -u llvm/lib/Transforms/Hello/Hello.cpp:1.9 llvm/lib/Transforms/Hello/Hello.cpp:1.10 --- llvm/lib/Transforms/Hello/Hello.cpp:1.9 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Hello/Hello.cpp Tue Dec 5 19:50:04 2006 @@ -21,7 +21,7 @@ using namespace llvm; namespace { - Statistic HelloCounter("hellocount", + Statistic<> HelloCounter("hellocount", "Counts number of functions greeted"); // Hello - The first implementation, without getAnalysisUsage. struct Hello : public FunctionPass { From reid at x10sys.com Tue Dec 5 22:27:22 2006 From: reid at x10sys.com (Reid Spencer) Date: Tue, 5 Dec 2006 22:27:22 -0600 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Writer/Writer.cpp Message-ID: <200612060427.kB64RM6N023407@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Writer: Writer.cpp updated: 1.133 -> 1.134 --- Log message: Fix a CmpInst writing bug by removing merge cruft that I *know* I've removed before. Also, make sure we write the predicate value for Cmp instructions using instruction format 0. --- Diffs of the changes: (+4 -9) Writer.cpp | 13 ++++--------- 1 files changed, 4 insertions(+), 9 deletions(-) Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.133 llvm/lib/Bytecode/Writer/Writer.cpp:1.134 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.133 Sun Dec 3 23:23:49 2006 +++ llvm/lib/Bytecode/Writer/Writer.cpp Tue Dec 5 22:27:07 2006 @@ -449,8 +449,8 @@ output_typeid(Type); // Result type unsigned NumArgs = I->getNumOperands(); - output_vbr(NumArgs + (isa(I) || isa(I) || - isa(I) || Opcode == 58)); + output_vbr(NumArgs + (isa(I) || isa(I) || + isa(I) || isa(I) || Opcode == 58)); if (!isa(&I)) { for (unsigned i = 0; i < NumArgs; ++i) { @@ -463,6 +463,8 @@ int Slot = Table.getSlot(I->getType()); assert(Slot != -1 && "Cast return type unknown?"); output_typeid((unsigned)Slot); + } else if (isa(I)) { + output_vbr(unsigned(cast(I)->getPredicate())); } else if (isa(I)) { output_vbr(cast(I)->getCallingConv()); } else if (Opcode == 58) { // Call escape sequence @@ -793,13 +795,6 @@ } } - // In the weird case of the ICmp or FCmp instructions, we need to also put - // out the instruction's predicate value. We do that here, after the - // instruction's type and operands have been written so we can reuse the - // code above. - if (const CmpInst* CI = dyn_cast(&I)) - output_vbr((unsigned)CI->getPredicate()); - // If we weren't handled before here, we either have a large number of // operands or a large operand index that we are referring to. outputInstructionFormat0(&I, Opcode, Table, Type); From sabre at nondot.org Tue Dec 5 22:42:07 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 22:42:07 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060442.kB64g78t023685@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.217 -> 1.218 --- Log message: wrap long lines --- Diffs of the changes: (+6 -4) AsmWriter.cpp | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.217 llvm/lib/VMCore/AsmWriter.cpp:1.218 --- llvm/lib/VMCore/AsmWriter.cpp:1.217 Sun Dec 3 23:19:18 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 22:41:52 2006 @@ -873,7 +873,8 @@ // Loop over the symbol table, emitting all named constants. printSymbolTable(M->getSymbolTable()); - for (Module::const_global_iterator I = M->global_begin(), E = M->global_end(); I != E; ++I) + for (Module::const_global_iterator I = M->global_begin(), E = M->global_end(); + I != E; ++I) printGlobal(I); Out << "\nimplementation ; Functions:\n"; @@ -1028,7 +1029,8 @@ // Loop over the arguments, printing them... const FunctionType *FT = F->getFunctionType(); - for(Function::const_arg_iterator I = F->arg_begin(), E = F->arg_end(); I != E; ++I) + for (Function::const_arg_iterator I = F->arg_begin(), E = F->arg_end(); + I != E; ++I) printArgument(I); // Finish printing arguments... @@ -1504,8 +1506,8 @@ SC_DEBUG("begin processModule!\n"); // Add all of the global variables to the value table... - for (Module::const_global_iterator I = TheModule->global_begin(), E = TheModule->global_end(); - I != E; ++I) + for (Module::const_global_iterator I = TheModule->global_begin(), + E = TheModule->global_end(); I != E; ++I) createSlot(I); // Add all the functions to the table From sabre at nondot.org Tue Dec 5 23:12:36 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:12:36 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060512.kB65CaZP024210@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.218 -> 1.219 --- Log message: clean up some sloppy and inconsistent spacing --- Diffs of the changes: (+46 -46) AsmWriter.cpp | 92 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 46 insertions(+), 46 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.218 llvm/lib/VMCore/AsmWriter.cpp:1.219 --- llvm/lib/VMCore/AsmWriter.cpp:1.218 Tue Dec 5 22:41:52 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:12:21 2006 @@ -73,10 +73,10 @@ /// @{ public: /// @brief Construct from a module - SlotMachine(const Module *M ); + SlotMachine(const Module *M); /// @brief Construct from a function, starting out in incorp state. - SlotMachine(const Function *F ); + SlotMachine(const Function *F); /// @} /// @name Accessors @@ -119,13 +119,13 @@ /// been inserted already, they get inserted, otherwise they are ignored. /// Either way, the slot number for the Value* is returned. unsigned createSlot(const Value *V); - unsigned createSlot(const Type* Ty); + unsigned createSlot(const Type *Ty); /// Insert a value into the value table. Return the slot number /// that it now occupies. BadThings(TM) will happen if you insert a /// Value that's already been inserted. - unsigned insertValue( const Value *V ); - unsigned insertValue( const Type* Ty); + unsigned insertValue(const Value *V); + unsigned insertValue(const Type *Ty); /// Add all of the module level global variables (and their initializers) /// and function declarations, but not the contents of those functions. @@ -242,7 +242,7 @@ if (!M) return; const SymbolTable &ST = M->getSymbolTable(); SymbolTable::type_const_iterator TI = ST.type_begin(); - for (; TI != ST.type_end(); ++TI ) { + for (; TI != ST.type_end(); ++TI) { // As a heuristic, don't insert pointer to primitive types, because // they are used too often to have a single useful name. // @@ -933,7 +933,7 @@ // Print the types. for (SymbolTable::type_const_iterator TI = ST.type_begin(); - TI != ST.type_end(); ++TI ) { + TI != ST.type_end(); ++TI) { Out << "\t" << getLLVMName(TI->first) << " = type "; // Make sure we print out at least one level of the type structure, so @@ -944,7 +944,7 @@ // Print the constants, in type plane order. for (SymbolTable::plane_const_iterator PI = ST.plane_begin(); - PI != ST.plane_end(); ++PI ) { + PI != ST.plane_end(); ++PI) { SymbolTable::value_const_iterator VI = ST.value_begin(PI->first); SymbolTable::value_const_iterator VE = ST.value_end(PI->first); @@ -1417,7 +1417,7 @@ void CachedWriter::setModule(const Module *M) { delete SC; delete AW; if (M) { - SC = new SlotMachine(M ); + SC = new SlotMachine(M); AW = new AssemblyWriter(Out, *SC, M, 0); } else { SC = 0; AW = 0; @@ -1479,8 +1479,8 @@ // Function level constructor. Causes the contents of the Module and the one // function provided to be added to the slot table. -SlotMachine::SlotMachine(const Function *F ) - : TheModule( F ? F->getParent() : 0 ) ///< Saved for lazy initialization +SlotMachine::SlotMachine(const Function *F) + : TheModule(F ? F->getParent() : 0) ///< Saved for lazy initialization , TheFunction(F) ///< Saved for lazy initialization , FunctionProcessed(false) , mMap() @@ -1491,11 +1491,11 @@ } inline void SlotMachine::initialize(void) { - if ( TheModule) { + if (TheModule) { processModule(); TheModule = 0; ///< Prevent re-processing next time we're called. } - if ( TheFunction && ! FunctionProcessed) { + if (TheFunction && ! FunctionProcessed) { processFunction(); } } @@ -1561,7 +1561,7 @@ /// ask for a Value that hasn't previously been inserted with createSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Value *V) { - assert( V && "Can't get slot for null Value" ); + assert(V && "Can't get slot for null Value"); assert(!isa(V) || isa(V) && "Can't insert a non-GlobalValue Constant into SlotMachine"); @@ -1574,21 +1574,21 @@ // Find the type plane in the module map TypedPlanes::const_iterator MI = mMap.find(VTy); - if ( TheFunction ) { + if (TheFunction) { // Lookup the type in the function map too TypedPlanes::const_iterator FI = fMap.find(VTy); // If there is a corresponding type plane in the function map - if ( FI != fMap.end() ) { + if (FI != fMap.end()) { // Lookup the Value in the function map ValueMap::const_iterator FVI = FI->second.map.find(V); // If the value doesn't exist in the function map - if ( FVI == FI->second.map.end() ) { + if (FVI == FI->second.map.end()) { // Look up the value in the module map. if (MI == mMap.end()) return -1; ValueMap::const_iterator MVI = MI->second.map.find(V); // If we didn't find it, it wasn't inserted if (MVI == MI->second.map.end()) return -1; - assert( MVI != MI->second.map.end() && "Value not found"); + assert(MVI != MI->second.map.end() && "Value not found"); // We found it only at the module level return MVI->second; @@ -1622,16 +1622,16 @@ /// ask for a Value that hasn't previously been inserted with createSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Type *Ty) { - assert( Ty && "Can't get slot for null Type" ); + assert(Ty && "Can't get slot for null Type"); // Check for uninitialized state and do lazy initialization this->initialize(); - if ( TheFunction ) { + if (TheFunction) { // Lookup the Type in the function map TypeMap::const_iterator FTI = fTypes.map.find(Ty); // If the Type doesn't exist in the function map - if ( FTI == fTypes.map.end() ) { + if (FTI == fTypes.map.end()) { TypeMap::const_iterator MTI = mTypes.map.find(Ty); // If we didn't find it, it wasn't inserted if (MTI == mTypes.map.end()) @@ -1662,7 +1662,7 @@ // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. unsigned SlotMachine::createSlot(const Value *V) { - assert( V && "Can't insert a null Value to SlotMachine"); + assert(V && "Can't insert a null Value to SlotMachine"); assert(!isa(V) || isa(V) && "Can't insert a non-GlobalValue Constant into SlotMachine"); @@ -1674,22 +1674,22 @@ // Look up the type plane for the Value's type from the module map TypedPlanes::const_iterator MI = mMap.find(VTy); - if ( TheFunction ) { + if (TheFunction) { // Get the type plane for the Value's type from the function map TypedPlanes::const_iterator FI = fMap.find(VTy); // If there is a corresponding type plane in the function map - if ( FI != fMap.end() ) { + if (FI != fMap.end()) { // Lookup the Value in the function map ValueMap::const_iterator FVI = FI->second.map.find(V); // If the value doesn't exist in the function map - if ( FVI == FI->second.map.end() ) { + if (FVI == FI->second.map.end()) { // If there is no corresponding type plane in the module map - if ( MI == mMap.end() ) + if (MI == mMap.end()) return insertValue(V); // Look up the value in the module map ValueMap::const_iterator MVI = MI->second.map.find(V); // If we didn't find it, it wasn't inserted - if ( MVI == MI->second.map.end() ) + if (MVI == MI->second.map.end()) return insertValue(V); else // We found it only at the module level @@ -1697,7 +1697,7 @@ // else the value exists in the function map } else { - if ( MI == mMap.end() ) + if (MI == mMap.end()) return FVI->second; else // Return the slot number as the module's contribution to @@ -1709,14 +1709,14 @@ // else there is not a corresponding type plane in the function map } else { // If the type plane doesn't exists at the module level - if ( MI == mMap.end() ) { + if (MI == mMap.end()) { return insertValue(V); // else type plane exists at the module level, examine it } else { // Look up the value in the module's map ValueMap::const_iterator MVI = MI->second.map.find(V); // If we didn't find it there either - if ( MVI == MI->second.map.end() ) + if (MVI == MI->second.map.end()) // Return the slot number as the module's contribution to // the type plane plus the index of the function map insertion. return MI->second.next_slot + insertValue(V); @@ -1729,10 +1729,10 @@ // N.B. Can only get here if !TheFunction // If the module map's type plane is not for the Value's type - if ( MI != mMap.end() ) { + if (MI != mMap.end()) { // Lookup the value in the module's map ValueMap::const_iterator MVI = MI->second.map.find(V); - if ( MVI != MI->second.map.end() ) + if (MVI != MI->second.map.end()) return MVI->second; } @@ -1743,17 +1743,17 @@ // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. unsigned SlotMachine::createSlot(const Type *Ty) { - assert( Ty && "Can't insert a null Type to SlotMachine"); + assert(Ty && "Can't insert a null Type to SlotMachine"); - if ( TheFunction ) { + if (TheFunction) { // Lookup the Type in the function map TypeMap::const_iterator FTI = fTypes.map.find(Ty); // If the type doesn't exist in the function map - if ( FTI == fTypes.map.end() ) { + if (FTI == fTypes.map.end()) { // Look up the type in the module map TypeMap::const_iterator MTI = mTypes.map.find(Ty); // If we didn't find it, it wasn't inserted - if ( MTI == mTypes.map.end() ) + if (MTI == mTypes.map.end()) return insertValue(Ty); else // We found it only at the module level @@ -1772,7 +1772,7 @@ // Lookup the type in the module's map TypeMap::const_iterator MTI = mTypes.map.find(Ty); - if ( MTI != mTypes.map.end() ) + if (MTI != mTypes.map.end()) return MTI->second; return insertValue(Ty); @@ -1780,14 +1780,14 @@ // Low level insert function. Minimal checking is done. This // function is just for the convenience of createSlot (above). -unsigned SlotMachine::insertValue(const Value *V ) { +unsigned SlotMachine::insertValue(const Value *V) { assert(V && "Can't insert a null Value into SlotMachine!"); assert(!isa(V) || isa(V) && "Can't insert a non-GlobalValue Constant into SlotMachine"); // If this value does not contribute to a plane (is void) // or if the value already has a name then ignore it. - if (V->getType() == Type::VoidTy || V->hasName() ) { + if (V->getType() == Type::VoidTy || V->hasName()) { SC_DEBUG("ignored value " << *V << "\n"); return 0; // FIXME: Wrong return value } @@ -1795,14 +1795,14 @@ const Type *VTy = V->getType(); unsigned DestSlot = 0; - if ( TheFunction ) { - TypedPlanes::iterator I = fMap.find( VTy ); - if ( I == fMap.end() ) + if (TheFunction) { + TypedPlanes::iterator I = fMap.find(VTy); + if (I == fMap.end()) I = fMap.insert(std::make_pair(VTy,ValuePlane())).first; DestSlot = I->second.map[V] = I->second.next_slot++; } else { - TypedPlanes::iterator I = mMap.find( VTy ); - if ( I == mMap.end() ) + TypedPlanes::iterator I = mMap.find(VTy); + if (I == mMap.end()) I = mMap.insert(std::make_pair(VTy,ValuePlane())).first; DestSlot = I->second.map[V] = I->second.next_slot++; } @@ -1818,12 +1818,12 @@ // Low level insert function. Minimal checking is done. This // function is just for the convenience of createSlot (above). -unsigned SlotMachine::insertValue(const Type *Ty ) { +unsigned SlotMachine::insertValue(const Type *Ty) { assert(Ty && "Can't insert a null Type into SlotMachine!"); unsigned DestSlot = 0; - if ( TheFunction ) { + if (TheFunction) { DestSlot = fTypes.map[Ty] = fTypes.next_slot++; } else { DestSlot = fTypes.map[Ty] = fTypes.next_slot++; From sabre at nondot.org Tue Dec 5 23:27:55 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:27:55 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060527.kB65RtEa024476@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.219 -> 1.220 --- Log message: rename createSlot -> getOrCreateSlot. --- Diffs of the changes: (+19 -21) AsmWriter.cpp | 40 +++++++++++++++++++--------------------- 1 files changed, 19 insertions(+), 21 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.219 llvm/lib/VMCore/AsmWriter.cpp:1.220 --- llvm/lib/VMCore/AsmWriter.cpp:1.219 Tue Dec 5 23:12:21 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:27:40 2006 @@ -118,8 +118,8 @@ /// Values can be crammed into here at will. If they haven't /// been inserted already, they get inserted, otherwise they are ignored. /// Either way, the slot number for the Value* is returned. - unsigned createSlot(const Value *V); - unsigned createSlot(const Type *Ty); + unsigned getOrCreateSlot(const Value *V); + unsigned getOrCreateSlot(const Type *Ty); /// Insert a value into the value table. Return the slot number /// that it now occupies. BadThings(TM) will happen if you insert a @@ -1495,9 +1495,8 @@ processModule(); TheModule = 0; ///< Prevent re-processing next time we're called. } - if (TheFunction && ! FunctionProcessed) { + if (TheFunction && !FunctionProcessed) processFunction(); - } } // Iterate through all the global variables, functions, and global @@ -1508,12 +1507,12 @@ // Add all of the global variables to the value table... for (Module::const_global_iterator I = TheModule->global_begin(), E = TheModule->global_end(); I != E; ++I) - createSlot(I); + getOrCreateSlot(I); // Add all the functions to the table for (Module::const_iterator I = TheModule->begin(), E = TheModule->end(); I != E; ++I) - createSlot(I); + getOrCreateSlot(I); SC_DEBUG("end processModule!\n"); } @@ -1526,17 +1525,16 @@ // Add all the function arguments for(Function::const_arg_iterator AI = TheFunction->arg_begin(), AE = TheFunction->arg_end(); AI != AE; ++AI) - createSlot(AI); + getOrCreateSlot(AI); SC_DEBUG("Inserting Instructions:\n"); // Add all of the basic blocks and instructions for (Function::const_iterator BB = TheFunction->begin(), E = TheFunction->end(); BB != E; ++BB) { - createSlot(BB); - for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) { - createSlot(I); - } + getOrCreateSlot(BB); + for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) + getOrCreateSlot(I); } FunctionProcessed = true; @@ -1544,10 +1542,10 @@ SC_DEBUG("end processFunction!\n"); } -// Clean up after incorporating a function. This is the only way -// to get out of the function incorporation state that affects the -// getSlot/createSlot lock. Function incorporation state is indicated -// by TheFunction != 0. +/// Clean up after incorporating a function. This is the only way to get out of +/// the function incorporation state that affects the +/// getSlot/getOrCreateSlot lock. Function incorporation state is indicated +/// by TheFunction != 0. void SlotMachine::purgeFunction() { SC_DEBUG("begin purgeFunction!\n"); fMap.clear(); // Simply discard the function level map @@ -1558,7 +1556,7 @@ } /// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with createSlot. +/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Value *V) { assert(V && "Can't get slot for null Value"); @@ -1619,7 +1617,7 @@ } /// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with createSlot. +/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Type *Ty) { assert(Ty && "Can't get slot for null Type"); @@ -1661,7 +1659,7 @@ // Create a new slot, or return the existing slot if it is already // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. -unsigned SlotMachine::createSlot(const Value *V) { +unsigned SlotMachine::getOrCreateSlot(const Value *V) { assert(V && "Can't insert a null Value to SlotMachine"); assert(!isa(V) || isa(V) && "Can't insert a non-GlobalValue Constant into SlotMachine"); @@ -1742,7 +1740,7 @@ // Create a new slot, or return the existing slot if it is already // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. -unsigned SlotMachine::createSlot(const Type *Ty) { +unsigned SlotMachine::getOrCreateSlot(const Type *Ty) { assert(Ty && "Can't insert a null Type to SlotMachine"); if (TheFunction) { @@ -1779,7 +1777,7 @@ } // Low level insert function. Minimal checking is done. This -// function is just for the convenience of createSlot (above). +// function is just for the convenience of getOrCreateSlot (above). unsigned SlotMachine::insertValue(const Value *V) { assert(V && "Can't insert a null Value into SlotMachine!"); assert(!isa(V) || isa(V) && @@ -1817,7 +1815,7 @@ } // Low level insert function. Minimal checking is done. This -// function is just for the convenience of createSlot (above). +// function is just for the convenience of getOrCreateSlot (above). unsigned SlotMachine::insertValue(const Type *Ty) { assert(Ty && "Can't insert a null Type into SlotMachine!"); From sabre at nondot.org Tue Dec 5 23:39:33 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:39:33 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-config/Makefile Message-ID: <200612060539.kB65dXb3024669@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-config: Makefile updated: 1.17 -> 1.18 --- Log message: reword message --- Diffs of the changes: (+1 -1) Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/llvm-config/Makefile diff -u llvm/tools/llvm-config/Makefile:1.17 llvm/tools/llvm-config/Makefile:1.18 --- llvm/tools/llvm-config/Makefile:1.17 Sun Sep 3 20:49:10 2006 +++ llvm/tools/llvm-config/Makefile Tue Dec 5 23:39:18 2006 @@ -38,7 +38,7 @@ # Find all the cyclic dependencies between various LLVM libraries, so we # don't have to process them at runtime. $(FinalLibDeps): find-cycles.pl $(LibDeps) - $(Echo) "Finding cyclic dependencies between LLVM libraries." + $(Echo) "Checking for cyclic dependencies between LLVM libraries." $(Verb) $(PERL) $< < $(LibDeps) > $@ || rm -f $@ # Rerun our configure substitutions as needed. From sabre at nondot.org Tue Dec 5 23:42:47 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:42:47 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060542.kB65gllJ024771@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.220 -> 1.221 --- Log message: remove dead code left over from when this functionality was shared with the bcwriter. --- Diffs of the changes: (+5 -68) AsmWriter.cpp | 73 +++------------------------------------------------------- 1 files changed, 5 insertions(+), 68 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.220 llvm/lib/VMCore/AsmWriter.cpp:1.221 --- llvm/lib/VMCore/AsmWriter.cpp:1.220 Tue Dec 5 23:27:40 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:42:32 2006 @@ -119,13 +119,11 @@ /// been inserted already, they get inserted, otherwise they are ignored. /// Either way, the slot number for the Value* is returned. unsigned getOrCreateSlot(const Value *V); - unsigned getOrCreateSlot(const Type *Ty); /// Insert a value into the value table. Return the slot number /// that it now occupies. BadThings(TM) will happen if you insert a /// Value that's already been inserted. unsigned insertValue(const Value *V); - unsigned insertValue(const Type *Ty); /// Add all of the module level global variables (and their initializers) /// and function declarations, but not the contents of those functions. @@ -1666,8 +1664,9 @@ const Type* VTy = V->getType(); - // Just ignore void typed things - if (VTy == Type::VoidTy) return 0; // FIXME: Wrong return value! + // Just ignore void typed things or things with names. + if (VTy == Type::VoidTy || V->hasName()) + return 0; // FIXME: Wrong return value! // Look up the type plane for the Value's type from the module map TypedPlanes::const_iterator MI = mMap.find(VTy); @@ -1737,58 +1736,14 @@ return insertValue(V); } -// Create a new slot, or return the existing slot if it is already -// inserted. Note that the logic here parallels getSlot but instead -// of asserting when the Value* isn't found, it inserts the value. -unsigned SlotMachine::getOrCreateSlot(const Type *Ty) { - assert(Ty && "Can't insert a null Type to SlotMachine"); - - if (TheFunction) { - // Lookup the Type in the function map - TypeMap::const_iterator FTI = fTypes.map.find(Ty); - // If the type doesn't exist in the function map - if (FTI == fTypes.map.end()) { - // Look up the type in the module map - TypeMap::const_iterator MTI = mTypes.map.find(Ty); - // If we didn't find it, it wasn't inserted - if (MTI == mTypes.map.end()) - return insertValue(Ty); - else - // We found it only at the module level - return MTI->second; - - // else the value exists in the function map - } else { - // Return the slot number as the module's contribution to - // the type plane plus the index in the function's contribution - // to the type plane. - return mTypes.next_slot + FTI->second; - } - } - - // N.B. Can only get here if !TheFunction - - // Lookup the type in the module's map - TypeMap::const_iterator MTI = mTypes.map.find(Ty); - if (MTI != mTypes.map.end()) - return MTI->second; - - return insertValue(Ty); -} // Low level insert function. Minimal checking is done. This // function is just for the convenience of getOrCreateSlot (above). unsigned SlotMachine::insertValue(const Value *V) { assert(V && "Can't insert a null Value into SlotMachine!"); assert(!isa(V) || isa(V) && - "Can't insert a non-GlobalValue Constant into SlotMachine"); - - // If this value does not contribute to a plane (is void) - // or if the value already has a name then ignore it. - if (V->getType() == Type::VoidTy || V->hasName()) { - SC_DEBUG("ignored value " << *V << "\n"); - return 0; // FIXME: Wrong return value - } + "Can't insert a non-GlobalValue Constant into SlotMachine"); + assert(V->getType() != Type::VoidTy && !V->hasName()); const Type *VTy = V->getType(); unsigned DestSlot = 0; @@ -1813,21 +1768,3 @@ SC_DEBUG("]\n"); return DestSlot; } - -// Low level insert function. Minimal checking is done. This -// function is just for the convenience of getOrCreateSlot (above). -unsigned SlotMachine::insertValue(const Type *Ty) { - assert(Ty && "Can't insert a null Type into SlotMachine!"); - - unsigned DestSlot = 0; - - if (TheFunction) { - DestSlot = fTypes.map[Ty] = fTypes.next_slot++; - } else { - DestSlot = fTypes.map[Ty] = fTypes.next_slot++; - } - SC_DEBUG(" Inserting type [" << DestSlot << "] = " << Ty << "\n"); - return DestSlot; -} - -// vim: sw=2 From sabre at nondot.org Tue Dec 5 23:50:56 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:50:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060550.kB65ouKf024948@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.221 -> 1.222 --- Log message: remove more code that was only used by the bc writer --- Diffs of the changes: (+2 -90) AsmWriter.cpp | 92 +--------------------------------------------------------- 1 files changed, 2 insertions(+), 90 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.221 llvm/lib/VMCore/AsmWriter.cpp:1.222 --- llvm/lib/VMCore/AsmWriter.cpp:1.221 Tue Dec 5 23:42:32 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:50:41 2006 @@ -49,7 +49,6 @@ /// @brief A mapping of Values to slot numbers typedef std::map ValueMap; - typedef std::map TypeMap; /// @brief A plane with next slot number and ValueMap struct ValuePlane { @@ -58,13 +57,6 @@ ValuePlane() { next_slot = 0; } ///< Make sure we start at 0 }; - struct TypePlane { - unsigned next_slot; - TypeMap map; - TypePlane() { next_slot = 0; } - void clear() { map.clear(); next_slot = 0; } - }; - /// @brief The map of planes by Type typedef std::map TypedPlanes; @@ -86,7 +78,6 @@ /// plane. Its an error to ask for something not in the SlotMachine. /// Its an error to ask for a Type* int getSlot(const Value *V); - int getSlot(const Type*Ty); /// Determine if a Value has a slot or not bool hasSlot(const Value* V); @@ -149,11 +140,9 @@ /// @brief The TypePlanes map for the module level data TypedPlanes mMap; - TypePlane mTypes; /// @brief The TypePlanes map for the function level data TypedPlanes fMap; - TypePlane fTypes; /// @} @@ -168,12 +157,7 @@ static void WriteAsOperandInternal(std::ostream &Out, const Value *V, bool PrintName, - std::map &TypeTable, - SlotMachine *Machine); - -static void WriteAsOperandInternal(std::ostream &Out, const Type *T, - bool PrintName, - std::map &TypeTable, + std::map &TypeTable, SlotMachine *Machine); static const Module *getModuleFromVal(const Value *V) { @@ -653,26 +637,6 @@ return Out; } -/// WriteAsOperandInternal - Write the name of the specified value out to -/// the specified ostream. This can be useful when you just want to print -/// int %reg126, not the whole instruction that generated it. -/// -static void WriteAsOperandInternal(std::ostream &Out, const Type *T, - bool PrintName, - std::map &TypeTable, - SlotMachine *Machine) { - Out << ' '; - int Slot; - if (Machine) { - Slot = Machine->getSlot(T); - if (Slot != -1) - Out << '%' << Slot; - else - Out << ""; - } else { - Out << T->getDescription(); - } -} /// WriteAsOperand - Write the name of the specified value out to the specified /// ostream. This can be useful when you just want to print int %reg126, not @@ -686,13 +650,9 @@ fillTypeNameTable(Context, TypeNames); - // if (PrintType) - // printTypeInt(Out, V->getType(), TypeNames); - printTypeInt(Out, Ty, TypeNames); - WriteAsOperandInternal(Out, Ty, PrintName, TypeNames, 0); - return Out; + return Out << ' ' << Ty->getDescription(); } namespace llvm { @@ -1468,10 +1428,6 @@ : TheModule(M) ///< Saved for lazy initialization. , TheFunction(0) , FunctionProcessed(false) - , mMap() - , mTypes() - , fMap() - , fTypes() { } @@ -1481,10 +1437,6 @@ : TheModule(F ? F->getParent() : 0) ///< Saved for lazy initialization , TheFunction(F) ///< Saved for lazy initialization , FunctionProcessed(false) - , mMap() - , mTypes() - , fMap() - , fTypes() { } @@ -1547,7 +1499,6 @@ void SlotMachine::purgeFunction() { SC_DEBUG("begin purgeFunction!\n"); fMap.clear(); // Simply discard the function level map - fTypes.clear(); TheFunction = 0; FunctionProcessed = false; SC_DEBUG("end purgeFunction!\n"); @@ -1614,45 +1565,6 @@ return MVI->second; } -/// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. -/// Types are forbidden because Type does not inherit from Value (any more). -int SlotMachine::getSlot(const Type *Ty) { - assert(Ty && "Can't get slot for null Type"); - - // Check for uninitialized state and do lazy initialization - this->initialize(); - - if (TheFunction) { - // Lookup the Type in the function map - TypeMap::const_iterator FTI = fTypes.map.find(Ty); - // If the Type doesn't exist in the function map - if (FTI == fTypes.map.end()) { - TypeMap::const_iterator MTI = mTypes.map.find(Ty); - // If we didn't find it, it wasn't inserted - if (MTI == mTypes.map.end()) - return -1; - // We found it only at the module level - return MTI->second; - - // else the value exists in the function map - } else { - // Return the slot number as the module's contribution to - // the type plane plus the index in the function's contribution - // to the type plane. - return mTypes.next_slot + FTI->second; - } - } - - // N.B. Can get here only if either !TheFunction - - // Lookup the value in the module's map - TypeMap::const_iterator MTI = mTypes.map.find(Ty); - // Make sure we found it. - if (MTI == mTypes.map.end()) return -1; - // Return it. - return MTI->second; -} // Create a new slot, or return the existing slot if it is already // inserted. Note that the logic here parallels getSlot but instead From sabre at nondot.org Tue Dec 5 23:55:58 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:55:58 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060555.kB65twjE025095@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.222 -> 1.223 --- Log message: remove unused api, simplify some code --- Diffs of the changes: (+2 -20) AsmWriter.cpp | 22 ++-------------------- 1 files changed, 2 insertions(+), 20 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.222 llvm/lib/VMCore/AsmWriter.cpp:1.223 --- llvm/lib/VMCore/AsmWriter.cpp:1.222 Tue Dec 5 23:50:41 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:55:41 2006 @@ -638,23 +638,6 @@ } -/// WriteAsOperand - Write the name of the specified value out to the specified -/// ostream. This can be useful when you just want to print int %reg126, not -/// the whole instruction that generated it. -/// -std::ostream &llvm::WriteAsOperand(std::ostream &Out, const Type *Ty, - bool PrintType, bool PrintName, - const Module *Context) { - std::map TypeNames; - assert(Context != 0 && "Can't write types as operand without module context"); - - fillTypeNameTable(Context, TypeNames); - - printTypeInt(Out, Ty, TypeNames); - - return Out << ' ' << Ty->getDescription(); -} - namespace llvm { class AssemblyWriter { @@ -1674,9 +1657,8 @@ SC_DEBUG(" Inserting value [" << VTy << "] = " << V << " slot=" << DestSlot << " ["); - // G = Global, C = Constant, T = Type, F = Function, o = other - SC_DEBUG((isa(V) ? 'G' : (isa(V) ? 'F' : - (isa(V) ? 'C' : 'o')))); + // G = Global, F = Function, o = other + SC_DEBUG((isa(V) ? 'G' : (isa(V) ? 'F' : 'o'))); SC_DEBUG("]\n"); return DestSlot; } From sabre at nondot.org Tue Dec 5 23:56:00 2006 From: sabre at nondot.org (Chris Lattner) Date: Tue, 5 Dec 2006 23:56:00 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Assembly/Writer.h Message-ID: <200612060556.kB65u0BK025101@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Assembly: Writer.h updated: 1.34 -> 1.35 --- Log message: remove unused api --- Diffs of the changes: (+0 -3) Writer.h | 3 --- 1 files changed, 3 deletions(-) Index: llvm/include/llvm/Assembly/Writer.h diff -u llvm/include/llvm/Assembly/Writer.h:1.34 llvm/include/llvm/Assembly/Writer.h:1.35 --- llvm/include/llvm/Assembly/Writer.h:1.34 Sun Aug 27 20:08:45 2006 +++ llvm/include/llvm/Assembly/Writer.h Tue Dec 5 23:55:44 2006 @@ -40,9 +40,6 @@ std::ostream &WriteAsOperand(std::ostream &, const Value *, bool PrintTy = true, bool PrintName = true, const Module *Context = 0); -std::ostream &WriteAsOperand(std::ostream&, const Type*, bool PrintTy = true, - bool PrintName = true, const Module* Context = 0); - } // End llvm namespace #endif From sabre at nondot.org Wed Dec 6 00:13:42 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:13:42 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp Message-ID: <200612060613.kB66DgTZ025480@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/IA64: IA64AsmPrinter.cpp updated: 1.37 -> 1.38 --- Log message: These asm printers shouldn't use assembly/writer.h --- Diffs of the changes: (+3 -10) IA64AsmPrinter.cpp | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.37 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.38 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.37 Wed Oct 4 21:51:36 2006 +++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp Wed Dec 6 00:13:25 2006 @@ -20,7 +20,6 @@ #include "IA64TargetMachine.h" #include "llvm/Module.h" #include "llvm/Type.h" -#include "llvm/Assembly/Writer.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/Target/TargetAsmInfo.h" @@ -282,14 +281,12 @@ if (I->hasInternalLinkage()) { O << "\t.lcomm " << name << "#," << TD->getTypeSize(C->getType()) << "," << (1 << Align); - O << "\t\t// "; + O << "\n"; } else { O << "\t.common " << name << "#," << TD->getTypeSize(C->getType()) << "," << (1 << Align); - O << "\t\t// "; + O << "\n"; } - WriteAsOperand(O, I, true, true, &M); - O << "\n"; } else { switch (I->getLinkage()) { case GlobalValue::LinkOnceLinkage: @@ -326,11 +323,7 @@ EmitAlignment(Align); O << "\t.type " << name << ", at object\n"; O << "\t.size " << name << "," << Size << "\n"; - O << name << ":\t\t\t\t// "; - WriteAsOperand(O, I, true, true, &M); - O << " = "; - WriteAsOperand(O, C, false, false, &M); - O << "\n"; + O << name << ":\t\t\t\t// " << *C << "\n"; EmitGlobalConstant(C); } } From sabre at nondot.org Wed Dec 6 00:13:43 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:13:43 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp Message-ID: <200612060613.kB66Dhqb025490@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.30 -> 1.31 --- Log message: These asm printers shouldn't use assembly/writer.h --- Diffs of the changes: (+0 -4) ARMAsmPrinter.cpp | 4 ---- 1 files changed, 4 deletions(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.30 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.31 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.30 Tue Dec 5 11:00:17 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Wed Dec 6 00:13:25 2006 @@ -18,7 +18,6 @@ #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" -#include "llvm/Assembly/Writer.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineConstantPool.h" @@ -300,9 +299,6 @@ O << "\t.comm " << name << "," << TD->getTypeSize(C->getType()) << "," << (unsigned)TD->getTypeAlignment(C->getType()); - O << "\t\t"; - O << TAI->getCommentString() << " "; - WriteAsOperand(O, I, true, true, &M); O << "\n"; } else { switch (I->getLinkage()) { From sabre at nondot.org Wed Dec 6 00:13:43 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:13:43 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp Message-ID: <200612060613.kB66Dh3p025485@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Sparc: SparcAsmPrinter.cpp updated: 1.71 -> 1.72 --- Log message: These asm printers shouldn't use assembly/writer.h --- Diffs of the changes: (+1 -6) SparcAsmPrinter.cpp | 7 +------ 1 files changed, 1 insertion(+), 6 deletions(-) Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71 llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.72 --- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp Wed Dec 6 00:13:25 2006 @@ -17,7 +17,6 @@ #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" -#include "llvm/Assembly/Writer.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineConstantPool.h" @@ -241,8 +240,6 @@ O << "\t.comm " << name << "," << TD->getTypeSize(C->getType()) << "," << (unsigned)TD->getTypeAlignment(C->getType()); - O << "\t\t! "; - WriteAsOperand(O, I, true, true, &M); O << "\n"; } else { switch (I->getLinkage()) { @@ -284,9 +281,7 @@ O << "\t.align " << Align << "\n"; O << "\t.type " << name << ",#object\n"; O << "\t.size " << name << "," << Size << "\n"; - O << name << ":\t\t\t\t! "; - WriteAsOperand(O, I, true, true, &M); - O << "\n"; + O << name << ":\n"; EmitGlobalConstant(C); } } From sabre at nondot.org Wed Dec 6 00:15:58 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:15:58 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060615.kB66FwhC025607@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.223 -> 1.224 --- Log message: The hasSlot methods are gone. Remove the 'PrintName' argument to WriteAsOperand, as it is always true. Only call getOrCreateSlot on things that are valid. --- Diffs of the changes: (+20 -25) AsmWriter.cpp | 45 ++++++++++++++++++++------------------------- 1 files changed, 20 insertions(+), 25 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.223 llvm/lib/VMCore/AsmWriter.cpp:1.224 --- llvm/lib/VMCore/AsmWriter.cpp:1.223 Tue Dec 5 23:55:41 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Wed Dec 6 00:15:43 2006 @@ -79,10 +79,6 @@ /// Its an error to ask for a Type* int getSlot(const Value *V); - /// Determine if a Value has a slot or not - bool hasSlot(const Value* V); - bool hasSlot(const Type* Ty); - /// @} /// @name Mutators /// @{ @@ -622,8 +618,7 @@ /// the whole instruction that generated it. /// std::ostream &llvm::WriteAsOperand(std::ostream &Out, const Value *V, - bool PrintType, bool PrintName, - const Module *Context) { + bool PrintType, const Module *Context) { std::map TypeNames; if (Context == 0) Context = getModuleFromVal(V); @@ -633,7 +628,7 @@ if (PrintType) printTypeInt(Out, V->getType(), TypeNames); - WriteAsOperandInternal(Out, V, PrintName, TypeNames, 0); + WriteAsOperandInternal(Out, V, true, TypeNames, 0); return Out; } @@ -1437,15 +1432,17 @@ void SlotMachine::processModule() { SC_DEBUG("begin processModule!\n"); - // Add all of the global variables to the value table... + // Add all of the unnamed global variables to the value table. for (Module::const_global_iterator I = TheModule->global_begin(), E = TheModule->global_end(); I != E; ++I) - getOrCreateSlot(I); + if (!I->hasName()) + getOrCreateSlot(I); - // Add all the functions to the table + // Add all the unnamed functions to the table. for (Module::const_iterator I = TheModule->begin(), E = TheModule->end(); I != E; ++I) - getOrCreateSlot(I); + if (!I->hasName()) + getOrCreateSlot(I); SC_DEBUG("end processModule!\n"); } @@ -1455,19 +1452,22 @@ void SlotMachine::processFunction() { SC_DEBUG("begin processFunction!\n"); - // Add all the function arguments + // Add all the function arguments with no names. for(Function::const_arg_iterator AI = TheFunction->arg_begin(), AE = TheFunction->arg_end(); AI != AE; ++AI) - getOrCreateSlot(AI); + if (!AI->hasName()) + getOrCreateSlot(AI); SC_DEBUG("Inserting Instructions:\n"); - // Add all of the basic blocks and instructions + // Add all of the basic blocks and instructions with no names. for (Function::const_iterator BB = TheFunction->begin(), E = TheFunction->end(); BB != E; ++BB) { - getOrCreateSlot(BB); - for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) - getOrCreateSlot(I); + if (!BB->hasName()) + getOrCreateSlot(BB); + for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I != E; ++I) + if (I->getType() != Type::VoidTy && !I->hasName()) + getOrCreateSlot(I); } FunctionProcessed = true; @@ -1553,16 +1553,11 @@ // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. unsigned SlotMachine::getOrCreateSlot(const Value *V) { - assert(V && "Can't insert a null Value to SlotMachine"); + const Type* VTy = V->getType(); + assert(VTy != Type::VoidTy && !V->hasName() && "Doesn't need a slot!"); assert(!isa(V) || isa(V) && "Can't insert a non-GlobalValue Constant into SlotMachine"); - const Type* VTy = V->getType(); - - // Just ignore void typed things or things with names. - if (VTy == Type::VoidTy || V->hasName()) - return 0; // FIXME: Wrong return value! - // Look up the type plane for the Value's type from the module map TypedPlanes::const_iterator MI = mMap.find(VTy); @@ -1618,7 +1613,7 @@ } } - // N.B. Can only get here if !TheFunction + // N.B. Can only get here if TheFunction == 0 // If the module map's type plane is not for the Value's type if (MI != mMap.end()) { From sabre at nondot.org Wed Dec 6 00:16:39 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:16:39 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Verifier.cpp Message-ID: <200612060616.kB66Gdto025649@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Verifier.cpp updated: 1.168 -> 1.169 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+1 -1) Verifier.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.168 llvm/lib/VMCore/Verifier.cpp:1.169 --- llvm/lib/VMCore/Verifier.cpp:1.168 Mon Nov 27 20:09:03 2006 +++ llvm/lib/VMCore/Verifier.cpp Wed Dec 6 00:16:21 2006 @@ -218,7 +218,7 @@ if (isa(V)) { msgs << *V; } else { - WriteAsOperand (msgs, V, true, true, Mod); + WriteAsOperand(msgs, V, true, Mod); msgs << "\n"; } } From sabre at nondot.org Wed Dec 6 00:16:39 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:16:39 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/AliasAnalysisCounter.cpp AliasAnalysisEvaluator.cpp CFGPrinter.cpp Trace.cpp Message-ID: <200612060616.kB66Gdlv025660@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: AliasAnalysisCounter.cpp updated: 1.16 -> 1.17 AliasAnalysisEvaluator.cpp updated: 1.29 -> 1.30 CFGPrinter.cpp updated: 1.19 -> 1.20 Trace.cpp updated: 1.3 -> 1.4 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+9 -9) AliasAnalysisCounter.cpp | 6 +++--- AliasAnalysisEvaluator.cpp | 6 +++--- CFGPrinter.cpp | 4 ++-- Trace.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) Index: llvm/lib/Analysis/AliasAnalysisCounter.cpp diff -u llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.16 llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.17 --- llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.16 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/AliasAnalysisCounter.cpp Wed Dec 6 00:16:21 2006 @@ -135,9 +135,9 @@ if (PrintAll || (PrintAllFailures && R == MayAlias)) { llvm_cerr << AliasString << ":\t"; llvm_cerr << "[" << V1Size << "B] "; - WriteAsOperand(std::cerr, V1, true, true, M) << ", "; + WriteAsOperand(std::cerr, V1, true, M) << ", "; llvm_cerr << "[" << V2Size << "B] "; - WriteAsOperand(std::cerr, V2, true, true, M) << "\n"; + WriteAsOperand(std::cerr, V2, true, M) << "\n"; } return R; @@ -159,7 +159,7 @@ if (PrintAll || (PrintAllFailures && R == ModRef)) { llvm_cerr << MRString << ": Ptr: "; llvm_cerr << "[" << Size << "B] "; - WriteAsOperand(std::cerr, P, true, true, M); + WriteAsOperand(std::cerr, P, true, M); llvm_cerr << "\t<->" << *CS.getInstruction(); } return R; Index: llvm/lib/Analysis/AliasAnalysisEvaluator.cpp diff -u llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.29 llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.30 --- llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.29 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/AliasAnalysisEvaluator.cpp Wed Dec 6 00:16:21 2006 @@ -80,8 +80,8 @@ Module *M) { if (P) { llvm_cerr << " " << Msg << ":\t"; - WriteAsOperand(std::cerr, V1, true, true, M) << ", "; - WriteAsOperand(std::cerr, V2, true, true, M) << "\n"; + WriteAsOperand(std::cerr, V1, true, M) << ", "; + WriteAsOperand(std::cerr, V2, true, M) << "\n"; } } @@ -90,7 +90,7 @@ Module *M) { if (P) { llvm_cerr << " " << Msg << ": Ptr: "; - WriteAsOperand(std::cerr, Ptr, true, true, M); + WriteAsOperand(std::cerr, Ptr, true, M); llvm_cerr << "\t<->" << *I; } } Index: llvm/lib/Analysis/CFGPrinter.cpp diff -u llvm/lib/Analysis/CFGPrinter.cpp:1.19 llvm/lib/Analysis/CFGPrinter.cpp:1.20 --- llvm/lib/Analysis/CFGPrinter.cpp:1.19 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/CFGPrinter.cpp Wed Dec 6 00:16:21 2006 @@ -50,12 +50,12 @@ std::ostringstream Out; if (CFGOnly) { - WriteAsOperand(Out, Node, false, true); + WriteAsOperand(Out, Node, false); return Out.str(); } if (Node->getName().empty()) { - WriteAsOperand(Out, Node, false, true); + WriteAsOperand(Out, Node, false); Out << ":"; } Index: llvm/lib/Analysis/Trace.cpp diff -u llvm/lib/Analysis/Trace.cpp:1.3 llvm/lib/Analysis/Trace.cpp:1.4 --- llvm/lib/Analysis/Trace.cpp:1.3 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/Trace.cpp Wed Dec 6 00:16:21 2006 @@ -38,7 +38,7 @@ for (const_iterator i = begin(), e = end(); i != e; ++i) { O << "; "; if (O.stream()) - WriteAsOperand(*O.stream(), *i, true, true, getModule()); + WriteAsOperand(*O.stream(), *i, true, getModule()); O << "\n"; } O << "; Trace parent function: \n" << *F; From sabre at nondot.org Wed Dec 6 00:16:43 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:16:43 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/Reassociate.cpp Message-ID: <200612060616.kB66GhT1025668@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: Reassociate.cpp updated: 1.65 -> 1.66 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+1 -1) Reassociate.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/Reassociate.cpp diff -u llvm/lib/Transforms/Scalar/Reassociate.cpp:1.65 llvm/lib/Transforms/Scalar/Reassociate.cpp:1.66 --- llvm/lib/Transforms/Scalar/Reassociate.cpp:1.65 Wed Nov 1 19:53:58 2006 +++ llvm/lib/Transforms/Scalar/Reassociate.cpp Wed Dec 6 00:16:21 2006 @@ -60,7 +60,7 @@ std::cerr << Instruction::getOpcodeName(I->getOpcode()) << " " << *Ops[0].Op->getType(); for (unsigned i = 0, e = Ops.size(); i != e; ++i) - WriteAsOperand(std::cerr << " ", Ops[i].Op, false, true, M) + WriteAsOperand(std::cerr << " ", Ops[i].Op, false, M) << "," << Ops[i].Rank; } From sabre at nondot.org Wed Dec 6 00:16:43 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:16:43 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/DataStructure/Printer.cpp Message-ID: <200612060616.kB66GhPl025673@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/DataStructure: Printer.cpp updated: 1.88 -> 1.89 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+2 -2) Printer.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Analysis/DataStructure/Printer.cpp diff -u llvm/lib/Analysis/DataStructure/Printer.cpp:1.88 llvm/lib/Analysis/DataStructure/Printer.cpp:1.89 --- llvm/lib/Analysis/DataStructure/Printer.cpp:1.88 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/DataStructure/Printer.cpp Wed Dec 6 00:16:21 2006 @@ -81,7 +81,7 @@ if (G) GlobalECs = &G->getGlobalECs(); for (unsigned i = 0, e = N->getGlobalsList().size(); i != e; ++i) { - WriteAsOperand(OS, N->getGlobalsList()[i], false, true, M); + WriteAsOperand(OS, N->getGlobalsList()[i], false, M); // Figure out how many globals are equivalent to this one. if (GlobalECs) { @@ -157,7 +157,7 @@ for (DSGraph::ScalarMapTy::const_iterator I = VM.begin(); I != VM.end();++I) if (!isa(I->first)) { std::stringstream OS; - WriteAsOperand(OS, I->first, false, true, CurMod); + WriteAsOperand(OS, I->first, false, CurMod); GW.emitSimpleNode(I->first, "", OS.str()); // Add edge from return node to real destination From sabre at nondot.org Wed Dec 6 00:16:44 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:16:44 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Assembly/Writer.h Message-ID: <200612060616.kB66GixU025678@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Assembly: Writer.h updated: 1.35 -> 1.36 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+1 -1) Writer.h | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/include/llvm/Assembly/Writer.h diff -u llvm/include/llvm/Assembly/Writer.h:1.35 llvm/include/llvm/Assembly/Writer.h:1.36 --- llvm/include/llvm/Assembly/Writer.h:1.35 Tue Dec 5 23:55:44 2006 +++ llvm/include/llvm/Assembly/Writer.h Wed Dec 6 00:16:21 2006 @@ -38,7 +38,7 @@ // pointer is printed symbolically. // std::ostream &WriteAsOperand(std::ostream &, const Value *, bool PrintTy = true, - bool PrintName = true, const Module *Context = 0); + const Module *Context = 0); } // End llvm namespace From sabre at nondot.org Wed Dec 6 00:24:42 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:24:42 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060624.kB66Ogxu025977@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.224 -> 1.225 --- Log message: printName is almost always true. In the cases that mattered where it was false, it was effectively set to true by this: - if ((PrintName || isa(V)) && V->hasName()) + if (V->hasName()) Delete printname entirely. --- Diffs of the changes: (+25 -35) AsmWriter.cpp | 60 ++++++++++++++++++++++++---------------------------------- 1 files changed, 25 insertions(+), 35 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.224 llvm/lib/VMCore/AsmWriter.cpp:1.225 --- llvm/lib/VMCore/AsmWriter.cpp:1.224 Wed Dec 6 00:15:43 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Wed Dec 6 00:24:27 2006 @@ -152,7 +152,6 @@ Y("print","Print function to stderr"); static void WriteAsOperandInternal(std::ostream &Out, const Value *V, - bool PrintName, std::map &TypeTable, SlotMachine *Machine); @@ -427,7 +426,6 @@ /// @brief Internal constant writer. static void WriteConstantInt(std::ostream &Out, const Constant *CV, - bool PrintName, std::map &TypeTable, SlotMachine *Machine) { const int IndentSize = 4; @@ -484,12 +482,11 @@ Out << ' '; printTypeInt(Out, ETy, TypeTable); WriteAsOperandInternal(Out, CA->getOperand(0), - PrintName, TypeTable, Machine); + TypeTable, Machine); for (unsigned i = 1, e = CA->getNumOperands(); i != e; ++i) { Out << ", "; printTypeInt(Out, ETy, TypeTable); - WriteAsOperandInternal(Out, CA->getOperand(i), PrintName, - TypeTable, Machine); + WriteAsOperandInternal(Out, CA->getOperand(i), TypeTable, Machine); } } Out << " ]"; @@ -506,16 +503,14 @@ } printTypeInt(Out, CS->getOperand(0)->getType(), TypeTable); - WriteAsOperandInternal(Out, CS->getOperand(0), - PrintName, TypeTable, Machine); + WriteAsOperandInternal(Out, CS->getOperand(0), TypeTable, Machine); for (unsigned i = 1; i < N; i++) { Out << ", "; if (N > 2) Out << Indent; printTypeInt(Out, CS->getOperand(i)->getType(), TypeTable); - WriteAsOperandInternal(Out, CS->getOperand(i), - PrintName, TypeTable, Machine); + WriteAsOperandInternal(Out, CS->getOperand(i), TypeTable, Machine); } if (N > 2) Indent.resize(Indent.size() - IndentSize); } @@ -528,13 +523,11 @@ Out << '<'; Out << ' '; printTypeInt(Out, ETy, TypeTable); - WriteAsOperandInternal(Out, CP->getOperand(0), - PrintName, TypeTable, Machine); + WriteAsOperandInternal(Out, CP->getOperand(0), TypeTable, Machine); for (unsigned i = 1, e = CP->getNumOperands(); i != e; ++i) { Out << ", "; printTypeInt(Out, ETy, TypeTable); - WriteAsOperandInternal(Out, CP->getOperand(i), PrintName, - TypeTable, Machine); + WriteAsOperandInternal(Out, CP->getOperand(i), TypeTable, Machine); } Out << " >"; } else if (isa(CV)) { @@ -551,7 +544,7 @@ for (User::const_op_iterator OI=CE->op_begin(); OI != CE->op_end(); ++OI) { printTypeInt(Out, (*OI)->getType(), TypeTable); - WriteAsOperandInternal(Out, *OI, PrintName, TypeTable, Machine); + WriteAsOperandInternal(Out, *OI, TypeTable, Machine); if (OI+1 != CE->op_end()) Out << ", "; } @@ -574,16 +567,15 @@ /// the whole instruction that generated it. /// static void WriteAsOperandInternal(std::ostream &Out, const Value *V, - bool PrintName, std::map &TypeTable, SlotMachine *Machine) { Out << ' '; - if ((PrintName || isa(V)) && V->hasName()) + if (V->hasName()) Out << getLLVMName(V->getName()); else { const Constant *CV = dyn_cast(V); if (CV && !isa(CV)) { - WriteConstantInt(Out, CV, PrintName, TypeTable, Machine); + WriteConstantInt(Out, CV, TypeTable, Machine); } else if (const InlineAsm *IA = dyn_cast(V)) { Out << "asm "; if (IA->hasSideEffects()) @@ -628,7 +620,7 @@ if (PrintType) printTypeInt(Out, V->getType(), TypeNames); - WriteAsOperandInternal(Out, V, true, TypeNames, 0); + WriteAsOperandInternal(Out, V, TypeNames, 0); return Out; } @@ -660,7 +652,7 @@ inline void write(const Constant *CPV) { printConstant(CPV); } inline void write(const Type *Ty) { printType(Ty); } - void writeOperand(const Value *Op, bool PrintType, bool PrintName = true); + void writeOperand(const Value *Op, bool PrintType); const Module* getModule() { return TheModule; } @@ -738,13 +730,12 @@ } -void AssemblyWriter::writeOperand(const Value *Operand, bool PrintType, - bool PrintName) { - if (Operand != 0) { - if (PrintType) { Out << ' '; printType(Operand->getType()); } - WriteAsOperandInternal(Out, Operand, PrintName, TypeNames, &Machine); - } else { +void AssemblyWriter::writeOperand(const Value *Operand, bool PrintType) { + if (Operand == 0) { Out << ""; + } else { + if (PrintType) { Out << ' '; printType(Operand->getType()); } + WriteAsOperandInternal(Out, Operand, TypeNames, &Machine); } } @@ -850,7 +841,7 @@ if (GV->hasInitializer()) { Constant* C = cast(GV->getInitializer()); assert(C && "GlobalVar initializer isn't constant?"); - writeOperand(GV->getInitializer(), false, isa(C)); + writeOperand(GV->getInitializer(), false); } if (GV->hasSection()) @@ -904,8 +895,8 @@ // Print out name... Out << "\t" << getLLVMName(CPV->getName()) << " ="; - // Write the value out now... - writeOperand(CPV, true, false); + // Write the value out now. + writeOperand(CPV, true); printInfoComment(*CPV); Out << "\n"; @@ -1037,10 +1028,10 @@ Out << " No predecessors!"; } else { Out << " preds ="; - writeOperand(*PI, false, true); + writeOperand(*PI, false); for (++PI; PI != PE; ++PI) { Out << ','; - writeOperand(*PI, false, true); + writeOperand(*PI, false); } } } @@ -1299,7 +1290,7 @@ } void InlineAsm::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const { - WriteAsOperand(o, this, true, true, 0); + WriteAsOperand(o, this, true, 0); } void BasicBlock::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const { @@ -1323,7 +1314,7 @@ o << ' ' << getType()->getDescription() << ' '; std::map TypeTable; - WriteConstantInt(o, this, false, TypeTable, 0); + WriteConstantInt(o, this, TypeTable, 0); } void Type::print(std::ostream &o) const { @@ -1334,8 +1325,7 @@ } void Argument::print(std::ostream &o) const { - WriteAsOperand(o, this, true, true, - getParent() ? getParent()->getParent() : 0); + WriteAsOperand(o, this, true, getParent() ? getParent()->getParent() : 0); } // Value::dump - allow easy printing of Values from the debugger. @@ -1376,7 +1366,7 @@ else if (const GlobalVariable *GV = dyn_cast(&V)) AW->write(GV); else - AW->writeOperand(&V, true, true); + AW->writeOperand(&V, true); return *this; } From reid at x10sys.com Wed Dec 6 00:25:37 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 00:25:37 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/ParserInternals.h UpgradeParser.y Message-ID: <200612060625.kB66PbjP026006@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: ParserInternals.h updated: 1.8 -> 1.9 UpgradeParser.y updated: 1.18 -> 1.19 --- Log message: Fix upgrade of setcc with bool operands. --- Diffs of the changes: (+6 -2) ParserInternals.h | 4 ++++ UpgradeParser.y | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) Index: llvm/tools/llvm-upgrade/ParserInternals.h diff -u llvm/tools/llvm-upgrade/ParserInternals.h:1.8 llvm/tools/llvm-upgrade/ParserInternals.h:1.9 --- llvm/tools/llvm-upgrade/ParserInternals.h:1.8 Tue Dec 5 13:18:29 2006 +++ llvm/tools/llvm-upgrade/ParserInternals.h Wed Dec 6 00:25:22 2006 @@ -78,6 +78,10 @@ oldTy == UIntTy || oldTy == ULongTy; } + bool isBool() const { + return oldTy == BoolTy; + } + bool isSignless() const { return !isSigned() && !isUnsigned(); } bool isInteger() const { return isSigned() || isUnsigned(); } bool isIntegral() const { return oldTy == BoolTy || isInteger(); } Index: llvm/tools/llvm-upgrade/UpgradeParser.y diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.18 llvm/tools/llvm-upgrade/UpgradeParser.y:1.19 --- llvm/tools/llvm-upgrade/UpgradeParser.y:1.18 Tue Dec 5 13:18:29 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y Wed Dec 6 00:25:22 2006 @@ -23,7 +23,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 0 +#define UPGRADE_SETCOND_OPS 1 int yylex(); // declaration" of xxx warnings. int yyparse(); @@ -255,7 +255,7 @@ result.erase(5,1); else if (TI.isSigned()) result[5] = 's'; - else if (TI.isUnsigned() || TI.isPointer()) + else if (TI.isUnsigned() || TI.isPointer() || TI.isBool()) result[5] = 'u'; else yyerror("Invalid integral type for setcc"); From reid at x10sys.com Wed Dec 6 00:26:01 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 00:26:01 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.cpp.cvs UpgradeParser.h UpgradeParser.h.cvs UpgradeParser.y.cvs Message-ID: <200612060626.kB66Q1Km026037@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.cpp updated: 1.19 -> 1.20 UpgradeParser.cpp.cvs updated: 1.19 -> 1.20 UpgradeParser.h updated: 1.14 -> 1.15 UpgradeParser.h.cvs updated: 1.14 -> 1.15 UpgradeParser.y.cvs updated: 1.18 -> 1.19 --- Log message: Regenerate. --- Diffs of the changes: (+330 -330) UpgradeParser.cpp | 326 +++++++++++++++++++++++++------------------------- UpgradeParser.cpp.cvs | 326 +++++++++++++++++++++++++------------------------- UpgradeParser.h | 2 UpgradeParser.h.cvs | 2 UpgradeParser.y.cvs | 4 5 files changed, 330 insertions(+), 330 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.19 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.20 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.19 Tue Dec 5 13:21:25 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Wed Dec 6 00:25:46 2006 @@ -368,7 +368,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -381,7 +381,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 0 +#define UPGRADE_SETCOND_OPS 1 int yylex(); // declaration" of xxx warnings. int yyparse(); @@ -613,7 +613,7 @@ result.erase(5,1); else if (TI.isSigned()) result[5] = 's'; - else if (TI.isUnsigned() || TI.isPointer()) + else if (TI.isUnsigned() || TI.isPointer() || TI.isBool()) result[5] = 'u'; else yyerror("Invalid integral type for setcc"); @@ -642,7 +642,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -2393,26 +2393,26 @@ switch (yyn) { case 81: -#line 358 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 358 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 361 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 361 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 368 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 373 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 373 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2421,27 +2421,27 @@ break; case 98: -#line 378 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 378 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 384 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 388 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2451,7 +2451,7 @@ break; case 103: -#line 396 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 396 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2460,17 +2460,17 @@ break; case 104: -#line 402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 402 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 407 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 407 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2481,7 +2481,7 @@ break; case 109: -#line 417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 417 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2490,7 +2490,7 @@ break; case 127: -#line 439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 439 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2498,7 +2498,7 @@ break; case 128: -#line 443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 443 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2506,14 +2506,14 @@ break; case 129: -#line 447 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 447 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 450 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 450 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2522,7 +2522,7 @@ break; case 131: -#line 455 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 455 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2532,7 +2532,7 @@ break; case 132: -#line 461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 461 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2544,7 +2544,7 @@ break; case 133: -#line 469 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 469 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2556,7 +2556,7 @@ break; case 134: -#line 477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 477 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2566,7 +2566,7 @@ break; case 135: -#line 483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 483 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2574,7 +2574,7 @@ break; case 136: -#line 487 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 487 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2584,14 +2584,14 @@ break; case 137: -#line 498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 498 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 501 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2600,7 +2600,7 @@ break; case 140: -#line 510 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 510 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2609,21 +2609,21 @@ break; case 141: -#line 515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 515 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 518 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 528 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 528 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2633,7 +2633,7 @@ break; case 144: -#line 534 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 534 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2642,7 +2642,7 @@ break; case 145: -#line 539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 539 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2652,7 +2652,7 @@ break; case 146: -#line 545 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 545 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2662,7 +2662,7 @@ break; case 147: -#line 551 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 551 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2672,7 +2672,7 @@ break; case 148: -#line 557 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 557 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2681,7 +2681,7 @@ break; case 149: -#line 562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 562 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2691,7 +2691,7 @@ break; case 150: -#line 568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 568 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2701,7 +2701,7 @@ break; case 151: -#line 574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 574 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2711,7 +2711,7 @@ break; case 152: -#line 580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 580 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2721,7 +2721,7 @@ break; case 153: -#line 586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 586 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2731,7 +2731,7 @@ break; case 154: -#line 592 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 592 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2741,7 +2741,7 @@ break; case 155: -#line 598 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 598 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2751,7 +2751,7 @@ break; case 156: -#line 604 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 604 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2761,7 +2761,7 @@ break; case 157: -#line 610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 610 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2771,7 +2771,7 @@ break; case 158: -#line 616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 616 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2781,7 +2781,7 @@ break; case 159: -#line 624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 624 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2799,7 +2799,7 @@ break; case 160: -#line 638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 638 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2815,7 +2815,7 @@ break; case 161: -#line 650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 650 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2824,7 +2824,7 @@ break; case 162: -#line 655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 655 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2834,7 +2834,7 @@ break; case 163: -#line 661 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 661 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2843,7 +2843,7 @@ break; case 164: -#line 666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 666 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2855,7 +2855,7 @@ break; case 165: -#line 674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 674 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2864,7 +2864,7 @@ break; case 166: -#line 679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 679 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2873,7 +2873,7 @@ break; case 167: -#line 684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 684 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2885,7 +2885,7 @@ break; case 168: -#line 692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 692 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2894,7 +2894,7 @@ break; case 169: -#line 697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 697 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2903,7 +2903,7 @@ break; case 170: -#line 702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 702 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2912,7 +2912,7 @@ break; case 171: -#line 712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 712 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2921,25 +2921,25 @@ break; case 172: -#line 717 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 717 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 732 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 732 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 737 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 737 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 740 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2948,7 +2948,7 @@ break; case 178: -#line 745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 745 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2956,7 +2956,7 @@ break; case 179: -#line 749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 749 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2964,17 +2964,17 @@ break; case 180: -#line 753 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 753 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 755 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 758 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 758 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2990,7 +2990,7 @@ break; case 184: -#line 770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 770 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2999,7 +2999,7 @@ break; case 185: -#line 775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 775 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3008,7 +3008,7 @@ break; case 186: -#line 780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 780 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3021,7 +3021,7 @@ break; case 187: -#line 789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 789 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3034,7 +3034,7 @@ break; case 188: -#line 798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 798 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3047,7 +3047,7 @@ break; case 189: -#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3060,7 +3060,7 @@ break; case 190: -#line 816 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 816 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3069,7 +3069,7 @@ break; case 191: -#line 821 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 821 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3078,14 +3078,14 @@ break; case 192: -#line 826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 826 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 836 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3094,7 +3094,7 @@ break; case 197: -#line 841 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 841 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3105,7 +3105,7 @@ break; case 198: -#line 848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 848 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3114,7 @@ break; case 199: -#line 853 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 853 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3123,7 +3123,7 @@ break; case 200: -#line 860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 860 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3132,7 +3132,7 @@ break; case 201: -#line 867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 867 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3141,19 +3141,19 @@ break; case 203: -#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 884 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 884 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3163,7 +3163,7 @@ break; case 209: -#line 891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 891 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3171,21 +3171,21 @@ break; case 210: -#line 895 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 895 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 899 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 899 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 902 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 902 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3194,19 +3194,19 @@ break; case 213: -#line 907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 907 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 910 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 910 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 913 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3228,17 +3228,17 @@ break; case 216: -#line 932 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 932 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 933 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3250,17 +3250,17 @@ break; case 219: -#line 944 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 945 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 947 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3270,12 +3270,12 @@ break; case 222: -#line 955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 961 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3287,12 +3287,12 @@ break; case 226: -#line 974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 974 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 980 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3301,7 +3301,7 @@ break; case 238: -#line 986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 986 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3313,7 +3313,7 @@ break; case 241: -#line 999 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 999 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3323,7 +3323,7 @@ break; case 242: -#line 1005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1005 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3333,7 +3333,7 @@ break; case 243: -#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3342,28 +3342,28 @@ break; case 244: -#line 1022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1022 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1025 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1025 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1037 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1037 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3372,14 +3372,14 @@ break; case 248: -#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1045 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1045 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3388,12 +3388,12 @@ break; case 251: -#line 1051 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1051 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1053 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3402,7 +3402,7 @@ break; case 253: -#line 1058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1058 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3411,7 +3411,7 @@ break; case 254: -#line 1063 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1063 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3420,7 +3420,7 @@ break; case 255: -#line 1068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1068 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3432,7 +3432,7 @@ break; case 256: -#line 1076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1076 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3443,7 +3443,7 @@ break; case 257: -#line 1083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1083 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3453,7 +3453,7 @@ break; case 258: -#line 1090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1090 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3476,7 +3476,7 @@ break; case 259: -#line 1109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1109 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3485,7 @@ break; case 260: -#line 1114 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1114 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3494,7 +3494,7 @@ break; case 261: -#line 1120 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1120 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3503,7 +3503,7 @@ break; case 262: -#line 1125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1125 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3513,7 +3513,7 @@ break; case 263: -#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3524,7 +3524,7 @@ break; case 264: -#line 1142 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1142 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3535,7 +3535,7 @@ break; case 265: -#line 1149 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1149 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3544,7 +3544,7 @@ break; case 266: -#line 1157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1157 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3552,7 +3552,7 @@ break; case 267: -#line 1161 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1161 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3560,17 +3560,17 @@ break; case 268: -#line 1168 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1168 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1169 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1169 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1173 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3579,7 +3579,7 @@ break; case 272: -#line 1181 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1181 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3589,7 +3589,7 @@ break; case 273: -#line 1187 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1187 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3598,7 +3598,7 @@ break; case 274: -#line 1192 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1192 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3610,7 +3610,7 @@ break; case 275: -#line 1200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1200 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3619,7 @@ break; case 276: -#line 1205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1205 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3628,7 +3628,7 @@ break; case 277: -#line 1210 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1210 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3637,7 +3637,7 @@ break; case 278: -#line 1215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1215 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3649,7 +3649,7 @@ break; case 279: -#line 1223 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1223 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3667,7 +3667,7 @@ break; case 280: -#line 1237 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1237 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3676,7 +3676,7 @@ break; case 281: -#line 1242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1242 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3685,7 +3685,7 @@ break; case 282: -#line 1247 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1247 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3694,7 @@ break; case 283: -#line 1252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1252 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3703,7 @@ break; case 284: -#line 1257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1257 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3712,7 +3712,7 @@ break; case 285: -#line 1262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1262 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3721,7 +3721,7 @@ break; case 286: -#line 1267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1267 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3742,22 +3742,22 @@ break; case 288: -#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1290 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1295 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1295 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1298 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1298 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3768,7 +3768,7 @@ break; case 293: -#line 1305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1305 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3779,7 +3779,7 @@ break; case 294: -#line 1312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1312 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3790,7 +3790,7 @@ break; case 295: -#line 1319 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1319 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3801,7 +3801,7 @@ break; case 296: -#line 1326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1326 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3810,7 +3810,7 @@ break; case 297: -#line 1331 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1331 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3821,7 +3821,7 @@ break; case 298: -#line 1338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1338 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3832,7 +3832,7 @@ break; case 299: -#line 1345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1345 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -4131,7 +4131,7 @@ } -#line 1369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1369 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.19 llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.20 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.19 Tue Dec 5 13:21:25 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs Wed Dec 6 00:25:46 2006 @@ -368,7 +368,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -381,7 +381,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 0 +#define UPGRADE_SETCOND_OPS 1 int yylex(); // declaration" of xxx warnings. int yyparse(); @@ -613,7 +613,7 @@ result.erase(5,1); else if (TI.isSigned()) result[5] = 's'; - else if (TI.isUnsigned() || TI.isPointer()) + else if (TI.isUnsigned() || TI.isPointer() || TI.isBool()) result[5] = 'u'; else yyerror("Invalid integral type for setcc"); @@ -642,7 +642,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; @@ -2393,26 +2393,26 @@ switch (yyn) { case 81: -#line 358 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 358 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].String); ;} break; case 82: -#line 361 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 361 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 90: -#line 368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 368 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 97: -#line 373 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 373 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2421,27 +2421,27 @@ break; case 98: -#line 378 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 378 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(""); ;} break; case 99: -#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 383 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 100: -#line 384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 384 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} break; case 101: -#line 387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 387 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 102: -#line 388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 388 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); *(yyvsp[-1].String) += " " + *(yyvsp[0].String); @@ -2451,7 +2451,7 @@ break; case 103: -#line 396 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 396 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2460,17 +2460,17 @@ break; case 104: -#line 402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 402 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 106: -#line 406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 406 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 107: -#line 407 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 407 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, ", "); if (!(yyvsp[0].String)->empty()) @@ -2481,7 +2481,7 @@ break; case 109: -#line 417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 417 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -2490,7 +2490,7 @@ break; case 127: -#line 439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 439 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy; @@ -2498,7 +2498,7 @@ break; case 128: -#line 443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 443 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = UnresolvedTy; @@ -2506,14 +2506,14 @@ break; case 129: -#line 447 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 447 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Type) = (yyvsp[0].Type); ;} break; case 130: -#line 450 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 450 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference (yyvsp[0].String)->insert(0, "\\"); (yyval.Type).newTy = (yyvsp[0].String); @@ -2522,7 +2522,7 @@ break; case 131: -#line 455 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 455 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; delete (yyvsp[-1].String); @@ -2532,7 +2532,7 @@ break; case 132: -#line 461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 461 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyvsp[-3].String)->insert(0,"[ "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; @@ -2544,7 +2544,7 @@ break; case 133: -#line 469 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 469 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Packed array type? (yyvsp[-3].String)->insert(0,"< "); *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; @@ -2556,7 +2556,7 @@ break; case 134: -#line 477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 477 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? (yyvsp[-1].String)->insert(0, "{ "); *(yyvsp[-1].String) += " }"; @@ -2566,7 +2566,7 @@ break; case 135: -#line 483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 483 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.Type).newTy = new std::string("{}"); (yyval.Type).oldTy = StructTy; @@ -2574,7 +2574,7 @@ break; case 136: -#line 487 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 487 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? *(yyvsp[-1].Type).newTy += '*'; (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; @@ -2584,14 +2584,14 @@ break; case 137: -#line 498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 498 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].Type).newTy; ;} break; case 138: -#line 501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 501 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; delete (yyvsp[0].Type).newTy; @@ -2600,7 +2600,7 @@ break; case 140: -#line 510 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 510 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; delete (yyvsp[0].String); @@ -2609,21 +2609,21 @@ break; case 141: -#line 515 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 515 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 142: -#line 518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 518 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 143: -#line 528 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 528 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2633,7 +2633,7 @@ break; case 144: -#line 534 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 534 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2642,7 +2642,7 @@ break; case 145: -#line 539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 539 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2652,7 +2652,7 @@ break; case 146: -#line 545 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 545 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2662,7 +2662,7 @@ break; case 147: -#line 551 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 551 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-3].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); @@ -2672,7 +2672,7 @@ break; case 148: -#line 557 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 557 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-2].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); @@ -2681,7 +2681,7 @@ break; case 149: -#line 562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 562 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2691,7 +2691,7 @@ break; case 150: -#line 568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 568 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2701,7 +2701,7 @@ break; case 151: -#line 574 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 574 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2711,7 +2711,7 @@ break; case 152: -#line 580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 580 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2721,7 +2721,7 @@ break; case 153: -#line 586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 586 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2731,7 +2731,7 @@ break; case 154: -#line 592 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 592 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2741,7 +2741,7 @@ break; case 155: -#line 598 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 598 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // integral constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2751,7 +2751,7 @@ break; case 156: -#line 604 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 604 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2761,7 +2761,7 @@ break; case 157: -#line 610 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 610 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2771,7 +2771,7 @@ break; case 158: -#line 616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 616 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants (yyval.Const).type = (yyvsp[-1].Type); (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); @@ -2781,7 +2781,7 @@ break; case 159: -#line 624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 624 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-3].Const).cnst; TypeInfo DstTy = (yyvsp[-1].Type); @@ -2799,7 +2799,7 @@ break; case 160: -#line 638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 638 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { @@ -2815,7 +2815,7 @@ break; case 161: -#line 650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 650 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2824,7 +2824,7 @@ break; case 162: -#line 655 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 655 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); (yyval.String) = new std::string(op); @@ -2834,7 +2834,7 @@ break; case 163: -#line 661 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 661 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2843,7 +2843,7 @@ break; case 164: -#line 666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 666 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); @@ -2855,7 +2855,7 @@ break; case 165: -#line 674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 674 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2864,7 +2864,7 @@ break; case 166: -#line 679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 679 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2873,7 +2873,7 @@ break; case 167: -#line 684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 684 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-5].String)->c_str(); if (*(yyvsp[-5].String) == "shr") @@ -2885,7 +2885,7 @@ break; case 168: -#line 692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 692 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2894,7 +2894,7 @@ break; case 169: -#line 697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 697 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2903,7 +2903,7 @@ break; case 170: -#line 702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 702 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); @@ -2912,7 +2912,7 @@ break; case 171: -#line 712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 712 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; (yyvsp[0].Const).destroy(); @@ -2921,25 +2921,25 @@ break; case 172: -#line 717 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 717 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} break; case 175: -#line 732 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 732 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 176: -#line 737 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 737 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 177: -#line 740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 740 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2948,7 +2948,7 @@ break; case 178: -#line 745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 745 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; (yyval.String) = 0; @@ -2956,7 +2956,7 @@ break; case 179: -#line 749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 749 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << "implementation\n"; (yyval.String) = 0; @@ -2964,17 +2964,17 @@ break; case 180: -#line 753 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 753 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 182: -#line 755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 755 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} break; case 183: -#line 758 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 758 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { EnumeratedTypes.push_back((yyvsp[0].Type)); if (!(yyvsp[-2].String)->empty()) { @@ -2990,7 +2990,7 @@ break; case 184: -#line 770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 770 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -2999,7 +2999,7 @@ break; case 185: -#line 775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 775 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3008,7 +3008,7 @@ break; case 186: -#line 780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 780 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3021,7 +3021,7 @@ break; case 187: -#line 789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 789 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3034,7 +3034,7 @@ break; case 188: -#line 798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 798 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3047,7 +3047,7 @@ break; case 189: -#line 807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 807 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].String)->empty()) { *O << *(yyvsp[-4].String) << " = "; @@ -3060,7 +3060,7 @@ break; case 190: -#line 816 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 816 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-1].String); delete (yyvsp[0].String); @@ -3069,7 +3069,7 @@ break; case 191: -#line 821 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 821 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; delete (yyvsp[-2].String); delete (yyvsp[0].String); @@ -3078,14 +3078,14 @@ break; case 192: -#line 826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 826 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 196: -#line 836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 836 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3094,7 +3094,7 @@ break; case 197: -#line 841 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 841 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); if (*(yyvsp[0].String) == "64") @@ -3105,7 +3105,7 @@ break; case 198: -#line 848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 848 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3114,7 +3114,7 @@ break; case 199: -#line 853 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 853 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3123,7 +3123,7 @@ break; case 200: -#line 860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 860 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "[ "); *(yyvsp[-1].String) += " ]"; @@ -3132,7 +3132,7 @@ break; case 201: -#line 867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 867 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3141,19 +3141,19 @@ break; case 203: -#line 873 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 873 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 207: -#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 882 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 208: -#line 884 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 884 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3163,7 +3163,7 @@ break; case 209: -#line 891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 891 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3171,21 +3171,21 @@ break; case 210: -#line 895 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 895 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 211: -#line 899 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 899 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 212: -#line 902 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 902 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += ", ..."; (yyval.String) = (yyvsp[-2].String); @@ -3194,19 +3194,19 @@ break; case 213: -#line 907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 907 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); ;} break; case 214: -#line 910 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 910 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 215: -#line 913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 913 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-7].String)->empty()) { *(yyvsp[-7].String) += " "; @@ -3228,17 +3228,17 @@ break; case 216: -#line 932 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 932 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} break; case 217: -#line 933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 933 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string ("{"); ;} break; case 218: -#line 935 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 935 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-2].String)->empty()) { *O << *(yyvsp[-2].String) << " "; @@ -3250,17 +3250,17 @@ break; case 219: -#line 944 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} break; case 220: -#line 945 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string("}"); ;} break; case 221: -#line 947 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].String)) *O << *(yyvsp[-1].String); @@ -3270,12 +3270,12 @@ break; case 222: -#line 955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 225: -#line 961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 961 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); @@ -3287,12 +3287,12 @@ break; case 226: -#line 974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 974 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 236: -#line 980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 980 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].String)->insert(0, "<"); *(yyvsp[-1].String) += ">"; @@ -3301,7 +3301,7 @@ break; case 238: -#line 986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 986 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) { *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); @@ -3313,7 +3313,7 @@ break; case 241: -#line 999 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 999 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = false; @@ -3323,7 +3323,7 @@ break; case 242: -#line 1005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1005 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value).val = (yyvsp[0].String); (yyval.Value).constant = true; @@ -3333,7 +3333,7 @@ break; case 243: -#line 1016 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1016 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Value) = (yyvsp[0].Value); (yyval.Value).type = (yyvsp[-1].Type); @@ -3342,28 +3342,28 @@ break; case 244: -#line 1022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1022 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 245: -#line 1025 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1025 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.String) = 0; ;} break; case 246: -#line 1033 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1033 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 247: -#line 1037 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1037 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3372,14 +3372,14 @@ break; case 248: -#line 1042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1042 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = 0; ;} break; case 249: -#line 1045 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1045 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3388,12 +3388,12 @@ break; case 251: -#line 1051 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1051 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} break; case 252: -#line 1053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1053 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); @@ -3402,7 +3402,7 @@ break; case 253: -#line 1058 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1058 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); @@ -3411,7 +3411,7 @@ break; case 254: -#line 1063 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1063 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3420,7 +3420,7 @@ break; case 255: -#line 1068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1068 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " @@ -3432,7 +3432,7 @@ break; case 256: -#line 1076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1076 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; @@ -3443,7 +3443,7 @@ break; case 257: -#line 1083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1083 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; @@ -3453,7 +3453,7 @@ break; case 258: -#line 1090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1090 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " "; if (!(yyvsp[-13].String)->empty()) @@ -3476,7 +3476,7 @@ break; case 259: -#line 1109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1109 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3485,7 +3485,7 @@ break; case 260: -#line 1114 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1114 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *O << " " << *(yyvsp[0].String) << "\n"; delete (yyvsp[0].String); @@ -3494,7 +3494,7 @@ break; case 261: -#line 1120 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1120 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); @@ -3503,7 +3503,7 @@ break; case 262: -#line 1125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1125 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; @@ -3513,7 +3513,7 @@ break; case 263: -#line 1133 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1133 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].String)->empty()) *(yyvsp[-1].String) += " = "; @@ -3524,7 +3524,7 @@ break; case 264: -#line 1142 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1142 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; @@ -3535,7 +3535,7 @@ break; case 265: -#line 1149 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1149 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3544,7 +3544,7 @@ break; case 266: -#line 1157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1157 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); (yyval.ValList)->push_back((yyvsp[0].Value)); @@ -3552,7 +3552,7 @@ break; case 267: -#line 1161 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1161 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); (yyval.ValList) = (yyvsp[-2].ValList); @@ -3560,17 +3560,17 @@ break; case 268: -#line 1168 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1168 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 269: -#line 1169 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1169 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 270: -#line 1173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1173 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3579,7 +3579,7 @@ break; case 272: -#line 1181 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1181 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); (yyval.String) = new std::string(op); @@ -3589,7 +3589,7 @@ break; case 273: -#line 1187 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1187 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3598,7 +3598,7 @@ break; case 274: -#line 1192 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1192 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { #if UPGRADE_SETCOND_OPS *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); @@ -3610,7 +3610,7 @@ break; case 275: -#line 1200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1200 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3619,7 +3619,7 @@ break; case 276: -#line 1205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1205 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); @@ -3628,7 +3628,7 @@ break; case 277: -#line 1210 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1210 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3637,7 +3637,7 @@ break; case 278: -#line 1215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1215 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { const char* shiftop = (yyvsp[-3].String)->c_str(); if (*(yyvsp[-3].String) == "shr") @@ -3649,7 +3649,7 @@ break; case 279: -#line 1223 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1223 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { std::string source = *(yyvsp[-2].Value).val; TypeInfo SrcTy = (yyvsp[-2].Value).type; @@ -3667,7 +3667,7 @@ break; case 280: -#line 1237 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1237 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3676,7 +3676,7 @@ break; case 281: -#line 1242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1242 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); @@ -3685,7 +3685,7 @@ break; case 282: -#line 1247 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1247 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3694,7 +3694,7 @@ break; case 283: -#line 1252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1252 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3703,7 +3703,7 @@ break; case 284: -#line 1257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1257 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); @@ -3712,7 +3712,7 @@ break; case 285: -#line 1262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1262 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); @@ -3721,7 +3721,7 @@ break; case 286: -#line 1267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1267 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); @@ -3742,22 +3742,22 @@ break; case 288: -#line 1289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1289 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = (yyvsp[0].ValList); ;} break; case 289: -#line 1290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1290 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValList) = new ValueList(); ;} break; case 291: -#line 1295 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1295 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { (yyval.String) = new std::string(); ;} break; case 292: -#line 1298 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1298 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3768,7 +3768,7 @@ break; case 293: -#line 1305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1305 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3779,7 +3779,7 @@ break; case 294: -#line 1312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1312 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; if (!(yyvsp[0].String)->empty()) @@ -3790,7 +3790,7 @@ break; case 295: -#line 1319 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1319 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; if (!(yyvsp[0].String)->empty()) @@ -3801,7 +3801,7 @@ break; case 296: -#line 1326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1326 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; (yyvsp[0].Value).destroy(); @@ -3810,7 +3810,7 @@ break; case 297: -#line 1331 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1331 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-3].String)->empty()) *(yyvsp[-3].String) += " "; @@ -3821,7 +3821,7 @@ break; case 298: -#line 1338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1338 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].String)->empty()) *(yyvsp[-5].String) += " "; @@ -3832,7 +3832,7 @@ break; case 299: -#line 1345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1345 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" { // Upgrade the indices for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { @@ -4131,7 +4131,7 @@ } -#line 1369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1369 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { Index: llvm/tools/llvm-upgrade/UpgradeParser.h diff -u llvm/tools/llvm-upgrade/UpgradeParser.h:1.14 llvm/tools/llvm-upgrade/UpgradeParser.h:1.15 --- llvm/tools/llvm-upgrade/UpgradeParser.h:1.14 Tue Dec 5 13:21:25 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h Wed Dec 6 00:25:46 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; Index: llvm/tools/llvm-upgrade/UpgradeParser.h.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.14 llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.15 --- llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.14 Tue Dec 5 13:21:25 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h.cvs Wed Dec 6 00:25:46 2006 @@ -333,7 +333,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { std::string* String; TypeInfo Type; Index: llvm/tools/llvm-upgrade/UpgradeParser.y.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.18 llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.19 --- llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.18 Tue Dec 5 13:21:25 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y.cvs Wed Dec 6 00:25:46 2006 @@ -23,7 +23,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 0 +#define UPGRADE_SETCOND_OPS 1 int yylex(); // declaration" of xxx warnings. int yyparse(); @@ -255,7 +255,7 @@ result.erase(5,1); else if (TI.isSigned()) result[5] = 's'; - else if (TI.isUnsigned() || TI.isPointer()) + else if (TI.isUnsigned() || TI.isPointer() || TI.isBool()) result[5] = 'u'; else yyerror("Invalid integral type for setcc"); From reid at x10sys.com Wed Dec 6 00:29:51 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 00:29:51 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.y Message-ID: <200612060629.kB66TpkE026101@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.y updated: 1.19 -> 1.20 --- Log message: Don't turn on SETCC upgrade yet! --- Diffs of the changes: (+1 -1) UpgradeParser.y | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.y diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.19 llvm/tools/llvm-upgrade/UpgradeParser.y:1.20 --- llvm/tools/llvm-upgrade/UpgradeParser.y:1.19 Wed Dec 6 00:25:22 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y Wed Dec 6 00:29:36 2006 @@ -23,7 +23,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 1 +#define UPGRADE_SETCOND_OPS 0 int yylex(); // declaration" of xxx warnings. int yyparse(); From reid at x10sys.com Wed Dec 6 00:30:30 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 00:30:30 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.cpp.cvs UpgradeParser.y.cvs Message-ID: <200612060630.kB66UU1h026132@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.cpp updated: 1.20 -> 1.21 UpgradeParser.cpp.cvs updated: 1.20 -> 1.21 UpgradeParser.y.cvs updated: 1.19 -> 1.20 --- Log message: Regenerate. --- Diffs of the changes: (+3 -3) UpgradeParser.cpp | 2 +- UpgradeParser.cpp.cvs | 2 +- UpgradeParser.y.cvs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.20 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.21 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.20 Wed Dec 6 00:25:46 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Wed Dec 6 00:30:15 2006 @@ -381,7 +381,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 1 +#define UPGRADE_SETCOND_OPS 0 int yylex(); // declaration" of xxx warnings. int yyparse(); Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.20 llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.21 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.20 Wed Dec 6 00:25:46 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs Wed Dec 6 00:30:15 2006 @@ -381,7 +381,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 1 +#define UPGRADE_SETCOND_OPS 0 int yylex(); // declaration" of xxx warnings. int yyparse(); Index: llvm/tools/llvm-upgrade/UpgradeParser.y.cvs diff -u llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.19 llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.20 --- llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.19 Wed Dec 6 00:25:46 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y.cvs Wed Dec 6 00:30:15 2006 @@ -23,7 +23,7 @@ #define YYERROR_VERBOSE 1 #define YYINCLUDED_STDLIB_H #define YYDEBUG 1 -#define UPGRADE_SETCOND_OPS 1 +#define UPGRADE_SETCOND_OPS 0 int yylex(); // declaration" of xxx warnings. int yyparse(); From sabre at nondot.org Wed Dec 6 00:35:39 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:35:39 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/FindUsedTypes.cpp Message-ID: <200612060635.kB66ZdGT026298@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: FindUsedTypes.cpp updated: 1.37 -> 1.38 --- Log message: Simplify code --- Diffs of the changes: (+4 -10) FindUsedTypes.cpp | 14 ++++---------- 1 files changed, 4 insertions(+), 10 deletions(-) Index: llvm/lib/Analysis/IPA/FindUsedTypes.cpp diff -u llvm/lib/Analysis/IPA/FindUsedTypes.cpp:1.37 llvm/lib/Analysis/IPA/FindUsedTypes.cpp:1.38 --- llvm/lib/Analysis/IPA/FindUsedTypes.cpp:1.37 Sun Aug 27 17:30:17 2006 +++ llvm/lib/Analysis/IPA/FindUsedTypes.cpp Wed Dec 6 00:35:25 2006 @@ -17,7 +17,7 @@ #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" -#include "llvm/Assembly/CachedWriter.h" +#include "llvm/Assembly/Writer.h" #include "llvm/Support/InstIterator.h" using namespace llvm; @@ -91,15 +91,9 @@ // void FindUsedTypes::print(std::ostream &o, const Module *M) const { o << "Types in use by this module:\n"; - if (M) { - CachedWriter CW(M, o); - for (std::set::const_iterator I = UsedTypes.begin(), - E = UsedTypes.end(); I != E; ++I) - CW << " " << **I << "\n"; - } else - for (std::set::const_iterator I = UsedTypes.begin(), - E = UsedTypes.end(); I != E; ++I) - o << " " << **I << "\n"; + for (std::set::const_iterator I = UsedTypes.begin(), + E = UsedTypes.end(); I != E; ++I) + WriteTypeSymbolic(o << " ", *I, M) << "\n"; } // Ensure that this file gets linked in when FindUsedTypes.h is used. From lattner at cs.uiuc.edu Wed Dec 6 00:41:04 2006 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 6 Dec 2006 00:41:04 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Assembly/CachedWriter.h Message-ID: <200612060641.kB66f4lD026538@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Assembly: CachedWriter.h (r1.20) removed --- Log message: Remove the dead CachedWriter class. --- Diffs of the changes: (+0 -0) 0 files changed From sabre at nondot.org Wed Dec 6 00:41:05 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 00:41:05 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Message-ID: <200612060641.kB66f5W5026544@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.225 -> 1.226 --- Log message: Remove the dead CachedWriter class. --- Diffs of the changes: (+11 -57) AsmWriter.cpp | 68 +++++++++------------------------------------------------- 1 files changed, 11 insertions(+), 57 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.225 llvm/lib/VMCore/AsmWriter.cpp:1.226 --- llvm/lib/VMCore/AsmWriter.cpp:1.225 Wed Dec 6 00:24:27 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Wed Dec 6 00:40:49 2006 @@ -14,7 +14,6 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Assembly/CachedWriter.h" #include "llvm/Assembly/Writer.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Assembly/AsmAnnotationWriter.h" @@ -32,6 +31,7 @@ #include "llvm/Support/MathExtras.h" #include "llvm/Support/Streams.h" #include +#include using namespace llvm; namespace llvm { @@ -322,10 +322,10 @@ break; default: Result += ""; + break; } TypeStack.pop_back(); // Remove self from stack... - return; } @@ -364,16 +364,14 @@ const Module *M) { Out << ' '; - // If they want us to print out a type, attempt to make it symbolic if there - // is a symbol table in the module... - if (M) { - std::map TypeNames; - fillTypeNameTable(M, TypeNames); - - return printTypeInt(Out, Ty, TypeNames); - } else { + // If they want us to print out a type, but there is no context, we can't + // print it symbolically. + if (!M) return Out << Ty->getDescription(); - } + + std::map TypeNames; + fillTypeNameTable(M, TypeNames); + return printTypeInt(Out, Ty, TypeNames); } // PrintEscapedString - Print each character of the specified string, escaping @@ -391,7 +389,7 @@ } } -static const char * getPredicateText(unsigned predicate) { +static const char *getPredicateText(unsigned predicate) { const char * pred = "unknown"; switch (predicate) { case FCmpInst::FCMP_FALSE: pred = "false"; break; @@ -1337,51 +1335,7 @@ void Type::dump() const { print(std::cerr); llvm_cerr << '\n'; } //===----------------------------------------------------------------------===// -// CachedWriter Class Implementation -//===----------------------------------------------------------------------===// - -void CachedWriter::setModule(const Module *M) { - delete SC; delete AW; - if (M) { - SC = new SlotMachine(M); - AW = new AssemblyWriter(Out, *SC, M, 0); - } else { - SC = 0; AW = 0; - } -} - -CachedWriter::~CachedWriter() { - delete AW; - delete SC; -} - -CachedWriter &CachedWriter::operator<<(const Value &V) { - assert(AW && SC && "CachedWriter does not have a current module!"); - if (const Instruction *I = dyn_cast(&V)) - AW->write(I); - else if (const BasicBlock *BB = dyn_cast(&V)) - AW->write(BB); - else if (const Function *F = dyn_cast(&V)) - AW->write(F); - else if (const GlobalVariable *GV = dyn_cast(&V)) - AW->write(GV); - else - AW->writeOperand(&V, true); - return *this; -} - -CachedWriter& CachedWriter::operator<<(const Type &Ty) { - if (SymbolicTypes) { - const Module *M = AW->getModule(); - if (M) WriteTypeSymbolic(Out, &Ty, M); - } else { - AW->write(&Ty); - } - return *this; -} - -//===----------------------------------------------------------------------===// -//===-- SlotMachine Implementation +// SlotMachine Implementation //===----------------------------------------------------------------------===// #if 0 From reid at x10sys.com Wed Dec 6 01:08:22 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 01:08:22 -0600 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html Message-ID: <200612060708.kB678MJ5026994@zion.cs.uiuc.edu> Changes in directory llvm/docs: LangRef.html updated: 1.177 -> 1.178 --- Log message: Tie the ordered/unordered predicate descriptions to their meaning wrt to QNAN values. --- Diffs of the changes: (+3 -1) LangRef.html | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.177 llvm/docs/LangRef.html:1.178 --- llvm/docs/LangRef.html:1.177 Mon Dec 4 15:29:24 2006 +++ llvm/docs/LangRef.html Wed Dec 6 01:08:07 2006 @@ -3152,6 +3152,8 @@
  • uno: unordered (either nans)
  • true: no comparison, always returns true
  • +

    In the preceding, ordered means that neither operand is a QNAN while +unordered means that either operand may be a QNAN.

    The val1 and val2 arguments must be of floating point, or a packed floating point type. They must have identical types.

    @@ -4433,7 +4435,7 @@ Chris Lattner
    The LLVM Compiler Infrastructure
    - Last modified: $Date: 2006/12/04 21:29:24 $ + Last modified: $Date: 2006/12/06 07:08:07 $ From evan.cheng at apple.com Wed Dec 6 02:27:32 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 6 Dec 2006 02:27:32 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineInstr.h Message-ID: <200612060827.kB68RW8N004494@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/CodeGen: MachineInstr.h updated: 1.203 -> 1.204 --- Log message: Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand(). --- Diffs of the changes: (+5 -17) MachineInstr.h | 22 +++++----------------- 1 files changed, 5 insertions(+), 17 deletions(-) Index: llvm/include/llvm/CodeGen/MachineInstr.h diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.203 llvm/include/llvm/CodeGen/MachineInstr.h:1.204 --- llvm/include/llvm/CodeGen/MachineInstr.h:1.203 Thu Nov 30 01:07:25 2006 +++ llvm/include/llvm/CodeGen/MachineInstr.h Wed Dec 6 02:27:17 2006 @@ -386,25 +386,13 @@ delete removeFromParent(); } + /// findRegisterUseOperand() - Returns the MachineOperand that is a use of + /// the specific register or NULL if it is not found. + MachineOperand *findRegisterUseOperand(unsigned Reg); + /// copyKillDeadInfo - Copies kill / dead operand properties from MI. /// - void copyKillDeadInfo(const MachineInstr *MI) { - for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { - const MachineOperand &MO = MI->getOperand(i); - if (MO.isReg() && (MO.isKill() || MO.isDead())) { - for (unsigned j = 0, ee = getNumOperands(); j != ee; ++j) { - MachineOperand &MOp = getOperand(j); - if (MOp.isIdenticalTo(MO)) { - if (MO.isKill()) - MOp.setIsKill(); - else - MOp.setIsDead(); - break; - } - } - } - } - } + void copyKillDeadInfo(const MachineInstr *MI); // // Debugging support From evan.cheng at apple.com Wed Dec 6 02:27:57 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 6 Dec 2006 02:27:57 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/MachineInstr.cpp Message-ID: <200612060827.kB68Rvq2004515@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: MachineInstr.cpp updated: 1.136 -> 1.137 --- Log message: Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand(). --- Diffs of the changes: (+31 -0) MachineInstr.cpp | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+) Index: llvm/lib/CodeGen/MachineInstr.cpp diff -u llvm/lib/CodeGen/MachineInstr.cpp:1.136 llvm/lib/CodeGen/MachineInstr.cpp:1.137 --- llvm/lib/CodeGen/MachineInstr.cpp:1.136 Thu Nov 30 01:08:44 2006 +++ llvm/lib/CodeGen/MachineInstr.cpp Wed Dec 6 02:27:42 2006 @@ -169,6 +169,37 @@ } } +/// findRegisterUseOperand() - Returns the MachineOperand that is a use of +/// the specific register or NULL if it is not found. +MachineOperand *MachineInstr::findRegisterUseOperand(unsigned Reg) { + for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { + MachineOperand &MO = getOperand(i); + if (MO.isReg() && MO.isUse() && MO.getReg() == Reg) + return &MO; + } + return NULL; +} + +/// copyKillDeadInfo - Copies kill / dead operand properties from MI. +/// +void MachineInstr::copyKillDeadInfo(const MachineInstr *MI) { + for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { + const MachineOperand &MO = MI->getOperand(i); + if (!MO.isReg() || (!MO.isKill() && !MO.isDead())) + continue; + for (unsigned j = 0, ee = getNumOperands(); j != ee; ++j) { + MachineOperand &MOp = getOperand(j); + if (!MOp.isIdenticalTo(MO)) + continue; + if (MO.isKill()) + MOp.setIsKill(); + else + MOp.setIsDead(); + break; + } + } +} + void MachineInstr::dump() const { llvm_cerr << " " << *this; } From jlaskey at apple.com Wed Dec 6 04:57:48 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 04:57:48 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.h UpgradeParser.y Message-ID: <200612061057.kB6AvmBJ007581@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.cpp updated: 1.21 -> 1.22 UpgradeParser.h updated: 1.15 -> 1.16 UpgradeParser.y updated: 1.20 -> 1.21 --- Log message: Fix build for older versios of bison. --- Diffs of the changes: (+2865 -3927) UpgradeParser.cpp | 6292 +++++++++++++++++++++++------------------------------- UpgradeParser.h | 496 +--- UpgradeParser.y | 4 3 files changed, 2865 insertions(+), 3927 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.21 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.22 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.21 Wed Dec 6 00:30:15 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Wed Dec 6 04:57:33 2006 @@ -1,374 +1,166 @@ -/* A Bison parser, made by GNU Bison 2.1. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* A Bison parser, made from /Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y + by GNU Bison version 1.28 */ - 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 +#define YYBISON 1 /* Identify Bison output. */ -/* 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 VOID 257 +#define BOOL 258 +#define SBYTE 259 +#define UBYTE 260 +#define SHORT 261 +#define USHORT 262 +#define INT 263 +#define UINT 264 +#define LONG 265 +#define ULONG 266 +#define FLOAT 267 +#define DOUBLE 268 +#define LABEL 269 +#define OPAQUE 270 +#define ESINT64VAL 271 +#define EUINT64VAL 272 +#define SINTVAL 273 +#define UINTVAL 274 +#define FPVAL 275 +#define NULL_TOK 276 +#define UNDEF 277 +#define ZEROINITIALIZER 278 +#define TRUETOK 279 +#define FALSETOK 280 +#define TYPE 281 +#define VAR_ID 282 +#define LABELSTR 283 +#define STRINGCONSTANT 284 +#define IMPLEMENTATION 285 +#define BEGINTOK 286 +#define ENDTOK 287 +#define DECLARE 288 +#define GLOBAL 289 +#define CONSTANT 290 +#define SECTION 291 +#define VOLATILE 292 +#define TO 293 +#define DOTDOTDOT 294 +#define CONST 295 +#define INTERNAL 296 +#define LINKONCE 297 +#define WEAK 298 +#define DLLIMPORT 299 +#define DLLEXPORT 300 +#define EXTERN_WEAK 301 +#define APPENDING 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 UNINITIALIZED 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 EXCEPT 331 +#define UNWIND 332 +#define UNREACHABLE 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 SETLE 348 +#define SETGE 349 +#define SETLT 350 +#define SETGT 351 +#define SETEQ 352 +#define SETNE 353 +#define ICMP 354 +#define FCMP 355 +#define EQ 356 +#define NE 357 +#define SLT 358 +#define SGT 359 +#define SLE 360 +#define SGE 361 +#define OEQ 362 +#define ONE 363 +#define OLT 364 +#define OGT 365 +#define OLE 366 +#define OGE 367 +#define ORD 368 +#define UNO 369 +#define UEQ 370 +#define UNE 371 +#define ULT 372 +#define UGT 373 +#define ULE 374 +#define UGE 375 +#define MALLOC 376 +#define ALLOCA 377 +#define FREE 378 +#define LOAD 379 +#define STORE 380 +#define GETELEMENTPTR 381 +#define PHI_TOK 382 +#define SELECT 383 +#define SHL 384 +#define SHR 385 +#define ASHR 386 +#define LSHR 387 +#define VAARG 388 +#define EXTRACTELEMENT 389 +#define INSERTELEMENT 390 +#define SHUFFLEVECTOR 391 +#define CAST 392 +#define TRUNC 393 +#define ZEXT 394 +#define SEXT 395 +#define FPTRUNC 396 +#define FPEXT 397 +#define FPTOUI 398 +#define FPTOSI 399 +#define UITOFP 400 +#define SITOFP 401 +#define PTRTOINT 402 +#define INTTOPTR 403 +#define BITCAST 404 - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - VOID = 258, - BOOL = 259, - SBYTE = 260, - UBYTE = 261, - SHORT = 262, - USHORT = 263, - INT = 264, - UINT = 265, - LONG = 266, - ULONG = 267, - FLOAT = 268, - DOUBLE = 269, - LABEL = 270, - OPAQUE = 271, - ESINT64VAL = 272, - EUINT64VAL = 273, - SINTVAL = 274, - UINTVAL = 275, - FPVAL = 276, - NULL_TOK = 277, - UNDEF = 278, - ZEROINITIALIZER = 279, - TRUETOK = 280, - FALSETOK = 281, - TYPE = 282, - VAR_ID = 283, - LABELSTR = 284, - STRINGCONSTANT = 285, - IMPLEMENTATION = 286, - 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 - }; -#endif -/* Tokens. */ -#define VOID 258 -#define BOOL 259 -#define SBYTE 260 -#define UBYTE 261 -#define SHORT 262 -#define USHORT 263 -#define INT 264 -#define UINT 265 -#define LONG 266 -#define ULONG 267 -#define FLOAT 268 -#define DOUBLE 269 -#define LABEL 270 -#define OPAQUE 271 -#define ESINT64VAL 272 -#define EUINT64VAL 273 -#define SINTVAL 274 -#define UINTVAL 275 -#define FPVAL 276 -#define NULL_TOK 277 -#define UNDEF 278 -#define ZEROINITIALIZER 279 -#define TRUETOK 280 -#define FALSETOK 281 -#define TYPE 282 -#define VAR_ID 283 -#define LABELSTR 284 -#define STRINGCONSTANT 285 -#define IMPLEMENTATION 286 -#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 - - - - -/* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" +#line 14 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -622,1577 +414,1079 @@ } - -/* 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 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" -typedef union YYSTYPE { +#line 270 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +typedef union { std::string* String; TypeInfo Type; ValueInfo Value; ConstInfo Const; ValueList* ValList; } YYSTYPE; -/* Line 196 of yacc.c. */ -#line 655 "UpgradeParser.tab.c" -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - - - -/* Copy the second part of user declarations. */ - - -/* Line 219 of yacc.c. */ -#line 667 "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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -#endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int -#endif - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -#if ! defined (yyoverflow) || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# else -# define YYSTACK_ALLOC alloca -# if defined (__STDC__) || defined (__cplusplus) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYINCLUDED_STDLIB_H -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) -# endif -# ifdef __cplusplus -extern "C" { -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifdef __cplusplus -} -# endif -# endif -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short int yyss; - YYSTYPE yyvs; - }; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined (__GNUC__) && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (0) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) +#include +#ifndef __cplusplus +#ifndef __STDC__ +#define const #endif - -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short int yysigned_char; #endif -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 4 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1483 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 165 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 75 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 299 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 582 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 405 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const unsigned char 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, - 154, 155, 163, 2, 152, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 159, 151, 160, 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, 156, 153, 158, 2, 2, 2, 2, 2, 164, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 157, 2, 2, 161, 2, 162, 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, 2, 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 -}; -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const unsigned short int yyprhs[] = -{ - 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, - 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, - 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, - 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, - 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, - 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, - 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, - 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, - 159, 161, 164, 165, 167, 169, 171, 173, 175, 177, - 179, 180, 182, 184, 186, 188, 190, 192, 195, 196, - 197, 200, 201, 205, 208, 209, 211, 212, 216, 218, - 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, - 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, - 261, 264, 269, 275, 281, 285, 288, 291, 293, 297, - 299, 303, 305, 306, 311, 315, 319, 324, 329, 333, - 336, 339, 342, 345, 348, 351, 354, 357, 360, 363, - 370, 376, 385, 392, 399, 406, 414, 422, 429, 436, - 445, 454, 458, 460, 462, 464, 466, 469, 472, 477, - 480, 482, 484, 486, 491, 494, 499, 506, 513, 520, - 527, 531, 536, 537, 539, 541, 543, 547, 551, 555, - 559, 563, 567, 569, 570, 572, 574, 576, 577, 580, - 584, 586, 588, 592, 594, 595, 604, 606, 608, 612, - 614, 616, 620, 621, 623, 625, 629, 630, 632, 634, - 636, 638, 640, 642, 644, 646, 648, 652, 654, 660, - 662, 664, 666, 668, 671, 674, 676, 679, 682, 683, - 685, 687, 689, 692, 695, 699, 709, 719, 728, 743, - 745, 747, 754, 760, 763, 770, 778, 780, 784, 786, - 787, 790, 792, 798, 804, 810, 818, 826, 829, 834, - 839, 846, 851, 856, 863, 870, 873, 881, 883, 886, - 887, 889, 890, 894, 901, 905, 912, 915, 920, 927 + +#define YYFINAL 582 +#define YYFLAG -32768 +#define YYNTBASE 165 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 404 ? yytranslate[x] : 239) + +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, 154, + 155, 163, 2, 152, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 159, + 151, 160, 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, + 156, 153, 158, 2, 2, 2, 2, 2, 164, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 157, + 2, 2, 161, 2, 162, 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 }; -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const short int yyrhs[] = -{ - 199, 0, -1, 19, -1, 20, -1, 17, -1, 18, - -1, 80, -1, 81, -1, 82, -1, 83, -1, 84, - -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, - -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, - -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, - -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, - -1, 107, -1, 118, -1, 119, -1, 120, -1, 121, - -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, - -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, - -1, 118, -1, 119, -1, 120, -1, 121, -1, 25, - -1, 26, -1, 130, -1, 131, -1, 132, -1, 133, - -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, - -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, - -1, 149, -1, 150, -1, 138, -1, 11, -1, 9, - -1, 7, -1, 5, -1, 12, -1, 10, -1, 8, - -1, 6, -1, 175, -1, 176, -1, 13, -1, 14, - -1, 208, 151, -1, -1, 42, -1, 43, -1, 44, - -1, 48, -1, 45, -1, 46, -1, 47, -1, -1, - 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, - 71, -1, 65, 18, -1, -1, -1, 57, 18, -1, - -1, 152, 57, 18, -1, 37, 30, -1, -1, 184, - -1, -1, 152, 187, 186, -1, 184, -1, 57, 18, - -1, 190, -1, 3, -1, 192, -1, 3, -1, 192, - -1, 4, -1, 5, -1, 6, -1, 7, -1, 8, - -1, 9, -1, 10, -1, 11, -1, 12, -1, 13, - -1, 14, -1, 15, -1, 16, -1, 222, -1, 191, - -1, 153, 18, -1, 189, 154, 194, 155, -1, 156, - 18, 157, 192, 158, -1, 159, 18, 157, 192, 160, - -1, 161, 193, 162, -1, 161, 162, -1, 192, 163, - -1, 192, -1, 193, 152, 192, -1, 193, -1, 193, - 152, 40, -1, 40, -1, -1, 190, 156, 197, 158, - -1, 190, 156, 158, -1, 190, 164, 30, -1, 190, - 159, 197, 160, -1, 190, 161, 197, 162, -1, 190, - 161, 162, -1, 190, 22, -1, 190, 23, -1, 190, - 222, -1, 190, 196, -1, 190, 24, -1, 175, 167, - -1, 176, 18, -1, 4, 25, -1, 4, 26, -1, - 178, 21, -1, 174, 154, 195, 39, 190, 155, -1, - 127, 154, 195, 237, 155, -1, 129, 154, 195, 152, - 195, 152, 195, 155, -1, 168, 154, 195, 152, 195, - 155, -1, 169, 154, 195, 152, 195, 155, -1, 170, - 154, 195, 152, 195, 155, -1, 100, 171, 154, 195, - 152, 195, 155, -1, 101, 172, 154, 195, 152, 195, - 155, -1, 173, 154, 195, 152, 195, 155, -1, 135, - 154, 195, 152, 195, 155, -1, 136, 154, 195, 152, - 195, 152, 195, 155, -1, 137, 154, 195, 152, 195, - 152, 195, 155, -1, 197, 152, 195, -1, 195, -1, - 35, -1, 36, -1, 200, -1, 200, 217, -1, 200, - 219, -1, 200, 63, 62, 203, -1, 200, 31, -1, - 202, -1, 50, -1, 58, -1, 202, 179, 27, 188, - -1, 202, 219, -1, 202, 63, 62, 203, -1, 202, - 179, 180, 198, 195, 186, -1, 202, 179, 201, 198, - 190, 186, -1, 202, 179, 45, 198, 190, 186, -1, - 202, 179, 47, 198, 190, 186, -1, 202, 51, 205, - -1, 202, 59, 151, 206, -1, -1, 30, -1, 56, - -1, 55, -1, 53, 151, 204, -1, 54, 151, 18, - -1, 52, 151, 30, -1, 72, 151, 30, -1, 156, - 207, 158, -1, 207, 152, 30, -1, 30, -1, -1, - 28, -1, 30, -1, 208, -1, -1, 190, 209, -1, - 211, 152, 210, -1, 210, -1, 211, -1, 211, 152, - 40, -1, 40, -1, -1, 181, 188, 208, 154, 212, - 155, 185, 182, -1, 32, -1, 161, -1, 180, 213, - 214, -1, 33, -1, 162, -1, 215, 225, 216, -1, - -1, 45, -1, 47, -1, 34, 218, 213, -1, -1, - 64, -1, 17, -1, 18, -1, 21, -1, 25, -1, - 26, -1, 22, -1, 23, -1, 24, -1, 159, 197, - 160, -1, 196, -1, 62, 220, 30, 152, 30, -1, - 166, -1, 208, -1, 222, -1, 221, -1, 190, 223, - -1, 225, 226, -1, 226, -1, 227, 229, -1, 227, - 231, -1, -1, 29, -1, 78, -1, 77, -1, 73, - 224, -1, 73, 3, -1, 74, 15, 223, -1, 74, - 4, 223, 152, 15, 223, 152, 15, 223, -1, 75, - 177, 223, 152, 15, 223, 156, 230, 158, -1, 75, - 177, 223, 152, 15, 223, 156, 158, -1, 179, 76, - 181, 188, 223, 154, 234, 155, 39, 15, 223, 228, - 15, 223, -1, 228, -1, 79, -1, 230, 177, 221, - 152, 15, 223, -1, 177, 221, 152, 15, 223, -1, - 179, 236, -1, 190, 156, 223, 152, 223, 158, -1, - 232, 152, 156, 223, 152, 223, 158, -1, 224, -1, - 233, 152, 224, -1, 233, -1, -1, 61, 60, -1, - 60, -1, 168, 190, 223, 152, 223, -1, 169, 190, - 223, 152, 223, -1, 170, 190, 223, 152, 223, -1, - 100, 171, 190, 223, 152, 223, 155, -1, 101, 172, - 190, 223, 152, 223, 155, -1, 49, 224, -1, 173, - 224, 152, 224, -1, 174, 224, 39, 190, -1, 129, - 224, 152, 224, 152, 224, -1, 134, 224, 152, 190, - -1, 135, 224, 152, 224, -1, 136, 224, 152, 224, - 152, 224, -1, 137, 224, 152, 224, 152, 224, -1, - 128, 232, -1, 235, 181, 188, 223, 154, 234, 155, - -1, 239, -1, 152, 233, -1, -1, 38, -1, -1, - 122, 190, 183, -1, 122, 190, 152, 10, 223, 183, - -1, 123, 190, 183, -1, 123, 190, 152, 10, 223, - 183, -1, 124, 224, -1, 238, 125, 190, 223, -1, - 238, 126, 224, 152, 190, 223, -1, 127, 190, 223, - 237, -1 +#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, + 179, 181, 183, 185, 187, 189, 192, 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, 288, 290, 294, 296, 300, + 302, 303, 308, 312, 316, 321, 326, 330, 333, 336, + 339, 342, 345, 348, 351, 354, 357, 360, 367, 373, + 382, 389, 396, 403, 411, 419, 426, 433, 442, 451, + 455, 457, 459, 461, 463, 466, 469, 474, 477, 479, + 481, 483, 488, 491, 496, 503, 510, 517, 524, 528, + 533, 534, 536, 538, 540, 544, 548, 552, 556, 560, + 564, 566, 567, 569, 571, 573, 574, 577, 581, 583, + 585, 589, 591, 592, 601, 603, 605, 609, 611, 613, + 617, 618, 620, 622, 626, 627, 629, 631, 633, 635, + 637, 639, 641, 643, 645, 649, 651, 657, 659, 661, + 663, 665, 668, 671, 673, 676, 679, 680, 682, 684, + 686, 689, 692, 696, 706, 716, 725, 740, 742, 744, + 751, 757, 760, 767, 775, 777, 781, 783, 784, 787, + 789, 795, 801, 807, 815, 823, 826, 831, 836, 843, + 848, 853, 860, 867, 870, 878, 880, 883, 884, 886, + 887, 891, 898, 902, 909, 912, 917, 924 }; -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short int yyrline[] = -{ - 0, 333, 333, 333, 334, 334, 338, 338, 338, 338, - 338, 338, 338, 339, 339, 339, 339, 340, 340, 340, - 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 344, 344, 344, 344, - 344, 344, 345, 345, 345, 345, 346, 346, 346, 346, - 346, 346, 346, 347, 347, 347, 347, 347, 347, 352, - 352, 352, 352, 353, 353, 353, 353, 354, 354, 355, - 355, 358, 361, 366, 366, 366, 366, 366, 366, 367, - 368, 371, 371, 371, 371, 371, 372, 373, 378, 383, - 384, 387, 388, 396, 402, 403, 406, 407, 416, 417, - 430, 430, 431, 431, 432, 436, 436, 436, 436, 436, - 436, 436, 437, 437, 437, 437, 437, 439, 443, 447, - 450, 455, 461, 469, 477, 483, 487, 498, 501, 509, - 510, 515, 518, 528, 534, 539, 545, 551, 557, 562, - 568, 574, 580, 586, 592, 598, 604, 610, 616, 624, - 638, 650, 655, 661, 666, 674, 679, 684, 692, 697, - 702, 712, 717, 722, 722, 732, 737, 740, 745, 749, - 753, 755, 755, 758, 770, 775, 780, 789, 798, 807, - 816, 821, 826, 831, 833, 833, 836, 841, 848, 853, - 860, 867, 872, 873, 881, 881, 882, 882, 884, 891, - 895, 899, 902, 907, 910, 912, 932, 933, 935, 944, - 945, 947, 955, 956, 957, 961, 974, 975, 978, 978, - 978, 978, 978, 978, 978, 979, 980, 985, 986, 995, - 995, 999, 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, - 1051, 1051, 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, - 1114, 1120, 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, - 1173, 1178, 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, - 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, - 1294, 1295, 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 +static const short yyrhs[] = { 19, + 0, 20, 0, 17, 0, 18, 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, 93, 0, 94, 0, 95, 0, 96, + 0, 97, 0, 98, 0, 99, 0, 102, 0, 103, + 0, 104, 0, 105, 0, 106, 0, 107, 0, 118, + 0, 119, 0, 120, 0, 121, 0, 108, 0, 109, + 0, 110, 0, 111, 0, 112, 0, 113, 0, 114, + 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, + 0, 120, 0, 121, 0, 25, 0, 26, 0, 130, + 0, 131, 0, 132, 0, 133, 0, 139, 0, 140, + 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, + 0, 146, 0, 147, 0, 148, 0, 149, 0, 150, + 0, 138, 0, 11, 0, 9, 0, 7, 0, 5, + 0, 12, 0, 10, 0, 8, 0, 6, 0, 174, + 0, 175, 0, 13, 0, 14, 0, 207, 151, 0, + 0, 42, 0, 43, 0, 44, 0, 48, 0, 45, + 0, 46, 0, 47, 0, 0, 66, 0, 67, 0, + 68, 0, 69, 0, 70, 0, 71, 0, 65, 18, + 0, 0, 0, 57, 18, 0, 0, 152, 57, 18, + 0, 37, 30, 0, 0, 183, 0, 0, 152, 186, + 185, 0, 183, 0, 57, 18, 0, 189, 0, 3, + 0, 191, 0, 3, 0, 191, 0, 4, 0, 5, + 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, + 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, + 0, 16, 0, 221, 0, 190, 0, 153, 18, 0, + 188, 154, 193, 155, 0, 156, 18, 157, 191, 158, + 0, 159, 18, 157, 191, 160, 0, 161, 192, 162, + 0, 161, 162, 0, 191, 163, 0, 191, 0, 192, + 152, 191, 0, 192, 0, 192, 152, 40, 0, 40, + 0, 0, 189, 156, 196, 158, 0, 189, 156, 158, + 0, 189, 164, 30, 0, 189, 159, 196, 160, 0, + 189, 161, 196, 162, 0, 189, 161, 162, 0, 189, + 22, 0, 189, 23, 0, 189, 221, 0, 189, 195, + 0, 189, 24, 0, 174, 166, 0, 175, 18, 0, + 4, 25, 0, 4, 26, 0, 177, 21, 0, 173, + 154, 194, 39, 189, 155, 0, 127, 154, 194, 236, + 155, 0, 129, 154, 194, 152, 194, 152, 194, 155, + 0, 167, 154, 194, 152, 194, 155, 0, 168, 154, + 194, 152, 194, 155, 0, 169, 154, 194, 152, 194, + 155, 0, 100, 170, 154, 194, 152, 194, 155, 0, + 101, 171, 154, 194, 152, 194, 155, 0, 172, 154, + 194, 152, 194, 155, 0, 135, 154, 194, 152, 194, + 155, 0, 136, 154, 194, 152, 194, 152, 194, 155, + 0, 137, 154, 194, 152, 194, 152, 194, 155, 0, + 196, 152, 194, 0, 194, 0, 35, 0, 36, 0, + 199, 0, 199, 216, 0, 199, 218, 0, 199, 63, + 62, 202, 0, 199, 31, 0, 201, 0, 50, 0, + 58, 0, 201, 178, 27, 187, 0, 201, 218, 0, + 201, 63, 62, 202, 0, 201, 178, 179, 197, 194, + 185, 0, 201, 178, 200, 197, 189, 185, 0, 201, + 178, 45, 197, 189, 185, 0, 201, 178, 47, 197, + 189, 185, 0, 201, 51, 204, 0, 201, 59, 151, + 205, 0, 0, 30, 0, 56, 0, 55, 0, 53, + 151, 203, 0, 54, 151, 18, 0, 52, 151, 30, + 0, 72, 151, 30, 0, 156, 206, 158, 0, 206, + 152, 30, 0, 30, 0, 0, 28, 0, 30, 0, + 207, 0, 0, 189, 208, 0, 210, 152, 209, 0, + 209, 0, 210, 0, 210, 152, 40, 0, 40, 0, + 0, 180, 187, 207, 154, 211, 155, 184, 181, 0, + 32, 0, 161, 0, 179, 212, 213, 0, 33, 0, + 162, 0, 214, 224, 215, 0, 0, 45, 0, 47, + 0, 34, 217, 212, 0, 0, 64, 0, 17, 0, + 18, 0, 21, 0, 25, 0, 26, 0, 22, 0, + 23, 0, 24, 0, 159, 196, 160, 0, 195, 0, + 62, 219, 30, 152, 30, 0, 165, 0, 207, 0, + 221, 0, 220, 0, 189, 222, 0, 224, 225, 0, + 225, 0, 226, 228, 0, 226, 230, 0, 0, 29, + 0, 78, 0, 77, 0, 73, 223, 0, 73, 3, + 0, 74, 15, 222, 0, 74, 4, 222, 152, 15, + 222, 152, 15, 222, 0, 75, 176, 222, 152, 15, + 222, 156, 229, 158, 0, 75, 176, 222, 152, 15, + 222, 156, 158, 0, 178, 76, 180, 187, 222, 154, + 233, 155, 39, 15, 222, 227, 15, 222, 0, 227, + 0, 79, 0, 229, 176, 220, 152, 15, 222, 0, + 176, 220, 152, 15, 222, 0, 178, 235, 0, 189, + 156, 222, 152, 222, 158, 0, 231, 152, 156, 222, + 152, 222, 158, 0, 223, 0, 232, 152, 223, 0, + 232, 0, 0, 61, 60, 0, 60, 0, 167, 189, + 222, 152, 222, 0, 168, 189, 222, 152, 222, 0, + 169, 189, 222, 152, 222, 0, 100, 170, 189, 222, + 152, 222, 155, 0, 101, 171, 189, 222, 152, 222, + 155, 0, 49, 223, 0, 172, 223, 152, 223, 0, + 173, 223, 39, 189, 0, 129, 223, 152, 223, 152, + 223, 0, 134, 223, 152, 189, 0, 135, 223, 152, + 223, 0, 136, 223, 152, 223, 152, 223, 0, 137, + 223, 152, 223, 152, 223, 0, 128, 231, 0, 234, + 180, 187, 222, 154, 233, 155, 0, 238, 0, 152, + 232, 0, 0, 38, 0, 0, 122, 189, 182, 0, + 122, 189, 152, 10, 222, 182, 0, 123, 189, 182, + 0, 123, 189, 152, 10, 222, 182, 0, 124, 223, + 0, 237, 125, 189, 222, 0, 237, 126, 223, 152, + 189, 222, 0, 127, 189, 222, 236, 0 }; + #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "VOID", "BOOL", "SBYTE", "UBYTE", - "SHORT", "USHORT", "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", - "LABEL", "OPAQUE", "ESINT64VAL", "EUINT64VAL", "SINTVAL", "UINTVAL", - "FPVAL", "NULL_TOK", "UNDEF", "ZEROINITIALIZER", "TRUETOK", "FALSETOK", - "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION", - "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION", - "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK", - "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL", - "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN", - "UNINITIALIZED", "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", - "SIDEEFFECT", "CC_TOK", "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", - "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", - "RET", "BR", "SWITCH", "INVOKE", "EXCEPT", "UNWIND", "UNREACHABLE", - "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM", - "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT", - "SETEQ", "SETNE", "ICMP", "FCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", - "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE", - "ULT", "UGT", "ULE", "UGE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", - "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR", "LSHR", - "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", "CAST", - "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "FPTOUI", "FPTOSI", - "UITOFP", "SITOFP", "PTRTOINT", "INTTOPTR", "BITCAST", "'='", "','", - "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", - "'*'", "'c'", "$accept", "IntVal", "EInt64Val", "ArithmeticOps", - "LogicalOps", "SetCondOps", "IPredicates", "FPredicates", "ShiftOps", - "CastOps", "SIntType", "UIntType", "IntType", "FPType", "OptAssign", - "OptLinkage", "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", - "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", - "UpRTypesV", "Types", "PrimType", "UpRTypes", "TypeListI", - "ArgTypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType", - "Module", "DefinitionList", "External", "ConstPool", "AsmBlock", - "BigOrLittle", "TargetDefinition", "LibrariesDefinition", "LibList", - "Name", "OptName", "ArgVal", "ArgListH", "ArgList", "FunctionHeaderH", - "BEGIN", "FunctionHeader", "END", "Function", "FnDeclareLinkage", - "FunctionProto", "OptSideEffect", "ConstValueRef", "SymbolicValueRef", - "ValueRef", "ResolvedVal", "BasicBlockList", "BasicBlock", - "InstructionList", "Unwind", "BBTerminatorInst", "JumpTable", "Inst", - "PHIList", "ValueRefList", "ValueRefListE", "OptTailCall", "InstVal", - "IndexList", "OptVolatile", "MemoryInst", 0 +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 333, 333, 334, 334, 338, 338, 338, 338, 338, 338, + 338, 339, 339, 339, 339, 340, 340, 340, 341, 341, + 341, 341, 341, 341, 342, 342, 342, 342, 342, 342, + 342, 342, 342, 342, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 344, 344, 344, 344, 344, 344, + 345, 345, 345, 345, 346, 346, 346, 346, 346, 346, + 346, 346, 347, 347, 347, 347, 347, 352, 352, 352, + 352, 353, 353, 353, 353, 354, 354, 355, 355, 358, + 361, 366, 366, 366, 366, 366, 366, 367, 368, 371, + 371, 371, 371, 371, 372, 373, 378, 383, 384, 387, + 388, 396, 402, 403, 406, 407, 416, 417, 430, 430, + 431, 431, 432, 436, 436, 436, 436, 436, 436, 436, + 437, 437, 437, 437, 437, 439, 443, 447, 450, 455, + 461, 469, 477, 483, 487, 498, 501, 509, 510, 515, + 518, 528, 534, 539, 545, 551, 557, 562, 568, 574, + 580, 586, 592, 598, 604, 610, 616, 624, 638, 650, + 655, 661, 666, 674, 679, 684, 692, 697, 702, 712, + 717, 722, 722, 732, 737, 740, 745, 749, 753, 755, + 755, 758, 770, 775, 780, 789, 798, 807, 816, 821, + 826, 831, 833, 833, 836, 841, 848, 853, 860, 867, + 872, 873, 881, 881, 882, 882, 884, 891, 895, 899, + 902, 907, 910, 912, 932, 933, 935, 944, 945, 947, + 955, 956, 957, 961, 974, 975, 978, 978, 978, 978, + 978, 978, 978, 979, 980, 985, 986, 995, 995, 999, + 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, 1051, 1051, + 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, 1114, 1120, + 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, 1173, 1178, + 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, 1237, 1242, + 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, 1294, 1295, + 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 }; #endif -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const unsigned short int yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 61, 44, 92, 40, 41, 91, 120, 93, 60, - 62, 123, 125, 42, 99 -}; -# endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned char yyr1[] = -{ - 0, 165, 166, 166, 167, 167, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, - 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, - 175, 175, 175, 176, 176, 176, 176, 177, 177, 178, - 178, 179, 179, 180, 180, 180, 180, 180, 180, 180, - 180, 181, 181, 181, 181, 181, 181, 181, 181, 182, - 182, 183, 183, 184, 185, 185, 186, 186, 187, 187, - 188, 188, 189, 189, 190, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 193, 193, 194, - 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 197, 197, 198, 198, 199, 200, 200, 200, 200, - 200, 201, 201, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 203, 204, 204, 205, 205, 205, 205, - 206, 207, 207, 207, 208, 208, 209, 209, 210, 211, - 211, 212, 212, 212, 212, 213, 214, 214, 215, 216, - 216, 217, 218, 218, 218, 219, 220, 220, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, - 222, 223, 223, 224, 225, 225, 226, 227, 227, 227, - 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 230, 230, 231, 232, 232, 233, 233, 234, 234, - 235, 235, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, - 238, 238, 239, 239, 239, 239, 239, 239, 239, 239 +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","VOID","BOOL", +"SBYTE","UBYTE","SHORT","USHORT","INT","UINT","LONG","ULONG","FLOAT","DOUBLE", +"LABEL","OPAQUE","ESINT64VAL","EUINT64VAL","SINTVAL","UINTVAL","FPVAL","NULL_TOK", +"UNDEF","ZEROINITIALIZER","TRUETOK","FALSETOK","TYPE","VAR_ID","LABELSTR","STRINGCONSTANT", +"IMPLEMENTATION","BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","SECTION", +"VOLATILE","TO","DOTDOTDOT","CONST","INTERNAL","LINKONCE","WEAK","DLLIMPORT", +"DLLEXPORT","EXTERN_WEAK","APPENDING","NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN", +"POINTERSIZE","LITTLE","BIG","ALIGN","UNINITIALIZED","DEPLIBS","CALL","TAIL", +"ASM_TOK","MODULE","SIDEEFFECT","CC_TOK","CCC_TOK","CSRETCC_TOK","FASTCC_TOK", +"COLDCC_TOK","X86_STDCALLCC_TOK","X86_FASTCALLCC_TOK","DATALAYOUT","RET","BR", +"SWITCH","INVOKE","EXCEPT","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV","UDIV", +"SDIV","FDIV","REM","UREM","SREM","FREM","AND","OR","XOR","SETLE","SETGE","SETLT", +"SETGT","SETEQ","SETNE","ICMP","FCMP","EQ","NE","SLT","SGT","SLE","SGE","OEQ", +"ONE","OLT","OGT","OLE","OGE","ORD","UNO","UEQ","UNE","ULT","UGT","ULE","UGE", +"MALLOC","ALLOCA","FREE","LOAD","STORE","GETELEMENTPTR","PHI_TOK","SELECT","SHL", +"SHR","ASHR","LSHR","VAARG","EXTRACTELEMENT","INSERTELEMENT","SHUFFLEVECTOR", +"CAST","TRUNC","ZEXT","SEXT","FPTRUNC","FPEXT","FPTOUI","FPTOSI","UITOFP","SITOFP", +"PTRTOINT","INTTOPTR","BITCAST","'='","','","'\\\\'","'('","')'","'['","'x'", +"']'","'<'","'>'","'{'","'}'","'*'","'c'","IntVal","EInt64Val","ArithmeticOps", +"LogicalOps","SetCondOps","IPredicates","FPredicates","ShiftOps","CastOps","SIntType", +"UIntType","IntType","FPType","OptAssign","OptLinkage","OptCallingConv","OptAlign", +"OptCAlign","SectionString","OptSection","GlobalVarAttributes","GlobalVarAttribute", +"TypesV","UpRTypesV","Types","PrimType","UpRTypes","TypeListI","ArgTypeListI", +"ConstVal","ConstExpr","ConstVector","GlobalType","Module","DefinitionList", +"External","ConstPool","AsmBlock","BigOrLittle","TargetDefinition","LibrariesDefinition", +"LibList","Name","OptName","ArgVal","ArgListH","ArgList","FunctionHeaderH","BEGIN", +"FunctionHeader","END","Function","FnDeclareLinkage","FunctionProto","OptSideEffect", +"ConstValueRef","SymbolicValueRef","ValueRef","ResolvedVal","BasicBlockList", +"BasicBlock","InstructionList","Unwind","BBTerminatorInst","JumpTable","Inst", +"PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal","IndexList", +"OptVolatile","MemoryInst", NULL }; +#endif -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const unsigned char yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 0, - 2, 0, 3, 2, 0, 1, 0, 3, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 4, 5, 5, 3, 2, 2, 1, 3, 1, - 3, 1, 0, 4, 3, 3, 4, 4, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, - 5, 8, 6, 6, 6, 7, 7, 6, 6, 8, - 8, 3, 1, 1, 1, 1, 2, 2, 4, 2, - 1, 1, 1, 4, 2, 4, 6, 6, 6, 6, - 3, 4, 0, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 1, 0, 1, 1, 1, 0, 2, 3, - 1, 1, 3, 1, 0, 8, 1, 1, 3, 1, - 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, - 1, 1, 1, 2, 2, 1, 2, 2, 0, 1, - 1, 1, 2, 2, 3, 9, 9, 8, 14, 1, - 1, 6, 5, 2, 6, 7, 1, 3, 1, 0, - 2, 1, 5, 5, 5, 7, 7, 2, 4, 4, - 6, 4, 4, 6, 6, 2, 7, 1, 2, 0, - 1, 0, 3, 6, 3, 6, 2, 4, 6, 4 +static const short yyr1[] = { 0, + 165, 165, 166, 166, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 168, 168, 168, 169, 169, + 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, + 174, 175, 175, 175, 175, 176, 176, 177, 177, 178, + 178, 179, 179, 179, 179, 179, 179, 179, 179, 180, + 180, 180, 180, 180, 180, 180, 180, 181, 181, 182, + 182, 183, 184, 184, 185, 185, 186, 186, 187, 187, + 188, 188, 189, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 192, 192, 193, 193, 193, + 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, + 196, 197, 197, 198, 199, 199, 199, 199, 199, 200, + 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, + 201, 202, 203, 203, 204, 204, 204, 204, 205, 206, + 206, 206, 207, 207, 208, 208, 209, 210, 210, 211, + 211, 211, 211, 212, 213, 213, 214, 215, 215, 216, + 217, 217, 217, 218, 219, 219, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 221, 221, 222, + 222, 223, 224, 224, 225, 226, 226, 226, 227, 227, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, + 229, 230, 231, 231, 232, 232, 233, 233, 234, 234, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 236, 236, 237, 237, + 238, 238, 238, 238, 238, 238, 238, 238 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const unsigned short int yydefact[] = -{ - 192, 0, 90, 180, 1, 179, 222, 83, 84, 85, - 87, 88, 89, 86, 0, 98, 248, 176, 177, 204, - 205, 0, 0, 0, 90, 0, 184, 223, 224, 98, - 0, 0, 91, 92, 93, 94, 95, 96, 0, 0, - 249, 248, 245, 82, 0, 0, 0, 0, 190, 0, - 0, 0, 0, 0, 181, 182, 0, 0, 81, 225, - 193, 178, 97, 111, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 2, 3, 0, - 0, 0, 0, 239, 0, 0, 110, 129, 114, 240, - 128, 216, 217, 218, 219, 220, 221, 244, 0, 0, - 0, 251, 250, 260, 291, 259, 246, 247, 0, 0, - 0, 0, 203, 191, 185, 183, 173, 174, 0, 0, - 0, 0, 130, 0, 0, 113, 135, 137, 0, 0, - 142, 136, 253, 0, 252, 0, 0, 72, 76, 71, - 75, 70, 74, 69, 73, 77, 78, 0, 290, 0, - 271, 0, 98, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 53, 54, 55, 0, 0, 0, 0, 68, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 0, 0, 0, 0, 0, 98, 263, 0, - 287, 198, 195, 194, 196, 197, 199, 202, 0, 106, - 106, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 106, 106, 0, 0, - 0, 134, 214, 141, 139, 0, 228, 229, 230, 233, - 234, 235, 231, 232, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 237, 242, - 241, 243, 0, 254, 0, 277, 270, 0, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 0, 50, - 51, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 0, 101, 101, 296, 0, - 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 200, 0, 188, 189, - 156, 157, 4, 5, 154, 155, 158, 149, 150, 153, - 0, 0, 0, 0, 152, 151, 186, 187, 112, 112, - 138, 213, 207, 210, 211, 0, 0, 131, 227, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 292, 0, 294, 289, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, - 0, 0, 108, 106, 144, 0, 0, 148, 0, 145, - 132, 133, 206, 208, 0, 104, 140, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 0, 0, 0, 281, 282, 0, 0, 0, - 0, 0, 278, 279, 0, 297, 0, 103, 109, 107, - 143, 146, 147, 212, 209, 105, 99, 0, 0, 0, - 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, - 0, 0, 0, 269, 0, 0, 101, 102, 101, 266, - 288, 0, 0, 0, 0, 0, 272, 273, 274, 269, - 0, 0, 215, 238, 0, 0, 160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, - 0, 0, 0, 293, 295, 0, 0, 0, 280, 283, - 284, 0, 298, 100, 0, 0, 0, 168, 0, 0, - 162, 163, 164, 167, 159, 0, 257, 0, 0, 0, - 275, 276, 267, 264, 0, 286, 165, 166, 0, 0, - 0, 255, 0, 256, 0, 0, 265, 161, 169, 170, - 0, 0, 0, 0, 0, 0, 262, 0, 0, 261, - 0, 258 +static const short yyr2[] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 1, 1, 1, 1, 1, 2, 0, 0, 2, 0, + 3, 2, 0, 1, 0, 3, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, + 5, 5, 3, 2, 2, 1, 3, 1, 3, 1, + 0, 4, 3, 3, 4, 4, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 6, 5, 8, + 6, 6, 6, 7, 7, 6, 6, 8, 8, 3, + 1, 1, 1, 1, 2, 2, 4, 2, 1, 1, + 1, 4, 2, 4, 6, 6, 6, 6, 3, 4, + 0, 1, 1, 1, 3, 3, 3, 3, 3, 3, + 1, 0, 1, 1, 1, 0, 2, 3, 1, 1, + 3, 1, 0, 8, 1, 1, 3, 1, 1, 3, + 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, + 1, 2, 2, 1, 2, 2, 0, 1, 1, 1, + 2, 2, 3, 9, 9, 8, 14, 1, 1, 6, + 5, 2, 6, 7, 1, 3, 1, 0, 2, 1, + 5, 5, 5, 7, 7, 2, 4, 4, 6, 4, + 4, 6, 6, 2, 7, 1, 2, 0, 1, 0, + 3, 6, 3, 6, 2, 4, 6, 4 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const short int yydefgoto[] = -{ - -1, 83, 334, 263, 264, 265, 288, 305, 266, 267, - 232, 233, 147, 234, 24, 15, 38, 502, 380, 402, - 466, 328, 403, 84, 85, 235, 87, 88, 128, 245, - 367, 268, 368, 118, 1, 2, 57, 3, 61, 214, - 48, 113, 218, 89, 413, 353, 354, 355, 39, 93, - 16, 96, 17, 29, 18, 359, 269, 90, 271, 489, - 41, 42, 43, 105, 106, 548, 107, 311, 518, 519, - 207, 208, 441, 209, 210 +static const short yydefact[] = { 191, + 89, 179, 178, 221, 82, 83, 84, 86, 87, 88, + 85, 0, 97, 247, 175, 176, 203, 204, 0, 0, + 0, 89, 0, 183, 222, 223, 97, 0, 0, 90, + 91, 92, 93, 94, 95, 0, 0, 248, 247, 244, + 81, 0, 0, 0, 0, 189, 0, 0, 0, 0, + 0, 180, 181, 0, 0, 80, 224, 192, 177, 96, + 110, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 1, 2, 0, 0, 0, 0, + 238, 0, 0, 109, 128, 113, 239, 127, 215, 216, + 217, 218, 219, 220, 243, 0, 0, 0, 250, 249, + 259, 290, 258, 245, 246, 0, 0, 0, 0, 202, + 190, 184, 182, 172, 173, 0, 0, 0, 0, 129, + 0, 0, 112, 134, 136, 0, 0, 141, 135, 252, + 0, 251, 0, 0, 71, 75, 70, 74, 69, 73, + 68, 72, 76, 77, 0, 289, 0, 270, 0, 97, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, + 53, 54, 0, 0, 0, 0, 67, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, + 0, 0, 0, 0, 97, 262, 0, 286, 197, 194, + 193, 195, 196, 198, 201, 0, 105, 105, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 0, + 0, 0, 0, 105, 105, 0, 0, 0, 133, 213, + 140, 138, 0, 227, 228, 229, 232, 233, 234, 230, + 231, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 241, 240, 242, 0, + 253, 0, 276, 269, 0, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 0, 49, 50, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 0, 100, 100, 295, 0, 0, 284, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 199, 0, 187, 188, 155, 156, 3, + 4, 153, 154, 157, 148, 149, 152, 0, 0, 0, + 0, 151, 150, 185, 186, 111, 111, 137, 212, 206, + 209, 210, 0, 0, 130, 226, 0, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 291, 0, 293, + 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 107, + 105, 143, 0, 0, 147, 0, 144, 131, 132, 205, + 207, 0, 103, 139, 0, 0, 0, 288, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 0, 0, 280, 281, 0, 0, 0, 0, 0, 277, + 278, 0, 296, 0, 102, 108, 106, 142, 145, 146, + 211, 208, 104, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, + 268, 0, 0, 100, 101, 100, 265, 287, 0, 0, + 0, 0, 0, 271, 272, 273, 268, 0, 0, 214, + 237, 0, 0, 159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, + 292, 294, 0, 0, 0, 279, 282, 283, 0, 297, + 99, 0, 0, 0, 167, 0, 0, 161, 162, 163, + 166, 158, 0, 256, 0, 0, 0, 274, 275, 266, + 263, 0, 285, 164, 165, 0, 0, 0, 254, 0, + 255, 0, 0, 264, 160, 168, 169, 0, 0, 0, + 0, 0, 0, 261, 0, 0, 260, 0, 257, 0, + 0, 0 }; -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -501 -static const short int yypact[] = -{ - -501, 82, 9, 975, -501, -501, 72, -501, -501, -501, - -501, -501, -501, -501, 29, 34, 94, -501, -501, -501, - -501, -28, -42, 66, 127, 25, -501, -501, -501, 34, - 122, 199, -501, -501, -501, -501, -501, -501, 839, -17, - -501, -19, -501, 47, 67, 68, 69, 75, -501, 71, - 122, 839, 11, 11, -501, -501, 11, 11, -501, -501, - -501, -501, -501, 76, -501, -501, -501, -501, -501, -501, - -501, -501, -501, -501, -501, -501, -501, -501, -501, 207, - 210, 211, 518, -501, 123, 77, -501, -501, -84, -501, - -501, -501, -501, -501, -501, -501, -501, -501, 876, 8, - 253, -501, -501, -501, 1333, -501, -501, -501, 203, 80, - 217, 206, 208, -501, -501, -501, -501, -501, 922, 922, - 960, 922, -501, 83, 84, -501, -501, -84, -134, 88, - 604, -501, 76, 1131, -501, 1131, 1131, -501, -501, -501, - -501, -501, -501, -501, -501, -501, -501, 1131, -501, 922, - -501, 177, 34, -501, -501, -501, -501, -501, -501, -501, - -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, - -501, -501, -501, 103, 81, 922, 922, 922, 922, 922, - 922, -501, -501, -501, -501, 922, 922, 922, 922, -501, - -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, - -501, -501, 922, 922, 922, 922, 922, 34, -501, 20, - -501, -501, -501, -501, -501, -501, -501, -501, -44, 91, - 91, 130, 143, 226, 145, 227, 161, 230, 163, 231, - 232, 233, 165, 234, 245, 1042, 91, 91, 922, 922, - 922, -501, 679, -501, 99, 113, -501, -501, -501, -501, - -501, -501, -501, -501, 205, 103, 81, 119, 120, 125, - 128, 129, 960, 133, 134, 135, 139, 140, -501, -501, - -501, -501, 124, -501, 149, -501, -501, 839, -501, -501, - -501, -501, -501, -501, -501, -501, -501, -501, 922, -501, - -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, - -501, -501, -501, -501, -501, 922, 150, 151, -501, 1131, - 136, 153, 154, 155, 156, 157, 158, 1131, 1131, 1131, - 159, 241, 839, 922, 922, 251, -501, -18, -501, -501, - -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, - 717, 960, 549, 265, -501, -501, -501, -501, -69, -50, - -84, -501, 123, -501, 160, 142, 763, -501, -501, 283, - 164, 166, 960, 960, 960, 960, 960, -501, -110, 960, - 960, 960, 960, 960, 302, 304, 1131, 1131, 1131, 1, - -501, 12, -501, 169, 1131, 167, 922, 922, 922, 922, - 922, 172, 173, 176, 922, 922, 1131, 1131, 178, -501, - 299, 314, -501, 91, -501, -40, -68, -501, -74, -501, - -501, -501, -501, -501, 801, 301, -501, 184, 960, 960, - 169, 187, 188, 189, 190, 960, -501, 194, 195, 201, - 209, 316, 1131, 1131, 204, 212, 213, 1131, 341, 1131, - 922, -501, 214, 1131, 215, -501, -501, 216, 220, 1131, - 1131, 1131, -501, -501, 219, -501, 922, -501, -501, -501, - -501, -501, -501, -501, -501, -501, 303, 332, 222, 228, - 229, 960, 960, 960, 960, -501, 960, 960, 960, 960, - 922, 238, 235, 922, 1131, 1131, 240, -501, 240, -501, - 243, 1131, 244, 922, 922, 922, -501, -501, -501, 922, - 1131, 345, -501, -501, 960, 960, -501, 246, 242, 247, - 248, 252, 254, 255, 256, 257, 354, 26, 243, 258, - 259, 260, 325, -501, -501, 922, 225, 1131, -501, -501, - -501, 261, -501, -501, 262, 269, 960, -501, 960, 960, - -501, -501, -501, -501, -501, 1131, -501, 1220, 56, 347, - -501, -501, -501, -501, 250, -501, -501, -501, 270, 271, - 272, -501, 249, -501, 1220, 378, -501, -501, -501, -501, - 391, 276, 1131, 1131, 415, 138, -501, 1131, 416, -501, - 1131, -501 +static const short yydefgoto[] = { 81, + 332, 261, 262, 263, 286, 303, 264, 265, 230, 231, + 145, 232, 22, 13, 36, 500, 378, 400, 464, 326, + 401, 82, 83, 233, 85, 86, 126, 243, 365, 266, + 366, 116, 580, 1, 55, 2, 59, 212, 46, 111, + 216, 87, 411, 351, 352, 353, 37, 91, 14, 94, + 15, 27, 16, 357, 267, 88, 269, 487, 39, 40, + 41, 103, 104, 546, 105, 309, 516, 517, 205, 206, + 439, 207, 208 }; -/* YYPGOTO[NTERM-NUM]. */ -static const short int yypgoto[] = -{ - -501, -501, -501, 328, 329, 330, 181, 185, 333, 336, - -98, -97, -500, -501, 400, 420, -136, -501, -300, 31, - -501, -216, -501, -45, -501, -38, -501, -81, 317, -501, - 126, 218, -208, 74, -501, -501, -501, -501, 398, -501, - -501, -501, -501, 2, -501, 35, -501, -501, 423, -501, - -501, -501, -501, -501, 451, -501, -471, -106, -62, -90, - -501, 417, -501, -116, -501, -501, -501, -501, 22, -39, - -501, -501, 43, -501, -501 +static const short yypact[] = {-32768, + 9, 905,-32768, 63,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, -34, 34, -11,-32768,-32768,-32768,-32768, -28, -81, + 32, 127, -23,-32768,-32768,-32768, 34, 87, 105,-32768, +-32768,-32768,-32768,-32768,-32768, 801, -17,-32768, -19,-32768, + 47, -16, 25, 58, 59,-32768, 74, 87, 801, 11, + 11,-32768,-32768, 11, 11,-32768,-32768,-32768,-32768,-32768, + 61,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 217, 218, 219, 518, +-32768, 104, 84,-32768,-32768, -72,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 839, 8, 253,-32768,-32768, +-32768, 1273,-32768,-32768,-32768, 210, 90, 224, 214, 215, +-32768,-32768,-32768,-32768,-32768, 868, 868, 898, 868,-32768, + 91, 92,-32768,-32768, -72, -74, 97, 213,-32768, 61, + 1071,-32768, 1071, 1071,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1071,-32768, 868,-32768, 192, 34, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 293, 81, 868, 868, 868, 868, 868, 868,-32768,-32768, +-32768,-32768, 868, 868, 868, 868,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 868, + 868, 868, 868, 868, 34,-32768, 30,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, -40, 102, 102, 135, 145, + 248, 161, 250, 163, 251, 165, 255, 256, 258, 188, + 262, 260, 982, 102, 102, 868, 868, 868,-32768, 604, +-32768, 122, 132,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 225, 293, 81, 129, 134, 138, 139, 140, 898, + 141, 143, 147, 148, 149,-32768,-32768,-32768,-32768, 153, +-32768, 154,-32768,-32768, 801,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 868,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 868, 155, 156,-32768, 1071, 126, 157, 158, + 159, 160, 166, 167, 1071, 1071, 1071, 168, 274, 801, + 868, 868, 287,-32768, -18,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 679, 898, 549, + 291,-32768,-32768,-32768,-32768, -49, -27, -72,-32768, 104, +-32768, 171, 169, 709,-32768,-32768, 295, 174, 175, 898, + 898, 898, 898, 898,-32768, -110, 898, 898, 898, 898, + 898, 315, 317, 1071, 1071, 1071, 1,-32768, 12,-32768, + 184, 1071, 182, 868, 868, 868, 868, 868, 187, 189, + 190, 868, 868, 1071, 1071, 194,-32768, 310, 329,-32768, + 102,-32768, -39, -68,-32768, -73,-32768,-32768,-32768,-32768, +-32768, 763, 316,-32768, 203, 898, 898, 184, 206, 207, + 208, 209, 898,-32768, 211, 212, 216, 221, 323, 1071, + 1071, 226, 230, 231, 1071, 347, 1071, 868,-32768, 232, + 1071, 234,-32768,-32768, 238, 239, 1071, 1071, 1071,-32768, +-32768, 247,-32768, 868,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 335, 337, 241, 254, 252, 898, 898, + 898, 898,-32768, 898, 898, 898, 898, 868, 257, 259, + 868, 1071, 1071, 264,-32768, 264,-32768, 265, 1071, 272, + 868, 868, 868,-32768,-32768,-32768, 868, 1071, 390,-32768, +-32768, 898, 898,-32768, 273, 271, 275, 276, 277, 278, + 279, 281, 282, 395, 26, 265, 285, 286, 288, 373, +-32768,-32768, 868, 289, 1071,-32768,-32768,-32768, 294,-32768, +-32768, 297, 298, 898,-32768, 898, 898,-32768,-32768,-32768, +-32768,-32768, 1071,-32768, 1160, 56, 392,-32768,-32768,-32768, +-32768, 290,-32768,-32768,-32768, 299, 303, 304,-32768, 292, +-32768, 1160, 431,-32768,-32768,-32768,-32768, 445, 311, 1071, + 1071, 447, 130,-32768, 1071, 449,-32768, 1071,-32768, 468, + 469,-32768 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -176 -static const short int yytable[] = -{ - 86, 127, 145, 146, 329, 25, 115, 382, 134, -175, - 40, 437, 135, 86, 94, 91, 277, 547, 240, 400, - 346, 347, 439, 136, 44, 45, 46, 270, 241, 270, - 270, 137, 138, 139, 140, 141, 142, 143, 144, 401, - 5, 270, 425, 6, 47, 25, 116, 117, 564, 127, - 426, 7, 8, 9, 10, 11, 12, 13, 438, 275, - 133, 137, 138, 139, 140, 141, 142, 143, 144, 438, - -112, 322, 14, 272, 273, 19, 562, 20, 425, 131, - 219, 220, 4, 237, 425, 274, 129, 308, 462, 410, - 312, 30, 461, 571, 131, 313, 314, 315, 316, 31, - 32, 33, 34, 35, 36, 37, 289, 290, 325, 49, - 411, 133, 425, 131, 326, 320, 321, 27, 460, 28, - 98, 99, 100, 40, 101, 102, 103, 119, 50, 345, - 120, 121, 405, 406, 408, 212, 213, 306, 307, 133, - 309, 310, 133, 95, 92, 323, 324, 133, 133, 133, - 133, 19, 60, 20, 51, 330, 331, 348, 349, 350, - -72, -72, -71, -71, 317, 318, 319, 133, 133, 7, - 8, 9, 52, 11, 53, 13, 58, 54, -70, -70, - -69, -69, 332, 333, 546, 55, 523, 459, 524, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 270, 352, 278, 279, 280, 281, 282, - 283, 270, 270, 270, 563, 101, 102, 62, 108, 109, - 110, 284, 285, 286, 287, 122, 111, 112, 123, 124, - -113, 130, 376, 211, 398, 215, 216, 276, 217, 86, - 238, 239, 242, 327, -76, -75, 236, 383, -74, -73, - 377, 356, 335, -79, -80, 391, 392, 393, 137, 138, - 139, 140, 141, 142, 143, 144, 336, 378, 357, 358, - 270, 270, 270, 362, 363, 350, 374, 396, 270, 364, - 395, 399, 365, 366, 86, 397, 133, 369, 370, 371, - 270, 270, 384, 372, 373, 409, 444, 415, 446, 447, - 448, 375, 379, 381, 452, 385, 386, 387, 388, 389, - 390, 394, 414, 417, 434, 435, 436, 432, 418, 433, - 419, 440, 442, 443, 449, 450, 270, 270, 451, 457, - 456, 270, 458, 270, 454, 455, 467, 270, 400, 471, - 472, 473, 474, 270, 270, 270, 476, 477, 133, 445, - 133, 133, 133, 478, 412, 480, 133, 453, 483, 487, - 501, 479, 503, 533, 484, 485, 491, 493, 494, 545, - 481, 482, 495, 499, 504, 486, 352, 488, 270, 270, - 505, 492, 438, 553, 506, 270, 565, 496, 497, 498, - 516, 517, 522, 572, 270, 525, 527, 537, 536, 538, - 539, 570, 133, 528, 529, 530, 573, 540, 566, 541, - 542, 543, 544, 549, 550, 551, 555, 556, 500, 145, - 146, 270, 520, 521, 557, 567, 568, 569, 574, 526, - 577, 580, 202, 203, 204, 552, 360, 205, 532, 270, - 206, 361, 515, 104, 56, 133, 465, 244, 114, 464, - 145, 146, 59, 344, 26, 133, 133, 133, 97, 578, - 531, 133, 490, 470, 0, 554, 270, 270, 0, 0, - 0, 270, 0, 0, 270, 0, 0, 0, 0, 0, - 0, 0, 0, 561, 0, 0, 0, 133, 420, 421, - 422, 423, 424, 0, 0, 427, 428, 429, 430, 431, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 575, 576, 0, 0, 0, 579, 0, 0, 581, 0, - 0, 125, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 0, 0, 77, 78, 0, - 0, 0, 0, 0, 468, 469, 19, 0, 20, 0, - 0, 475, 125, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 75, 76, 0, 0, 77, 78, - 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 507, 508, 509, - 510, 0, 511, 512, 513, 514, 0, 125, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 0, 0, 77, 78, 0, 0, 0, 0, 0, - 534, 535, 19, 0, 20, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 0, 559, 560, 0, 0, 0, 0, - 0, 79, 0, 0, 80, 0, 0, 81, 0, 82, - 126, 0, 125, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 0, 0, 77, 78, - 0, 0, 79, 0, 0, 80, 0, 19, 81, 20, - 82, 407, 0, 0, 0, 0, 0, 0, 0, 351, - 125, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 75, 76, 0, 0, 77, 78, 0, 0, - 0, 0, 0, 0, 0, 19, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, - 80, 0, 0, 81, 0, 82, 125, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 0, 0, 77, 78, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 125, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, - 77, 78, 0, 0, 0, 0, 0, 0, 0, 19, - 0, 20, 79, 0, 0, 80, 0, 0, 81, 0, - 82, 463, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 0, 0, 77, 78, - 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, - 79, 0, 0, 80, 0, 404, 81, 0, 82, 132, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 0, 0, 77, 78, 0, 0, 0, - 0, 0, 0, 0, 19, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 79, 0, 0, 80, - 0, 0, 81, 0, 82, 125, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, - 0, 77, 78, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 20, 0, 79, 0, 0, 80, 0, 0, - 81, 0, 82, 125, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 75, 76, 0, 0, 77, - 78, 0, 0, 0, 0, 0, 0, 0, 19, 0, - 20, 0, 79, 0, 0, 80, 0, 0, 81, 0, - 82, 0, -82, 19, 0, 20, 0, 0, 0, 6, - -82, -82, 0, 0, 0, 0, 0, -82, -82, -82, - -82, -82, -82, -82, 0, -82, 21, 0, 0, 79, - 0, 0, 80, -82, 22, 81, 0, 82, 23, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 78, 0, 337, 338, 339, 0, 0, 0, - 19, 0, 20, 0, 0, 79, 0, 0, 80, 0, - 0, 81, 0, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 0, 80, 0, 0, 81, - 0, 82, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 255, 256, 0, 0, 0, 0, 246, 247, - 77, 78, 248, 249, 250, 251, 252, 253, 0, 19, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 257, - 0, 258, 181, 182, 183, 184, 0, 259, 260, 261, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 254, 0, 0, 0, 0, 340, 0, - 0, 341, 0, 342, 0, 0, 343, 0, 0, 0, - 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 255, 256, 0, 0, 0, 0, 246, 247, 0, - 0, 248, 249, 250, 251, 252, 253, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 258, 181, 182, 183, 184, 0, 259, 260, 261, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 254, 0, 0, 0, 0, 0, 0, 0, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 255, 256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 258, - 181, 182, 183, 184, 0, 259, 260, 261, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 148, 0, 0, 0, 0, 0, 0, 0, 262, - 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, - 0, 0, 0, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 175, 176, 177, 0, 0, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201 +static const short yypgoto[] = {-32768, +-32768, 368, 370, 371, 222, 223, 374, 376, -96, -95, + -498,-32768, 438, 458, -134,-32768, -298, 68,-32768, -214, +-32768, -44,-32768, -36,-32768, -79, 354,-32768, 128, 261, + -187, 76,-32768,-32768,-32768,-32768, 436,-32768,-32768,-32768, +-32768, 4,-32768, 73,-32768,-32768, 459,-32768,-32768,-32768, +-32768,-32768, 491,-32768, -469, -104, -60, -88,-32768, 461, +-32768, -71,-32768,-32768,-32768,-32768, 65, 7,-32768,-32768, + 83,-32768,-32768 }; -static const short int yycheck[] = -{ - 38, 82, 100, 100, 220, 3, 51, 307, 98, 0, - 29, 10, 4, 51, 33, 32, 152, 517, 152, 37, - 236, 237, 10, 15, 52, 53, 54, 133, 162, 135, - 136, 5, 6, 7, 8, 9, 10, 11, 12, 57, - 31, 147, 152, 34, 72, 43, 35, 36, 548, 130, - 160, 42, 43, 44, 45, 46, 47, 48, 57, 149, - 98, 5, 6, 7, 8, 9, 10, 11, 12, 57, - 154, 207, 63, 135, 136, 28, 547, 30, 152, 163, - 118, 119, 0, 121, 152, 147, 84, 177, 162, 158, - 180, 62, 160, 564, 163, 185, 186, 187, 188, 65, - 66, 67, 68, 69, 70, 71, 25, 26, 152, 151, - 160, 149, 152, 163, 158, 205, 206, 45, 158, 47, - 73, 74, 75, 29, 77, 78, 79, 53, 62, 235, - 56, 57, 340, 341, 342, 55, 56, 175, 176, 177, - 178, 179, 180, 162, 161, 125, 126, 185, 186, 187, - 188, 28, 30, 30, 27, 25, 26, 238, 239, 240, - 17, 18, 17, 18, 202, 203, 204, 205, 206, 42, - 43, 44, 45, 46, 47, 48, 151, 50, 17, 18, - 17, 18, 17, 18, 158, 58, 486, 403, 488, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 309, 242, 102, 103, 104, 105, 106, - 107, 317, 318, 319, 158, 77, 78, 18, 151, 151, - 151, 118, 119, 120, 121, 18, 151, 156, 18, 18, - 154, 154, 277, 30, 324, 18, 30, 60, 30, 277, - 157, 157, 154, 152, 18, 18, 120, 309, 18, 18, - 288, 152, 18, 21, 21, 317, 318, 319, 5, 6, - 7, 8, 9, 10, 11, 12, 21, 305, 155, 64, - 376, 377, 378, 154, 154, 356, 152, 322, 384, 154, - 39, 30, 154, 154, 322, 323, 324, 154, 154, 154, - 396, 397, 156, 154, 154, 30, 386, 155, 388, 389, - 390, 152, 152, 152, 394, 152, 152, 152, 152, 152, - 152, 152, 152, 30, 376, 377, 378, 15, 154, 15, - 154, 152, 384, 156, 152, 152, 432, 433, 152, 30, - 152, 437, 18, 439, 396, 397, 152, 443, 37, 152, - 152, 152, 152, 449, 450, 451, 152, 152, 386, 387, - 388, 389, 390, 152, 352, 39, 394, 395, 154, 18, - 57, 152, 30, 18, 152, 152, 152, 152, 152, 15, - 432, 433, 152, 154, 152, 437, 414, 439, 484, 485, - 152, 443, 57, 158, 155, 491, 39, 449, 450, 451, - 152, 156, 152, 15, 500, 152, 152, 155, 152, 152, - 152, 152, 440, 493, 494, 495, 15, 155, 158, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 456, 517, - 517, 527, 484, 485, 155, 155, 155, 155, 152, 491, - 15, 15, 104, 104, 104, 525, 255, 104, 500, 545, - 104, 256, 480, 43, 24, 483, 415, 130, 50, 414, - 548, 548, 29, 235, 3, 493, 494, 495, 41, 575, - 499, 499, 440, 420, -1, 527, 572, 573, -1, -1, - -1, 577, -1, -1, 580, -1, -1, -1, -1, -1, - -1, -1, -1, 545, -1, -1, -1, 525, 362, 363, - 364, 365, 366, -1, -1, 369, 370, 371, 372, 373, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 572, 573, -1, -1, -1, 577, -1, -1, 580, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, - -1, -1, -1, -1, 418, 419, 28, -1, 30, -1, - -1, 425, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, - -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 471, 472, 473, - 474, -1, 476, 477, 478, 479, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, 19, 20, -1, -1, -1, -1, -1, - 504, 505, 28, -1, 30, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 536, -1, 538, 539, -1, -1, -1, -1, - -1, 153, -1, -1, 156, -1, -1, 159, -1, 161, - 162, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, - -1, -1, 153, -1, -1, 156, -1, 28, 159, 30, - 161, 162, -1, -1, -1, -1, -1, -1, -1, 40, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, - -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, - 156, -1, -1, 159, -1, 161, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, - -1, 28, -1, 30, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 40, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, -1, -1, - 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, - -1, 30, 153, -1, -1, 156, -1, -1, 159, -1, - 161, 40, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, - -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, - 153, -1, -1, 156, -1, 158, 159, -1, 161, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, -1, -1, 19, 20, -1, -1, -1, - -1, -1, -1, -1, 28, -1, 30, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 153, -1, -1, 156, - -1, -1, 159, -1, 161, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, - -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, - 28, -1, 30, -1, 153, -1, -1, 156, -1, -1, - 159, -1, 161, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, -1, -1, 19, - 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, - 30, -1, 153, -1, -1, 156, -1, -1, 159, -1, - 161, -1, 27, 28, -1, 30, -1, -1, -1, 34, - 35, 36, -1, -1, -1, -1, -1, 42, 43, 44, - 45, 46, 47, 48, -1, 50, 51, -1, -1, 153, - -1, -1, 156, 58, 59, 159, -1, 161, 63, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, -1, 22, 23, 24, -1, -1, -1, - 28, -1, 30, -1, -1, 153, -1, -1, 156, -1, - -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 153, -1, -1, 156, -1, -1, 159, - -1, 161, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, -1, -1, -1, -1, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - -1, 30, -1, -1, -1, -1, -1, -1, -1, 127, - -1, 129, 130, 131, 132, 133, -1, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 62, -1, -1, -1, -1, 156, -1, - -1, 159, -1, 161, -1, -1, 164, -1, -1, -1, - -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, -1, -1, -1, -1, 17, 18, -1, - -1, 21, 22, 23, 24, 25, 26, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, - 129, 130, 131, 132, 133, -1, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 62, -1, -1, -1, -1, -1, -1, -1, - 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 127, -1, 129, - 130, 131, 132, 133, -1, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 38, -1, -1, -1, -1, -1, -1, -1, 159, - -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, 61, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, -1, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, 123, 124, -1, -1, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150 + +#define YYLAST 1423 + + +static const short yytable[] = { 84, + 125, 143, 144, 327, 113, 23, 380, 132, -174, 38, + 435, 133, 84, 92, 89, 275, 545, 38, 398, 344, + 345, 437, 134, 42, 43, 44, 268, 28, 268, 268, + 135, 136, 137, 138, 139, 140, 141, 142, 399, 3, + 268, 423, 4, 45, 23, 114, 115, 562, 125, 424, + 5, 6, 7, 8, 9, 10, 11, 436, 273, 131, + 135, 136, 137, 138, 139, 140, 141, 142, 436, 47, + 320, 12, 270, 271, 17, 560, 18, 238, 423, 217, + 218, -111, 235, 423, 272, 127, 306, 239, 460, 310, + 129, 459, 569, 48, 311, 312, 313, 314, 29, 30, + 31, 32, 33, 34, 35, 287, 288, 25, 408, 26, + 131, 323, 423, 129, 318, 319, 58, 324, 458, 96, + 97, 98, 60, 99, 100, 101, 117, 56, 343, 118, + 119, 17, 409, 18, 106, 129, 304, 305, 131, 307, + 308, 131, 93, 90, 210, 211, 131, 131, 131, 131, + 403, 404, 406, 49, 321, 322, 346, 347, 348, 328, + 329, -71, -71, 315, 316, 317, 131, 131, 5, 6, + 7, 50, 9, 51, 11, 107, 52, -70, -70, -69, + -69, -68, -68, 544, 53, 521, 457, 522, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 268, 350, 330, 331, 99, 100, 108, 109, + 268, 268, 268, 561, -112, 123, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 110, + 374, 75, 76, 396, 120, 121, 122, 128, 84, 209, + 17, 213, 18, 214, 215, 234, 381, 236, 237, 375, + 240, 274, 241, 325, 389, 390, 391, 135, 136, 137, + 138, 139, 140, 141, 142, -75, 376, -74, -73, 268, + 268, 268, -72, 354, 348, 394, -78, 268, -79, 333, + 334, 382, 360, 84, 395, 131, 355, 361, 356, 268, + 268, 362, 363, 364, 367, 442, 368, 444, 445, 446, + 369, 370, 371, 450, 372, 373, 377, 379, 383, 384, + 385, 386, 393, 432, 433, 434, 397, 387, 388, 392, + 407, 440, 412, 413, 415, 268, 268, 416, 417, 430, + 268, 431, 268, 452, 453, 438, 268, 441, 447, 455, + 448, 449, 268, 268, 268, 454, 456, 131, 443, 131, + 131, 131, 398, 410, 465, 131, 451, 469, 470, 471, + 472, 478, 474, 475, 485, 77, 501, 476, 78, 479, + 480, 79, 477, 80, 484, 350, 486, 268, 268, 481, + 490, 482, 483, 489, 268, 491, 494, 495, 496, 492, + 493, 499, 502, 268, 276, 277, 278, 279, 280, 281, + 497, 131, 526, 527, 528, 503, 504, 531, 514, 543, + 282, 283, 284, 285, 515, 520, 523, 498, 143, 144, + 268, 518, 519, 525, 534, 535, 536, 537, 524, 436, + 563, 538, 539, 540, 550, 541, 542, 530, 268, 547, + 548, 513, 549, 568, 131, 570, 551, 564, 553, 143, + 144, 554, 555, 565, 131, 131, 131, 566, 567, 571, + 131, 575, 572, 578, 552, 268, 268, 581, 582, 200, + 268, 201, 202, 268, 358, 203, 359, 204, 102, 54, + 463, 242, 559, 112, 462, 57, 131, 418, 419, 420, + 421, 422, 24, 342, 425, 426, 427, 428, 429, 95, + 468, 576, 488, 529, 0, 0, 0, 0, 0, 573, + 574, 0, 0, 0, 577, 0, 0, 579, 0, 0, + 123, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 0, 0, 75, 76, 0, 0, + 0, 0, 0, 466, 467, 17, 0, 18, 0, 0, + 473, 123, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 73, 74, 0, 0, 75, 76, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 18, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 505, 506, 507, 508, + 0, 509, 510, 511, 512, 0, 123, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 0, 0, 75, 76, 0, 0, 0, 0, 0, 532, + 533, 17, 0, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 556, 0, 557, 558, 0, 0, 0, 0, 0, + 77, 0, 0, 78, 0, 0, 79, 0, 80, 124, + 0, 123, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 73, 74, 0, 0, 75, 76, 0, + 0, 77, 0, 0, 78, 0, 17, 79, 18, 80, + 405, 123, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 0, 0, 75, 76, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 18, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, + 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, + 0, 0, 79, 0, 80, 123, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, + 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 461, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 0, 0, 75, + 76, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 18, 77, 0, 0, 78, 0, 402, 79, 0, 80, + 0, 130, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 0, 0, 75, 76, 0, + 0, 77, 0, 0, 78, 0, 17, 79, 18, 80, + 123, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 0, 0, 75, 76, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 0, 0, + 123, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 73, 74, 0, 77, 75, 76, 78, 0, + 0, 79, 0, 80, 0, 17, 0, 18, 0, 0, + 0, -81, 17, 0, 18, 0, 0, 0, 4, -81, + -81, 0, 0, 0, 0, 0, -81, -81, -81, -81, + -81, -81, -81, 77, -81, 19, 78, 0, 0, 79, + 0, 80, -81, 20, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 78, 0, 0, 79, 0, 80, + 75, 76, 0, 335, 336, 337, 0, 0, 0, 17, + 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 78, 0, 0, 79, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 78, 0, 0, 79, 0, 80, 0, + 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 253, 254, 0, 0, 0, 0, 244, 245, 75, + 76, 246, 247, 248, 249, 250, 251, 0, 17, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 255, 0, + 256, 179, 180, 181, 182, 0, 257, 258, 259, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 252, 0, 0, 0, 0, 338, 0, 0, + 339, 0, 340, 0, 0, 341, 0, 0, 0, 0, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 253, 254, 0, 0, 0, 0, 244, 245, 0, 0, + 246, 247, 248, 249, 250, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 0, 256, + 179, 180, 181, 182, 0, 257, 258, 259, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 252, 0, 0, 0, 0, 0, 0, 0, 260, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 253, + 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255, 0, 256, 179, + 180, 181, 182, 0, 257, 258, 259, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 146, 0, 0, 0, 0, 0, 0, 0, 260, 0, + 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 0, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const unsigned char yystos[] = -{ - 0, 199, 200, 202, 0, 31, 34, 42, 43, 44, - 45, 46, 47, 48, 63, 180, 215, 217, 219, 28, - 30, 51, 59, 63, 179, 208, 219, 45, 47, 218, - 62, 65, 66, 67, 68, 69, 70, 71, 181, 213, - 29, 225, 226, 227, 52, 53, 54, 72, 205, 151, - 62, 27, 45, 47, 50, 58, 180, 201, 151, 213, - 30, 203, 18, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 19, 20, 153, - 156, 159, 161, 166, 188, 189, 190, 191, 192, 208, - 222, 32, 161, 214, 33, 162, 216, 226, 73, 74, - 75, 77, 78, 79, 179, 228, 229, 231, 151, 151, - 151, 151, 156, 206, 203, 188, 35, 36, 198, 198, - 198, 198, 18, 18, 18, 3, 162, 192, 193, 208, - 154, 163, 3, 190, 224, 4, 15, 5, 6, 7, - 8, 9, 10, 11, 12, 175, 176, 177, 38, 49, - 60, 61, 76, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 122, 123, 124, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 168, 169, 170, 173, 174, 235, 236, 238, - 239, 30, 55, 56, 204, 18, 30, 30, 207, 190, - 190, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 175, 176, 178, 190, 195, 190, 157, 157, - 152, 162, 154, 40, 193, 194, 17, 18, 21, 22, - 23, 24, 25, 26, 62, 100, 101, 127, 129, 135, - 136, 137, 159, 168, 169, 170, 173, 174, 196, 221, - 222, 223, 223, 223, 223, 224, 60, 181, 102, 103, - 104, 105, 106, 107, 118, 119, 120, 121, 171, 25, - 26, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 172, 190, 190, 224, 190, - 190, 232, 224, 224, 224, 224, 224, 190, 190, 190, - 224, 224, 181, 125, 126, 152, 158, 152, 186, 186, - 25, 26, 17, 18, 167, 18, 21, 22, 23, 24, - 156, 159, 161, 164, 196, 222, 186, 186, 192, 192, - 192, 40, 190, 210, 211, 212, 152, 155, 64, 220, - 171, 172, 154, 154, 154, 154, 154, 195, 197, 154, - 154, 154, 154, 154, 152, 152, 188, 190, 190, 152, - 183, 152, 183, 223, 156, 152, 152, 152, 152, 152, - 152, 223, 223, 223, 152, 39, 188, 190, 224, 30, - 37, 57, 184, 187, 158, 197, 197, 162, 197, 30, - 158, 160, 208, 209, 152, 155, 40, 30, 154, 154, - 195, 195, 195, 195, 195, 152, 160, 195, 195, 195, - 195, 195, 15, 15, 223, 223, 223, 10, 57, 10, - 152, 237, 223, 156, 224, 190, 224, 224, 224, 152, - 152, 152, 224, 190, 223, 223, 152, 30, 18, 186, - 158, 160, 162, 40, 210, 184, 185, 152, 195, 195, - 237, 152, 152, 152, 152, 195, 152, 152, 152, 152, - 39, 223, 223, 154, 152, 152, 223, 18, 223, 224, - 233, 152, 223, 152, 152, 152, 223, 223, 223, 154, - 190, 57, 182, 30, 152, 152, 155, 195, 195, 195, - 195, 195, 195, 195, 195, 190, 152, 156, 233, 234, - 223, 223, 152, 183, 183, 152, 223, 152, 224, 224, - 224, 234, 223, 18, 195, 195, 152, 155, 152, 152, - 155, 155, 155, 155, 155, 15, 158, 177, 230, 155, - 155, 155, 224, 158, 223, 155, 155, 155, 195, 195, - 195, 223, 221, 158, 177, 39, 158, 155, 155, 155, - 152, 221, 15, 15, 152, 223, 223, 15, 228, 223, - 15, 223 +static const short yycheck[] = { 36, + 80, 98, 98, 218, 49, 2, 305, 96, 0, 29, + 10, 4, 49, 33, 32, 150, 515, 29, 37, 234, + 235, 10, 15, 52, 53, 54, 131, 62, 133, 134, + 5, 6, 7, 8, 9, 10, 11, 12, 57, 31, + 145, 152, 34, 72, 41, 35, 36, 546, 128, 160, + 42, 43, 44, 45, 46, 47, 48, 57, 147, 96, + 5, 6, 7, 8, 9, 10, 11, 12, 57, 151, + 205, 63, 133, 134, 28, 545, 30, 152, 152, 116, + 117, 154, 119, 152, 145, 82, 175, 162, 162, 178, + 163, 160, 562, 62, 183, 184, 185, 186, 65, 66, + 67, 68, 69, 70, 71, 25, 26, 45, 158, 47, + 147, 152, 152, 163, 203, 204, 30, 158, 158, 73, + 74, 75, 18, 77, 78, 79, 51, 151, 233, 54, + 55, 28, 160, 30, 151, 163, 173, 174, 175, 176, + 177, 178, 162, 161, 55, 56, 183, 184, 185, 186, + 338, 339, 340, 27, 125, 126, 236, 237, 238, 25, + 26, 17, 18, 200, 201, 202, 203, 204, 42, 43, + 44, 45, 46, 47, 48, 151, 50, 17, 18, 17, + 18, 17, 18, 158, 58, 484, 401, 486, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 307, 240, 17, 18, 77, 78, 151, 151, + 315, 316, 317, 158, 154, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 156, + 275, 19, 20, 322, 18, 18, 18, 154, 275, 30, + 28, 18, 30, 30, 30, 118, 307, 157, 157, 286, + 154, 60, 40, 152, 315, 316, 317, 5, 6, 7, + 8, 9, 10, 11, 12, 18, 303, 18, 18, 374, + 375, 376, 18, 152, 354, 320, 21, 382, 21, 18, + 21, 156, 154, 320, 321, 322, 155, 154, 64, 394, + 395, 154, 154, 154, 154, 384, 154, 386, 387, 388, + 154, 154, 154, 392, 152, 152, 152, 152, 152, 152, + 152, 152, 39, 374, 375, 376, 30, 152, 152, 152, + 30, 382, 152, 155, 30, 430, 431, 154, 154, 15, + 435, 15, 437, 394, 395, 152, 441, 156, 152, 30, + 152, 152, 447, 448, 449, 152, 18, 384, 385, 386, + 387, 388, 37, 350, 152, 392, 393, 152, 152, 152, + 152, 39, 152, 152, 18, 153, 30, 152, 156, 430, + 431, 159, 152, 161, 435, 412, 437, 482, 483, 154, + 441, 152, 152, 152, 489, 152, 447, 448, 449, 152, + 152, 57, 152, 498, 102, 103, 104, 105, 106, 107, + 154, 438, 491, 492, 493, 152, 155, 18, 152, 15, + 118, 119, 120, 121, 156, 152, 152, 454, 515, 515, + 525, 482, 483, 152, 152, 155, 152, 152, 489, 57, + 39, 155, 155, 155, 523, 155, 155, 498, 543, 155, + 155, 478, 155, 152, 481, 15, 158, 158, 155, 546, + 546, 155, 155, 155, 491, 492, 493, 155, 155, 15, + 497, 15, 152, 15, 525, 570, 571, 0, 0, 102, + 575, 102, 102, 578, 253, 102, 254, 102, 41, 22, + 413, 128, 543, 48, 412, 27, 523, 360, 361, 362, + 363, 364, 2, 233, 367, 368, 369, 370, 371, 39, + 418, 573, 438, 497, -1, -1, -1, -1, -1, 570, + 571, -1, -1, -1, 575, -1, -1, 578, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, + -1, -1, -1, 416, 417, 28, -1, 30, -1, -1, + 423, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, + -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 469, 470, 471, 472, + -1, 474, 475, 476, 477, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, -1, 19, 20, -1, -1, -1, -1, -1, 502, + 503, 28, -1, 30, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 534, -1, 536, 537, -1, -1, -1, -1, -1, + 153, -1, -1, 156, -1, -1, 159, -1, 161, 162, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, + -1, 153, -1, -1, 156, -1, 28, 159, 30, 161, + 162, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, + -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, + -1, -1, -1, -1, -1, -1, 153, -1, -1, 156, + -1, -1, 159, -1, 161, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, + 28, -1, 30, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, -1, 19, + 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, + 30, 153, -1, -1, 156, -1, 158, 159, -1, 161, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, + -1, 153, -1, -1, 156, -1, 28, 159, 30, 161, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, + -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, 153, 19, 20, 156, -1, + -1, 159, -1, 161, -1, 28, -1, 30, -1, -1, + -1, 27, 28, -1, 30, -1, -1, -1, 34, 35, + 36, -1, -1, -1, -1, -1, 42, 43, 44, 45, + 46, 47, 48, 153, 50, 51, 156, -1, -1, 159, + -1, 161, 58, 59, -1, -1, -1, 63, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 153, -1, -1, 156, -1, -1, 159, -1, 161, + 19, 20, -1, 22, 23, 24, -1, -1, -1, 28, + -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, + 153, -1, -1, 156, -1, -1, 159, -1, 161, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 153, -1, -1, 156, -1, -1, 159, -1, 161, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, -1, -1, -1, -1, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, -1, + 30, -1, -1, -1, -1, -1, -1, -1, 127, -1, + 129, 130, 131, 132, 133, -1, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 62, -1, -1, -1, -1, 156, -1, -1, + 159, -1, 161, -1, -1, 164, -1, -1, -1, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, -1, -1, -1, -1, 17, 18, -1, -1, + 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 127, -1, 129, + 130, 131, 132, 133, -1, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 62, -1, -1, -1, -1, -1, -1, -1, 159, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 127, -1, 129, 130, + 131, 132, 133, -1, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 38, -1, -1, -1, -1, -1, -1, -1, 159, -1, + -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 76, -1, + -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 122, 123, 124, -1, -1, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150 }; +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/share/bison.simple" +/* This file comes from bison-1.28. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, 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. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible at ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) +#define YYEMPTY -2 #define YYEOF 0 - #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ - #define YYFAIL goto yyerrlab - #define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ +#define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) - #define YYTERROR 1 #define YYERRCODE 256 - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (N) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (0) +#ifndef YYPURE +#define YYLEX yylex() #endif - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) #endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - +#else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) +#define YYLEX yylex(&yylval, YYLEX_PARAM) #else -# define YYLEX yylex () +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ #endif -/* Enable debugging if requested. */ -#if YYDEBUG +/* If nonreentrant, generate the variables here */ -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yysymprint (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) +#ifndef YYPURE -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ -#if defined (__STDC__) || defined (__cplusplus) -static void -yy_stack_print (short int *bottom, short int *top) -#else -static void -yy_stack_print (bottom, top) - short int *bottom; - short int *top; +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ #endif -{ - YYFPRINTF (stderr, "Stack now"); - for (/* Nothing. */; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); - YYFPRINTF (stderr, "\n"); -} -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if defined (__STDC__) || defined (__cplusplus) -static void -yy_reduce_print (int yyrule) -#else -static void -yy_reduce_print (yyrule) - int yyrule; +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ #endif -{ - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", - yyrule - 1, yylno); - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ +/* YYINITDEPTH indicates the initial size of the parser's stacks */ -/* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH -# define YYINITDEPTH 200 +#define YYINITDEPTH 200 #endif -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif #ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 +#define YYMAXDEPTH 10000 #endif - +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) -yystrlen (const char *yystr) -# else -yystrlen (yystr) - const char *yystr; -# endif -{ - const char *yys = yystr; - - while (*yys++ != '\0') - continue; - - return yys - yystr - 1; -} -# endif -# endif - -# ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -# if defined (__STDC__) || defined (__cplusplus) -yystpcpy (char *yydest, const char *yysrc) -# else -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - size_t yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; - return yystpcpy (yyres, yystr) - yyres; + while (i-- > 0) + *t++ = *f++; } -# endif - -#endif /* YYERROR_VERBOSE */ - - -#if YYDEBUG -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +#else /* __cplusplus */ -#if defined (__STDC__) || defined (__cplusplus) -static void -yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) -#else +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ static void -yysymprint (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE *yyvaluep; -#endif +__yy_memcpy (char *to, char *from, unsigned int count) { - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; - - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + register char *t = to; + register char *f = from; + register int i = count; - -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - switch (yytype) - { - default: - break; - } - YYFPRINTF (yyoutput, ")"); + while (i-- > 0) + *t++ = *f++; } -#endif /* ! YYDEBUG */ -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -#if defined (__STDC__) || defined (__cplusplus) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; #endif -{ - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } -} +#endif +#line 217 "/usr/share/bison.simple" -/* Prevent warnings from -Wmissing-prototypes. */ +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -int yyparse (void *YYPARSE_PARAM); -# else -int yyparse (); -# endif -#else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - - -/* The look-ahead symbol. */ -int yychar; - -/* The semantic value of the look-ahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - - -/*----------. -| yyparse. | -`----------*/ +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -int yyparse (void *YYPARSE_PARAM) -# else -int yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -# endif -#else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) -int -yyparse (void) +int yyparse (void *); #else -int -yyparse () - +int yyparse (void); #endif #endif -{ - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - short int yyssa[YYINITDEPTH]; - short int *yyss = yyssa; - short int *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else #define YYPOPSTACK (yyvsp--, yyssp--) +#endif - YYSIZE_T yystacksize = YYINITDEPTH; + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ int yylen; - YYDPRINTF ((stderr, "Starting parse\n")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif yystate = 0; yyerrstatus = 0; @@ -2204,1639 +1498,1532 @@ so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; + yyssp = yyss - 1; yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ - yyssp++; +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: - yysetstate: - *yyssp = yystate; + *++yyssp = yystate; - if (yyss + yystacksize - 1 <= yyssp) + if (yyssp >= yyss + yystacksize - 1) { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + int size = yyssp - yyss + 1; #ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - short int *yyss1 = yyss; - - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif - yyss = yyss1; - yyvs = yyvs1; - } + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif #else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) + if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; - - { - short int *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif #endif /* no yyoverflow */ - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif - if (yyss + yystacksize - 1 <= yyssp) + if (yyssp >= yyss + yystacksize - 1) YYABORT; } - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: + yybackup: /* Do appropriate processing given the current state. */ -/* Read a look-ahead token if we need one and don't already have one. */ +/* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yyn == YYFLAG) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif yychar = YYLEX; } - if (yychar <= YYEOF) + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif } else { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif } - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; + yyn = yytable[yyn]; - if (yyn <= 0) + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) + if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } + else if (yyn == 0) + goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ +/* Do the default action for the current state. */ yydefault: + yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; - goto yyreduce; - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ +/* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: - /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 81: -#line 358 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 82: -#line 361 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = new std::string(""); - ;} - break; - - case 90: -#line 368 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(""); ;} - break; - - case 97: -#line 373 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 98: -#line 378 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(""); ;} - break; - - case 99: -#line 383 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 100: -#line 384 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} - break; - - case 101: -#line 387 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 102: -#line 388 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-1].String)->insert(0, ", "); - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 103: -#line 396 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 104: -#line 402 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 106: -#line 406 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 107: -#line 407 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-1].String)->insert(0, ", "); - if (!(yyvsp[0].String)->empty()) - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 109: -#line 417 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 127: -#line 439 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Type).newTy = (yyvsp[0].String); - (yyval.Type).oldTy = OpaqueTy; - ;} - break; - - case 128: -#line 443 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Type).newTy = (yyvsp[0].String); - (yyval.Type).oldTy = UnresolvedTy; - ;} - break; - - case 129: -#line 447 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Type) = (yyvsp[0].Type); - ;} - break; - - case 130: -#line 450 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Type UpReference - (yyvsp[0].String)->insert(0, "\\"); - (yyval.Type).newTy = (yyvsp[0].String); - (yyval.Type).oldTy = NumericTy; - ;} - break; - - case 131: -#line 455 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Function derived type? - *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; - delete (yyvsp[-1].String); - (yyval.Type).newTy = (yyvsp[-3].Type).newTy; - (yyval.Type).oldTy = FunctionTy; - ;} - break; - - case 132: -#line 461 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Sized array type? - (yyvsp[-3].String)->insert(0,"[ "); - *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; - delete (yyvsp[-1].Type).newTy; - (yyval.Type).newTy = (yyvsp[-3].String); - (yyval.Type).oldTy = ArrayTy; - (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; - ;} - break; - - case 133: -#line 469 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Packed array type? - (yyvsp[-3].String)->insert(0,"< "); - *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; - delete (yyvsp[-1].Type).newTy; - (yyval.Type).newTy = (yyvsp[-3].String); - (yyval.Type).oldTy = PackedTy; - (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; - ;} - break; - - case 134: -#line 477 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Structure type? - (yyvsp[-1].String)->insert(0, "{ "); - *(yyvsp[-1].String) += " }"; - (yyval.Type).newTy = (yyvsp[-1].String); - (yyval.Type).oldTy = StructTy; - ;} - break; - - case 135: -#line 483 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Empty structure type? - (yyval.Type).newTy = new std::string("{}"); - (yyval.Type).oldTy = StructTy; - ;} - break; - - case 136: -#line 487 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Pointer type? - *(yyvsp[-1].Type).newTy += '*'; - (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; - (yyvsp[-1].Type).oldTy = PointerTy; - (yyval.Type) = (yyvsp[-1].Type); - ;} - break; - - case 137: -#line 498 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[0].Type).newTy; - ;} - break; - - case 138: -#line 501 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; - delete (yyvsp[0].Type).newTy; - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 140: -#line 510 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", ..."; - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 141: -#line 515 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[0].String); - ;} - break; - - case 142: -#line 518 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = new std::string(); - ;} - break; - - case 143: -#line 528 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Nonempty unsized arr - (yyval.Const).type = (yyvsp[-3].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); - *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]"; - delete (yyvsp[-1].String); - ;} - break; - - case 144: -#line 534 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-2].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); - *(yyval.Const).cnst += "[ ]"; - ;} - break; - - case 145: -#line 539 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-2].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); - *(yyval.Const).cnst += " c" + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 146: -#line 545 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Nonempty unsized arr - (yyval.Const).type = (yyvsp[-3].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); - *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >"; - delete (yyvsp[-1].String); - ;} - break; - - case 147: -#line 551 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-3].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); - *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }"; - delete (yyvsp[-1].String); - ;} - break; - - case 148: -#line 557 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-2].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); - *(yyval.Const).cnst += " {}"; - ;} - break; - - case 149: -#line 562 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 150: -#line 568 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 151: -#line 574 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 152: -#line 580 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 153: -#line 586 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" +#if YYDEBUG != 0 + if (yydebug) { - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 154: -#line 592 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // integral constants - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 155: -#line 598 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // integral constants - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 156: -#line 604 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Boolean constants - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 157: -#line 610 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Boolean constants - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 158: -#line 616 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Float & Double constants - (yyval.Const).type = (yyvsp[-1].Type); - (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); - *(yyval.Const).cnst += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; + int i; - case 159: -#line 624 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - std::string source = *(yyvsp[-3].Const).cnst; - TypeInfo DstTy = (yyvsp[-1].Type); + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 80: +#line 358 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[-1].String; + ; + break;} +case 81: +#line 361 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = new std::string(""); + ; + break;} +case 89: +#line 368 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(""); ; + break;} +case 96: +#line 373 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 97: +#line 378 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(""); ; + break;} +case 98: +#line 383 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 99: +#line 384 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ *yyvsp[-1].String += " " + *yyvsp[0].String; delete yyvsp[0].String; yyval.String = yyvsp[-1].String; ; + break;} +case 100: +#line 387 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 101: +#line 388 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-1].String->insert(0, ", "); + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 102: +#line 396 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 103: +#line 402 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 105: +#line 406 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 106: +#line 407 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-1].String->insert(0, ", "); + if (!yyvsp[0].String->empty()) + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 108: +#line 417 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 126: +#line 439 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Type.newTy = yyvsp[0].String; + yyval.Type.oldTy = OpaqueTy; + ; + break;} +case 127: +#line 443 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Type.newTy = yyvsp[0].String; + yyval.Type.oldTy = UnresolvedTy; + ; + break;} +case 128: +#line 447 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Type = yyvsp[0].Type; + ; + break;} +case 129: +#line 450 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Type UpReference + yyvsp[0].String->insert(0, "\\"); + yyval.Type.newTy = yyvsp[0].String; + yyval.Type.oldTy = NumericTy; + ; + break;} +case 130: +#line 455 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Function derived type? + *yyvsp[-3].Type.newTy += "( " + *yyvsp[-1].String + " )"; + delete yyvsp[-1].String; + yyval.Type.newTy = yyvsp[-3].Type.newTy; + yyval.Type.oldTy = FunctionTy; + ; + break;} +case 131: +#line 461 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Sized array type? + yyvsp[-3].String->insert(0,"[ "); + *yyvsp[-3].String += " x " + *yyvsp[-1].Type.newTy + " ]"; + delete yyvsp[-1].Type.newTy; + yyval.Type.newTy = yyvsp[-3].String; + yyval.Type.oldTy = ArrayTy; + yyval.Type.elemTy = yyvsp[-1].Type.oldTy; + ; + break;} +case 132: +#line 469 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Packed array type? + yyvsp[-3].String->insert(0,"< "); + *yyvsp[-3].String += " x " + *yyvsp[-1].Type.newTy + " >"; + delete yyvsp[-1].Type.newTy; + yyval.Type.newTy = yyvsp[-3].String; + yyval.Type.oldTy = PackedTy; + yyval.Type.elemTy = yyvsp[-1].Type.oldTy; + ; + break;} +case 133: +#line 477 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Structure type? + yyvsp[-1].String->insert(0, "{ "); + *yyvsp[-1].String += " }"; + yyval.Type.newTy = yyvsp[-1].String; + yyval.Type.oldTy = StructTy; + ; + break;} +case 134: +#line 483 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Empty structure type? + yyval.Type.newTy = new std::string("{}"); + yyval.Type.oldTy = StructTy; + ; + break;} +case 135: +#line 487 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Pointer type? + *yyvsp[-1].Type.newTy += '*'; + yyval.Type.elemTy = yyvsp[-1].Type.oldTy; + yyvsp[-1].Type.oldTy = PointerTy; + yyval.Type = yyvsp[-1].Type; + ; + break;} +case 136: +#line 498 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[0].Type.newTy; + ; + break;} +case 137: +#line 501 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", " + *yyvsp[0].Type.newTy; + delete yyvsp[0].Type.newTy; + yyval.String = yyvsp[-2].String; + ; + break;} +case 139: +#line 510 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", ..."; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 140: +#line 515 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[0].String; + ; + break;} +case 141: +#line 518 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = new std::string(); + ; + break;} +case 142: +#line 528 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Nonempty unsized arr + yyval.Const.type = yyvsp[-3].Type; + yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); + *yyval.Const.cnst += " [ " + *yyvsp[-1].String + " ]"; + delete yyvsp[-1].String; + ; + break;} +case 143: +#line 534 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-2].Type; + yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); + *yyval.Const.cnst += "[ ]"; + ; + break;} +case 144: +#line 539 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-2].Type; + yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); + *yyval.Const.cnst += " c" + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 145: +#line 545 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Nonempty unsized arr + yyval.Const.type = yyvsp[-3].Type; + yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); + *yyval.Const.cnst += " < " + *yyvsp[-1].String + " >"; + delete yyvsp[-1].String; + ; + break;} +case 146: +#line 551 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-3].Type; + yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); + *yyval.Const.cnst += " { " + *yyvsp[-1].String + " }"; + delete yyvsp[-1].String; + ; + break;} +case 147: +#line 557 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-2].Type; + yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); + *yyval.Const.cnst += " {}"; + ; + break;} +case 148: +#line 562 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 149: +#line 568 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 150: +#line 574 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 151: +#line 580 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 152: +#line 586 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 153: +#line 592 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // integral constants + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 154: +#line 598 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // integral constants + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 155: +#line 604 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Boolean constants + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 156: +#line 610 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Boolean constants + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 157: +#line 616 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Float & Double constants + yyval.Const.type = yyvsp[-1].Type; + yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); + *yyval.Const.cnst += " " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 158: +#line 624 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + std::string source = *yyvsp[-3].Const.cnst; + TypeInfo DstTy = yyvsp[-1].Type; ResolveType(DstTy); - if (*(yyvsp[-5].String) == "cast") { + if (*yyvsp[-5].String == "cast") { // Call getCastUpgrade to upgrade the old cast - (yyval.String) = new std::string(getCastUpgrade(source, (yyvsp[-3].Const).type, (yyvsp[-1].Type), true)); + yyval.String = new std::string(getCastUpgrade(source, yyvsp[-3].Const.type, yyvsp[-1].Type, true)); } else { // Nothing to upgrade, just create the cast constant expr - (yyval.String) = new std::string(*(yyvsp[-5].String)); - *(yyval.String) += "( " + source + " to " + *(yyvsp[-1].Type).newTy + ")"; + yyval.String = new std::string(*yyvsp[-5].String); + *yyval.String += "( " + source + " to " + *yyvsp[-1].Type.newTy + ")"; } - delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); - ;} - break; - - case 160: -#line 638 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; - for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { - ValueInfo& VI = (*(yyvsp[-1].ValList))[i]; - *(yyvsp[-4].String) += ", " + *VI.val; + delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); + ; + break;} +case 159: +#line 638 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-4].String += "(" + *yyvsp[-2].Const.cnst; + for (unsigned i = 0; i < yyvsp[-1].ValList->size(); ++i) { + ValueInfo& VI = (*yyvsp[-1].ValList)[i]; + *yyvsp[-4].String += ", " + *VI.val; VI.destroy(); } - *(yyvsp[-4].String) += ")"; - (yyval.String) = (yyvsp[-4].String); - (yyvsp[-2].Const).destroy(); - delete (yyvsp[-1].ValList); - ;} - break; - - case 161: -#line 650 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-7].String); - ;} - break; - - case 162: -#line 655 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); - (yyval.String) = new std::string(op); - *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - ;} - break; - - case 163: -#line 661 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 164: -#line 666 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { + *yyvsp[-4].String += ")"; + yyval.String = yyvsp[-4].String; + yyvsp[-2].Const.destroy(); + delete yyvsp[-1].ValList; + ; + break;} +case 160: +#line 650 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-7].String; + ; + break;} +case 161: +#line 655 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + const char* op = getDivRemOpcode(*yyvsp[-5].String, yyvsp[-3].Const.type); + yyval.String = new std::string(op); + *yyval.String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + ; + break;} +case 162: +#line 661 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 163: +#line 666 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ #if UPGRADE_SETCOND_OPS - *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); + *yyvsp[-5].String = getCompareOp(*yyvsp[-5].String, yyvsp[-3].Const.type); #endif - *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 165: -#line 674 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 166: -#line 679 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 167: -#line 684 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - const char* shiftop = (yyvsp[-5].String)->c_str(); - if (*(yyvsp[-5].String) == "shr") - shiftop = ((yyvsp[-3].Const).type.isUnsigned()) ? "lshr" : "ashr"; - (yyval.String) = new std::string(shiftop); - *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - ;} - break; - - case 168: -#line 692 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 169: -#line 697 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-7].String); - ;} - break; - - case 170: -#line 702 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; - (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); - (yyval.String) = (yyvsp[-7].String); - ;} - break; - - case 171: -#line 712 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; - (yyvsp[0].Const).destroy(); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 172: -#line 717 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} - break; - - case 175: -#line 732 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { -;} - break; - - case 176: -#line 737 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = 0; - ;} - break; - - case 177: -#line 740 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 178: -#line 745 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; - (yyval.String) = 0; - ;} - break; - - case 179: -#line 749 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { + *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 164: +#line 674 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-6].String += "(" + *yyvsp[-5].String + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-6].String; + ; + break;} +case 165: +#line 679 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-6].String += "(" + *yyvsp[-5].String + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-6].String; + ; + break;} +case 166: +#line 684 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + const char* shiftop = yyvsp[-5].String->c_str(); + if (*yyvsp[-5].String == "shr") + shiftop = (yyvsp[-3].Const.type.isUnsigned()) ? "lshr" : "ashr"; + yyval.String = new std::string(shiftop); + *yyval.String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + ; + break;} +case 167: +#line 692 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 168: +#line 697 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-7].String; + ; + break;} +case 169: +#line 702 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; + yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); + yyval.String = yyvsp[-7].String; + ; + break;} +case 170: +#line 712 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", " + *yyvsp[0].Const.cnst; + yyvsp[0].Const.destroy(); + yyval.String = yyvsp[-2].String; + ; + break;} +case 171: +#line 717 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(*yyvsp[0].Const.cnst); yyvsp[0].Const.destroy(); ; + break;} +case 174: +#line 732 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ +; + break;} +case 175: +#line 737 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = 0; + ; + break;} +case 176: +#line 740 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 177: +#line 745 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << "module asm " << " " << *yyvsp[0].String << "\n"; + yyval.String = 0; + ; + break;} +case 178: +#line 749 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ *O << "implementation\n"; - (yyval.String) = 0; - ;} - break; - - case 180: -#line 753 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = 0; ;} - break; - - case 182: -#line 755 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} - break; - - case 183: -#line 758 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - EnumeratedTypes.push_back((yyvsp[0].Type)); - if (!(yyvsp[-2].String)->empty()) { - NamedTypes[*(yyvsp[-2].String)].newTy = new std::string(*(yyvsp[0].Type).newTy); - NamedTypes[*(yyvsp[-2].String)].oldTy = (yyvsp[0].Type).oldTy; - NamedTypes[*(yyvsp[-2].String)].elemTy = (yyvsp[0].Type).elemTy; - *O << *(yyvsp[-2].String) << " = "; - } - *O << "type " << *(yyvsp[0].Type).newTy << "\n"; - delete (yyvsp[-2].String); delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); - (yyval.String) = 0; - ;} - break; - - case 184: -#line 770 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Function prototypes can be in const pool - *O << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 185: -#line 775 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Asm blocks can be in the const pool - *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 186: -#line 780 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-4].String)->empty()) { - *O << *(yyvsp[-4].String) << " = "; - Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Const).type.clone(); - } - *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 187: -#line 789 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-4].String)->empty()) { - *O << *(yyvsp[-4].String) << " = "; - Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); - } - *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 188: -#line 798 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-4].String)->empty()) { - *O << *(yyvsp[-4].String) << " = "; - Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); - } - *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 189: -#line 807 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-4].String)->empty()) { - *O << *(yyvsp[-4].String) << " = "; - Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); - } - *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 190: -#line 816 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-1].String); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 191: -#line 821 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-2].String); delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 192: -#line 826 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = 0; - ;} - break; - - case 196: -#line 836 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 197: -#line 841 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); - if (*(yyvsp[0].String) == "64") + yyval.String = 0; + ; + break;} +case 179: +#line 753 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = 0; ; + break;} +case 181: +#line 755 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = yyvsp[0].String; *yyval.String = "external"; ; + break;} +case 182: +#line 758 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + EnumeratedTypes.push_back(yyvsp[0].Type); + if (!yyvsp[-2].String->empty()) { + NamedTypes[*yyvsp[-2].String].newTy = new std::string(*yyvsp[0].Type.newTy); + NamedTypes[*yyvsp[-2].String].oldTy = yyvsp[0].Type.oldTy; + NamedTypes[*yyvsp[-2].String].elemTy = yyvsp[0].Type.elemTy; + *O << *yyvsp[-2].String << " = "; + } + *O << "type " << *yyvsp[0].Type.newTy << "\n"; + delete yyvsp[-2].String; delete yyvsp[-1].String; yyvsp[0].Type.destroy(); + yyval.String = 0; + ; + break;} +case 183: +#line 770 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Function prototypes can be in const pool + *O << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 184: +#line 775 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Asm blocks can be in the const pool + *O << *yyvsp[-2].String << " " << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-2].String; delete yyvsp[-1].String; delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 185: +#line 780 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-4].String->empty()) { + *O << *yyvsp[-4].String << " = "; + Globals[*yyvsp[-4].String] = yyvsp[-1].Const.type.clone(); + } + *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Const.cnst << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Const.destroy(); delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 186: +#line 789 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-4].String->empty()) { + *O << *yyvsp[-4].String << " = "; + Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); + } + *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 187: +#line 798 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-4].String->empty()) { + *O << *yyvsp[-4].String << " = "; + Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); + } + *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 188: +#line 807 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-4].String->empty()) { + *O << *yyvsp[-4].String << " = "; + Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); + } + *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 189: +#line 816 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-1].String; delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 190: +#line 821 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << *yyvsp[-2].String << " = " << *yyvsp[0].String << "\n"; + delete yyvsp[-2].String; delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 191: +#line 826 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = 0; + ; + break;} +case 195: +#line 836 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " = " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 196: +#line 841 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " = " + *yyvsp[0].String; + if (*yyvsp[0].String == "64") SizeOfPointer = 64; - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 198: -#line 848 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 199: -#line 853 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 200: -#line 860 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-1].String)->insert(0, "[ "); - *(yyvsp[-1].String) += " ]"; - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 201: -#line 867 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 203: -#line 873 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = new std::string(); - ;} - break; - - case 207: -#line 882 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 208: -#line 884 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[-1].Type).newTy; - if (!(yyvsp[0].String)->empty()) - *(yyval.String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); -;} - break; - - case 209: -#line 891 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); - delete (yyvsp[0].String); - ;} - break; - - case 210: -#line 895 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[0].String); - ;} - break; - - case 211: -#line 899 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[0].String); - ;} - break; - - case 212: -#line 902 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += ", ..."; - (yyval.String) = (yyvsp[-2].String); - delete (yyvsp[0].String); - ;} - break; - - case 213: -#line 907 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = (yyvsp[0].String); - ;} - break; - - case 214: -#line 910 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 215: -#line 913 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-7].String)->empty()) { - *(yyvsp[-7].String) += " "; - } - *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")"; - if (!(yyvsp[-1].String)->empty()) { - *(yyvsp[-7].String) += " " + *(yyvsp[-1].String); - } - if (!(yyvsp[0].String)->empty()) { - *(yyvsp[-7].String) += " " + *(yyvsp[0].String); - } - (yyvsp[-6].Type).destroy(); - delete (yyvsp[-5].String); - delete (yyvsp[-3].String); - delete (yyvsp[-1].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-7].String); - ;} - break; - - case 216: -#line 932 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} - break; - - case 217: -#line 933 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string ("{"); ;} - break; - - case 218: -#line 935 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-2].String)->empty()) { - *O << *(yyvsp[-2].String) << " "; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 197: +#line 848 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " = " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 198: +#line 853 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " = " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 199: +#line 860 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-1].String->insert(0, "[ "); + *yyvsp[-1].String += " ]"; + yyval.String = yyvsp[-1].String; + ; + break;} +case 200: +#line 867 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 202: +#line 873 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = new std::string(); + ; + break;} +case 206: +#line 882 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 207: +#line 884 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[-1].Type.newTy; + if (!yyvsp[0].String->empty()) + *yyval.String += " " + *yyvsp[0].String; + delete yyvsp[0].String; +; + break;} +case 208: +#line 891 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", " + *yyvsp[0].String; + delete yyvsp[0].String; + ; + break;} +case 209: +#line 895 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[0].String; + ; + break;} +case 210: +#line 899 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[0].String; + ; + break;} +case 211: +#line 902 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += ", ..."; + yyval.String = yyvsp[-2].String; + delete yyvsp[0].String; + ; + break;} +case 212: +#line 907 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = yyvsp[0].String; + ; + break;} +case 213: +#line 910 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 214: +#line 913 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-7].String->empty()) { + *yyvsp[-7].String += " "; + } + *yyvsp[-7].String += *yyvsp[-6].Type.newTy + " " + *yyvsp[-5].String + "(" + *yyvsp[-3].String + ")"; + if (!yyvsp[-1].String->empty()) { + *yyvsp[-7].String += " " + *yyvsp[-1].String; + } + if (!yyvsp[0].String->empty()) { + *yyvsp[-7].String += " " + *yyvsp[0].String; + } + yyvsp[-6].Type.destroy(); + delete yyvsp[-5].String; + delete yyvsp[-3].String; + delete yyvsp[-1].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-7].String; + ; + break;} +case 215: +#line 932 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string("{"); delete yyvsp[0].String; ; + break;} +case 216: +#line 933 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string ("{"); ; + break;} +case 217: +#line 935 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-2].String->empty()) { + *O << *yyvsp[-2].String << " "; } - *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); - (yyval.String) = 0; -;} - break; - - case 219: -#line 944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} - break; - - case 220: -#line 945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string("}"); ;} - break; - - case 221: -#line 947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if ((yyvsp[-1].String)) - *O << *(yyvsp[-1].String); - *O << '\n' << *(yyvsp[0].String) << "\n"; - (yyval.String) = 0; -;} - break; - - case 222: -#line 955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 225: -#line 961 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-1].String)->empty()) - *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); - *(yyvsp[-2].String) += " " + *(yyvsp[0].String); - delete (yyvsp[-1].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 226: -#line 974 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 236: -#line 980 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-1].String)->insert(0, "<"); - *(yyvsp[-1].String) += ">"; - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 238: -#line 986 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-3].String)->empty()) { - *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); - } - *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String); - delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-4].String); - ;} - break; - - case 241: -#line 999 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Value).val = (yyvsp[0].String); - (yyval.Value).constant = false; - (yyval.Value).type.newTy = 0; - (yyval.Value).type.oldTy = UnresolvedTy; - ;} - break; - - case 242: -#line 1005 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Value).val = (yyvsp[0].String); - (yyval.Value).constant = true; - (yyval.Value).type.newTy = 0; - (yyval.Value).type.oldTy = UnresolvedTy; - ;} - break; - - case 243: -#line 1016 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.Value) = (yyvsp[0].Value); - (yyval.Value).type = (yyvsp[-1].Type); - (yyval.Value).val->insert(0, *(yyvsp[-1].Type).newTy + " "); - ;} - break; - - case 244: -#line 1022 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = 0; - ;} - break; - - case 245: -#line 1025 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Do not allow functions with 0 basic blocks - (yyval.String) = 0; - ;} - break; - - case 246: -#line 1033 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = 0; - ;} - break; - - case 247: -#line 1037 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 248: -#line 1042 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.String) = 0; - ;} - break; - - case 249: -#line 1045 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 251: -#line 1051 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} - break; - - case 252: -#line 1053 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Return with a result... - *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; - delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); - (yyval.String) = 0; - ;} - break; - - case 253: -#line 1058 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Return with no result... - *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; - delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); - (yyval.String) = 0; - ;} - break; - - case 254: -#line 1063 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Unconditional Branch... - *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; - delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = 0; - ;} - break; - - case 255: -#line 1068 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " - << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " - << *(yyvsp[0].Value).val << "\n"; - delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); - (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = 0; - ;} - break; - - case 256: -#line 1076 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " - << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; - delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); - delete (yyvsp[-1].String); - (yyval.String) = 0; - ;} - break; - - case 257: -#line 1083 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " - << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; - delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); (yyvsp[-5].Value).destroy(); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); - (yyval.String) = 0; - ;} - break; - - case 258: -#line 1090 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { + *O << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; + delete yyvsp[-2].String; delete yyvsp[-1].String; delete yyvsp[0].String; + yyval.String = 0; +; + break;} +case 218: +#line 944 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string("}"); delete yyvsp[0].String; ; + break;} +case 219: +#line 945 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string("}"); ; + break;} +case 220: +#line 947 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (yyvsp[-1].String) + *O << *yyvsp[-1].String; + *O << '\n' << *yyvsp[0].String << "\n"; + yyval.String = 0; +; + break;} +case 221: +#line 955 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 224: +#line 961 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-1].String->empty()) + *yyvsp[-2].String += " " + *yyvsp[-1].String; + *yyvsp[-2].String += " " + *yyvsp[0].String; + delete yyvsp[-1].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 225: +#line 974 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 235: +#line 980 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-1].String->insert(0, "<"); + *yyvsp[-1].String += ">"; + yyval.String = yyvsp[-1].String; + ; + break;} +case 237: +#line 986 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-3].String->empty()) { + *yyvsp[-4].String += " " + *yyvsp[-3].String; + } + *yyvsp[-4].String += " " + *yyvsp[-2].String + ", " + *yyvsp[0].String; + delete yyvsp[-3].String; delete yyvsp[-2].String; delete yyvsp[0].String; + yyval.String = yyvsp[-4].String; + ; + break;} +case 240: +#line 999 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Value.val = yyvsp[0].String; + yyval.Value.constant = false; + yyval.Value.type.newTy = 0; + yyval.Value.type.oldTy = UnresolvedTy; + ; + break;} +case 241: +#line 1005 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Value.val = yyvsp[0].String; + yyval.Value.constant = true; + yyval.Value.type.newTy = 0; + yyval.Value.type.oldTy = UnresolvedTy; + ; + break;} +case 242: +#line 1016 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.Value = yyvsp[0].Value; + yyval.Value.type = yyvsp[-1].Type; + yyval.Value.val->insert(0, *yyvsp[-1].Type.newTy + " "); + ; + break;} +case 243: +#line 1022 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = 0; + ; + break;} +case 244: +#line 1025 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Do not allow functions with 0 basic blocks + yyval.String = 0; + ; + break;} +case 245: +#line 1033 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = 0; + ; + break;} +case 246: +#line 1037 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 247: +#line 1042 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.String = 0; + ; + break;} +case 248: +#line 1045 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 250: +#line 1051 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = yyvsp[0].String; *yyval.String = "unwind"; ; + break;} +case 251: +#line 1053 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Return with a result... + *O << " " << *yyvsp[-1].String << " " << *yyvsp[0].Value.val << "\n"; + delete yyvsp[-1].String; yyvsp[0].Value.destroy(); + yyval.String = 0; + ; + break;} +case 252: +#line 1058 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Return with no result... + *O << " " << *yyvsp[-1].String << " " << *yyvsp[0].Type.newTy << "\n"; + delete yyvsp[-1].String; yyvsp[0].Type.destroy(); + yyval.String = 0; + ; + break;} +case 253: +#line 1063 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Unconditional Branch... + *O << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].Value.val << "\n"; + delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = 0; + ; + break;} +case 254: +#line 1068 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[-8].String << " " << *yyvsp[-7].Type.newTy << " " << *yyvsp[-6].Value.val << ", " + << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << ", " << *yyvsp[-1].Type.newTy << " " + << *yyvsp[0].Value.val << "\n"; + delete yyvsp[-8].String; yyvsp[-7].Type.destroy(); yyvsp[-6].Value.destroy(); yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); + yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = 0; + ; + break;} +case 255: +#line 1076 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[-8].String << " " << *yyvsp[-7].Type.newTy << " " << *yyvsp[-6].Value.val << ", " + << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << " [" << *yyvsp[-1].String << " ]\n"; + delete yyvsp[-8].String; yyvsp[-7].Type.destroy(); yyvsp[-6].Value.destroy(); yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); + delete yyvsp[-1].String; + yyval.String = 0; + ; + break;} +case 256: +#line 1083 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[-7].String << " " << *yyvsp[-6].Type.newTy << " " << *yyvsp[-5].Value.val << ", " + << *yyvsp[-3].Type.newTy << " " << *yyvsp[-2].Value.val << "[]\n"; + delete yyvsp[-7].String; yyvsp[-6].Type.destroy(); yyvsp[-5].Value.destroy(); yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); + yyval.String = 0; + ; + break;} +case 257: +#line 1090 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ *O << " "; - if (!(yyvsp[-13].String)->empty()) - *O << *(yyvsp[-13].String) << " = "; - *O << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].Value).val << " ("; - for (unsigned i = 0; i < (yyvsp[-7].ValList)->size(); ++i) { - ValueInfo& VI = (*(yyvsp[-7].ValList))[i]; + if (!yyvsp[-13].String->empty()) + *O << *yyvsp[-13].String << " = "; + *O << *yyvsp[-12].String << " " << *yyvsp[-11].String << " " << *yyvsp[-10].Type.newTy << " " << *yyvsp[-9].Value.val << " ("; + for (unsigned i = 0; i < yyvsp[-7].ValList->size(); ++i) { + ValueInfo& VI = (*yyvsp[-7].ValList)[i]; *O << *VI.val; - if (i+1 < (yyvsp[-7].ValList)->size()) + if (i+1 < yyvsp[-7].ValList->size()) *O << ", "; VI.destroy(); } - *O << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " " - << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; - delete (yyvsp[-13].String); delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); (yyvsp[-9].Value).destroy(); delete (yyvsp[-7].ValList); - delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); - (yyvsp[0].Value).destroy(); - (yyval.String) = 0; - ;} - break; - - case 259: -#line 1109 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 260: -#line 1114 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *O << " " << *(yyvsp[0].String) << "\n"; - delete (yyvsp[0].String); - (yyval.String) = 0; - ;} - break; - - case 261: -#line 1120 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; - (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 262: -#line 1125 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); - *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; - (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-3].String); - ;} - break; - - case 263: -#line 1133 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-1].String)->empty()) - *(yyvsp[-1].String) += " = "; - *(yyvsp[-1].String) += *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 264: -#line 1142 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { // Used for PHI nodes - (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); - *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; - (yyvsp[-5].Type).destroy(); (yyvsp[-1].Value).destroy(); - (yyval.String) = new std::string(*(yyvsp[-3].Value).val); - (yyvsp[-3].Value).destroy(); - ;} - break; - - case 265: -#line 1149 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; - (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 266: -#line 1157 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyval.ValList) = new ValueList(); - (yyval.ValList)->push_back((yyvsp[0].Value)); - ;} - break; - - case 267: -#line 1161 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); - (yyval.ValList) = (yyvsp[-2].ValList); - ;} - break; - - case 268: -#line 1168 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.ValList) = (yyvsp[0].ValList); ;} - break; - - case 269: -#line 1169 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.ValList) = new ValueList(); ;} - break; - - case 270: -#line 1173 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 272: -#line 1181 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); - (yyval.String) = new std::string(op); - *(yyval.String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - delete (yyvsp[-4].String); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - ;} - break; - - case 273: -#line 1187 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-4].String); - ;} - break; - - case 274: -#line 1192 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { + *O << ") " << *yyvsp[-5].String << " " << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << " " + << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].Value.val << "\n"; + delete yyvsp[-13].String; delete yyvsp[-12].String; delete yyvsp[-11].String; yyvsp[-10].Type.destroy(); yyvsp[-9].Value.destroy(); delete yyvsp[-7].ValList; + delete yyvsp[-5].String; yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); + yyvsp[0].Value.destroy(); + yyval.String = 0; + ; + break;} +case 258: +#line 1109 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 259: +#line 1114 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *O << " " << *yyvsp[0].String << "\n"; + delete yyvsp[0].String; + yyval.String = 0; + ; + break;} +case 260: +#line 1120 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + " " + *yyvsp[-3].String + ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; + yyvsp[-4].Type.destroy(); delete yyvsp[-3].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 261: +#line 1125 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-3].String->insert(0, *yyvsp[-4].Type.newTy + " " ); + *yyvsp[-3].String += ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; + yyvsp[-4].Type.destroy(); yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-3].String; + ; + break;} +case 262: +#line 1133 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-1].String->empty()) + *yyvsp[-1].String += " = "; + *yyvsp[-1].String += *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 263: +#line 1142 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Used for PHI nodes + yyvsp[-3].Value.val->insert(0, *yyvsp[-5].Type.newTy + "["); + *yyvsp[-3].Value.val += "," + *yyvsp[-1].Value.val + "]"; + yyvsp[-5].Type.destroy(); yyvsp[-1].Value.destroy(); + yyval.String = new std::string(*yyvsp[-3].Value.val); + yyvsp[-3].Value.destroy(); + ; + break;} +case 264: +#line 1149 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-6].String += ", [" + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + "]"; + yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); + yyval.String = yyvsp[-6].String; + ; + break;} +case 265: +#line 1157 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyval.ValList = new ValueList(); + yyval.ValList->push_back(yyvsp[0].Value); + ; + break;} +case 266: +#line 1161 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + yyvsp[-2].ValList->push_back(yyvsp[0].Value); + yyval.ValList = yyvsp[-2].ValList; + ; + break;} +case 267: +#line 1168 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.ValList = yyvsp[0].ValList; ; + break;} +case 268: +#line 1169 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.ValList = new ValueList(); ; + break;} +case 269: +#line 1173 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 271: +#line 1181 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + const char* op = getDivRemOpcode(*yyvsp[-4].String, yyvsp[-3].Type); + yyval.String = new std::string(op); + *yyval.String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + delete yyvsp[-4].String; yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + ; + break;} +case 272: +#line 1187 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-4].String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-4].String; + ; + break;} +case 273: +#line 1192 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ #if UPGRADE_SETCOND_OPS - *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); + *yyvsp[-4].String = getCompareOp(*yyvsp[-4].String, yyvsp[-3].Type); #endif - *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-4].String); - ;} - break; - - case 275: -#line 1200 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 276: -#line 1205 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; - delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 277: -#line 1210 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; - (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 278: -#line 1215 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - const char* shiftop = (yyvsp[-3].String)->c_str(); - if (*(yyvsp[-3].String) == "shr") - shiftop = ((yyvsp[-2].Value).type.isUnsigned()) ? "lshr" : "ashr"; - (yyval.String) = new std::string(shiftop); - *(yyval.String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - ;} - break; - - case 279: -#line 1223 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - std::string source = *(yyvsp[-2].Value).val; - TypeInfo SrcTy = (yyvsp[-2].Value).type; - TypeInfo DstTy = (yyvsp[0].Type); + *yyvsp[-4].String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-4].String; + ; + break;} +case 274: +#line 1200 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-6].String += " " + *yyvsp[-5].String + " " + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + ")"; + delete yyvsp[-5].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); + yyval.String = yyvsp[-6].String; + ; + break;} +case 275: +#line 1205 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-6].String += " " + *yyvsp[-5].String + " " + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + ")"; + delete yyvsp[-5].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); + yyval.String = yyvsp[-6].String; + ; + break;} +case 276: +#line 1210 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].Value.val; + yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-1].String; + ; + break;} +case 277: +#line 1215 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + const char* shiftop = yyvsp[-3].String->c_str(); + if (*yyvsp[-3].String == "shr") + shiftop = (yyvsp[-2].Value.type.isUnsigned()) ? "lshr" : "ashr"; + yyval.String = new std::string(shiftop); + *yyval.String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + delete yyvsp[-3].String; yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + ; + break;} +case 278: +#line 1223 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + std::string source = *yyvsp[-2].Value.val; + TypeInfo SrcTy = yyvsp[-2].Value.type; + TypeInfo DstTy = yyvsp[0].Type; ResolveType(DstTy); - (yyval.String) = new std::string(); - if (*(yyvsp[-3].String) == "cast") { - *(yyval.String) += getCastUpgrade(source, SrcTy, DstTy, false); + yyval.String = new std::string(); + if (*yyvsp[-3].String == "cast") { + *yyval.String += getCastUpgrade(source, SrcTy, DstTy, false); } else { - *(yyval.String) += *(yyvsp[-3].String) + " " + source + " to " + *DstTy.newTy; + *yyval.String += *yyvsp[-3].String + " " + source + " to " + *DstTy.newTy; } - delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy(); - delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); - ;} - break; - - case 280: -#line 1237 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 281: -#line 1242 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; - (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); - (yyval.String) = (yyvsp[-3].String); - ;} - break; - - case 282: -#line 1247 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-3].String); - ;} - break; - - case 283: -#line 1252 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 284: -#line 1257 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; - (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 285: -#line 1262 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].String); - delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 286: -#line 1267 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-5].String)->empty()) - *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); - if (!(yyvsp[-6].String)->empty()) - *(yyvsp[-6].String) += " "; - *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].Value).val + "("; - for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { - ValueInfo& VI = (*(yyvsp[-1].ValList))[i]; - *(yyvsp[-6].String) += *VI.val; - if (i+1 < (yyvsp[-1].ValList)->size()) - *(yyvsp[-6].String) += ", "; + delete yyvsp[-3].String; yyvsp[-2].Value.destroy(); + delete yyvsp[-1].String; yyvsp[0].Type.destroy(); + ; + break;} +case 279: +#line 1237 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 280: +#line 1242 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-3].String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Type.newTy; + yyvsp[-2].Value.destroy(); yyvsp[0].Type.destroy(); + yyval.String = yyvsp[-3].String; + ; + break;} +case 281: +#line 1247 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-3].String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-3].String; + ; + break;} +case 282: +#line 1252 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 283: +#line 1257 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; + yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 284: +#line 1262 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].String; + delete yyvsp[0].String; + yyval.String = yyvsp[-1].String; + ; + break;} +case 285: +#line 1267 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-5].String->empty()) + *yyvsp[-6].String += " " + *yyvsp[-5].String; + if (!yyvsp[-6].String->empty()) + *yyvsp[-6].String += " "; + *yyvsp[-6].String += *yyvsp[-4].Type.newTy + " " + *yyvsp[-3].Value.val + "("; + for (unsigned i = 0; i < yyvsp[-1].ValList->size(); ++i) { + ValueInfo& VI = (*yyvsp[-1].ValList)[i]; + *yyvsp[-6].String += *VI.val; + if (i+1 < yyvsp[-1].ValList->size()) + *yyvsp[-6].String += ", "; VI.destroy(); } - *(yyvsp[-6].String) += ")"; - delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-1].ValList); - (yyval.String) = (yyvsp[-6].String); - ;} - break; - - case 288: -#line 1289 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.ValList) = (yyvsp[0].ValList); ;} - break; - - case 289: -#line 1290 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.ValList) = new ValueList(); ;} - break; - - case 291: -#line 1295 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { (yyval.String) = new std::string(); ;} - break; - - case 292: -#line 1298 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; - if (!(yyvsp[0].String)->empty()) - *(yyvsp[-2].String) += " " + *(yyvsp[0].String); - (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 293: -#line 1305 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; - if (!(yyvsp[0].String)->empty()) - *(yyvsp[-5].String) += " " + *(yyvsp[0].String); - (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 294: -#line 1312 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; - if (!(yyvsp[0].String)->empty()) - *(yyvsp[-2].String) += " " + *(yyvsp[0].String); - (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-2].String); - ;} - break; - - case 295: -#line 1319 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; - if (!(yyvsp[0].String)->empty()) - *(yyvsp[-5].String) += " " + *(yyvsp[0].String); - (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 296: -#line 1326 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; - (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-1].String); - ;} - break; - - case 297: -#line 1331 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-3].String)->empty()) - *(yyvsp[-3].String) += " "; - *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; - delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-3].String); - ;} - break; - - case 298: -#line 1338 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { - if (!(yyvsp[-5].String)->empty()) - *(yyvsp[-5].String) += " "; - *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; - delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); - (yyval.String) = (yyvsp[-5].String); - ;} - break; - - case 299: -#line 1345 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" - { + *yyvsp[-6].String += ")"; + delete yyvsp[-5].String; yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); delete yyvsp[-1].ValList; + yyval.String = yyvsp[-6].String; + ; + break;} +case 287: +#line 1289 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.ValList = yyvsp[0].ValList; ; + break;} +case 288: +#line 1290 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.ValList = new ValueList(); ; + break;} +case 290: +#line 1295 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ yyval.String = new std::string(); ; + break;} +case 291: +#line 1298 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " " + *yyvsp[-1].Type.newTy; + if (!yyvsp[0].String->empty()) + *yyvsp[-2].String += " " + *yyvsp[0].String; + yyvsp[-1].Type.destroy(); delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 292: +#line 1305 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + ", " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; + if (!yyvsp[0].String->empty()) + *yyvsp[-5].String += " " + *yyvsp[0].String; + yyvsp[-4].Type.destroy(); yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].String; + yyval.String = yyvsp[-5].String; + ; + break;} +case 293: +#line 1312 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-2].String += " " + *yyvsp[-1].Type.newTy; + if (!yyvsp[0].String->empty()) + *yyvsp[-2].String += " " + *yyvsp[0].String; + yyvsp[-1].Type.destroy(); delete yyvsp[0].String; + yyval.String = yyvsp[-2].String; + ; + break;} +case 294: +#line 1319 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + ", " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; + if (!yyvsp[0].String->empty()) + *yyvsp[-5].String += " " + *yyvsp[0].String; + yyvsp[-4].Type.destroy(); yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].String; + yyval.String = yyvsp[-5].String; + ; + break;} +case 295: +#line 1326 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + *yyvsp[-1].String += " " + *yyvsp[0].Value.val; + yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-1].String; + ; + break;} +case 296: +#line 1331 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-3].String->empty()) + *yyvsp[-3].String += " "; + *yyvsp[-3].String += *yyvsp[-2].String + " " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; + delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-3].String; + ; + break;} +case 297: +#line 1338 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ + if (!yyvsp[-5].String->empty()) + *yyvsp[-5].String += " "; + *yyvsp[-5].String += *yyvsp[-4].String + " " + *yyvsp[-3].Value.val + ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; + delete yyvsp[-4].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); + yyval.String = yyvsp[-5].String; + ; + break;} +case 298: +#line 1345 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" +{ // Upgrade the indices - for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { - ValueInfo& VI = (*(yyvsp[0].ValList))[i]; + for (unsigned i = 0; i < yyvsp[0].ValList->size(); ++i) { + ValueInfo& VI = (*yyvsp[0].ValList)[i]; if (VI.type.isUnsigned() && !VI.isConstant() && VI.type.getBitWidth() < 64) { std::string* old = VI.val; @@ -3847,291 +3034,239 @@ delete old; } } - *(yyvsp[-3].String) += " " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; - for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { - ValueInfo& VI = (*(yyvsp[0].ValList))[i]; - *(yyvsp[-3].String) += ", " + *VI.val; + *yyvsp[-3].String += " " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; + for (unsigned i = 0; i < yyvsp[0].ValList->size(); ++i) { + ValueInfo& VI = (*yyvsp[0].ValList)[i]; + *yyvsp[-3].String += ", " + *VI.val; VI.destroy(); } - (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].ValList); - (yyval.String) = (yyvsp[-3].String); - ;} - break; - - - default: break; - } - -/* Line 1126 of yacc.c. */ -#line 3867 "UpgradeParser.tab.c" + yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].ValList; + yyval.String = yyvsp[-3].String; + ; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif - - YY_STACK_PRINT (yyss, yyssp); +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif *++yyvsp = yyval; +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTOKENS]; + yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; +yyerrlab: /* here on detecting error */ -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ { ++yynerrs; -#if YYERROR_VERBOSE + +#ifdef YYERROR_VERBOSE yyn = yypact[yystate]; - if (YYPACT_NINF < yyn && yyn < YYLAST) + if (yyn > YYFLAG && yyn < YYLAST) { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - char *yymsg = 0; -# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -#if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -#endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; - - if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg) + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yymsg; - int yyi = 0; - while ((*yyp = *yyf)) + strcpy(msg, "parse error"); + + if (count < 5) { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } } - yyerror (yymsg); - YYSTACK_FREE (yymsg); + yyerror(msg); + free(msg); } else - { - yyerror (YY_("syntax error")); - goto yyexhaustedlab; - } + yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ - yyerror (YY_("syntax error")); + yyerror("parse error"); } - + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* if just tried and failed to reuse lookahead token after an error, discard it. */ - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", yytoken, &yylval); - yychar = YYEMPTY; - } + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; } - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; + /* Else will try to reuse lookahead token + after shifting the error token. */ + yyerrstatus = 3; /* Each real token shifted decrements this */ -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (0) - goto yyerrorlab; + goto yyerrhandle; -yyvsp -= yylen; - yyssp -= yylen; - yystate = *yyssp; - goto yyerrlab1; +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif +yyerrpop: /* pop the current state because it cannot handle the error token */ -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif - for (;;) +#if YYDEBUG != 0 + if (yydebug) { - yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; - yydestruct ("Error: popping", yystos[yystate], yyvsp); - YYPOPSTACK; - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; } + else if (yyn == 0) + goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; - *++yyvsp = yylval; - +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif yystate = yyn; goto yynewstate; - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - while (yyssp != yyss) + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK; + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); #endif - return yyresult; + } + return 1; } - - -#line 1369 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" +#line 1369 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { @@ -4146,4 +3281,3 @@ std::cerr << errMsg << '\n'; exit(1); } - Index: llvm/tools/llvm-upgrade/UpgradeParser.h diff -u llvm/tools/llvm-upgrade/UpgradeParser.h:1.15 llvm/tools/llvm-upgrade/UpgradeParser.h:1.16 --- llvm/tools/llvm-upgrade/UpgradeParser.h:1.15 Wed Dec 6 00:25:46 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h Wed Dec 6 04:57:33 2006 @@ -1,354 +1,158 @@ -/* A Bison parser, made by GNU Bison 2.1. */ - -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - - 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. */ - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - VOID = 258, - BOOL = 259, - SBYTE = 260, - UBYTE = 261, - SHORT = 262, - USHORT = 263, - INT = 264, - UINT = 265, - LONG = 266, - ULONG = 267, - FLOAT = 268, - DOUBLE = 269, - LABEL = 270, - OPAQUE = 271, - ESINT64VAL = 272, - EUINT64VAL = 273, - SINTVAL = 274, - UINTVAL = 275, - FPVAL = 276, - NULL_TOK = 277, - UNDEF = 278, - ZEROINITIALIZER = 279, - TRUETOK = 280, - FALSETOK = 281, - TYPE = 282, - VAR_ID = 283, - LABELSTR = 284, - STRINGCONSTANT = 285, - IMPLEMENTATION = 286, - 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 - }; -#endif -/* Tokens. */ -#define VOID 258 -#define BOOL 259 -#define SBYTE 260 -#define UBYTE 261 -#define SHORT 262 -#define USHORT 263 -#define INT 264 -#define UINT 265 -#define LONG 266 -#define ULONG 267 -#define FLOAT 268 -#define DOUBLE 269 -#define LABEL 270 -#define OPAQUE 271 -#define ESINT64VAL 272 -#define EUINT64VAL 273 -#define SINTVAL 274 -#define UINTVAL 275 -#define FPVAL 276 -#define NULL_TOK 277 -#define UNDEF 278 -#define ZEROINITIALIZER 279 -#define TRUETOK 280 -#define FALSETOK 281 -#define TYPE 282 -#define VAR_ID 283 -#define LABELSTR 284 -#define STRINGCONSTANT 285 -#define IMPLEMENTATION 286 -#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 - - - - -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" -typedef union YYSTYPE { +typedef union { std::string* String; TypeInfo Type; ValueInfo Value; ConstInfo Const; ValueList* ValList; } YYSTYPE; -/* Line 1447 of yacc.c. */ -#line 346 "UpgradeParser.tab.h" -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - -extern YYSTYPE Upgradelval; - +#define VOID 257 +#define BOOL 258 +#define SBYTE 259 +#define UBYTE 260 +#define SHORT 261 +#define USHORT 262 +#define INT 263 +#define UINT 264 +#define LONG 265 +#define ULONG 266 +#define FLOAT 267 +#define DOUBLE 268 +#define LABEL 269 +#define OPAQUE 270 +#define ESINT64VAL 271 +#define EUINT64VAL 272 +#define SINTVAL 273 +#define UINTVAL 274 +#define FPVAL 275 +#define NULL_TOK 276 +#define UNDEF 277 +#define ZEROINITIALIZER 278 +#define TRUETOK 279 +#define FALSETOK 280 +#define TYPE 281 +#define VAR_ID 282 +#define LABELSTR 283 +#define STRINGCONSTANT 284 +#define IMPLEMENTATION 285 +#define BEGINTOK 286 +#define ENDTOK 287 +#define DECLARE 288 +#define GLOBAL 289 +#define CONSTANT 290 +#define SECTION 291 +#define VOLATILE 292 +#define TO 293 +#define DOTDOTDOT 294 +#define CONST 295 +#define INTERNAL 296 +#define LINKONCE 297 +#define WEAK 298 +#define DLLIMPORT 299 +#define DLLEXPORT 300 +#define EXTERN_WEAK 301 +#define APPENDING 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 UNINITIALIZED 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 EXCEPT 331 +#define UNWIND 332 +#define UNREACHABLE 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 SETLE 348 +#define SETGE 349 +#define SETLT 350 +#define SETGT 351 +#define SETEQ 352 +#define SETNE 353 +#define ICMP 354 +#define FCMP 355 +#define EQ 356 +#define NE 357 +#define SLT 358 +#define SGT 359 +#define SLE 360 +#define SGE 361 +#define OEQ 362 +#define ONE 363 +#define OLT 364 +#define OGT 365 +#define OLE 366 +#define OGE 367 +#define ORD 368 +#define UNO 369 +#define UEQ 370 +#define UNE 371 +#define ULT 372 +#define UGT 373 +#define ULE 374 +#define UGE 375 +#define MALLOC 376 +#define ALLOCA 377 +#define FREE 378 +#define LOAD 379 +#define STORE 380 +#define GETELEMENTPTR 381 +#define PHI_TOK 382 +#define SELECT 383 +#define SHL 384 +#define SHR 385 +#define ASHR 386 +#define LSHR 387 +#define VAARG 388 +#define EXTRACTELEMENT 389 +#define INSERTELEMENT 390 +#define SHUFFLEVECTOR 391 +#define CAST 392 +#define TRUNC 393 +#define ZEXT 394 +#define SEXT 395 +#define FPTRUNC 396 +#define FPEXT 397 +#define FPTOUI 398 +#define FPTOSI 399 +#define UITOFP 400 +#define SITOFP 401 +#define PTRTOINT 402 +#define INTTOPTR 403 +#define BITCAST 404 +extern YYSTYPE Upgradelval; Index: llvm/tools/llvm-upgrade/UpgradeParser.y diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.20 llvm/tools/llvm-upgrade/UpgradeParser.y:1.21 --- llvm/tools/llvm-upgrade/UpgradeParser.y:1.20 Wed Dec 6 00:29:36 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y Wed Dec 6 04:57:33 2006 @@ -265,7 +265,7 @@ %} -%file-prefix="UpgradeParser" +// %file-prefix="UpgradeParser" %union { std::string* String; @@ -382,7 +382,7 @@ OptAlign : /*empty*/ { $$ = new std::string(); } | ALIGN EUINT64VAL { *$1 += " " + *$2; delete $2; $$ = $1; }; - ; + OptCAlign : /*empty*/ { $$ = new std::string(); } | ',' ALIGN EUINT64VAL { From jlaskey at apple.com Wed Dec 6 05:03:25 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 05:03:25 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.h UpgradeParser.cpp Message-ID: <200612061103.kB6B3PmD007692@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: UpgradeParser.h updated: 1.16 -> 1.17 UpgradeParser.cpp updated: 1.22 -> 1.23 --- Log message: No need to update generated files. --- Diffs of the changes: (+3925 -2863) UpgradeParser.cpp | 6257 ++++++++++++++++++++++++++++++------------------------ UpgradeParser.h | 496 ++-- 2 files changed, 3925 insertions(+), 2828 deletions(-) Index: llvm/tools/llvm-upgrade/UpgradeParser.h diff -u llvm/tools/llvm-upgrade/UpgradeParser.h:1.16 llvm/tools/llvm-upgrade/UpgradeParser.h:1.17 --- llvm/tools/llvm-upgrade/UpgradeParser.h:1.16 Wed Dec 6 04:57:33 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.h Wed Dec 6 05:03:10 2006 @@ -1,158 +1,354 @@ -typedef union { +/* A Bison parser, made by GNU Bison 2.1. */ + +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + + 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. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + VOID = 258, + BOOL = 259, + SBYTE = 260, + UBYTE = 261, + SHORT = 262, + USHORT = 263, + INT = 264, + UINT = 265, + LONG = 266, + ULONG = 267, + FLOAT = 268, + DOUBLE = 269, + LABEL = 270, + OPAQUE = 271, + ESINT64VAL = 272, + EUINT64VAL = 273, + SINTVAL = 274, + UINTVAL = 275, + FPVAL = 276, + NULL_TOK = 277, + UNDEF = 278, + ZEROINITIALIZER = 279, + TRUETOK = 280, + FALSETOK = 281, + TYPE = 282, + VAR_ID = 283, + LABELSTR = 284, + STRINGCONSTANT = 285, + IMPLEMENTATION = 286, + 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 + }; +#endif +/* Tokens. */ +#define VOID 258 +#define BOOL 259 +#define SBYTE 260 +#define UBYTE 261 +#define SHORT 262 +#define USHORT 263 +#define INT 264 +#define UINT 265 +#define LONG 266 +#define ULONG 267 +#define FLOAT 268 +#define DOUBLE 269 +#define LABEL 270 +#define OPAQUE 271 +#define ESINT64VAL 272 +#define EUINT64VAL 273 +#define SINTVAL 274 +#define UINTVAL 275 +#define FPVAL 276 +#define NULL_TOK 277 +#define UNDEF 278 +#define ZEROINITIALIZER 279 +#define TRUETOK 280 +#define FALSETOK 281 +#define TYPE 282 +#define VAR_ID 283 +#define LABELSTR 284 +#define STRINGCONSTANT 285 +#define IMPLEMENTATION 286 +#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 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" +typedef union YYSTYPE { std::string* String; TypeInfo Type; ValueInfo Value; ConstInfo Const; ValueList* ValList; } YYSTYPE; -#define VOID 257 -#define BOOL 258 -#define SBYTE 259 -#define UBYTE 260 -#define SHORT 261 -#define USHORT 262 -#define INT 263 -#define UINT 264 -#define LONG 265 -#define ULONG 266 -#define FLOAT 267 -#define DOUBLE 268 -#define LABEL 269 -#define OPAQUE 270 -#define ESINT64VAL 271 -#define EUINT64VAL 272 -#define SINTVAL 273 -#define UINTVAL 274 -#define FPVAL 275 -#define NULL_TOK 276 -#define UNDEF 277 -#define ZEROINITIALIZER 278 -#define TRUETOK 279 -#define FALSETOK 280 -#define TYPE 281 -#define VAR_ID 282 -#define LABELSTR 283 -#define STRINGCONSTANT 284 -#define IMPLEMENTATION 285 -#define BEGINTOK 286 -#define ENDTOK 287 -#define DECLARE 288 -#define GLOBAL 289 -#define CONSTANT 290 -#define SECTION 291 -#define VOLATILE 292 -#define TO 293 -#define DOTDOTDOT 294 -#define CONST 295 -#define INTERNAL 296 -#define LINKONCE 297 -#define WEAK 298 -#define DLLIMPORT 299 -#define DLLEXPORT 300 -#define EXTERN_WEAK 301 -#define APPENDING 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 UNINITIALIZED 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 EXCEPT 331 -#define UNWIND 332 -#define UNREACHABLE 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 SETLE 348 -#define SETGE 349 -#define SETLT 350 -#define SETGT 351 -#define SETEQ 352 -#define SETNE 353 -#define ICMP 354 -#define FCMP 355 -#define EQ 356 -#define NE 357 -#define SLT 358 -#define SGT 359 -#define SLE 360 -#define SGE 361 -#define OEQ 362 -#define ONE 363 -#define OLT 364 -#define OGT 365 -#define OLE 366 -#define OGE 367 -#define ORD 368 -#define UNO 369 -#define UEQ 370 -#define UNE 371 -#define ULT 372 -#define UGT 373 -#define ULE 374 -#define UGE 375 -#define MALLOC 376 -#define ALLOCA 377 -#define FREE 378 -#define LOAD 379 -#define STORE 380 -#define GETELEMENTPTR 381 -#define PHI_TOK 382 -#define SELECT 383 -#define SHL 384 -#define SHR 385 -#define ASHR 386 -#define LSHR 387 -#define VAARG 388 -#define EXTRACTELEMENT 389 -#define INSERTELEMENT 390 -#define SHUFFLEVECTOR 391 -#define CAST 392 -#define TRUNC 393 -#define ZEXT 394 -#define SEXT 395 -#define FPTRUNC 396 -#define FPEXT 397 -#define FPTOUI 398 -#define FPTOSI 399 -#define UITOFP 400 -#define SITOFP 401 -#define PTRTOINT 402 -#define INTTOPTR 403 -#define BITCAST 404 - +/* Line 1447 of yacc.c. */ +#line 346 "UpgradeParser.tab.h" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif extern YYSTYPE Upgradelval; + + + Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.22 llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.23 --- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.22 Wed Dec 6 04:57:33 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.cpp Wed Dec 6 05:03:10 2006 @@ -1,166 +1,374 @@ +/* A Bison parser, made by GNU Bison 2.1. */ -/* A Bison parser, made from /Volumes/Big2/llvm/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 VOID 257 -#define BOOL 258 -#define SBYTE 259 -#define UBYTE 260 -#define SHORT 261 -#define USHORT 262 -#define INT 263 -#define UINT 264 -#define LONG 265 -#define ULONG 266 -#define FLOAT 267 -#define DOUBLE 268 -#define LABEL 269 -#define OPAQUE 270 -#define ESINT64VAL 271 -#define EUINT64VAL 272 -#define SINTVAL 273 -#define UINTVAL 274 -#define FPVAL 275 -#define NULL_TOK 276 -#define UNDEF 277 -#define ZEROINITIALIZER 278 -#define TRUETOK 279 -#define FALSETOK 280 -#define TYPE 281 -#define VAR_ID 282 -#define LABELSTR 283 -#define STRINGCONSTANT 284 -#define IMPLEMENTATION 285 -#define BEGINTOK 286 -#define ENDTOK 287 -#define DECLARE 288 -#define GLOBAL 289 -#define CONSTANT 290 -#define SECTION 291 -#define VOLATILE 292 -#define TO 293 -#define DOTDOTDOT 294 -#define CONST 295 -#define INTERNAL 296 -#define LINKONCE 297 -#define WEAK 298 -#define DLLIMPORT 299 -#define DLLEXPORT 300 -#define EXTERN_WEAK 301 -#define APPENDING 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 UNINITIALIZED 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 EXCEPT 331 -#define UNWIND 332 -#define UNREACHABLE 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 SETLE 348 -#define SETGE 349 -#define SETLT 350 -#define SETGT 351 -#define SETEQ 352 -#define SETNE 353 -#define ICMP 354 -#define FCMP 355 -#define EQ 356 -#define NE 357 -#define SLT 358 -#define SGT 359 -#define SLE 360 -#define SGE 361 -#define OEQ 362 -#define ONE 363 -#define OLT 364 -#define OGT 365 -#define OLE 366 -#define OGE 367 -#define ORD 368 -#define UNO 369 -#define UEQ 370 -#define UNE 371 -#define ULT 372 -#define UGT 373 -#define ULE 374 -#define UGE 375 -#define MALLOC 376 -#define ALLOCA 377 -#define FREE 378 -#define LOAD 379 -#define STORE 380 -#define GETELEMENTPTR 381 -#define PHI_TOK 382 -#define SELECT 383 -#define SHL 384 -#define SHR 385 -#define ASHR 386 -#define LSHR 387 -#define VAARG 388 -#define EXTRACTELEMENT 389 -#define INSERTELEMENT 390 -#define SHUFFLEVECTOR 391 -#define CAST 392 -#define TRUNC 393 -#define ZEXT 394 -#define SEXT 395 -#define FPTRUNC 396 -#define FPEXT 397 -#define FPTOUI 398 -#define FPTOSI 399 -#define UITOFP 400 -#define SITOFP 401 -#define PTRTOINT 402 -#define INTTOPTR 403 -#define BITCAST 404 -#line 14 "/Volumes/Big2/llvm/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 { + VOID = 258, + BOOL = 259, + SBYTE = 260, + UBYTE = 261, + SHORT = 262, + USHORT = 263, + INT = 264, + UINT = 265, + LONG = 266, + ULONG = 267, + FLOAT = 268, + DOUBLE = 269, + LABEL = 270, + OPAQUE = 271, + ESINT64VAL = 272, + EUINT64VAL = 273, + SINTVAL = 274, + UINTVAL = 275, + FPVAL = 276, + NULL_TOK = 277, + UNDEF = 278, + ZEROINITIALIZER = 279, + TRUETOK = 280, + FALSETOK = 281, + TYPE = 282, + VAR_ID = 283, + LABELSTR = 284, + STRINGCONSTANT = 285, + IMPLEMENTATION = 286, + 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 + }; +#endif +/* Tokens. */ +#define VOID 258 +#define BOOL 259 +#define SBYTE 260 +#define UBYTE 261 +#define SHORT 262 +#define USHORT 263 +#define INT 264 +#define UINT 265 +#define LONG 266 +#define ULONG 267 +#define FLOAT 268 +#define DOUBLE 269 +#define LABEL 270 +#define OPAQUE 271 +#define ESINT64VAL 272 +#define EUINT64VAL 273 +#define SINTVAL 274 +#define UINTVAL 275 +#define FPVAL 276 +#define NULL_TOK 277 +#define UNDEF 278 +#define ZEROINITIALIZER 279 +#define TRUETOK 280 +#define FALSETOK 281 +#define TYPE 282 +#define VAR_ID 283 +#define LABELSTR 284 +#define STRINGCONSTANT 285 +#define IMPLEMENTATION 286 +#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 + + + + +/* Copy the first part of user declarations. */ +#line 14 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" #include "ParserInternals.h" #include @@ -414,1079 +622,1577 @@ } -#line 270 "/Volumes/Big2/llvm/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 270 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" +typedef union YYSTYPE { std::string* String; TypeInfo Type; ValueInfo Value; ConstInfo Const; ValueList* ValList; } YYSTYPE; -#include +/* Line 196 of yacc.c. */ +#line 655 "UpgradeParser.tab.c" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 219 of yacc.c. */ +#line 667 "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 /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYINCLUDED_STDLIB_H +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) +# endif +# ifdef __cplusplus +extern "C" { +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifdef __cplusplus +} +# endif +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif #endif +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif - -#define YYFINAL 582 -#define YYFLAG -32768 -#define YYNTBASE 165 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 404 ? yytranslate[x] : 239) - -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, 154, - 155, 163, 2, 152, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 159, - 151, 160, 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, - 156, 153, 158, 2, 2, 2, 2, 2, 164, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 157, - 2, 2, 161, 2, 162, 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 +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 4 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 1483 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 165 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 75 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 299 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 582 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 405 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char 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, + 154, 155, 163, 2, 152, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 159, 151, 160, 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, 156, 153, 158, 2, 2, 2, 2, 2, 164, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 157, 2, 2, 161, 2, 162, 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, 2, 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 }; -#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, - 179, 181, 183, 185, 187, 189, 192, 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, 288, 290, 294, 296, 300, - 302, 303, 308, 312, 316, 321, 326, 330, 333, 336, - 339, 342, 345, 348, 351, 354, 357, 360, 367, 373, - 382, 389, 396, 403, 411, 419, 426, 433, 442, 451, - 455, 457, 459, 461, 463, 466, 469, 474, 477, 479, - 481, 483, 488, 491, 496, 503, 510, 517, 524, 528, - 533, 534, 536, 538, 540, 544, 548, 552, 556, 560, - 564, 566, 567, 569, 571, 573, 574, 577, 581, 583, - 585, 589, 591, 592, 601, 603, 605, 609, 611, 613, - 617, 618, 620, 622, 626, 627, 629, 631, 633, 635, - 637, 639, 641, 643, 645, 649, 651, 657, 659, 661, - 663, 665, 668, 671, 673, 676, 679, 680, 682, 684, - 686, 689, 692, 696, 706, 716, 725, 740, 742, 744, - 751, 757, 760, 767, 775, 777, 781, 783, 784, 787, - 789, 795, 801, 807, 815, 823, 826, 831, 836, 843, - 848, 853, 860, 867, 870, 878, 880, 883, 884, 886, - 887, 891, 898, 902, 909, 912, 917, 924 +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned short int yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, + 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, + 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, + 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, + 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, + 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, + 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, + 159, 161, 164, 165, 167, 169, 171, 173, 175, 177, + 179, 180, 182, 184, 186, 188, 190, 192, 195, 196, + 197, 200, 201, 205, 208, 209, 211, 212, 216, 218, + 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, + 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, + 261, 264, 269, 275, 281, 285, 288, 291, 293, 297, + 299, 303, 305, 306, 311, 315, 319, 324, 329, 333, + 336, 339, 342, 345, 348, 351, 354, 357, 360, 363, + 370, 376, 385, 392, 399, 406, 414, 422, 429, 436, + 445, 454, 458, 460, 462, 464, 466, 469, 472, 477, + 480, 482, 484, 486, 491, 494, 499, 506, 513, 520, + 527, 531, 536, 537, 539, 541, 543, 547, 551, 555, + 559, 563, 567, 569, 570, 572, 574, 576, 577, 580, + 584, 586, 588, 592, 594, 595, 604, 606, 608, 612, + 614, 616, 620, 621, 623, 625, 629, 630, 632, 634, + 636, 638, 640, 642, 644, 646, 648, 652, 654, 660, + 662, 664, 666, 668, 671, 674, 676, 679, 682, 683, + 685, 687, 689, 692, 695, 699, 709, 719, 728, 743, + 745, 747, 754, 760, 763, 770, 778, 780, 784, 786, + 787, 790, 792, 798, 804, 810, 818, 826, 829, 834, + 839, 846, 851, 856, 863, 870, 873, 881, 883, 886, + 887, 889, 890, 894, 901, 905, 912, 915, 920, 927 }; -static const short yyrhs[] = { 19, - 0, 20, 0, 17, 0, 18, 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, 93, 0, 94, 0, 95, 0, 96, - 0, 97, 0, 98, 0, 99, 0, 102, 0, 103, - 0, 104, 0, 105, 0, 106, 0, 107, 0, 118, - 0, 119, 0, 120, 0, 121, 0, 108, 0, 109, - 0, 110, 0, 111, 0, 112, 0, 113, 0, 114, - 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, - 0, 120, 0, 121, 0, 25, 0, 26, 0, 130, - 0, 131, 0, 132, 0, 133, 0, 139, 0, 140, - 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, - 0, 146, 0, 147, 0, 148, 0, 149, 0, 150, - 0, 138, 0, 11, 0, 9, 0, 7, 0, 5, - 0, 12, 0, 10, 0, 8, 0, 6, 0, 174, - 0, 175, 0, 13, 0, 14, 0, 207, 151, 0, - 0, 42, 0, 43, 0, 44, 0, 48, 0, 45, - 0, 46, 0, 47, 0, 0, 66, 0, 67, 0, - 68, 0, 69, 0, 70, 0, 71, 0, 65, 18, - 0, 0, 0, 57, 18, 0, 0, 152, 57, 18, - 0, 37, 30, 0, 0, 183, 0, 0, 152, 186, - 185, 0, 183, 0, 57, 18, 0, 189, 0, 3, - 0, 191, 0, 3, 0, 191, 0, 4, 0, 5, - 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, - 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, - 0, 16, 0, 221, 0, 190, 0, 153, 18, 0, - 188, 154, 193, 155, 0, 156, 18, 157, 191, 158, - 0, 159, 18, 157, 191, 160, 0, 161, 192, 162, - 0, 161, 162, 0, 191, 163, 0, 191, 0, 192, - 152, 191, 0, 192, 0, 192, 152, 40, 0, 40, - 0, 0, 189, 156, 196, 158, 0, 189, 156, 158, - 0, 189, 164, 30, 0, 189, 159, 196, 160, 0, - 189, 161, 196, 162, 0, 189, 161, 162, 0, 189, - 22, 0, 189, 23, 0, 189, 221, 0, 189, 195, - 0, 189, 24, 0, 174, 166, 0, 175, 18, 0, - 4, 25, 0, 4, 26, 0, 177, 21, 0, 173, - 154, 194, 39, 189, 155, 0, 127, 154, 194, 236, - 155, 0, 129, 154, 194, 152, 194, 152, 194, 155, - 0, 167, 154, 194, 152, 194, 155, 0, 168, 154, - 194, 152, 194, 155, 0, 169, 154, 194, 152, 194, - 155, 0, 100, 170, 154, 194, 152, 194, 155, 0, - 101, 171, 154, 194, 152, 194, 155, 0, 172, 154, - 194, 152, 194, 155, 0, 135, 154, 194, 152, 194, - 155, 0, 136, 154, 194, 152, 194, 152, 194, 155, - 0, 137, 154, 194, 152, 194, 152, 194, 155, 0, - 196, 152, 194, 0, 194, 0, 35, 0, 36, 0, - 199, 0, 199, 216, 0, 199, 218, 0, 199, 63, - 62, 202, 0, 199, 31, 0, 201, 0, 50, 0, - 58, 0, 201, 178, 27, 187, 0, 201, 218, 0, - 201, 63, 62, 202, 0, 201, 178, 179, 197, 194, - 185, 0, 201, 178, 200, 197, 189, 185, 0, 201, - 178, 45, 197, 189, 185, 0, 201, 178, 47, 197, - 189, 185, 0, 201, 51, 204, 0, 201, 59, 151, - 205, 0, 0, 30, 0, 56, 0, 55, 0, 53, - 151, 203, 0, 54, 151, 18, 0, 52, 151, 30, - 0, 72, 151, 30, 0, 156, 206, 158, 0, 206, - 152, 30, 0, 30, 0, 0, 28, 0, 30, 0, - 207, 0, 0, 189, 208, 0, 210, 152, 209, 0, - 209, 0, 210, 0, 210, 152, 40, 0, 40, 0, - 0, 180, 187, 207, 154, 211, 155, 184, 181, 0, - 32, 0, 161, 0, 179, 212, 213, 0, 33, 0, - 162, 0, 214, 224, 215, 0, 0, 45, 0, 47, - 0, 34, 217, 212, 0, 0, 64, 0, 17, 0, - 18, 0, 21, 0, 25, 0, 26, 0, 22, 0, - 23, 0, 24, 0, 159, 196, 160, 0, 195, 0, - 62, 219, 30, 152, 30, 0, 165, 0, 207, 0, - 221, 0, 220, 0, 189, 222, 0, 224, 225, 0, - 225, 0, 226, 228, 0, 226, 230, 0, 0, 29, - 0, 78, 0, 77, 0, 73, 223, 0, 73, 3, - 0, 74, 15, 222, 0, 74, 4, 222, 152, 15, - 222, 152, 15, 222, 0, 75, 176, 222, 152, 15, - 222, 156, 229, 158, 0, 75, 176, 222, 152, 15, - 222, 156, 158, 0, 178, 76, 180, 187, 222, 154, - 233, 155, 39, 15, 222, 227, 15, 222, 0, 227, - 0, 79, 0, 229, 176, 220, 152, 15, 222, 0, - 176, 220, 152, 15, 222, 0, 178, 235, 0, 189, - 156, 222, 152, 222, 158, 0, 231, 152, 156, 222, - 152, 222, 158, 0, 223, 0, 232, 152, 223, 0, - 232, 0, 0, 61, 60, 0, 60, 0, 167, 189, - 222, 152, 222, 0, 168, 189, 222, 152, 222, 0, - 169, 189, 222, 152, 222, 0, 100, 170, 189, 222, - 152, 222, 155, 0, 101, 171, 189, 222, 152, 222, - 155, 0, 49, 223, 0, 172, 223, 152, 223, 0, - 173, 223, 39, 189, 0, 129, 223, 152, 223, 152, - 223, 0, 134, 223, 152, 189, 0, 135, 223, 152, - 223, 0, 136, 223, 152, 223, 152, 223, 0, 137, - 223, 152, 223, 152, 223, 0, 128, 231, 0, 234, - 180, 187, 222, 154, 233, 155, 0, 238, 0, 152, - 232, 0, 0, 38, 0, 0, 122, 189, 182, 0, - 122, 189, 152, 10, 222, 182, 0, 123, 189, 182, - 0, 123, 189, 152, 10, 222, 182, 0, 124, 223, - 0, 237, 125, 189, 222, 0, 237, 126, 223, 152, - 189, 222, 0, 127, 189, 222, 236, 0 +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short int yyrhs[] = +{ + 199, 0, -1, 19, -1, 20, -1, 17, -1, 18, + -1, 80, -1, 81, -1, 82, -1, 83, -1, 84, + -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, + -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, + -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, + -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, + -1, 107, -1, 118, -1, 119, -1, 120, -1, 121, + -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, + -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, + -1, 118, -1, 119, -1, 120, -1, 121, -1, 25, + -1, 26, -1, 130, -1, 131, -1, 132, -1, 133, + -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, + -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, + -1, 149, -1, 150, -1, 138, -1, 11, -1, 9, + -1, 7, -1, 5, -1, 12, -1, 10, -1, 8, + -1, 6, -1, 175, -1, 176, -1, 13, -1, 14, + -1, 208, 151, -1, -1, 42, -1, 43, -1, 44, + -1, 48, -1, 45, -1, 46, -1, 47, -1, -1, + 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, + 71, -1, 65, 18, -1, -1, -1, 57, 18, -1, + -1, 152, 57, 18, -1, 37, 30, -1, -1, 184, + -1, -1, 152, 187, 186, -1, 184, -1, 57, 18, + -1, 190, -1, 3, -1, 192, -1, 3, -1, 192, + -1, 4, -1, 5, -1, 6, -1, 7, -1, 8, + -1, 9, -1, 10, -1, 11, -1, 12, -1, 13, + -1, 14, -1, 15, -1, 16, -1, 222, -1, 191, + -1, 153, 18, -1, 189, 154, 194, 155, -1, 156, + 18, 157, 192, 158, -1, 159, 18, 157, 192, 160, + -1, 161, 193, 162, -1, 161, 162, -1, 192, 163, + -1, 192, -1, 193, 152, 192, -1, 193, -1, 193, + 152, 40, -1, 40, -1, -1, 190, 156, 197, 158, + -1, 190, 156, 158, -1, 190, 164, 30, -1, 190, + 159, 197, 160, -1, 190, 161, 197, 162, -1, 190, + 161, 162, -1, 190, 22, -1, 190, 23, -1, 190, + 222, -1, 190, 196, -1, 190, 24, -1, 175, 167, + -1, 176, 18, -1, 4, 25, -1, 4, 26, -1, + 178, 21, -1, 174, 154, 195, 39, 190, 155, -1, + 127, 154, 195, 237, 155, -1, 129, 154, 195, 152, + 195, 152, 195, 155, -1, 168, 154, 195, 152, 195, + 155, -1, 169, 154, 195, 152, 195, 155, -1, 170, + 154, 195, 152, 195, 155, -1, 100, 171, 154, 195, + 152, 195, 155, -1, 101, 172, 154, 195, 152, 195, + 155, -1, 173, 154, 195, 152, 195, 155, -1, 135, + 154, 195, 152, 195, 155, -1, 136, 154, 195, 152, + 195, 152, 195, 155, -1, 137, 154, 195, 152, 195, + 152, 195, 155, -1, 197, 152, 195, -1, 195, -1, + 35, -1, 36, -1, 200, -1, 200, 217, -1, 200, + 219, -1, 200, 63, 62, 203, -1, 200, 31, -1, + 202, -1, 50, -1, 58, -1, 202, 179, 27, 188, + -1, 202, 219, -1, 202, 63, 62, 203, -1, 202, + 179, 180, 198, 195, 186, -1, 202, 179, 201, 198, + 190, 186, -1, 202, 179, 45, 198, 190, 186, -1, + 202, 179, 47, 198, 190, 186, -1, 202, 51, 205, + -1, 202, 59, 151, 206, -1, -1, 30, -1, 56, + -1, 55, -1, 53, 151, 204, -1, 54, 151, 18, + -1, 52, 151, 30, -1, 72, 151, 30, -1, 156, + 207, 158, -1, 207, 152, 30, -1, 30, -1, -1, + 28, -1, 30, -1, 208, -1, -1, 190, 209, -1, + 211, 152, 210, -1, 210, -1, 211, -1, 211, 152, + 40, -1, 40, -1, -1, 181, 188, 208, 154, 212, + 155, 185, 182, -1, 32, -1, 161, -1, 180, 213, + 214, -1, 33, -1, 162, -1, 215, 225, 216, -1, + -1, 45, -1, 47, -1, 34, 218, 213, -1, -1, + 64, -1, 17, -1, 18, -1, 21, -1, 25, -1, + 26, -1, 22, -1, 23, -1, 24, -1, 159, 197, + 160, -1, 196, -1, 62, 220, 30, 152, 30, -1, + 166, -1, 208, -1, 222, -1, 221, -1, 190, 223, + -1, 225, 226, -1, 226, -1, 227, 229, -1, 227, + 231, -1, -1, 29, -1, 78, -1, 77, -1, 73, + 224, -1, 73, 3, -1, 74, 15, 223, -1, 74, + 4, 223, 152, 15, 223, 152, 15, 223, -1, 75, + 177, 223, 152, 15, 223, 156, 230, 158, -1, 75, + 177, 223, 152, 15, 223, 156, 158, -1, 179, 76, + 181, 188, 223, 154, 234, 155, 39, 15, 223, 228, + 15, 223, -1, 228, -1, 79, -1, 230, 177, 221, + 152, 15, 223, -1, 177, 221, 152, 15, 223, -1, + 179, 236, -1, 190, 156, 223, 152, 223, 158, -1, + 232, 152, 156, 223, 152, 223, 158, -1, 224, -1, + 233, 152, 224, -1, 233, -1, -1, 61, 60, -1, + 60, -1, 168, 190, 223, 152, 223, -1, 169, 190, + 223, 152, 223, -1, 170, 190, 223, 152, 223, -1, + 100, 171, 190, 223, 152, 223, 155, -1, 101, 172, + 190, 223, 152, 223, 155, -1, 49, 224, -1, 173, + 224, 152, 224, -1, 174, 224, 39, 190, -1, 129, + 224, 152, 224, 152, 224, -1, 134, 224, 152, 190, + -1, 135, 224, 152, 224, -1, 136, 224, 152, 224, + 152, 224, -1, 137, 224, 152, 224, 152, 224, -1, + 128, 232, -1, 235, 181, 188, 223, 154, 234, 155, + -1, 239, -1, 152, 233, -1, -1, 38, -1, -1, + 122, 190, 183, -1, 122, 190, 152, 10, 223, 183, + -1, 123, 190, 183, -1, 123, 190, 152, 10, 223, + 183, -1, 124, 224, -1, 238, 125, 190, 223, -1, + 238, 126, 224, 152, 190, 223, -1, 127, 190, 223, + 237, -1 }; -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 333, 333, 334, 334, 338, 338, 338, 338, 338, 338, - 338, 339, 339, 339, 339, 340, 340, 340, 341, 341, - 341, 341, 341, 341, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 342, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 344, 344, 344, 344, 344, 344, - 345, 345, 345, 345, 346, 346, 346, 346, 346, 346, - 346, 346, 347, 347, 347, 347, 347, 352, 352, 352, - 352, 353, 353, 353, 353, 354, 354, 355, 355, 358, - 361, 366, 366, 366, 366, 366, 366, 367, 368, 371, - 371, 371, 371, 371, 372, 373, 378, 383, 384, 387, - 388, 396, 402, 403, 406, 407, 416, 417, 430, 430, - 431, 431, 432, 436, 436, 436, 436, 436, 436, 436, - 437, 437, 437, 437, 437, 439, 443, 447, 450, 455, - 461, 469, 477, 483, 487, 498, 501, 509, 510, 515, - 518, 528, 534, 539, 545, 551, 557, 562, 568, 574, - 580, 586, 592, 598, 604, 610, 616, 624, 638, 650, - 655, 661, 666, 674, 679, 684, 692, 697, 702, 712, - 717, 722, 722, 732, 737, 740, 745, 749, 753, 755, - 755, 758, 770, 775, 780, 789, 798, 807, 816, 821, - 826, 831, 833, 833, 836, 841, 848, 853, 860, 867, - 872, 873, 881, 881, 882, 882, 884, 891, 895, 899, - 902, 907, 910, 912, 932, 933, 935, 944, 945, 947, - 955, 956, 957, 961, 974, 975, 978, 978, 978, 978, - 978, 978, 978, 979, 980, 985, 986, 995, 995, 999, - 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, 1051, 1051, - 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, 1114, 1120, - 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, 1173, 1178, - 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, 1237, 1242, - 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, 1294, 1295, - 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short int yyrline[] = +{ + 0, 333, 333, 333, 334, 334, 338, 338, 338, 338, + 338, 338, 338, 339, 339, 339, 339, 340, 340, 340, + 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, + 342, 342, 342, 342, 342, 342, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 344, 344, 344, 344, + 344, 344, 345, 345, 345, 345, 346, 346, 346, 346, + 346, 346, 346, 347, 347, 347, 347, 347, 347, 352, + 352, 352, 352, 353, 353, 353, 353, 354, 354, 355, + 355, 358, 361, 366, 366, 366, 366, 366, 366, 367, + 368, 371, 371, 371, 371, 371, 372, 373, 378, 383, + 384, 387, 388, 396, 402, 403, 406, 407, 416, 417, + 430, 430, 431, 431, 432, 436, 436, 436, 436, 436, + 436, 436, 437, 437, 437, 437, 437, 439, 443, 447, + 450, 455, 461, 469, 477, 483, 487, 498, 501, 509, + 510, 515, 518, 528, 534, 539, 545, 551, 557, 562, + 568, 574, 580, 586, 592, 598, 604, 610, 616, 624, + 638, 650, 655, 661, 666, 674, 679, 684, 692, 697, + 702, 712, 717, 722, 722, 732, 737, 740, 745, 749, + 753, 755, 755, 758, 770, 775, 780, 789, 798, 807, + 816, 821, 826, 831, 833, 833, 836, 841, 848, 853, + 860, 867, 872, 873, 881, 881, 882, 882, 884, 891, + 895, 899, 902, 907, 910, 912, 932, 933, 935, 944, + 945, 947, 955, 956, 957, 961, 974, 975, 978, 978, + 978, 978, 978, 978, 978, 979, 980, 985, 986, 995, + 995, 999, 1005, 1016, 1022, 1025, 1033, 1037, 1042, 1045, + 1051, 1051, 1053, 1058, 1063, 1068, 1076, 1083, 1089, 1109, + 1114, 1120, 1125, 1133, 1142, 1149, 1157, 1161, 1168, 1169, + 1173, 1178, 1181, 1187, 1192, 1200, 1205, 1210, 1215, 1223, + 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1284, 1289, 1290, + 1294, 1295, 1298, 1305, 1312, 1319, 1326, 1331, 1338, 1345 }; #endif - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","VOID","BOOL", -"SBYTE","UBYTE","SHORT","USHORT","INT","UINT","LONG","ULONG","FLOAT","DOUBLE", -"LABEL","OPAQUE","ESINT64VAL","EUINT64VAL","SINTVAL","UINTVAL","FPVAL","NULL_TOK", -"UNDEF","ZEROINITIALIZER","TRUETOK","FALSETOK","TYPE","VAR_ID","LABELSTR","STRINGCONSTANT", -"IMPLEMENTATION","BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","SECTION", -"VOLATILE","TO","DOTDOTDOT","CONST","INTERNAL","LINKONCE","WEAK","DLLIMPORT", -"DLLEXPORT","EXTERN_WEAK","APPENDING","NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN", -"POINTERSIZE","LITTLE","BIG","ALIGN","UNINITIALIZED","DEPLIBS","CALL","TAIL", -"ASM_TOK","MODULE","SIDEEFFECT","CC_TOK","CCC_TOK","CSRETCC_TOK","FASTCC_TOK", -"COLDCC_TOK","X86_STDCALLCC_TOK","X86_FASTCALLCC_TOK","DATALAYOUT","RET","BR", -"SWITCH","INVOKE","EXCEPT","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV","UDIV", -"SDIV","FDIV","REM","UREM","SREM","FREM","AND","OR","XOR","SETLE","SETGE","SETLT", -"SETGT","SETEQ","SETNE","ICMP","FCMP","EQ","NE","SLT","SGT","SLE","SGE","OEQ", -"ONE","OLT","OGT","OLE","OGE","ORD","UNO","UEQ","UNE","ULT","UGT","ULE","UGE", -"MALLOC","ALLOCA","FREE","LOAD","STORE","GETELEMENTPTR","PHI_TOK","SELECT","SHL", -"SHR","ASHR","LSHR","VAARG","EXTRACTELEMENT","INSERTELEMENT","SHUFFLEVECTOR", -"CAST","TRUNC","ZEXT","SEXT","FPTRUNC","FPEXT","FPTOUI","FPTOSI","UITOFP","SITOFP", -"PTRTOINT","INTTOPTR","BITCAST","'='","','","'\\\\'","'('","')'","'['","'x'", -"']'","'<'","'>'","'{'","'}'","'*'","'c'","IntVal","EInt64Val","ArithmeticOps", -"LogicalOps","SetCondOps","IPredicates","FPredicates","ShiftOps","CastOps","SIntType", -"UIntType","IntType","FPType","OptAssign","OptLinkage","OptCallingConv","OptAlign", -"OptCAlign","SectionString","OptSection","GlobalVarAttributes","GlobalVarAttribute", -"TypesV","UpRTypesV","Types","PrimType","UpRTypes","TypeListI","ArgTypeListI", -"ConstVal","ConstExpr","ConstVector","GlobalType","Module","DefinitionList", -"External","ConstPool","AsmBlock","BigOrLittle","TargetDefinition","LibrariesDefinition", -"LibList","Name","OptName","ArgVal","ArgListH","ArgList","FunctionHeaderH","BEGIN", -"FunctionHeader","END","Function","FnDeclareLinkage","FunctionProto","OptSideEffect", -"ConstValueRef","SymbolicValueRef","ValueRef","ResolvedVal","BasicBlockList", -"BasicBlock","InstructionList","Unwind","BBTerminatorInst","JumpTable","Inst", -"PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal","IndexList", -"OptVolatile","MemoryInst", NULL +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "VOID", "BOOL", "SBYTE", "UBYTE", + "SHORT", "USHORT", "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", + "LABEL", "OPAQUE", "ESINT64VAL", "EUINT64VAL", "SINTVAL", "UINTVAL", + "FPVAL", "NULL_TOK", "UNDEF", "ZEROINITIALIZER", "TRUETOK", "FALSETOK", + "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION", + "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION", + "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK", + "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL", + "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN", + "UNINITIALIZED", "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", + "SIDEEFFECT", "CC_TOK", "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", + "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", + "RET", "BR", "SWITCH", "INVOKE", "EXCEPT", "UNWIND", "UNREACHABLE", + "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM", + "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT", + "SETEQ", "SETNE", "ICMP", "FCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", + "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE", + "ULT", "UGT", "ULE", "UGE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", + "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR", "LSHR", + "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", "CAST", + "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "FPTOUI", "FPTOSI", + "UITOFP", "SITOFP", "PTRTOINT", "INTTOPTR", "BITCAST", "'='", "','", + "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", + "'*'", "'c'", "$accept", "IntVal", "EInt64Val", "ArithmeticOps", + "LogicalOps", "SetCondOps", "IPredicates", "FPredicates", "ShiftOps", + "CastOps", "SIntType", "UIntType", "IntType", "FPType", "OptAssign", + "OptLinkage", "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", + "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", + "UpRTypesV", "Types", "PrimType", "UpRTypes", "TypeListI", + "ArgTypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType", + "Module", "DefinitionList", "External", "ConstPool", "AsmBlock", + "BigOrLittle", "TargetDefinition", "LibrariesDefinition", "LibList", + "Name", "OptName", "ArgVal", "ArgListH", "ArgList", "FunctionHeaderH", + "BEGIN", "FunctionHeader", "END", "Function", "FnDeclareLinkage", + "FunctionProto", "OptSideEffect", "ConstValueRef", "SymbolicValueRef", + "ValueRef", "ResolvedVal", "BasicBlockList", "BasicBlock", + "InstructionList", "Unwind", "BBTerminatorInst", "JumpTable", "Inst", + "PHIList", "ValueRefList", "ValueRefListE", "OptTailCall", "InstVal", + "IndexList", "OptVolatile", "MemoryInst", 0 }; #endif -static const short yyr1[] = { 0, - 165, 165, 166, 166, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 168, 168, 168, 169, 169, - 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, - 174, 175, 175, 175, 175, 176, 176, 177, 177, 178, - 178, 179, 179, 179, 179, 179, 179, 179, 179, 180, - 180, 180, 180, 180, 180, 180, 180, 181, 181, 182, - 182, 183, 184, 184, 185, 185, 186, 186, 187, 187, - 188, 188, 189, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 192, 192, 193, 193, 193, - 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, - 196, 197, 197, 198, 199, 199, 199, 199, 199, 200, - 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 202, 203, 203, 204, 204, 204, 204, 205, 206, - 206, 206, 207, 207, 208, 208, 209, 210, 210, 211, - 211, 211, 211, 212, 213, 213, 214, 215, 215, 216, - 217, 217, 217, 218, 219, 219, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 221, 221, 222, - 222, 223, 224, 224, 225, 226, 226, 226, 227, 227, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, - 229, 230, 231, 231, 232, 232, 233, 233, 234, 234, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 236, 236, 237, 237, - 238, 238, 238, 238, 238, 238, 238, 238 +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 61, 44, 92, 40, 41, 91, 120, 93, 60, + 62, 123, 125, 42, 99 }; +# endif -static const short yyr2[] = { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 2, 0, 0, 2, 0, - 3, 2, 0, 1, 0, 3, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, - 5, 5, 3, 2, 2, 1, 3, 1, 3, 1, - 0, 4, 3, 3, 4, 4, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 6, 5, 8, - 6, 6, 6, 7, 7, 6, 6, 8, 8, 3, - 1, 1, 1, 1, 2, 2, 4, 2, 1, 1, - 1, 4, 2, 4, 6, 6, 6, 6, 3, 4, - 0, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 1, 0, 1, 1, 1, 0, 2, 3, 1, 1, - 3, 1, 0, 8, 1, 1, 3, 1, 1, 3, - 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, - 1, 2, 2, 1, 2, 2, 0, 1, 1, 1, - 2, 2, 3, 9, 9, 8, 14, 1, 1, 6, - 5, 2, 6, 7, 1, 3, 1, 0, 2, 1, - 5, 5, 5, 7, 7, 2, 4, 4, 6, 4, - 4, 6, 6, 2, 7, 1, 2, 0, 1, 0, - 3, 6, 3, 6, 2, 4, 6, 4 +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 165, 166, 166, 167, 167, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, + 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, + 175, 175, 175, 176, 176, 176, 176, 177, 177, 178, + 178, 179, 179, 180, 180, 180, 180, 180, 180, 180, + 180, 181, 181, 181, 181, 181, 181, 181, 181, 182, + 182, 183, 183, 184, 185, 185, 186, 186, 187, 187, + 188, 188, 189, 189, 190, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 193, 193, 194, + 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 197, 197, 198, 198, 199, 200, 200, 200, 200, + 200, 201, 201, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 203, 204, 204, 205, 205, 205, 205, + 206, 207, 207, 207, 208, 208, 209, 209, 210, 211, + 211, 212, 212, 212, 212, 213, 214, 214, 215, 216, + 216, 217, 218, 218, 218, 219, 220, 220, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, + 222, 223, 223, 224, 225, 225, 226, 227, 227, 227, + 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 230, 230, 231, 232, 232, 233, 233, 234, 234, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, + 238, 238, 239, 239, 239, 239, 239, 239, 239, 239 }; -static const short yydefact[] = { 191, - 89, 179, 178, 221, 82, 83, 84, 86, 87, 88, - 85, 0, 97, 247, 175, 176, 203, 204, 0, 0, - 0, 89, 0, 183, 222, 223, 97, 0, 0, 90, - 91, 92, 93, 94, 95, 0, 0, 248, 247, 244, - 81, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 180, 181, 0, 0, 80, 224, 192, 177, 96, - 110, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 1, 2, 0, 0, 0, 0, - 238, 0, 0, 109, 128, 113, 239, 127, 215, 216, - 217, 218, 219, 220, 243, 0, 0, 0, 250, 249, - 259, 290, 258, 245, 246, 0, 0, 0, 0, 202, - 190, 184, 182, 172, 173, 0, 0, 0, 0, 129, - 0, 0, 112, 134, 136, 0, 0, 141, 135, 252, - 0, 251, 0, 0, 71, 75, 70, 74, 69, 73, - 68, 72, 76, 77, 0, 289, 0, 270, 0, 97, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 54, 0, 0, 0, 0, 67, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, - 0, 0, 0, 0, 97, 262, 0, 286, 197, 194, - 193, 195, 196, 198, 201, 0, 105, 105, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 0, - 0, 0, 0, 105, 105, 0, 0, 0, 133, 213, - 140, 138, 0, 227, 228, 229, 232, 233, 234, 230, - 231, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 241, 240, 242, 0, - 253, 0, 276, 269, 0, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 0, 49, 50, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 0, 100, 100, 295, 0, 0, 284, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 199, 0, 187, 188, 155, 156, 3, - 4, 153, 154, 157, 148, 149, 152, 0, 0, 0, - 0, 151, 150, 185, 186, 111, 111, 137, 212, 206, - 209, 210, 0, 0, 130, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 291, 0, 293, - 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 200, 0, 0, 107, - 105, 143, 0, 0, 147, 0, 144, 131, 132, 205, - 207, 0, 103, 139, 0, 0, 0, 288, 0, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, - 0, 0, 280, 281, 0, 0, 0, 0, 0, 277, - 278, 0, 296, 0, 102, 108, 106, 142, 145, 146, - 211, 208, 104, 98, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, - 268, 0, 0, 100, 101, 100, 265, 287, 0, 0, - 0, 0, 0, 271, 272, 273, 268, 0, 0, 214, - 237, 0, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, - 292, 294, 0, 0, 0, 279, 282, 283, 0, 297, - 99, 0, 0, 0, 167, 0, 0, 161, 162, 163, - 166, 158, 0, 256, 0, 0, 0, 274, 275, 266, - 263, 0, 285, 164, 165, 0, 0, 0, 254, 0, - 255, 0, 0, 264, 160, 168, 169, 0, 0, 0, - 0, 0, 0, 261, 0, 0, 260, 0, 257, 0, - 0, 0 +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 2, 0, 0, + 2, 0, 3, 2, 0, 1, 0, 3, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 4, 5, 5, 3, 2, 2, 1, 3, 1, + 3, 1, 0, 4, 3, 3, 4, 4, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, + 5, 8, 6, 6, 6, 7, 7, 6, 6, 8, + 8, 3, 1, 1, 1, 1, 2, 2, 4, 2, + 1, 1, 1, 4, 2, 4, 6, 6, 6, 6, + 3, 4, 0, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 1, 0, 1, 1, 1, 0, 2, 3, + 1, 1, 3, 1, 0, 8, 1, 1, 3, 1, + 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, + 1, 1, 1, 2, 2, 1, 2, 2, 0, 1, + 1, 1, 2, 2, 3, 9, 9, 8, 14, 1, + 1, 6, 5, 2, 6, 7, 1, 3, 1, 0, + 2, 1, 5, 5, 5, 7, 7, 2, 4, 4, + 6, 4, 4, 6, 6, 2, 7, 1, 2, 0, + 1, 0, 3, 6, 3, 6, 2, 4, 6, 4 }; -static const short yydefgoto[] = { 81, - 332, 261, 262, 263, 286, 303, 264, 265, 230, 231, - 145, 232, 22, 13, 36, 500, 378, 400, 464, 326, - 401, 82, 83, 233, 85, 86, 126, 243, 365, 266, - 366, 116, 580, 1, 55, 2, 59, 212, 46, 111, - 216, 87, 411, 351, 352, 353, 37, 91, 14, 94, - 15, 27, 16, 357, 267, 88, 269, 487, 39, 40, - 41, 103, 104, 546, 105, 309, 516, 517, 205, 206, - 439, 207, 208 +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned short int yydefact[] = +{ + 192, 0, 90, 180, 1, 179, 222, 83, 84, 85, + 87, 88, 89, 86, 0, 98, 248, 176, 177, 204, + 205, 0, 0, 0, 90, 0, 184, 223, 224, 98, + 0, 0, 91, 92, 93, 94, 95, 96, 0, 0, + 249, 248, 245, 82, 0, 0, 0, 0, 190, 0, + 0, 0, 0, 0, 181, 182, 0, 0, 81, 225, + 193, 178, 97, 111, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 2, 3, 0, + 0, 0, 0, 239, 0, 0, 110, 129, 114, 240, + 128, 216, 217, 218, 219, 220, 221, 244, 0, 0, + 0, 251, 250, 260, 291, 259, 246, 247, 0, 0, + 0, 0, 203, 191, 185, 183, 173, 174, 0, 0, + 0, 0, 130, 0, 0, 113, 135, 137, 0, 0, + 142, 136, 253, 0, 252, 0, 0, 72, 76, 71, + 75, 70, 74, 69, 73, 77, 78, 0, 290, 0, + 271, 0, 98, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 53, 54, 55, 0, 0, 0, 0, 68, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, 0, 0, 0, 0, 98, 263, 0, + 287, 198, 195, 194, 196, 197, 199, 202, 0, 106, + 106, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 0, 0, 0, 0, 106, 106, 0, 0, + 0, 134, 214, 141, 139, 0, 228, 229, 230, 233, + 234, 235, 231, 232, 226, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 237, 242, + 241, 243, 0, 254, 0, 277, 270, 0, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 0, 50, + 51, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 0, 101, 101, 296, 0, + 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 188, 189, + 156, 157, 4, 5, 154, 155, 158, 149, 150, 153, + 0, 0, 0, 0, 152, 151, 186, 187, 112, 112, + 138, 213, 207, 210, 211, 0, 0, 131, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 292, 0, 294, 289, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, + 0, 0, 108, 106, 144, 0, 0, 148, 0, 145, + 132, 133, 206, 208, 0, 104, 140, 0, 0, 0, + 289, 0, 0, 0, 0, 0, 236, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 299, 0, 0, 0, 281, 282, 0, 0, 0, + 0, 0, 278, 279, 0, 297, 0, 103, 109, 107, + 143, 146, 147, 212, 209, 105, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, + 0, 0, 0, 269, 0, 0, 101, 102, 101, 266, + 288, 0, 0, 0, 0, 0, 272, 273, 274, 269, + 0, 0, 215, 238, 0, 0, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, + 0, 0, 0, 293, 295, 0, 0, 0, 280, 283, + 284, 0, 298, 100, 0, 0, 0, 168, 0, 0, + 162, 163, 164, 167, 159, 0, 257, 0, 0, 0, + 275, 276, 267, 264, 0, 286, 165, 166, 0, 0, + 0, 255, 0, 256, 0, 0, 265, 161, 169, 170, + 0, 0, 0, 0, 0, 0, 262, 0, 0, 261, + 0, 258 }; -static const short yypact[] = {-32768, - 9, 905,-32768, 63,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -34, 34, -11,-32768,-32768,-32768,-32768, -28, -81, - 32, 127, -23,-32768,-32768,-32768, 34, 87, 105,-32768, --32768,-32768,-32768,-32768,-32768, 801, -17,-32768, -19,-32768, - 47, -16, 25, 58, 59,-32768, 74, 87, 801, 11, - 11,-32768,-32768, 11, 11,-32768,-32768,-32768,-32768,-32768, - 61,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 217, 218, 219, 518, --32768, 104, 84,-32768,-32768, -72,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 839, 8, 253,-32768,-32768, --32768, 1273,-32768,-32768,-32768, 210, 90, 224, 214, 215, --32768,-32768,-32768,-32768,-32768, 868, 868, 898, 868,-32768, - 91, 92,-32768,-32768, -72, -74, 97, 213,-32768, 61, - 1071,-32768, 1071, 1071,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1071,-32768, 868,-32768, 192, 34, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 293, 81, 868, 868, 868, 868, 868, 868,-32768,-32768, --32768,-32768, 868, 868, 868, 868,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 868, - 868, 868, 868, 868, 34,-32768, 30,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, -40, 102, 102, 135, 145, - 248, 161, 250, 163, 251, 165, 255, 256, 258, 188, - 262, 260, 982, 102, 102, 868, 868, 868,-32768, 604, --32768, 122, 132,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 225, 293, 81, 129, 134, 138, 139, 140, 898, - 141, 143, 147, 148, 149,-32768,-32768,-32768,-32768, 153, --32768, 154,-32768,-32768, 801,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 868,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 868, 155, 156,-32768, 1071, 126, 157, 158, - 159, 160, 166, 167, 1071, 1071, 1071, 168, 274, 801, - 868, 868, 287,-32768, -18,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 679, 898, 549, - 291,-32768,-32768,-32768,-32768, -49, -27, -72,-32768, 104, --32768, 171, 169, 709,-32768,-32768, 295, 174, 175, 898, - 898, 898, 898, 898,-32768, -110, 898, 898, 898, 898, - 898, 315, 317, 1071, 1071, 1071, 1,-32768, 12,-32768, - 184, 1071, 182, 868, 868, 868, 868, 868, 187, 189, - 190, 868, 868, 1071, 1071, 194,-32768, 310, 329,-32768, - 102,-32768, -39, -68,-32768, -73,-32768,-32768,-32768,-32768, --32768, 763, 316,-32768, 203, 898, 898, 184, 206, 207, - 208, 209, 898,-32768, 211, 212, 216, 221, 323, 1071, - 1071, 226, 230, 231, 1071, 347, 1071, 868,-32768, 232, - 1071, 234,-32768,-32768, 238, 239, 1071, 1071, 1071,-32768, --32768, 247,-32768, 868,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 335, 337, 241, 254, 252, 898, 898, - 898, 898,-32768, 898, 898, 898, 898, 868, 257, 259, - 868, 1071, 1071, 264,-32768, 264,-32768, 265, 1071, 272, - 868, 868, 868,-32768,-32768,-32768, 868, 1071, 390,-32768, --32768, 898, 898,-32768, 273, 271, 275, 276, 277, 278, - 279, 281, 282, 395, 26, 265, 285, 286, 288, 373, --32768,-32768, 868, 289, 1071,-32768,-32768,-32768, 294,-32768, --32768, 297, 298, 898,-32768, 898, 898,-32768,-32768,-32768, --32768,-32768, 1071,-32768, 1160, 56, 392,-32768,-32768,-32768, --32768, 290,-32768,-32768,-32768, 299, 303, 304,-32768, 292, --32768, 1160, 431,-32768,-32768,-32768,-32768, 445, 311, 1071, - 1071, 447, 130,-32768, 1071, 449,-32768, 1071,-32768, 468, - 469,-32768 +/* YYDEFGOTO[NTERM-NUM]. */ +static const short int yydefgoto[] = +{ + -1, 83, 334, 263, 264, 265, 288, 305, 266, 267, + 232, 233, 147, 234, 24, 15, 38, 502, 380, 402, + 466, 328, 403, 84, 85, 235, 87, 88, 128, 245, + 367, 268, 368, 118, 1, 2, 57, 3, 61, 214, + 48, 113, 218, 89, 413, 353, 354, 355, 39, 93, + 16, 96, 17, 29, 18, 359, 269, 90, 271, 489, + 41, 42, 43, 105, 106, 548, 107, 311, 518, 519, + 207, 208, 441, 209, 210 }; -static const short yypgoto[] = {-32768, --32768, 368, 370, 371, 222, 223, 374, 376, -96, -95, - -498,-32768, 438, 458, -134,-32768, -298, 68,-32768, -214, --32768, -44,-32768, -36,-32768, -79, 354,-32768, 128, 261, - -187, 76,-32768,-32768,-32768,-32768, 436,-32768,-32768,-32768, --32768, 4,-32768, 73,-32768,-32768, 459,-32768,-32768,-32768, --32768,-32768, 491,-32768, -469, -104, -60, -88,-32768, 461, --32768, -71,-32768,-32768,-32768,-32768, 65, 7,-32768,-32768, - 83,-32768,-32768 +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -501 +static const short int yypact[] = +{ + -501, 82, 9, 975, -501, -501, 72, -501, -501, -501, + -501, -501, -501, -501, 29, 34, 94, -501, -501, -501, + -501, -28, -42, 66, 127, 25, -501, -501, -501, 34, + 122, 199, -501, -501, -501, -501, -501, -501, 839, -17, + -501, -19, -501, 47, 67, 68, 69, 75, -501, 71, + 122, 839, 11, 11, -501, -501, 11, 11, -501, -501, + -501, -501, -501, 76, -501, -501, -501, -501, -501, -501, + -501, -501, -501, -501, -501, -501, -501, -501, -501, 207, + 210, 211, 518, -501, 123, 77, -501, -501, -84, -501, + -501, -501, -501, -501, -501, -501, -501, -501, 876, 8, + 253, -501, -501, -501, 1333, -501, -501, -501, 203, 80, + 217, 206, 208, -501, -501, -501, -501, -501, 922, 922, + 960, 922, -501, 83, 84, -501, -501, -84, -134, 88, + 604, -501, 76, 1131, -501, 1131, 1131, -501, -501, -501, + -501, -501, -501, -501, -501, -501, -501, 1131, -501, 922, + -501, 177, 34, -501, -501, -501, -501, -501, -501, -501, + -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, + -501, -501, -501, 103, 81, 922, 922, 922, 922, 922, + 922, -501, -501, -501, -501, 922, 922, 922, 922, -501, + -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, + -501, -501, 922, 922, 922, 922, 922, 34, -501, 20, + -501, -501, -501, -501, -501, -501, -501, -501, -44, 91, + 91, 130, 143, 226, 145, 227, 161, 230, 163, 231, + 232, 233, 165, 234, 245, 1042, 91, 91, 922, 922, + 922, -501, 679, -501, 99, 113, -501, -501, -501, -501, + -501, -501, -501, -501, 205, 103, 81, 119, 120, 125, + 128, 129, 960, 133, 134, 135, 139, 140, -501, -501, + -501, -501, 124, -501, 149, -501, -501, 839, -501, -501, + -501, -501, -501, -501, -501, -501, -501, -501, 922, -501, + -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, + -501, -501, -501, -501, -501, 922, 150, 151, -501, 1131, + 136, 153, 154, 155, 156, 157, 158, 1131, 1131, 1131, + 159, 241, 839, 922, 922, 251, -501, -18, -501, -501, + -501, -501, -501, -501, -501, -501, -501, -501, -501, -501, + 717, 960, 549, 265, -501, -501, -501, -501, -69, -50, + -84, -501, 123, -501, 160, 142, 763, -501, -501, 283, + 164, 166, 960, 960, 960, 960, 960, -501, -110, 960, + 960, 960, 960, 960, 302, 304, 1131, 1131, 1131, 1, + -501, 12, -501, 169, 1131, 167, 922, 922, 922, 922, + 922, 172, 173, 176, 922, 922, 1131, 1131, 178, -501, + 299, 314, -501, 91, -501, -40, -68, -501, -74, -501, + -501, -501, -501, -501, 801, 301, -501, 184, 960, 960, + 169, 187, 188, 189, 190, 960, -501, 194, 195, 201, + 209, 316, 1131, 1131, 204, 212, 213, 1131, 341, 1131, + 922, -501, 214, 1131, 215, -501, -501, 216, 220, 1131, + 1131, 1131, -501, -501, 219, -501, 922, -501, -501, -501, + -501, -501, -501, -501, -501, -501, 303, 332, 222, 228, + 229, 960, 960, 960, 960, -501, 960, 960, 960, 960, + 922, 238, 235, 922, 1131, 1131, 240, -501, 240, -501, + 243, 1131, 244, 922, 922, 922, -501, -501, -501, 922, + 1131, 345, -501, -501, 960, 960, -501, 246, 242, 247, + 248, 252, 254, 255, 256, 257, 354, 26, 243, 258, + 259, 260, 325, -501, -501, 922, 225, 1131, -501, -501, + -501, 261, -501, -501, 262, 269, 960, -501, 960, 960, + -501, -501, -501, -501, -501, 1131, -501, 1220, 56, 347, + -501, -501, -501, -501, 250, -501, -501, -501, 270, 271, + 272, -501, 249, -501, 1220, 378, -501, -501, -501, -501, + 391, 276, 1131, 1131, 415, 138, -501, 1131, 416, -501, + 1131, -501 }; - -#define YYLAST 1423 - - -static const short yytable[] = { 84, - 125, 143, 144, 327, 113, 23, 380, 132, -174, 38, - 435, 133, 84, 92, 89, 275, 545, 38, 398, 344, - 345, 437, 134, 42, 43, 44, 268, 28, 268, 268, - 135, 136, 137, 138, 139, 140, 141, 142, 399, 3, - 268, 423, 4, 45, 23, 114, 115, 562, 125, 424, - 5, 6, 7, 8, 9, 10, 11, 436, 273, 131, - 135, 136, 137, 138, 139, 140, 141, 142, 436, 47, - 320, 12, 270, 271, 17, 560, 18, 238, 423, 217, - 218, -111, 235, 423, 272, 127, 306, 239, 460, 310, - 129, 459, 569, 48, 311, 312, 313, 314, 29, 30, - 31, 32, 33, 34, 35, 287, 288, 25, 408, 26, - 131, 323, 423, 129, 318, 319, 58, 324, 458, 96, - 97, 98, 60, 99, 100, 101, 117, 56, 343, 118, - 119, 17, 409, 18, 106, 129, 304, 305, 131, 307, - 308, 131, 93, 90, 210, 211, 131, 131, 131, 131, - 403, 404, 406, 49, 321, 322, 346, 347, 348, 328, - 329, -71, -71, 315, 316, 317, 131, 131, 5, 6, - 7, 50, 9, 51, 11, 107, 52, -70, -70, -69, - -69, -68, -68, 544, 53, 521, 457, 522, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 268, 350, 330, 331, 99, 100, 108, 109, - 268, 268, 268, 561, -112, 123, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 110, - 374, 75, 76, 396, 120, 121, 122, 128, 84, 209, - 17, 213, 18, 214, 215, 234, 381, 236, 237, 375, - 240, 274, 241, 325, 389, 390, 391, 135, 136, 137, - 138, 139, 140, 141, 142, -75, 376, -74, -73, 268, - 268, 268, -72, 354, 348, 394, -78, 268, -79, 333, - 334, 382, 360, 84, 395, 131, 355, 361, 356, 268, - 268, 362, 363, 364, 367, 442, 368, 444, 445, 446, - 369, 370, 371, 450, 372, 373, 377, 379, 383, 384, - 385, 386, 393, 432, 433, 434, 397, 387, 388, 392, - 407, 440, 412, 413, 415, 268, 268, 416, 417, 430, - 268, 431, 268, 452, 453, 438, 268, 441, 447, 455, - 448, 449, 268, 268, 268, 454, 456, 131, 443, 131, - 131, 131, 398, 410, 465, 131, 451, 469, 470, 471, - 472, 478, 474, 475, 485, 77, 501, 476, 78, 479, - 480, 79, 477, 80, 484, 350, 486, 268, 268, 481, - 490, 482, 483, 489, 268, 491, 494, 495, 496, 492, - 493, 499, 502, 268, 276, 277, 278, 279, 280, 281, - 497, 131, 526, 527, 528, 503, 504, 531, 514, 543, - 282, 283, 284, 285, 515, 520, 523, 498, 143, 144, - 268, 518, 519, 525, 534, 535, 536, 537, 524, 436, - 563, 538, 539, 540, 550, 541, 542, 530, 268, 547, - 548, 513, 549, 568, 131, 570, 551, 564, 553, 143, - 144, 554, 555, 565, 131, 131, 131, 566, 567, 571, - 131, 575, 572, 578, 552, 268, 268, 581, 582, 200, - 268, 201, 202, 268, 358, 203, 359, 204, 102, 54, - 463, 242, 559, 112, 462, 57, 131, 418, 419, 420, - 421, 422, 24, 342, 425, 426, 427, 428, 429, 95, - 468, 576, 488, 529, 0, 0, 0, 0, 0, 573, - 574, 0, 0, 0, 577, 0, 0, 579, 0, 0, - 123, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 0, 0, 75, 76, 0, 0, - 0, 0, 0, 466, 467, 17, 0, 18, 0, 0, - 473, 123, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 73, 74, 0, 0, 75, 76, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 505, 506, 507, 508, - 0, 509, 510, 511, 512, 0, 123, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 0, 0, 75, 76, 0, 0, 0, 0, 0, 532, - 533, 17, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 556, 0, 557, 558, 0, 0, 0, 0, 0, - 77, 0, 0, 78, 0, 0, 79, 0, 80, 124, - 0, 123, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 73, 74, 0, 0, 75, 76, 0, - 0, 77, 0, 0, 78, 0, 17, 79, 18, 80, - 405, 123, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 0, 0, 75, 76, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, - 0, 0, 79, 0, 80, 123, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, - 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 461, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 0, 0, 75, - 76, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 18, 77, 0, 0, 78, 0, 402, 79, 0, 80, - 0, 130, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 0, 0, 75, 76, 0, - 0, 77, 0, 0, 78, 0, 17, 79, 18, 80, - 123, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 0, 0, 75, 76, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 18, 0, 0, - 123, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 73, 74, 0, 77, 75, 76, 78, 0, - 0, 79, 0, 80, 0, 17, 0, 18, 0, 0, - 0, -81, 17, 0, 18, 0, 0, 0, 4, -81, - -81, 0, 0, 0, 0, 0, -81, -81, -81, -81, - -81, -81, -81, 77, -81, 19, 78, 0, 0, 79, - 0, 80, -81, 20, 0, 0, 0, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 78, 0, 0, 79, 0, 80, - 75, 76, 0, 335, 336, 337, 0, 0, 0, 17, - 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 78, 0, 0, 79, 0, 80, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 78, 0, 0, 79, 0, 80, 0, - 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 253, 254, 0, 0, 0, 0, 244, 245, 75, - 76, 246, 247, 248, 249, 250, 251, 0, 17, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 255, 0, - 256, 179, 180, 181, 182, 0, 257, 258, 259, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 252, 0, 0, 0, 0, 338, 0, 0, - 339, 0, 340, 0, 0, 341, 0, 0, 0, 0, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 253, 254, 0, 0, 0, 0, 244, 245, 0, 0, - 246, 247, 248, 249, 250, 251, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 255, 0, 256, - 179, 180, 181, 182, 0, 257, 258, 259, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 252, 0, 0, 0, 0, 0, 0, 0, 260, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 253, - 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 255, 0, 256, 179, - 180, 181, 182, 0, 257, 258, 259, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 146, 0, 0, 0, 0, 0, 0, 0, 260, 0, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 0, 0, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199 +/* YYPGOTO[NTERM-NUM]. */ +static const short int yypgoto[] = +{ + -501, -501, -501, 328, 329, 330, 181, 185, 333, 336, + -98, -97, -500, -501, 400, 420, -136, -501, -300, 31, + -501, -216, -501, -45, -501, -38, -501, -81, 317, -501, + 126, 218, -208, 74, -501, -501, -501, -501, 398, -501, + -501, -501, -501, 2, -501, 35, -501, -501, 423, -501, + -501, -501, -501, -501, 451, -501, -471, -106, -62, -90, + -501, 417, -501, -116, -501, -501, -501, -501, 22, -39, + -501, -501, 43, -501, -501 }; -static const short yycheck[] = { 36, - 80, 98, 98, 218, 49, 2, 305, 96, 0, 29, - 10, 4, 49, 33, 32, 150, 515, 29, 37, 234, - 235, 10, 15, 52, 53, 54, 131, 62, 133, 134, - 5, 6, 7, 8, 9, 10, 11, 12, 57, 31, - 145, 152, 34, 72, 41, 35, 36, 546, 128, 160, - 42, 43, 44, 45, 46, 47, 48, 57, 147, 96, - 5, 6, 7, 8, 9, 10, 11, 12, 57, 151, - 205, 63, 133, 134, 28, 545, 30, 152, 152, 116, - 117, 154, 119, 152, 145, 82, 175, 162, 162, 178, - 163, 160, 562, 62, 183, 184, 185, 186, 65, 66, - 67, 68, 69, 70, 71, 25, 26, 45, 158, 47, - 147, 152, 152, 163, 203, 204, 30, 158, 158, 73, - 74, 75, 18, 77, 78, 79, 51, 151, 233, 54, - 55, 28, 160, 30, 151, 163, 173, 174, 175, 176, - 177, 178, 162, 161, 55, 56, 183, 184, 185, 186, - 338, 339, 340, 27, 125, 126, 236, 237, 238, 25, - 26, 17, 18, 200, 201, 202, 203, 204, 42, 43, - 44, 45, 46, 47, 48, 151, 50, 17, 18, 17, - 18, 17, 18, 158, 58, 484, 401, 486, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 307, 240, 17, 18, 77, 78, 151, 151, - 315, 316, 317, 158, 154, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 156, - 275, 19, 20, 322, 18, 18, 18, 154, 275, 30, - 28, 18, 30, 30, 30, 118, 307, 157, 157, 286, - 154, 60, 40, 152, 315, 316, 317, 5, 6, 7, - 8, 9, 10, 11, 12, 18, 303, 18, 18, 374, - 375, 376, 18, 152, 354, 320, 21, 382, 21, 18, - 21, 156, 154, 320, 321, 322, 155, 154, 64, 394, - 395, 154, 154, 154, 154, 384, 154, 386, 387, 388, - 154, 154, 154, 392, 152, 152, 152, 152, 152, 152, - 152, 152, 39, 374, 375, 376, 30, 152, 152, 152, - 30, 382, 152, 155, 30, 430, 431, 154, 154, 15, - 435, 15, 437, 394, 395, 152, 441, 156, 152, 30, - 152, 152, 447, 448, 449, 152, 18, 384, 385, 386, - 387, 388, 37, 350, 152, 392, 393, 152, 152, 152, - 152, 39, 152, 152, 18, 153, 30, 152, 156, 430, - 431, 159, 152, 161, 435, 412, 437, 482, 483, 154, - 441, 152, 152, 152, 489, 152, 447, 448, 449, 152, - 152, 57, 152, 498, 102, 103, 104, 105, 106, 107, - 154, 438, 491, 492, 493, 152, 155, 18, 152, 15, - 118, 119, 120, 121, 156, 152, 152, 454, 515, 515, - 525, 482, 483, 152, 152, 155, 152, 152, 489, 57, - 39, 155, 155, 155, 523, 155, 155, 498, 543, 155, - 155, 478, 155, 152, 481, 15, 158, 158, 155, 546, - 546, 155, 155, 155, 491, 492, 493, 155, 155, 15, - 497, 15, 152, 15, 525, 570, 571, 0, 0, 102, - 575, 102, 102, 578, 253, 102, 254, 102, 41, 22, - 413, 128, 543, 48, 412, 27, 523, 360, 361, 362, - 363, 364, 2, 233, 367, 368, 369, 370, 371, 39, - 418, 573, 438, 497, -1, -1, -1, -1, -1, 570, - 571, -1, -1, -1, 575, -1, -1, 578, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, - -1, -1, -1, 416, 417, 28, -1, 30, -1, -1, - 423, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, - -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 469, 470, 471, 472, - -1, 474, 475, 476, 477, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - -1, -1, 19, 20, -1, -1, -1, -1, -1, 502, - 503, 28, -1, 30, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 534, -1, 536, 537, -1, -1, -1, -1, -1, - 153, -1, -1, 156, -1, -1, 159, -1, 161, 162, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, - -1, 153, -1, -1, 156, -1, 28, 159, 30, 161, - 162, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, - -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, - -1, -1, -1, -1, -1, -1, 153, -1, -1, 156, - -1, -1, 159, -1, 161, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, - -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, - 28, -1, 30, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 40, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, -1, -1, 19, - 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, - 30, 153, -1, -1, 156, -1, 158, 159, -1, 161, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, - -1, 153, -1, -1, 156, -1, 28, 159, 30, 161, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, - -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, 153, 19, 20, 156, -1, - -1, 159, -1, 161, -1, 28, -1, 30, -1, -1, - -1, 27, 28, -1, 30, -1, -1, -1, 34, 35, - 36, -1, -1, -1, -1, -1, 42, 43, 44, 45, - 46, 47, 48, 153, 50, 51, 156, -1, -1, 159, - -1, 161, 58, 59, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 153, -1, -1, 156, -1, -1, 159, -1, 161, - 19, 20, -1, 22, 23, 24, -1, -1, -1, 28, - -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, - 153, -1, -1, 156, -1, -1, 159, -1, 161, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 153, -1, -1, 156, -1, -1, 159, -1, 161, -1, - -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, -1, -1, -1, -1, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, -1, - 30, -1, -1, -1, -1, -1, -1, -1, 127, -1, - 129, 130, 131, 132, 133, -1, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 62, -1, -1, -1, -1, 156, -1, -1, - 159, -1, 161, -1, -1, 164, -1, -1, -1, -1, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, -1, -1, -1, 17, 18, -1, -1, - 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 127, -1, 129, - 130, 131, 132, 133, -1, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 62, -1, -1, -1, -1, -1, -1, -1, 159, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 127, -1, 129, 130, - 131, 132, 133, -1, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 38, -1, -1, -1, -1, -1, -1, -1, 159, -1, - -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 76, -1, - -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, -1, -1, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150 +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -176 +static const short int yytable[] = +{ + 86, 127, 145, 146, 329, 25, 115, 382, 134, -175, + 40, 437, 135, 86, 94, 91, 277, 547, 240, 400, + 346, 347, 439, 136, 44, 45, 46, 270, 241, 270, + 270, 137, 138, 139, 140, 141, 142, 143, 144, 401, + 5, 270, 425, 6, 47, 25, 116, 117, 564, 127, + 426, 7, 8, 9, 10, 11, 12, 13, 438, 275, + 133, 137, 138, 139, 140, 141, 142, 143, 144, 438, + -112, 322, 14, 272, 273, 19, 562, 20, 425, 131, + 219, 220, 4, 237, 425, 274, 129, 308, 462, 410, + 312, 30, 461, 571, 131, 313, 314, 315, 316, 31, + 32, 33, 34, 35, 36, 37, 289, 290, 325, 49, + 411, 133, 425, 131, 326, 320, 321, 27, 460, 28, + 98, 99, 100, 40, 101, 102, 103, 119, 50, 345, + 120, 121, 405, 406, 408, 212, 213, 306, 307, 133, + 309, 310, 133, 95, 92, 323, 324, 133, 133, 133, + 133, 19, 60, 20, 51, 330, 331, 348, 349, 350, + -72, -72, -71, -71, 317, 318, 319, 133, 133, 7, + 8, 9, 52, 11, 53, 13, 58, 54, -70, -70, + -69, -69, 332, 333, 546, 55, 523, 459, 524, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 270, 352, 278, 279, 280, 281, 282, + 283, 270, 270, 270, 563, 101, 102, 62, 108, 109, + 110, 284, 285, 286, 287, 122, 111, 112, 123, 124, + -113, 130, 376, 211, 398, 215, 216, 276, 217, 86, + 238, 239, 242, 327, -76, -75, 236, 383, -74, -73, + 377, 356, 335, -79, -80, 391, 392, 393, 137, 138, + 139, 140, 141, 142, 143, 144, 336, 378, 357, 358, + 270, 270, 270, 362, 363, 350, 374, 396, 270, 364, + 395, 399, 365, 366, 86, 397, 133, 369, 370, 371, + 270, 270, 384, 372, 373, 409, 444, 415, 446, 447, + 448, 375, 379, 381, 452, 385, 386, 387, 388, 389, + 390, 394, 414, 417, 434, 435, 436, 432, 418, 433, + 419, 440, 442, 443, 449, 450, 270, 270, 451, 457, + 456, 270, 458, 270, 454, 455, 467, 270, 400, 471, + 472, 473, 474, 270, 270, 270, 476, 477, 133, 445, + 133, 133, 133, 478, 412, 480, 133, 453, 483, 487, + 501, 479, 503, 533, 484, 485, 491, 493, 494, 545, + 481, 482, 495, 499, 504, 486, 352, 488, 270, 270, + 505, 492, 438, 553, 506, 270, 565, 496, 497, 498, + 516, 517, 522, 572, 270, 525, 527, 537, 536, 538, + 539, 570, 133, 528, 529, 530, 573, 540, 566, 541, + 542, 543, 544, 549, 550, 551, 555, 556, 500, 145, + 146, 270, 520, 521, 557, 567, 568, 569, 574, 526, + 577, 580, 202, 203, 204, 552, 360, 205, 532, 270, + 206, 361, 515, 104, 56, 133, 465, 244, 114, 464, + 145, 146, 59, 344, 26, 133, 133, 133, 97, 578, + 531, 133, 490, 470, 0, 554, 270, 270, 0, 0, + 0, 270, 0, 0, 270, 0, 0, 0, 0, 0, + 0, 0, 0, 561, 0, 0, 0, 133, 420, 421, + 422, 423, 424, 0, 0, 427, 428, 429, 430, 431, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 575, 576, 0, 0, 0, 579, 0, 0, 581, 0, + 0, 125, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 0, 0, 77, 78, 0, + 0, 0, 0, 0, 468, 469, 19, 0, 20, 0, + 0, 475, 125, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 75, 76, 0, 0, 77, 78, + 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 507, 508, 509, + 510, 0, 511, 512, 513, 514, 0, 125, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 0, 0, 77, 78, 0, 0, 0, 0, 0, + 534, 535, 19, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 558, 0, 559, 560, 0, 0, 0, 0, + 0, 79, 0, 0, 80, 0, 0, 81, 0, 82, + 126, 0, 125, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 0, 0, 77, 78, + 0, 0, 79, 0, 0, 80, 0, 19, 81, 20, + 82, 407, 0, 0, 0, 0, 0, 0, 0, 351, + 125, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 75, 76, 0, 0, 77, 78, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 80, 0, 0, 81, 0, 82, 125, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 0, 0, 77, 78, 0, 0, 0, 0, 0, 0, + 0, 19, 0, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 416, 125, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 0, 0, + 77, 78, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 20, 79, 0, 0, 80, 0, 0, 81, 0, + 82, 463, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 0, 0, 77, 78, + 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, + 79, 0, 0, 80, 0, 404, 81, 0, 82, 132, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 0, 0, 77, 78, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 79, 0, 0, 80, + 0, 0, 81, 0, 82, 125, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, + 0, 77, 78, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 20, 0, 79, 0, 0, 80, 0, 0, + 81, 0, 82, 125, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 75, 76, 0, 0, 77, + 78, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 20, 0, 79, 0, 0, 80, 0, 0, 81, 0, + 82, 0, -82, 19, 0, 20, 0, 0, 0, 6, + -82, -82, 0, 0, 0, 0, 0, -82, -82, -82, + -82, -82, -82, -82, 0, -82, 21, 0, 0, 79, + 0, 0, 80, -82, 22, 81, 0, 82, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 78, 0, 337, 338, 339, 0, 0, 0, + 19, 0, 20, 0, 0, 79, 0, 0, 80, 0, + 0, 81, 0, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 80, 0, 0, 81, + 0, 82, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 255, 256, 0, 0, 0, 0, 246, 247, + 77, 78, 248, 249, 250, 251, 252, 253, 0, 19, + 0, 20, 0, 0, 0, 0, 0, 0, 0, 257, + 0, 258, 181, 182, 183, 184, 0, 259, 260, 261, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 254, 0, 0, 0, 0, 340, 0, + 0, 341, 0, 342, 0, 0, 343, 0, 0, 0, + 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 255, 256, 0, 0, 0, 0, 246, 247, 0, + 0, 248, 249, 250, 251, 252, 253, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, + 258, 181, 182, 183, 184, 0, 259, 260, 261, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 254, 0, 0, 0, 0, 0, 0, 0, + 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 255, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 257, 0, 258, + 181, 182, 183, 184, 0, 259, 260, 261, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 148, 0, 0, 0, 0, 0, 0, 0, 262, + 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, + 0, 0, 0, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201 }; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - 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., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, 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. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible at ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif +static const short int yycheck[] = +{ + 38, 82, 100, 100, 220, 3, 51, 307, 98, 0, + 29, 10, 4, 51, 33, 32, 152, 517, 152, 37, + 236, 237, 10, 15, 52, 53, 54, 133, 162, 135, + 136, 5, 6, 7, 8, 9, 10, 11, 12, 57, + 31, 147, 152, 34, 72, 43, 35, 36, 548, 130, + 160, 42, 43, 44, 45, 46, 47, 48, 57, 149, + 98, 5, 6, 7, 8, 9, 10, 11, 12, 57, + 154, 207, 63, 135, 136, 28, 547, 30, 152, 163, + 118, 119, 0, 121, 152, 147, 84, 177, 162, 158, + 180, 62, 160, 564, 163, 185, 186, 187, 188, 65, + 66, 67, 68, 69, 70, 71, 25, 26, 152, 151, + 160, 149, 152, 163, 158, 205, 206, 45, 158, 47, + 73, 74, 75, 29, 77, 78, 79, 53, 62, 235, + 56, 57, 340, 341, 342, 55, 56, 175, 176, 177, + 178, 179, 180, 162, 161, 125, 126, 185, 186, 187, + 188, 28, 30, 30, 27, 25, 26, 238, 239, 240, + 17, 18, 17, 18, 202, 203, 204, 205, 206, 42, + 43, 44, 45, 46, 47, 48, 151, 50, 17, 18, + 17, 18, 17, 18, 158, 58, 486, 403, 488, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 309, 242, 102, 103, 104, 105, 106, + 107, 317, 318, 319, 158, 77, 78, 18, 151, 151, + 151, 118, 119, 120, 121, 18, 151, 156, 18, 18, + 154, 154, 277, 30, 324, 18, 30, 60, 30, 277, + 157, 157, 154, 152, 18, 18, 120, 309, 18, 18, + 288, 152, 18, 21, 21, 317, 318, 319, 5, 6, + 7, 8, 9, 10, 11, 12, 21, 305, 155, 64, + 376, 377, 378, 154, 154, 356, 152, 322, 384, 154, + 39, 30, 154, 154, 322, 323, 324, 154, 154, 154, + 396, 397, 156, 154, 154, 30, 386, 155, 388, 389, + 390, 152, 152, 152, 394, 152, 152, 152, 152, 152, + 152, 152, 152, 30, 376, 377, 378, 15, 154, 15, + 154, 152, 384, 156, 152, 152, 432, 433, 152, 30, + 152, 437, 18, 439, 396, 397, 152, 443, 37, 152, + 152, 152, 152, 449, 450, 451, 152, 152, 386, 387, + 388, 389, 390, 152, 352, 39, 394, 395, 154, 18, + 57, 152, 30, 18, 152, 152, 152, 152, 152, 15, + 432, 433, 152, 154, 152, 437, 414, 439, 484, 485, + 152, 443, 57, 158, 155, 491, 39, 449, 450, 451, + 152, 156, 152, 15, 500, 152, 152, 155, 152, 152, + 152, 152, 440, 493, 494, 495, 15, 155, 158, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 456, 517, + 517, 527, 484, 485, 155, 155, 155, 155, 152, 491, + 15, 15, 104, 104, 104, 525, 255, 104, 500, 545, + 104, 256, 480, 43, 24, 483, 415, 130, 50, 414, + 548, 548, 29, 235, 3, 493, 494, 495, 41, 575, + 499, 499, 440, 420, -1, 527, 572, 573, -1, -1, + -1, 577, -1, -1, 580, -1, -1, -1, -1, -1, + -1, -1, -1, 545, -1, -1, -1, 525, 362, 363, + 364, 365, 366, -1, -1, 369, 370, 371, 372, 373, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 572, 573, -1, -1, -1, 577, -1, -1, 580, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, 19, 20, -1, + -1, -1, -1, -1, 418, 419, 28, -1, 30, -1, + -1, 425, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, + -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 471, 472, 473, + 474, -1, 476, 477, 478, 479, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, -1, 19, 20, -1, -1, -1, -1, -1, + 504, 505, 28, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 536, -1, 538, 539, -1, -1, -1, -1, + -1, 153, -1, -1, 156, -1, -1, 159, -1, 161, + 162, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, + -1, -1, 153, -1, -1, 156, -1, 28, 159, 30, + 161, 162, -1, -1, -1, -1, -1, -1, -1, 40, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, -1, 19, 20, -1, -1, + -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, + 156, -1, -1, 159, -1, 161, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, + -1, 28, -1, 30, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, -1, + 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, + -1, 30, 153, -1, -1, 156, -1, -1, 159, -1, + 161, 40, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, -1, 19, 20, + -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, + 153, -1, -1, 156, -1, 158, 159, -1, 161, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, -1, 19, 20, -1, -1, -1, + -1, -1, -1, -1, 28, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 153, -1, -1, 156, + -1, -1, 159, -1, 161, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, + 28, -1, 30, -1, 153, -1, -1, 156, -1, -1, + 159, -1, 161, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, -1, 19, + 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, + 30, -1, 153, -1, -1, 156, -1, -1, 159, -1, + 161, -1, 27, 28, -1, 30, -1, -1, -1, 34, + 35, 36, -1, -1, -1, -1, -1, 42, 43, 44, + 45, 46, 47, 48, -1, 50, 51, -1, -1, 153, + -1, -1, 156, 58, 59, 159, -1, 161, 63, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, -1, 22, 23, 24, -1, -1, -1, + 28, -1, 30, -1, -1, 153, -1, -1, 156, -1, + -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 153, -1, -1, 156, -1, -1, 159, + -1, 161, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, -1, -1, -1, -1, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + -1, 30, -1, -1, -1, -1, -1, -1, -1, 127, + -1, 129, 130, 131, 132, 133, -1, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 62, -1, -1, -1, -1, 156, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, -1, -1, -1, -1, 17, 18, -1, + -1, 21, 22, 23, 24, 25, 26, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, + 129, 130, 131, 132, 133, -1, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 62, -1, -1, -1, -1, -1, -1, -1, + 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 127, -1, 129, + 130, 131, 132, 133, -1, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 38, -1, -1, -1, -1, -1, -1, -1, 159, + -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 76, + -1, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 122, 123, 124, -1, -1, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150 +}; -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 199, 200, 202, 0, 31, 34, 42, 43, 44, + 45, 46, 47, 48, 63, 180, 215, 217, 219, 28, + 30, 51, 59, 63, 179, 208, 219, 45, 47, 218, + 62, 65, 66, 67, 68, 69, 70, 71, 181, 213, + 29, 225, 226, 227, 52, 53, 54, 72, 205, 151, + 62, 27, 45, 47, 50, 58, 180, 201, 151, 213, + 30, 203, 18, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 19, 20, 153, + 156, 159, 161, 166, 188, 189, 190, 191, 192, 208, + 222, 32, 161, 214, 33, 162, 216, 226, 73, 74, + 75, 77, 78, 79, 179, 228, 229, 231, 151, 151, + 151, 151, 156, 206, 203, 188, 35, 36, 198, 198, + 198, 198, 18, 18, 18, 3, 162, 192, 193, 208, + 154, 163, 3, 190, 224, 4, 15, 5, 6, 7, + 8, 9, 10, 11, 12, 175, 176, 177, 38, 49, + 60, 61, 76, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 122, 123, 124, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 168, 169, 170, 173, 174, 235, 236, 238, + 239, 30, 55, 56, 204, 18, 30, 30, 207, 190, + 190, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 175, 176, 178, 190, 195, 190, 157, 157, + 152, 162, 154, 40, 193, 194, 17, 18, 21, 22, + 23, 24, 25, 26, 62, 100, 101, 127, 129, 135, + 136, 137, 159, 168, 169, 170, 173, 174, 196, 221, + 222, 223, 223, 223, 223, 224, 60, 181, 102, 103, + 104, 105, 106, 107, 118, 119, 120, 121, 171, 25, + 26, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 172, 190, 190, 224, 190, + 190, 232, 224, 224, 224, 224, 224, 190, 190, 190, + 224, 224, 181, 125, 126, 152, 158, 152, 186, 186, + 25, 26, 17, 18, 167, 18, 21, 22, 23, 24, + 156, 159, 161, 164, 196, 222, 186, 186, 192, 192, + 192, 40, 190, 210, 211, 212, 152, 155, 64, 220, + 171, 172, 154, 154, 154, 154, 154, 195, 197, 154, + 154, 154, 154, 154, 152, 152, 188, 190, 190, 152, + 183, 152, 183, 223, 156, 152, 152, 152, 152, 152, + 152, 223, 223, 223, 152, 39, 188, 190, 224, 30, + 37, 57, 184, 187, 158, 197, 197, 162, 197, 30, + 158, 160, 208, 209, 152, 155, 40, 30, 154, 154, + 195, 195, 195, 195, 195, 152, 160, 195, 195, 195, + 195, 195, 15, 15, 223, 223, 223, 10, 57, 10, + 152, 237, 223, 156, 224, 190, 224, 224, 224, 152, + 152, 152, 224, 190, 223, 223, 152, 30, 18, 186, + 158, 160, 162, 40, 210, 184, 185, 152, 195, 195, + 237, 152, 152, 152, 152, 195, 152, 152, 152, 152, + 39, 223, 223, 154, 152, 152, 223, 18, 223, 224, + 233, 152, 223, 152, 152, 152, 223, 223, 223, 154, + 190, 57, 182, 30, 152, 152, 155, 195, 195, 195, + 195, 195, 195, 195, 195, 190, 152, 156, 233, 234, + 223, 223, 152, 183, 183, 152, 223, 152, 224, 224, + 224, 234, 223, 18, 195, 195, 152, 155, 152, 152, + 155, 155, 155, 155, 155, 15, 158, 177, 230, 155, + 155, 155, 224, 158, 223, 155, 155, 155, 195, 195, + 195, 223, 221, 158, 177, 39, 158, 155, 155, 155, + 152, 221, 15, 15, 152, 223, 223, 15, 228, 223, + 15, 223 +}; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ + +#define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ while (0) + #define YYTERROR 1 #define YYERRCODE 256 -#ifndef YYPURE -#define YYLEX yylex() + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) #endif -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif #endif -#else /* not YYLSP_NEEDED */ + + +/* YYLEX -- calling `yylex' with the right arguments. */ + #ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) +# define YYLEX yylex (YYLEX_PARAM) #else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ +# define YYLEX yylex () #endif -/* If nonreentrant, generate the variables here */ +/* Enable debugging if requested. */ +#if YYDEBUG -#ifndef YYPURE +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; #endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; #endif +{ + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ -/* YYINITDEPTH indicates the initial size of the parser's stacks */ +/* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH -#define YYINITDEPTH 200 +# define YYINITDEPTH 200 #endif -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 +# define YYMAXDEPTH 10000 #endif + -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) -#else /* not GNU C or C++ */ -#ifndef __cplusplus -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif +{ + const char *yys = yystr; + + while (*yys++ != '\0') + continue; - while (i-- > 0) - *t++ = *f++; + return yys - yystr - 1; } +# endif +# endif -#else /* __cplusplus */ +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif +{ + char *yyd = yydest; + const char *yys = yysrc; -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) { - register char *t = to; - register char *f = from; - register int i = count; + if (*yystr == '"') + { + size_t yyn = 0; + char const *yyp = yystr; - while (i-- > 0) - *t++ = *f++; + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; } +# endif + +#endif /* YYERROR_VERBOSE */ + + + +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; #endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; #endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} -#line 217 "/usr/share/bison.simple" -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -#ifdef __cplusplus -#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -#define YYPARSE_PARAM_DECL -#else /* not __cplusplus */ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM -#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + +/* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + + +/*----------. +| yyparse. | +`----------*/ -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ #ifdef YYPARSE_PARAM -int yyparse (void *); +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) #else -int yyparse (void); +int +yyparse () + #endif #endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL { - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else #define YYPOPSTACK (yyvsp--, yyssp--) -#endif - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; + YYSIZE_T yystacksize = YYINITDEPTH; -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ int yylen; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; @@ -1498,1532 +2204,1639 @@ so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss - 1; + yyssp = yyss; yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: + goto yysetstate; - *++yyssp = yystate; +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif + yysetstate: + *yyssp = yystate; + if (yyss + yystacksize - 1 <= yyssp) + { /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; + YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif #endif /* no yyoverflow */ - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - if (yyssp >= yyss + yystacksize - 1) + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; - yybackup: + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: /* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ +/* Read a look-ahead token if we need one and don't already have one. */ /* yyresume: */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif + YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; yystate = yyn; goto yynewstate; -/* Do the default action for the current state. */ -yydefault: +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; + goto yyreduce; -/* Do a reduction. yyn is the number of a rule to reduce with. */ + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ yyreduce: + /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ -#if YYDEBUG != 0 - if (yydebug) + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int i; + case 81: +#line 358 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[-1].String); + ;} + break; - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 80: -#line 358 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[-1].String; - ; - break;} -case 81: -#line 361 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = new std::string(""); - ; - break;} -case 89: -#line 368 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(""); ; - break;} -case 96: -#line 373 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 97: -#line 378 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(""); ; - break;} -case 98: -#line 383 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 99: -#line 384 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ *yyvsp[-1].String += " " + *yyvsp[0].String; delete yyvsp[0].String; yyval.String = yyvsp[-1].String; ; - break;} -case 100: -#line 387 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 101: -#line 388 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-1].String->insert(0, ", "); - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 102: -#line 396 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 103: -#line 402 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 105: -#line 406 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 106: -#line 407 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-1].String->insert(0, ", "); - if (!yyvsp[0].String->empty()) - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 108: -#line 417 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 126: -#line 439 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Type.newTy = yyvsp[0].String; - yyval.Type.oldTy = OpaqueTy; - ; - break;} -case 127: -#line 443 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Type.newTy = yyvsp[0].String; - yyval.Type.oldTy = UnresolvedTy; - ; - break;} -case 128: -#line 447 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Type = yyvsp[0].Type; - ; - break;} -case 129: -#line 450 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Type UpReference - yyvsp[0].String->insert(0, "\\"); - yyval.Type.newTy = yyvsp[0].String; - yyval.Type.oldTy = NumericTy; - ; - break;} -case 130: -#line 455 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Function derived type? - *yyvsp[-3].Type.newTy += "( " + *yyvsp[-1].String + " )"; - delete yyvsp[-1].String; - yyval.Type.newTy = yyvsp[-3].Type.newTy; - yyval.Type.oldTy = FunctionTy; - ; - break;} -case 131: -#line 461 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Sized array type? - yyvsp[-3].String->insert(0,"[ "); - *yyvsp[-3].String += " x " + *yyvsp[-1].Type.newTy + " ]"; - delete yyvsp[-1].Type.newTy; - yyval.Type.newTy = yyvsp[-3].String; - yyval.Type.oldTy = ArrayTy; - yyval.Type.elemTy = yyvsp[-1].Type.oldTy; - ; - break;} -case 132: -#line 469 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Packed array type? - yyvsp[-3].String->insert(0,"< "); - *yyvsp[-3].String += " x " + *yyvsp[-1].Type.newTy + " >"; - delete yyvsp[-1].Type.newTy; - yyval.Type.newTy = yyvsp[-3].String; - yyval.Type.oldTy = PackedTy; - yyval.Type.elemTy = yyvsp[-1].Type.oldTy; - ; - break;} -case 133: -#line 477 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Structure type? - yyvsp[-1].String->insert(0, "{ "); - *yyvsp[-1].String += " }"; - yyval.Type.newTy = yyvsp[-1].String; - yyval.Type.oldTy = StructTy; - ; - break;} -case 134: -#line 483 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Empty structure type? - yyval.Type.newTy = new std::string("{}"); - yyval.Type.oldTy = StructTy; - ; - break;} -case 135: -#line 487 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Pointer type? - *yyvsp[-1].Type.newTy += '*'; - yyval.Type.elemTy = yyvsp[-1].Type.oldTy; - yyvsp[-1].Type.oldTy = PointerTy; - yyval.Type = yyvsp[-1].Type; - ; - break;} -case 136: -#line 498 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[0].Type.newTy; - ; - break;} -case 137: -#line 501 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", " + *yyvsp[0].Type.newTy; - delete yyvsp[0].Type.newTy; - yyval.String = yyvsp[-2].String; - ; - break;} -case 139: -#line 510 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", ..."; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 140: -#line 515 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[0].String; - ; - break;} -case 141: -#line 518 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = new std::string(); - ; - break;} -case 142: -#line 528 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Nonempty unsized arr - yyval.Const.type = yyvsp[-3].Type; - yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); - *yyval.Const.cnst += " [ " + *yyvsp[-1].String + " ]"; - delete yyvsp[-1].String; - ; - break;} -case 143: -#line 534 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-2].Type; - yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); - *yyval.Const.cnst += "[ ]"; - ; - break;} -case 144: -#line 539 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-2].Type; - yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); - *yyval.Const.cnst += " c" + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 145: -#line 545 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Nonempty unsized arr - yyval.Const.type = yyvsp[-3].Type; - yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); - *yyval.Const.cnst += " < " + *yyvsp[-1].String + " >"; - delete yyvsp[-1].String; - ; - break;} -case 146: -#line 551 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-3].Type; - yyval.Const.cnst = new std::string(*yyvsp[-3].Type.newTy); - *yyval.Const.cnst += " { " + *yyvsp[-1].String + " }"; - delete yyvsp[-1].String; - ; - break;} -case 147: -#line 557 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-2].Type; - yyval.Const.cnst = new std::string(*yyvsp[-2].Type.newTy); - *yyval.Const.cnst += " {}"; - ; - break;} -case 148: -#line 562 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 149: -#line 568 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 150: -#line 574 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 151: -#line 580 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 152: -#line 586 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 153: -#line 592 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // integral constants - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 154: -#line 598 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // integral constants - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 155: -#line 604 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Boolean constants - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 156: -#line 610 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Boolean constants - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 157: -#line 616 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Float & Double constants - yyval.Const.type = yyvsp[-1].Type; - yyval.Const.cnst = new std::string(*yyvsp[-1].Type.newTy); - *yyval.Const.cnst += " " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 158: -#line 624 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - std::string source = *yyvsp[-3].Const.cnst; - TypeInfo DstTy = yyvsp[-1].Type; + case 82: +#line 361 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = new std::string(""); + ;} + break; + + case 90: +#line 368 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(""); ;} + break; + + case 97: +#line 373 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 98: +#line 378 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(""); ;} + break; + + case 99: +#line 383 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 100: +#line 384 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;} + break; + + case 101: +#line 387 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 102: +#line 388 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-1].String)->insert(0, ", "); + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 103: +#line 396 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 104: +#line 402 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 106: +#line 406 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 107: +#line 407 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-1].String)->insert(0, ", "); + if (!(yyvsp[0].String)->empty()) + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 109: +#line 417 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 127: +#line 439 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Type).newTy = (yyvsp[0].String); + (yyval.Type).oldTy = OpaqueTy; + ;} + break; + + case 128: +#line 443 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Type).newTy = (yyvsp[0].String); + (yyval.Type).oldTy = UnresolvedTy; + ;} + break; + + case 129: +#line 447 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Type) = (yyvsp[0].Type); + ;} + break; + + case 130: +#line 450 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Type UpReference + (yyvsp[0].String)->insert(0, "\\"); + (yyval.Type).newTy = (yyvsp[0].String); + (yyval.Type).oldTy = NumericTy; + ;} + break; + + case 131: +#line 455 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Function derived type? + *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )"; + delete (yyvsp[-1].String); + (yyval.Type).newTy = (yyvsp[-3].Type).newTy; + (yyval.Type).oldTy = FunctionTy; + ;} + break; + + case 132: +#line 461 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Sized array type? + (yyvsp[-3].String)->insert(0,"[ "); + *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]"; + delete (yyvsp[-1].Type).newTy; + (yyval.Type).newTy = (yyvsp[-3].String); + (yyval.Type).oldTy = ArrayTy; + (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; + ;} + break; + + case 133: +#line 469 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Packed array type? + (yyvsp[-3].String)->insert(0,"< "); + *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >"; + delete (yyvsp[-1].Type).newTy; + (yyval.Type).newTy = (yyvsp[-3].String); + (yyval.Type).oldTy = PackedTy; + (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; + ;} + break; + + case 134: +#line 477 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Structure type? + (yyvsp[-1].String)->insert(0, "{ "); + *(yyvsp[-1].String) += " }"; + (yyval.Type).newTy = (yyvsp[-1].String); + (yyval.Type).oldTy = StructTy; + ;} + break; + + case 135: +#line 483 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Empty structure type? + (yyval.Type).newTy = new std::string("{}"); + (yyval.Type).oldTy = StructTy; + ;} + break; + + case 136: +#line 487 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Pointer type? + *(yyvsp[-1].Type).newTy += '*'; + (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy; + (yyvsp[-1].Type).oldTy = PointerTy; + (yyval.Type) = (yyvsp[-1].Type); + ;} + break; + + case 137: +#line 498 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[0].Type).newTy; + ;} + break; + + case 138: +#line 501 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy; + delete (yyvsp[0].Type).newTy; + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 140: +#line 510 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", ..."; + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 141: +#line 515 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[0].String); + ;} + break; + + case 142: +#line 518 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = new std::string(); + ;} + break; + + case 143: +#line 528 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Nonempty unsized arr + (yyval.Const).type = (yyvsp[-3].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); + *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]"; + delete (yyvsp[-1].String); + ;} + break; + + case 144: +#line 534 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-2].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); + *(yyval.Const).cnst += "[ ]"; + ;} + break; + + case 145: +#line 539 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-2].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); + *(yyval.Const).cnst += " c" + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 146: +#line 545 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Nonempty unsized arr + (yyval.Const).type = (yyvsp[-3].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); + *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >"; + delete (yyvsp[-1].String); + ;} + break; + + case 147: +#line 551 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-3].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy); + *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }"; + delete (yyvsp[-1].String); + ;} + break; + + case 148: +#line 557 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-2].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy); + *(yyval.Const).cnst += " {}"; + ;} + break; + + case 149: +#line 562 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 150: +#line 568 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 151: +#line 574 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 152: +#line 580 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 153: +#line 586 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 154: +#line 592 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // integral constants + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 155: +#line 598 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // integral constants + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 156: +#line 604 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Boolean constants + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 157: +#line 610 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Boolean constants + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 158: +#line 616 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Float & Double constants + (yyval.Const).type = (yyvsp[-1].Type); + (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy); + *(yyval.Const).cnst += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 159: +#line 624 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + std::string source = *(yyvsp[-3].Const).cnst; + TypeInfo DstTy = (yyvsp[-1].Type); ResolveType(DstTy); - if (*yyvsp[-5].String == "cast") { + if (*(yyvsp[-5].String) == "cast") { // Call getCastUpgrade to upgrade the old cast - yyval.String = new std::string(getCastUpgrade(source, yyvsp[-3].Const.type, yyvsp[-1].Type, true)); + (yyval.String) = new std::string(getCastUpgrade(source, (yyvsp[-3].Const).type, (yyvsp[-1].Type), true)); } else { // Nothing to upgrade, just create the cast constant expr - yyval.String = new std::string(*yyvsp[-5].String); - *yyval.String += "( " + source + " to " + *yyvsp[-1].Type.newTy + ")"; + (yyval.String) = new std::string(*(yyvsp[-5].String)); + *(yyval.String) += "( " + source + " to " + *(yyvsp[-1].Type).newTy + ")"; } - delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); - ; - break;} -case 159: -#line 638 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-4].String += "(" + *yyvsp[-2].Const.cnst; - for (unsigned i = 0; i < yyvsp[-1].ValList->size(); ++i) { - ValueInfo& VI = (*yyvsp[-1].ValList)[i]; - *yyvsp[-4].String += ", " + *VI.val; + delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); + ;} + break; + + case 160: +#line 638 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst; + for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { + ValueInfo& VI = (*(yyvsp[-1].ValList))[i]; + *(yyvsp[-4].String) += ", " + *VI.val; VI.destroy(); } - *yyvsp[-4].String += ")"; - yyval.String = yyvsp[-4].String; - yyvsp[-2].Const.destroy(); - delete yyvsp[-1].ValList; - ; - break;} -case 160: -#line 650 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-7].String; - ; - break;} -case 161: -#line 655 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - const char* op = getDivRemOpcode(*yyvsp[-5].String, yyvsp[-3].Const.type); - yyval.String = new std::string(op); - *yyval.String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - ; - break;} -case 162: -#line 661 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 163: -#line 666 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ + *(yyvsp[-4].String) += ")"; + (yyval.String) = (yyvsp[-4].String); + (yyvsp[-2].Const).destroy(); + delete (yyvsp[-1].ValList); + ;} + break; + + case 161: +#line 650 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-7].String); + ;} + break; + + case 162: +#line 655 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type); + (yyval.String) = new std::string(op); + *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + ;} + break; + + case 163: +#line 661 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 164: +#line 666 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { #if UPGRADE_SETCOND_OPS - *yyvsp[-5].String = getCompareOp(*yyvsp[-5].String, yyvsp[-3].Const.type); + *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type); #endif - *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 164: -#line 674 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-6].String += "(" + *yyvsp[-5].String + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-6].String; - ; - break;} -case 165: -#line 679 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-6].String += "(" + *yyvsp[-5].String + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-6].String; - ; - break;} -case 166: -#line 684 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - const char* shiftop = yyvsp[-5].String->c_str(); - if (*yyvsp[-5].String == "shr") - shiftop = (yyvsp[-3].Const.type.isUnsigned()) ? "lshr" : "ashr"; - yyval.String = new std::string(shiftop); - *yyval.String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - delete yyvsp[-5].String; yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - ; - break;} -case 167: -#line 692 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += "(" + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 168: -#line 697 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-7].String; - ; - break;} -case 169: -#line 702 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-7].String += "(" + *yyvsp[-5].Const.cnst + "," + *yyvsp[-3].Const.cnst + "," + *yyvsp[-1].Const.cnst + ")"; - yyvsp[-5].Const.destroy(); yyvsp[-3].Const.destroy(); yyvsp[-1].Const.destroy(); - yyval.String = yyvsp[-7].String; - ; - break;} -case 170: -#line 712 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", " + *yyvsp[0].Const.cnst; - yyvsp[0].Const.destroy(); - yyval.String = yyvsp[-2].String; - ; - break;} -case 171: -#line 717 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(*yyvsp[0].Const.cnst); yyvsp[0].Const.destroy(); ; - break;} -case 174: -#line 732 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ -; - break;} -case 175: -#line 737 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = 0; - ; - break;} -case 176: -#line 740 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 177: -#line 745 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << "module asm " << " " << *yyvsp[0].String << "\n"; - yyval.String = 0; - ; - break;} -case 178: -#line 749 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ + *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 165: +#line 674 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 166: +#line 679 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 167: +#line 684 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + const char* shiftop = (yyvsp[-5].String)->c_str(); + if (*(yyvsp[-5].String) == "shr") + shiftop = ((yyvsp[-3].Const).type.isUnsigned()) ? "lshr" : "ashr"; + (yyval.String) = new std::string(shiftop); + *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + ;} + break; + + case 168: +#line 692 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 169: +#line 697 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-7].String); + ;} + break; + + case 170: +#line 702 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")"; + (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy(); + (yyval.String) = (yyvsp[-7].String); + ;} + break; + + case 171: +#line 712 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst; + (yyvsp[0].Const).destroy(); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 172: +#line 717 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;} + break; + + case 175: +#line 732 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { +;} + break; + + case 176: +#line 737 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = 0; + ;} + break; + + case 177: +#line 740 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 178: +#line 745 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << "module asm " << " " << *(yyvsp[0].String) << "\n"; + (yyval.String) = 0; + ;} + break; + + case 179: +#line 749 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { *O << "implementation\n"; - yyval.String = 0; - ; - break;} -case 179: -#line 753 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = 0; ; - break;} -case 181: -#line 755 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = yyvsp[0].String; *yyval.String = "external"; ; - break;} -case 182: -#line 758 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - EnumeratedTypes.push_back(yyvsp[0].Type); - if (!yyvsp[-2].String->empty()) { - NamedTypes[*yyvsp[-2].String].newTy = new std::string(*yyvsp[0].Type.newTy); - NamedTypes[*yyvsp[-2].String].oldTy = yyvsp[0].Type.oldTy; - NamedTypes[*yyvsp[-2].String].elemTy = yyvsp[0].Type.elemTy; - *O << *yyvsp[-2].String << " = "; - } - *O << "type " << *yyvsp[0].Type.newTy << "\n"; - delete yyvsp[-2].String; delete yyvsp[-1].String; yyvsp[0].Type.destroy(); - yyval.String = 0; - ; - break;} -case 183: -#line 770 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Function prototypes can be in const pool - *O << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 184: -#line 775 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Asm blocks can be in the const pool - *O << *yyvsp[-2].String << " " << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-2].String; delete yyvsp[-1].String; delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 185: -#line 780 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-4].String->empty()) { - *O << *yyvsp[-4].String << " = "; - Globals[*yyvsp[-4].String] = yyvsp[-1].Const.type.clone(); - } - *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Const.cnst << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Const.destroy(); delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 186: -#line 789 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-4].String->empty()) { - *O << *yyvsp[-4].String << " = "; - Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); - } - *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 187: -#line 798 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-4].String->empty()) { - *O << *yyvsp[-4].String << " = "; - Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); - } - *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 188: -#line 807 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-4].String->empty()) { - *O << *yyvsp[-4].String << " = "; - Globals[*yyvsp[-4].String] = yyvsp[-1].Type.clone(); - } - *O << *yyvsp[-3].String << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-4].String; delete yyvsp[-3].String; delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 189: -#line 816 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-1].String; delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 190: -#line 821 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << *yyvsp[-2].String << " = " << *yyvsp[0].String << "\n"; - delete yyvsp[-2].String; delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 191: -#line 826 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = 0; - ; - break;} -case 195: -#line 836 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " = " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 196: -#line 841 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " = " + *yyvsp[0].String; - if (*yyvsp[0].String == "64") + (yyval.String) = 0; + ;} + break; + + case 180: +#line 753 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = 0; ;} + break; + + case 182: +#line 755 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;} + break; + + case 183: +#line 758 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + EnumeratedTypes.push_back((yyvsp[0].Type)); + if (!(yyvsp[-2].String)->empty()) { + NamedTypes[*(yyvsp[-2].String)].newTy = new std::string(*(yyvsp[0].Type).newTy); + NamedTypes[*(yyvsp[-2].String)].oldTy = (yyvsp[0].Type).oldTy; + NamedTypes[*(yyvsp[-2].String)].elemTy = (yyvsp[0].Type).elemTy; + *O << *(yyvsp[-2].String) << " = "; + } + *O << "type " << *(yyvsp[0].Type).newTy << "\n"; + delete (yyvsp[-2].String); delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); + (yyval.String) = 0; + ;} + break; + + case 184: +#line 770 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Function prototypes can be in const pool + *O << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 185: +#line 775 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Asm blocks can be in the const pool + *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 186: +#line 780 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-4].String)->empty()) { + *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Const).type.clone(); + } + *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 187: +#line 789 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-4].String)->empty()) { + *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } + *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 188: +#line 798 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-4].String)->empty()) { + *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } + *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 189: +#line 807 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-4].String)->empty()) { + *O << *(yyvsp[-4].String) << " = "; + Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone(); + } + *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 190: +#line 816 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-1].String); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 191: +#line 821 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-2].String); delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 192: +#line 826 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = 0; + ;} + break; + + case 196: +#line 836 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 197: +#line 841 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); + if (*(yyvsp[0].String) == "64") SizeOfPointer = 64; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 197: -#line 848 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " = " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 198: -#line 853 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " = " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 199: -#line 860 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-1].String->insert(0, "[ "); - *yyvsp[-1].String += " ]"; - yyval.String = yyvsp[-1].String; - ; - break;} -case 200: -#line 867 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 202: -#line 873 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = new std::string(); - ; - break;} -case 206: -#line 882 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 207: -#line 884 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[-1].Type.newTy; - if (!yyvsp[0].String->empty()) - *yyval.String += " " + *yyvsp[0].String; - delete yyvsp[0].String; -; - break;} -case 208: -#line 891 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", " + *yyvsp[0].String; - delete yyvsp[0].String; - ; - break;} -case 209: -#line 895 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[0].String; - ; - break;} -case 210: -#line 899 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[0].String; - ; - break;} -case 211: -#line 902 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += ", ..."; - yyval.String = yyvsp[-2].String; - delete yyvsp[0].String; - ; - break;} -case 212: -#line 907 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = yyvsp[0].String; - ; - break;} -case 213: -#line 910 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 214: -#line 913 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-7].String->empty()) { - *yyvsp[-7].String += " "; - } - *yyvsp[-7].String += *yyvsp[-6].Type.newTy + " " + *yyvsp[-5].String + "(" + *yyvsp[-3].String + ")"; - if (!yyvsp[-1].String->empty()) { - *yyvsp[-7].String += " " + *yyvsp[-1].String; - } - if (!yyvsp[0].String->empty()) { - *yyvsp[-7].String += " " + *yyvsp[0].String; - } - yyvsp[-6].Type.destroy(); - delete yyvsp[-5].String; - delete yyvsp[-3].String; - delete yyvsp[-1].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-7].String; - ; - break;} -case 215: -#line 932 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string("{"); delete yyvsp[0].String; ; - break;} -case 216: -#line 933 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string ("{"); ; - break;} -case 217: -#line 935 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-2].String->empty()) { - *O << *yyvsp[-2].String << " "; + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 198: +#line 848 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 199: +#line 853 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " = " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 200: +#line 860 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-1].String)->insert(0, "[ "); + *(yyvsp[-1].String) += " ]"; + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 201: +#line 867 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 203: +#line 873 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = new std::string(); + ;} + break; + + case 207: +#line 882 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 208: +#line 884 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[-1].Type).newTy; + if (!(yyvsp[0].String)->empty()) + *(yyval.String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); +;} + break; + + case 209: +#line 891 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", " + *(yyvsp[0].String); + delete (yyvsp[0].String); + ;} + break; + + case 210: +#line 895 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[0].String); + ;} + break; + + case 211: +#line 899 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[0].String); + ;} + break; + + case 212: +#line 902 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += ", ..."; + (yyval.String) = (yyvsp[-2].String); + delete (yyvsp[0].String); + ;} + break; + + case 213: +#line 907 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = (yyvsp[0].String); + ;} + break; + + case 214: +#line 910 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 215: +#line 913 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-7].String)->empty()) { + *(yyvsp[-7].String) += " "; + } + *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")"; + if (!(yyvsp[-1].String)->empty()) { + *(yyvsp[-7].String) += " " + *(yyvsp[-1].String); + } + if (!(yyvsp[0].String)->empty()) { + *(yyvsp[-7].String) += " " + *(yyvsp[0].String); + } + (yyvsp[-6].Type).destroy(); + delete (yyvsp[-5].String); + delete (yyvsp[-3].String); + delete (yyvsp[-1].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-7].String); + ;} + break; + + case 216: +#line 932 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;} + break; + + case 217: +#line 933 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string ("{"); ;} + break; + + case 218: +#line 935 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-2].String)->empty()) { + *O << *(yyvsp[-2].String) << " "; } - *O << *yyvsp[-1].String << " " << *yyvsp[0].String << "\n"; - delete yyvsp[-2].String; delete yyvsp[-1].String; delete yyvsp[0].String; - yyval.String = 0; -; - break;} -case 218: -#line 944 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string("}"); delete yyvsp[0].String; ; - break;} -case 219: -#line 945 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string("}"); ; - break;} -case 220: -#line 947 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (yyvsp[-1].String) - *O << *yyvsp[-1].String; - *O << '\n' << *yyvsp[0].String << "\n"; - yyval.String = 0; -; - break;} -case 221: -#line 955 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 224: -#line 961 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-1].String->empty()) - *yyvsp[-2].String += " " + *yyvsp[-1].String; - *yyvsp[-2].String += " " + *yyvsp[0].String; - delete yyvsp[-1].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 225: -#line 974 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 235: -#line 980 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-1].String->insert(0, "<"); - *yyvsp[-1].String += ">"; - yyval.String = yyvsp[-1].String; - ; - break;} -case 237: -#line 986 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-3].String->empty()) { - *yyvsp[-4].String += " " + *yyvsp[-3].String; - } - *yyvsp[-4].String += " " + *yyvsp[-2].String + ", " + *yyvsp[0].String; - delete yyvsp[-3].String; delete yyvsp[-2].String; delete yyvsp[0].String; - yyval.String = yyvsp[-4].String; - ; - break;} -case 240: -#line 999 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Value.val = yyvsp[0].String; - yyval.Value.constant = false; - yyval.Value.type.newTy = 0; - yyval.Value.type.oldTy = UnresolvedTy; - ; - break;} -case 241: -#line 1005 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Value.val = yyvsp[0].String; - yyval.Value.constant = true; - yyval.Value.type.newTy = 0; - yyval.Value.type.oldTy = UnresolvedTy; - ; - break;} -case 242: -#line 1016 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.Value = yyvsp[0].Value; - yyval.Value.type = yyvsp[-1].Type; - yyval.Value.val->insert(0, *yyvsp[-1].Type.newTy + " "); - ; - break;} -case 243: -#line 1022 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = 0; - ; - break;} -case 244: -#line 1025 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Do not allow functions with 0 basic blocks - yyval.String = 0; - ; - break;} -case 245: -#line 1033 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = 0; - ; - break;} -case 246: -#line 1037 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 247: -#line 1042 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.String = 0; - ; - break;} -case 248: -#line 1045 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 250: -#line 1051 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = yyvsp[0].String; *yyval.String = "unwind"; ; - break;} -case 251: -#line 1053 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Return with a result... - *O << " " << *yyvsp[-1].String << " " << *yyvsp[0].Value.val << "\n"; - delete yyvsp[-1].String; yyvsp[0].Value.destroy(); - yyval.String = 0; - ; - break;} -case 252: -#line 1058 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Return with no result... - *O << " " << *yyvsp[-1].String << " " << *yyvsp[0].Type.newTy << "\n"; - delete yyvsp[-1].String; yyvsp[0].Type.destroy(); - yyval.String = 0; - ; - break;} -case 253: -#line 1063 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Unconditional Branch... - *O << " " << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].Value.val << "\n"; - delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = 0; - ; - break;} -case 254: -#line 1068 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[-8].String << " " << *yyvsp[-7].Type.newTy << " " << *yyvsp[-6].Value.val << ", " - << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << ", " << *yyvsp[-1].Type.newTy << " " - << *yyvsp[0].Value.val << "\n"; - delete yyvsp[-8].String; yyvsp[-7].Type.destroy(); yyvsp[-6].Value.destroy(); yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); - yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = 0; - ; - break;} -case 255: -#line 1076 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[-8].String << " " << *yyvsp[-7].Type.newTy << " " << *yyvsp[-6].Value.val << ", " - << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << " [" << *yyvsp[-1].String << " ]\n"; - delete yyvsp[-8].String; yyvsp[-7].Type.destroy(); yyvsp[-6].Value.destroy(); yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); - delete yyvsp[-1].String; - yyval.String = 0; - ; - break;} -case 256: -#line 1083 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[-7].String << " " << *yyvsp[-6].Type.newTy << " " << *yyvsp[-5].Value.val << ", " - << *yyvsp[-3].Type.newTy << " " << *yyvsp[-2].Value.val << "[]\n"; - delete yyvsp[-7].String; yyvsp[-6].Type.destroy(); yyvsp[-5].Value.destroy(); yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); - yyval.String = 0; - ; - break;} -case 257: -#line 1090 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ + *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); + (yyval.String) = 0; +;} + break; + + case 219: +#line 944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;} + break; + + case 220: +#line 945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string("}"); ;} + break; + + case 221: +#line 947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if ((yyvsp[-1].String)) + *O << *(yyvsp[-1].String); + *O << '\n' << *(yyvsp[0].String) << "\n"; + (yyval.String) = 0; +;} + break; + + case 222: +#line 955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 225: +#line 961 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-1].String)->empty()) + *(yyvsp[-2].String) += " " + *(yyvsp[-1].String); + *(yyvsp[-2].String) += " " + *(yyvsp[0].String); + delete (yyvsp[-1].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 226: +#line 974 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 236: +#line 980 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-1].String)->insert(0, "<"); + *(yyvsp[-1].String) += ">"; + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 238: +#line 986 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-3].String)->empty()) { + *(yyvsp[-4].String) += " " + *(yyvsp[-3].String); + } + *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String); + delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-4].String); + ;} + break; + + case 241: +#line 999 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Value).val = (yyvsp[0].String); + (yyval.Value).constant = false; + (yyval.Value).type.newTy = 0; + (yyval.Value).type.oldTy = UnresolvedTy; + ;} + break; + + case 242: +#line 1005 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Value).val = (yyvsp[0].String); + (yyval.Value).constant = true; + (yyval.Value).type.newTy = 0; + (yyval.Value).type.oldTy = UnresolvedTy; + ;} + break; + + case 243: +#line 1016 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.Value) = (yyvsp[0].Value); + (yyval.Value).type = (yyvsp[-1].Type); + (yyval.Value).val->insert(0, *(yyvsp[-1].Type).newTy + " "); + ;} + break; + + case 244: +#line 1022 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = 0; + ;} + break; + + case 245: +#line 1025 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Do not allow functions with 0 basic blocks + (yyval.String) = 0; + ;} + break; + + case 246: +#line 1033 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = 0; + ;} + break; + + case 247: +#line 1037 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 248: +#line 1042 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.String) = 0; + ;} + break; + + case 249: +#line 1045 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 251: +#line 1051 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;} + break; + + case 252: +#line 1053 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Return with a result... + *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n"; + delete (yyvsp[-1].String); (yyvsp[0].Value).destroy(); + (yyval.String) = 0; + ;} + break; + + case 253: +#line 1058 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Return with no result... + *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n"; + delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); + (yyval.String) = 0; + ;} + break; + + case 254: +#line 1063 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Unconditional Branch... + *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; + delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = 0; + ;} + break; + + case 255: +#line 1068 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " + << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " " + << *(yyvsp[0].Value).val << "\n"; + delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); + (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = 0; + ;} + break; + + case 256: +#line 1076 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", " + << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n"; + delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); + delete (yyvsp[-1].String); + (yyval.String) = 0; + ;} + break; + + case 257: +#line 1083 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", " + << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n"; + delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); (yyvsp[-5].Value).destroy(); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); + (yyval.String) = 0; + ;} + break; + + case 258: +#line 1090 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { *O << " "; - if (!yyvsp[-13].String->empty()) - *O << *yyvsp[-13].String << " = "; - *O << *yyvsp[-12].String << " " << *yyvsp[-11].String << " " << *yyvsp[-10].Type.newTy << " " << *yyvsp[-9].Value.val << " ("; - for (unsigned i = 0; i < yyvsp[-7].ValList->size(); ++i) { - ValueInfo& VI = (*yyvsp[-7].ValList)[i]; + if (!(yyvsp[-13].String)->empty()) + *O << *(yyvsp[-13].String) << " = "; + *O << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].Value).val << " ("; + for (unsigned i = 0; i < (yyvsp[-7].ValList)->size(); ++i) { + ValueInfo& VI = (*(yyvsp[-7].ValList))[i]; *O << *VI.val; - if (i+1 < yyvsp[-7].ValList->size()) + if (i+1 < (yyvsp[-7].ValList)->size()) *O << ", "; VI.destroy(); } - *O << ") " << *yyvsp[-5].String << " " << *yyvsp[-4].Type.newTy << " " << *yyvsp[-3].Value.val << " " - << *yyvsp[-2].String << " " << *yyvsp[-1].Type.newTy << " " << *yyvsp[0].Value.val << "\n"; - delete yyvsp[-13].String; delete yyvsp[-12].String; delete yyvsp[-11].String; yyvsp[-10].Type.destroy(); yyvsp[-9].Value.destroy(); delete yyvsp[-7].ValList; - delete yyvsp[-5].String; yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); - yyvsp[0].Value.destroy(); - yyval.String = 0; - ; - break;} -case 258: -#line 1109 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 259: -#line 1114 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *O << " " << *yyvsp[0].String << "\n"; - delete yyvsp[0].String; - yyval.String = 0; - ; - break;} -case 260: -#line 1120 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + " " + *yyvsp[-3].String + ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; - yyvsp[-4].Type.destroy(); delete yyvsp[-3].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 261: -#line 1125 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-3].String->insert(0, *yyvsp[-4].Type.newTy + " " ); - *yyvsp[-3].String += ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; - yyvsp[-4].Type.destroy(); yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-3].String; - ; - break;} -case 262: -#line 1133 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-1].String->empty()) - *yyvsp[-1].String += " = "; - *yyvsp[-1].String += *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 263: -#line 1142 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ // Used for PHI nodes - yyvsp[-3].Value.val->insert(0, *yyvsp[-5].Type.newTy + "["); - *yyvsp[-3].Value.val += "," + *yyvsp[-1].Value.val + "]"; - yyvsp[-5].Type.destroy(); yyvsp[-1].Value.destroy(); - yyval.String = new std::string(*yyvsp[-3].Value.val); - yyvsp[-3].Value.destroy(); - ; - break;} -case 264: -#line 1149 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-6].String += ", [" + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + "]"; - yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); - yyval.String = yyvsp[-6].String; - ; - break;} -case 265: -#line 1157 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyval.ValList = new ValueList(); - yyval.ValList->push_back(yyvsp[0].Value); - ; - break;} -case 266: -#line 1161 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - yyvsp[-2].ValList->push_back(yyvsp[0].Value); - yyval.ValList = yyvsp[-2].ValList; - ; - break;} -case 267: -#line 1168 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.ValList = yyvsp[0].ValList; ; - break;} -case 268: -#line 1169 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.ValList = new ValueList(); ; - break;} -case 269: -#line 1173 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 271: -#line 1181 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - const char* op = getDivRemOpcode(*yyvsp[-4].String, yyvsp[-3].Type); - yyval.String = new std::string(op); - *yyval.String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - delete yyvsp[-4].String; yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - ; - break;} -case 272: -#line 1187 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-4].String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-4].String; - ; - break;} -case 273: -#line 1192 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ + *O << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " " + << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n"; + delete (yyvsp[-13].String); delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); (yyvsp[-9].Value).destroy(); delete (yyvsp[-7].ValList); + delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); + (yyvsp[0].Value).destroy(); + (yyval.String) = 0; + ;} + break; + + case 259: +#line 1109 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 260: +#line 1114 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *O << " " << *(yyvsp[0].String) << "\n"; + delete (yyvsp[0].String); + (yyval.String) = 0; + ;} + break; + + case 261: +#line 1120 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; + (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 262: +#line 1125 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " ); + *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; + (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-3].String); + ;} + break; + + case 263: +#line 1133 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-1].String)->empty()) + *(yyvsp[-1].String) += " = "; + *(yyvsp[-1].String) += *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 264: +#line 1142 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Used for PHI nodes + (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "["); + *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]"; + (yyvsp[-5].Type).destroy(); (yyvsp[-1].Value).destroy(); + (yyval.String) = new std::string(*(yyvsp[-3].Value).val); + (yyvsp[-3].Value).destroy(); + ;} + break; + + case 265: +#line 1149 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]"; + (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 266: +#line 1157 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyval.ValList) = new ValueList(); + (yyval.ValList)->push_back((yyvsp[0].Value)); + ;} + break; + + case 267: +#line 1161 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + (yyvsp[-2].ValList)->push_back((yyvsp[0].Value)); + (yyval.ValList) = (yyvsp[-2].ValList); + ;} + break; + + case 268: +#line 1168 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.ValList) = (yyvsp[0].ValList); ;} + break; + + case 269: +#line 1169 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.ValList) = new ValueList(); ;} + break; + + case 270: +#line 1173 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 272: +#line 1181 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type)); + (yyval.String) = new std::string(op); + *(yyval.String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + delete (yyvsp[-4].String); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + ;} + break; + + case 273: +#line 1187 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-4].String); + ;} + break; + + case 274: +#line 1192 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { #if UPGRADE_SETCOND_OPS - *yyvsp[-4].String = getCompareOp(*yyvsp[-4].String, yyvsp[-3].Type); + *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type)); #endif - *yyvsp[-4].String += " " + *yyvsp[-3].Type.newTy + " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-3].Type.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-4].String; - ; - break;} -case 274: -#line 1200 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-6].String += " " + *yyvsp[-5].String + " " + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + ")"; - delete yyvsp[-5].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); - yyval.String = yyvsp[-6].String; - ; - break;} -case 275: -#line 1205 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-6].String += " " + *yyvsp[-5].String + " " + *yyvsp[-3].Value.val + "," + *yyvsp[-1].Value.val + ")"; - delete yyvsp[-5].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Value.destroy(); - yyval.String = yyvsp[-6].String; - ; - break;} -case 276: -#line 1210 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].Value.val; - yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-1].String; - ; - break;} -case 277: -#line 1215 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - const char* shiftop = yyvsp[-3].String->c_str(); - if (*yyvsp[-3].String == "shr") - shiftop = (yyvsp[-2].Value.type.isUnsigned()) ? "lshr" : "ashr"; - yyval.String = new std::string(shiftop); - *yyval.String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - delete yyvsp[-3].String; yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - ; - break;} -case 278: -#line 1223 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - std::string source = *yyvsp[-2].Value.val; - TypeInfo SrcTy = yyvsp[-2].Value.type; - TypeInfo DstTy = yyvsp[0].Type; + *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-4].String); + ;} + break; + + case 275: +#line 1200 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 276: +#line 1205 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")"; + delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy(); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 277: +#line 1210 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; + (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 278: +#line 1215 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + const char* shiftop = (yyvsp[-3].String)->c_str(); + if (*(yyvsp[-3].String) == "shr") + shiftop = ((yyvsp[-2].Value).type.isUnsigned()) ? "lshr" : "ashr"; + (yyval.String) = new std::string(shiftop); + *(yyval.String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + ;} + break; + + case 279: +#line 1223 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + std::string source = *(yyvsp[-2].Value).val; + TypeInfo SrcTy = (yyvsp[-2].Value).type; + TypeInfo DstTy = (yyvsp[0].Type); ResolveType(DstTy); - yyval.String = new std::string(); - if (*yyvsp[-3].String == "cast") { - *yyval.String += getCastUpgrade(source, SrcTy, DstTy, false); + (yyval.String) = new std::string(); + if (*(yyvsp[-3].String) == "cast") { + *(yyval.String) += getCastUpgrade(source, SrcTy, DstTy, false); } else { - *yyval.String += *yyvsp[-3].String + " " + source + " to " + *DstTy.newTy; + *(yyval.String) += *(yyvsp[-3].String) + " " + source + " to " + *DstTy.newTy; } - delete yyvsp[-3].String; yyvsp[-2].Value.destroy(); - delete yyvsp[-1].String; yyvsp[0].Type.destroy(); - ; - break;} -case 279: -#line 1237 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 280: -#line 1242 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-3].String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Type.newTy; - yyvsp[-2].Value.destroy(); yyvsp[0].Type.destroy(); - yyval.String = yyvsp[-3].String; - ; - break;} -case 281: -#line 1247 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-3].String += " " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-3].String; - ; - break;} -case 282: -#line 1252 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 283: -#line 1257 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Value.val + ", " + *yyvsp[-2].Value.val + ", " + *yyvsp[0].Value.val; - yyvsp[-4].Value.destroy(); yyvsp[-2].Value.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 284: -#line 1262 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].String; - delete yyvsp[0].String; - yyval.String = yyvsp[-1].String; - ; - break;} -case 285: -#line 1267 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-5].String->empty()) - *yyvsp[-6].String += " " + *yyvsp[-5].String; - if (!yyvsp[-6].String->empty()) - *yyvsp[-6].String += " "; - *yyvsp[-6].String += *yyvsp[-4].Type.newTy + " " + *yyvsp[-3].Value.val + "("; - for (unsigned i = 0; i < yyvsp[-1].ValList->size(); ++i) { - ValueInfo& VI = (*yyvsp[-1].ValList)[i]; - *yyvsp[-6].String += *VI.val; - if (i+1 < yyvsp[-1].ValList->size()) - *yyvsp[-6].String += ", "; + delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy(); + delete (yyvsp[-1].String); (yyvsp[0].Type).destroy(); + ;} + break; + + case 280: +#line 1237 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 281: +#line 1242 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy; + (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy(); + (yyval.String) = (yyvsp[-3].String); + ;} + break; + + case 282: +#line 1247 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-3].String); + ;} + break; + + case 283: +#line 1252 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 284: +#line 1257 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val; + (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 285: +#line 1262 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].String); + delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 286: +#line 1267 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-5].String)->empty()) + *(yyvsp[-6].String) += " " + *(yyvsp[-5].String); + if (!(yyvsp[-6].String)->empty()) + *(yyvsp[-6].String) += " "; + *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].Value).val + "("; + for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) { + ValueInfo& VI = (*(yyvsp[-1].ValList))[i]; + *(yyvsp[-6].String) += *VI.val; + if (i+1 < (yyvsp[-1].ValList)->size()) + *(yyvsp[-6].String) += ", "; VI.destroy(); } - *yyvsp[-6].String += ")"; - delete yyvsp[-5].String; yyvsp[-4].Type.destroy(); yyvsp[-3].Value.destroy(); delete yyvsp[-1].ValList; - yyval.String = yyvsp[-6].String; - ; - break;} -case 287: -#line 1289 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.ValList = yyvsp[0].ValList; ; - break;} -case 288: -#line 1290 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.ValList = new ValueList(); ; - break;} -case 290: -#line 1295 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ yyval.String = new std::string(); ; - break;} -case 291: -#line 1298 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " " + *yyvsp[-1].Type.newTy; - if (!yyvsp[0].String->empty()) - *yyvsp[-2].String += " " + *yyvsp[0].String; - yyvsp[-1].Type.destroy(); delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 292: -#line 1305 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + ", " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; - if (!yyvsp[0].String->empty()) - *yyvsp[-5].String += " " + *yyvsp[0].String; - yyvsp[-4].Type.destroy(); yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].String; - yyval.String = yyvsp[-5].String; - ; - break;} -case 293: -#line 1312 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-2].String += " " + *yyvsp[-1].Type.newTy; - if (!yyvsp[0].String->empty()) - *yyvsp[-2].String += " " + *yyvsp[0].String; - yyvsp[-1].Type.destroy(); delete yyvsp[0].String; - yyval.String = yyvsp[-2].String; - ; - break;} -case 294: -#line 1319 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-5].String += " " + *yyvsp[-4].Type.newTy + ", " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; - if (!yyvsp[0].String->empty()) - *yyvsp[-5].String += " " + *yyvsp[0].String; - yyvsp[-4].Type.destroy(); yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].String; - yyval.String = yyvsp[-5].String; - ; - break;} -case 295: -#line 1326 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - *yyvsp[-1].String += " " + *yyvsp[0].Value.val; - yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-1].String; - ; - break;} -case 296: -#line 1331 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-3].String->empty()) - *yyvsp[-3].String += " "; - *yyvsp[-3].String += *yyvsp[-2].String + " " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; - delete yyvsp[-2].String; yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-3].String; - ; - break;} -case 297: -#line 1338 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ - if (!yyvsp[-5].String->empty()) - *yyvsp[-5].String += " "; - *yyvsp[-5].String += *yyvsp[-4].String + " " + *yyvsp[-3].Value.val + ", " + *yyvsp[-1].Type.newTy + " " + *yyvsp[0].Value.val; - delete yyvsp[-4].String; yyvsp[-3].Value.destroy(); yyvsp[-1].Type.destroy(); yyvsp[0].Value.destroy(); - yyval.String = yyvsp[-5].String; - ; - break;} -case 298: -#line 1345 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" -{ + *(yyvsp[-6].String) += ")"; + delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-1].ValList); + (yyval.String) = (yyvsp[-6].String); + ;} + break; + + case 288: +#line 1289 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.ValList) = (yyvsp[0].ValList); ;} + break; + + case 289: +#line 1290 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.ValList) = new ValueList(); ;} + break; + + case 291: +#line 1295 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { (yyval.String) = new std::string(); ;} + break; + + case 292: +#line 1298 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; + if (!(yyvsp[0].String)->empty()) + *(yyvsp[-2].String) += " " + *(yyvsp[0].String); + (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 293: +#line 1305 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; + if (!(yyvsp[0].String)->empty()) + *(yyvsp[-5].String) += " " + *(yyvsp[0].String); + (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 294: +#line 1312 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy; + if (!(yyvsp[0].String)->empty()) + *(yyvsp[-2].String) += " " + *(yyvsp[0].String); + (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-2].String); + ;} + break; + + case 295: +#line 1319 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; + if (!(yyvsp[0].String)->empty()) + *(yyvsp[-5].String) += " " + *(yyvsp[0].String); + (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 296: +#line 1326 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val; + (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-1].String); + ;} + break; + + case 297: +#line 1331 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-3].String)->empty()) + *(yyvsp[-3].String) += " "; + *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; + delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-3].String); + ;} + break; + + case 298: +#line 1338 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { + if (!(yyvsp[-5].String)->empty()) + *(yyvsp[-5].String) += " "; + *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val; + delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy(); + (yyval.String) = (yyvsp[-5].String); + ;} + break; + + case 299: +#line 1345 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" + { // Upgrade the indices - for (unsigned i = 0; i < yyvsp[0].ValList->size(); ++i) { - ValueInfo& VI = (*yyvsp[0].ValList)[i]; + for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { + ValueInfo& VI = (*(yyvsp[0].ValList))[i]; if (VI.type.isUnsigned() && !VI.isConstant() && VI.type.getBitWidth() < 64) { std::string* old = VI.val; @@ -3034,239 +3847,291 @@ delete old; } } - *yyvsp[-3].String += " " + *yyvsp[-2].Type.newTy + " " + *yyvsp[-1].Value.val; - for (unsigned i = 0; i < yyvsp[0].ValList->size(); ++i) { - ValueInfo& VI = (*yyvsp[0].ValList)[i]; - *yyvsp[-3].String += ", " + *VI.val; + *(yyvsp[-3].String) += " " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val; + for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) { + ValueInfo& VI = (*(yyvsp[0].ValList))[i]; + *(yyvsp[-3].String) += ", " + *VI.val; VI.destroy(); } - yyvsp[-2].Type.destroy(); yyvsp[-1].Value.destroy(); delete yyvsp[0].ValList; - yyval.String = yyvsp[-3].String; - ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/share/bison.simple" + (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].ValList); + (yyval.String) = (yyvsp[-3].String); + ;} + break; + + + default: break; + } + +/* Line 1126 of yacc.c. */ +#line 3867 "UpgradeParser.tab.c" yyvsp -= yylen; yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif + + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; -yyerrlab: /* here on detecting error */ - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + char *yymsg = 0; +# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; - if (count < 5) +#if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +#endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + + if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yymsg; + int yyi = 0; + while ((*yyp = *yyf)) { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } } - yyerror(msg); - free(msg); + yyerror (yymsg); + YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exceeded"); + { + yyerror (YY_("syntax error")); + goto yyexhaustedlab; + } } else #endif /* YYERROR_VERBOSE */ - yyerror("parse error"); + yyerror (YY_("syntax error")); } - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ + if (yyerrstatus == 3) { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; - goto yyerrhandle; -yyerrdefault: /* current state does not do anything special for the error token. */ +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (0) + goto yyerrorlab; -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif +yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; -yyerrpop: /* pop the current state because it cannot handle the error token */ - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG != 0 - if (yydebug) + for (;;) { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + yydestruct ("Error: popping", yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + while (yyssp != yyss) { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK; } - return 1; +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; } -#line 1369 "/Volumes/Big2/llvm/llvm/tools/llvm-upgrade/UpgradeParser.y" + + +#line 1369 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { @@ -3281,3 +4146,4 @@ std::cerr << errMsg << '\n'; exit(1); } + From rafael.espindola at gmail.com Wed Dec 6 07:35:27 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Wed, 6 Dec 2006 07:35:27 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/weak.ll Message-ID: <200612061335.kB6DZRJ5010175@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CodeGen/ARM: weak.ll updated: 1.1 -> 1.2 --- Log message: print weak references --- Diffs of the changes: (+10 -1) weak.ll | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletion(-) Index: llvm/test/Regression/CodeGen/ARM/weak.ll diff -u llvm/test/Regression/CodeGen/ARM/weak.ll:1.1 llvm/test/Regression/CodeGen/ARM/weak.ll:1.2 --- llvm/test/Regression/CodeGen/ARM/weak.ll:1.1 Tue Dec 5 11:00:17 2006 +++ llvm/test/Regression/CodeGen/ARM/weak.ll Wed Dec 6 07:35:10 2006 @@ -1,5 +1,6 @@ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm && -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep .weak +; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep .weak.*f && +; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep .weak.*h implementation ; Functions: @@ -7,3 +8,11 @@ entry: unreachable } + +void %g() { +entry: + tail call void %h( ) + ret void +} + +declare extern_weak void %h() From jlaskey at apple.com Wed Dec 6 08:06:57 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 10:06:57 -0400 Subject: [llvm-commits] [llmv-gcc4] Change in arguments (fix build.) Message-ID: Index: gcc/llvm-backend.cpp =================================================================== --- gcc/llvm-backend.cpp (revision 120946) +++ gcc/llvm-backend.cpp (working copy) @@ -818,7 +818,7 @@ void print_llvm(FILE *file, void *LLVM) { oFILEstream FS(file); FS << "LLVM: "; - WriteAsOperand(FS, (Value*)LLVM, true, true, TheModule); + WriteAsOperand(FS, (Value*)LLVM, true, TheModule); } /* APPLE LOCAL end LLVM (ENTIRE FILE!) */ -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2417 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061206/c1cb3267/attachment.bin From rafael.espindola at gmail.com Wed Dec 6 07:35:28 2006 From: rafael.espindola at gmail.com (Rafael Espindola) Date: Wed, 6 Dec 2006 07:35:28 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp ARMTargetAsmInfo.cpp Message-ID: <200612061335.kB6DZSYa010182@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.31 -> 1.32 ARMTargetAsmInfo.cpp updated: 1.1 -> 1.2 --- Log message: print weak references --- Diffs of the changes: (+14 -1) ARMAsmPrinter.cpp | 14 +++++++++++++- ARMTargetAsmInfo.cpp | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.31 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.32 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.31 Wed Dec 6 00:13:25 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Wed Dec 6 07:35:10 2006 @@ -63,6 +63,8 @@ : AsmPrinter(O, TM, T) { } + std::set ExtWeakSymbols; + /// We name each basic block in a Function with a unique number, so /// that we can consistently refer to them later. This is cleared /// at the beginning of each call to runOnMachineFunction(). @@ -127,7 +129,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: - O << "\t.weak\t" << CurrentFnName << "\n"; + O << TAI->getWeakRefDirective() << CurrentFnName << "\n"; break; } EmitAlignment(2, F); @@ -244,6 +246,9 @@ GlobalValue *GV = MO.getGlobal(); std::string Name = Mang->getValueName(GV); O << Name; + if (GV->hasExternalWeakLinkage()) { + ExtWeakSymbols.insert(Name); + } } break; case MachineOperand::MO_ExternalSymbol: @@ -325,6 +330,13 @@ } } + if (ExtWeakSymbols.begin() != ExtWeakSymbols.end()) + SwitchToDataSection(""); + for (std::set::iterator i = ExtWeakSymbols.begin(), + e = ExtWeakSymbols.end(); i != e; ++i) { + O << TAI->getWeakRefDirective() << *i << "\n"; + } + AsmPrinter::doFinalization(M); return false; // success } Index: llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp diff -u llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.1 llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.2 --- llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.1 Thu Sep 7 17:05:01 2006 +++ llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp Wed Dec 6 07:35:10 2006 @@ -23,4 +23,5 @@ CommentString = "@"; ConstantPoolSection = "\t.text\n"; AlignmentIsInBytes = false; + WeakRefDirective = "\t.weak\t"; } From jlaskey at apple.com Wed Dec 6 11:42:33 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 11:42:33 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCFrameInfo.h PPCRegisterInfo.h PPCRegisterInfo.cpp Message-ID: <200612061742.kB6HgXKD009519@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCFrameInfo.h updated: 1.11 -> 1.12 PPCRegisterInfo.h updated: 1.19 -> 1.20 PPCRegisterInfo.cpp updated: 1.91 -> 1.92 --- Log message: Make it easier for gdb to find the return address. --- Diffs of the changes: (+98 -58) PPCFrameInfo.h | 18 +----- PPCRegisterInfo.cpp | 134 ++++++++++++++++++++++++++++++++++------------------ PPCRegisterInfo.h | 4 + 3 files changed, 98 insertions(+), 58 deletions(-) Index: llvm/lib/Target/PowerPC/PPCFrameInfo.h diff -u llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.11 llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.12 --- llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.11 Fri Nov 17 19:34:43 2006 +++ llvm/lib/Target/PowerPC/PPCFrameInfo.h Wed Dec 6 11:42:06 2006 @@ -21,26 +21,18 @@ class PPCFrameInfo: public TargetFrameInfo { const TargetMachine &TM; - std::pair LR[1]; public: PPCFrameInfo(const TargetMachine &tm, bool LP64) : TargetFrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), TM(tm) { - if (LP64) { - LR[0].first = PPC::LR8; - LR[0].second = 16; - } else { - LR[0].first = PPC::LR; - LR[0].second = 8; - } } - const std::pair * - getCalleeSaveSpillSlots(unsigned &NumEntries) const { - NumEntries = 1; - return &LR[0]; + /// getReturnSaveOffset - Return the previous frame offset to save the + /// return address. + static unsigned getReturnSaveOffset(bool LP64) { + return LP64 ? 16 : 8; } - + /// getFramePointerSaveOffset - Return the previous frame offset to save the /// frame pointer. static unsigned getFramePointerSaveOffset(bool LP64) { Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.h diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.h:1.19 llvm/lib/Target/PowerPC/PPCRegisterInfo.h:1.20 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.h:1.19 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.h Wed Dec 6 11:42:06 2006 @@ -62,6 +62,10 @@ MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const; + /// usesLR - Returns if the link registers (LR) has been used in the function. + /// + bool usesLR(MachineFunction &MF) const; + void lowerDynamicAlloc(MachineBasicBlock::iterator II) const; void eliminateFrameIndex(MachineBasicBlock::iterator II) const; Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.91 llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.92 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.91 Thu Nov 30 01:12:03 2006 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp Wed Dec 6 11:42:06 2006 @@ -415,6 +415,13 @@ return MFI->getStackSize() && needsFP(MF); } +/// usesLR - Returns if the link registers (LR) has been used in the function. +/// +bool PPCRegisterInfo::usesLR(MachineFunction &MF) const { + const bool *PhysRegsUsed = MF.getUsedPhysregs(); + return PhysRegsUsed[getRARegister()]; +} + void PPCRegisterInfo:: eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const { @@ -775,21 +782,39 @@ if (!FrameSize) return; int NegFrameSize = -FrameSize; - + + // Get processor type. + bool IsPPC64 = Subtarget.isPPC64(); + // Check if the link register (LR) has been used. + bool UsesLR = MFI->hasCalls() || usesLR(MF); // Do we have a frame pointer for this function? bool HasFP = hasFP(MF); + + int LROffset = PPCFrameInfo::getReturnSaveOffset(IsPPC64); + int FPOffset = PPCFrameInfo::getFramePointerSaveOffset(IsPPC64); + + if (IsPPC64) { + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::MFLR8), PPC::X0); + + if (HasFP) + BuildMI(MBB, MBBI, TII.get(PPC::STD)) + .addReg(PPC::X31).addImm(FPOffset/4).addReg(PPC::X1); + + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::STD)) + .addReg(PPC::X0).addImm(LROffset/4).addReg(PPC::X1); + } else { + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::MFLR), PPC::R0); + + if (HasFP) + BuildMI(MBB, MBBI, TII.get(PPC::STW)) + .addReg(PPC::R31).addImm(FPOffset).addReg(PPC::R1); - // If there is a frame pointer, copy R31 into TOC(SP) - if (HasFP) { - int Offset = PPCFrameInfo::getFramePointerSaveOffset(Subtarget.isPPC64()); - - if (!Subtarget.isPPC64()) { + if (UsesLR) BuildMI(MBB, MBBI, TII.get(PPC::STW)) - .addReg(PPC::R31).addImm(Offset).addReg(PPC::R1); - } else { - BuildMI(MBB, MBBI, TII.get(PPC::STD)) - .addReg(PPC::X31).addImm(Offset/4).addReg(PPC::X1); - } + .addReg(PPC::R0).addImm(LROffset).addReg(PPC::R1); } // Get stack alignments. @@ -798,7 +823,7 @@ // Adjust stack pointer: r1 += NegFrameSize. // If there is a preferred stack alignment, align R1 now - if (!Subtarget.isPPC64()) { + if (!IsPPC64) { // PPC32. if (MaxAlign > TargetAlign) { assert(isPowerOf2_32(MaxAlign)&&isInt16(MaxAlign)&&"Invalid alignment!"); @@ -865,7 +890,7 @@ // If there is a frame pointer, copy R1 into R31 if (HasFP) { - if (!Subtarget.isPPC64()) { + if (!IsPPC64) { BuildMI(MBB, MBBI, TII.get(PPC::OR), PPC::R31).addReg(PPC::R1) .addReg(PPC::R1); } else { @@ -889,41 +914,60 @@ // Get the number of bytes allocated from the FrameInfo. unsigned FrameSize = MFI->getStackSize(); - if (FrameSize != 0) { - // The loaded (or persistent) stack pointer value is offset by the 'stwu' - // on entry to the function. Add this offset back now. - if (!Subtarget.isPPC64()) { - if (isInt16(FrameSize) && TargetAlign >= MaxAlign && - !MFI->hasVarSizedObjects()) { - BuildMI(MBB, MBBI, TII.get(PPC::ADDI), PPC::R1) - .addReg(PPC::R1).addImm(FrameSize); - } else { - BuildMI(MBB, MBBI, TII.get(PPC::LWZ),PPC::R1).addImm(0).addReg(PPC::R1); - } + if (!FrameSize) return; + + // Get processor type. + bool IsPPC64 = Subtarget.isPPC64(); + // Check if the link register (LR) has been used. + bool UsesLR = MFI->hasCalls() || usesLR(MF); + // Do we have a frame pointer for this function? + bool HasFP = hasFP(MF); + + // The loaded (or persistent) stack pointer value is offset by the 'stwu' + // on entry to the function. Add this offset back now. + if (!Subtarget.isPPC64()) { + if (isInt16(FrameSize) && TargetAlign >= MaxAlign && + !MFI->hasVarSizedObjects()) { + BuildMI(MBB, MBBI, TII.get(PPC::ADDI), PPC::R1) + .addReg(PPC::R1).addImm(FrameSize); } else { - if (isInt16(FrameSize) && TargetAlign >= MaxAlign && - !MFI->hasVarSizedObjects()) { - BuildMI(MBB, MBBI, TII.get(PPC::ADDI8), PPC::X1) - .addReg(PPC::X1).addImm(FrameSize); - } else { - BuildMI(MBB, MBBI, TII.get(PPC::LD), PPC::X1).addImm(0).addReg(PPC::X1); - } + BuildMI(MBB, MBBI, TII.get(PPC::LWZ),PPC::R1).addImm(0).addReg(PPC::R1); } - - // If this function has a frame pointer, load the saved frame pointer from - // its stack slot. - if (hasFP(MF)) { - int Offset = PPCFrameInfo::getFramePointerSaveOffset(Subtarget.isPPC64()); - - if (!Subtarget.isPPC64()) { - BuildMI(MBB, MBBI, TII.get(PPC::LWZ), PPC::R31) - .addImm(Offset).addReg(PPC::R1); - } else { - BuildMI(MBB, MBBI, TII.get(PPC::LD), PPC::X31) - .addImm(Offset/4).addReg(PPC::X1); - } + } else { + if (isInt16(FrameSize) && TargetAlign >= MaxAlign && + !MFI->hasVarSizedObjects()) { + BuildMI(MBB, MBBI, TII.get(PPC::ADDI8), PPC::X1) + .addReg(PPC::X1).addImm(FrameSize); + } else { + BuildMI(MBB, MBBI, TII.get(PPC::LD), PPC::X1).addImm(0).addReg(PPC::X1); } - + } + + int LROffset = PPCFrameInfo::getReturnSaveOffset(IsPPC64); + int FPOffset = PPCFrameInfo::getFramePointerSaveOffset(IsPPC64); + + if (IsPPC64) { + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::LD), PPC::X0) + .addImm(LROffset/4).addReg(PPC::X1); + + if (HasFP) + BuildMI(MBB, MBBI, TII.get(PPC::LD), PPC::X31) + .addImm(FPOffset/4).addReg(PPC::X1); + + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::MTLR8)).addReg(PPC::X0); + } else { + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::LWZ), PPC::R0) + .addImm(LROffset).addReg(PPC::R1); + + if (HasFP) + BuildMI(MBB, MBBI, TII.get(PPC::LWZ), PPC::R31) + .addImm(FPOffset).addReg(PPC::R1); + + if (UsesLR) + BuildMI(MBB, MBBI, TII.get(PPC::MTLR)).addReg(PPC::R0); } } From jlaskey at apple.com Wed Dec 6 11:43:35 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 11:43:35 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/DwarfWriter.cpp Message-ID: <200612061743.kB6HhZRO011122@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: DwarfWriter.cpp updated: 1.105 -> 1.106 --- Log message: Some addresssed should be 64-bit and some shouldn't. --- Diffs of the changes: (+25 -19) DwarfWriter.cpp | 44 +++++++++++++++++++++++++------------------- 1 files changed, 25 insertions(+), 19 deletions(-) Index: llvm/lib/CodeGen/DwarfWriter.cpp diff -u llvm/lib/CodeGen/DwarfWriter.cpp:1.105 llvm/lib/CodeGen/DwarfWriter.cpp:1.106 --- llvm/lib/CodeGen/DwarfWriter.cpp:1.105 Thu Nov 30 08:35:45 2006 +++ llvm/lib/CodeGen/DwarfWriter.cpp Wed Dec 6 11:43:18 2006 @@ -1096,11 +1096,15 @@ /// EmitDifference - Emit the difference between two labels. Some /// assemblers do not behave with absolute expressions with data directives, /// so there is an option (needsSet) to use an intermediary set expression. - void EmitDifference(DWLabel LabelHi, DWLabel LabelLo) const { - EmitDifference(LabelHi.Tag, LabelHi.Number, LabelLo.Tag, LabelLo.Number); + void EmitDifference(DWLabel LabelHi, DWLabel LabelLo, + bool IsSmall = false) const { + EmitDifference(LabelHi.Tag, LabelHi.Number, + LabelLo.Tag, LabelLo.Number, + IsSmall); } void EmitDifference(const char *TagHi, unsigned NumberHi, - const char *TagLo, unsigned NumberLo) const { + const char *TagLo, unsigned NumberLo, + bool IsSmall = false) const { if (TAI->needsSet()) { static unsigned SetCounter = 0; @@ -1112,7 +1116,7 @@ PrintLabelName(TagLo, NumberLo); O << "\n"; - if (TAI->getAddressSize() == sizeof(int32_t)) + if (IsSmall || TAI->getAddressSize() == sizeof(int32_t)) O << TAI->getData32bitsDirective(); else O << TAI->getData64bitsDirective(); @@ -1121,7 +1125,7 @@ ++SetCounter; } else { - if (TAI->getAddressSize() == sizeof(int32_t)) + if (IsSmall || TAI->getAddressSize() == sizeof(int32_t)) O << TAI->getData32bitsDirective(); else O << TAI->getData64bitsDirective(); @@ -2119,7 +2123,7 @@ if (BaseLabel && LabelID && BaseLabelID != LabelID) { EmitInt8(DW_CFA_advance_loc4); EOL("DW_CFA_advance_loc4"); - EmitDifference("loc", LabelID, BaseLabel, BaseLabelID); + EmitDifference("loc", LabelID, BaseLabel, BaseLabelID, true); EOL(""); BaseLabelID = LabelID; @@ -2198,7 +2202,7 @@ EmitInt32(ContentSize); EOL("Length of Compilation Unit Info"); EmitInt16(DWARF_VERSION); EOL("DWARF version number"); - EmitDifference("abbrev_begin", 0, "section_abbrev", 0); + EmitDifference("abbrev_begin", 0, "section_abbrev", 0, true); EOL("Offset Into Abbrev. Section"); EmitInt8(TAI->getAddressSize()); EOL("Address Size (in bytes)"); @@ -2255,13 +2259,13 @@ // Construct the section header. - EmitDifference("line_end", 0, "line_begin", 0); + EmitDifference("line_end", 0, "line_begin", 0, true); EOL("Length of Source Line Info"); EmitLabel("line_begin", 0); EmitInt16(DWARF_VERSION); EOL("DWARF version number"); - EmitDifference("line_prolog_end", 0, "line_prolog_begin", 0); + EmitDifference("line_prolog_end", 0, "line_prolog_begin", 0, true); EOL("Prolog Length"); EmitLabel("line_prolog_begin", 0); @@ -2345,7 +2349,7 @@ // Define the line address. EmitInt8(0); EOL("Extended Op"); - EmitInt8(4 + 1); EOL("Op size"); + EmitInt8(TAI->getAddressSize() + 1); EOL("Op size"); EmitInt8(DW_LNE_set_address); EOL("DW_LNE_set_address"); EmitReference("loc", LabelID); EOL("Location label"); @@ -2383,7 +2387,7 @@ // Define last address of section. EmitInt8(0); EOL("Extended Op"); - EmitInt8(4 + 1); EOL("Op size"); + EmitInt8(TAI->getAddressSize() + 1); EOL("Op size"); EmitInt8(DW_LNE_set_address); EOL("DW_LNE_set_address"); EmitReference("section_end", j + 1); EOL("Section end label"); @@ -2414,7 +2418,7 @@ EmitLabel("frame_common", 0); EmitDifference("frame_common_end", 0, - "frame_common_begin", 0); + "frame_common_begin", 0, true); EOL("Length of Common Information Entry"); EmitLabel("frame_common_begin", 0); @@ -2446,12 +2450,12 @@ Asm->SwitchToDataSection(TAI->getDwarfFrameSection()); EmitDifference("frame_end", SubprogramCount, - "frame_begin", SubprogramCount); + "frame_begin", SubprogramCount, true); EOL("Length of Frame Information Entry"); EmitLabel("frame_begin", SubprogramCount); - EmitDifference("frame_common", 0, "section_frame", 0); + EmitDifference("frame_common", 0, "section_frame", 0, true); EOL("FDE CIE offset"); EmitReference("func_begin", SubprogramCount); EOL("FDE initial location"); @@ -2478,17 +2482,17 @@ CompileUnit *Unit = GetBaseCompileUnit(); EmitDifference("pubnames_end", Unit->getID(), - "pubnames_begin", Unit->getID()); + "pubnames_begin", Unit->getID(), true); EOL("Length of Public Names Info"); EmitLabel("pubnames_begin", Unit->getID()); EmitInt16(DWARF_VERSION); EOL("DWARF Version"); - EmitDifference("info_begin", Unit->getID(), "section_info", 0); + EmitDifference("info_begin", Unit->getID(), "section_info", 0, true); EOL("Offset of Compilation Unit Info"); - EmitDifference("info_end", Unit->getID(), "info_begin", Unit->getID()); + EmitDifference("info_end", Unit->getID(), "info_begin", Unit->getID(),true); EOL("Compilation Unit Length"); std::map &Globals = Unit->getGlobals(); @@ -2567,7 +2571,7 @@ // Range 1 EmitReference("text_begin", 0); EOL("Address"); - EmitDifference("text_end", 0, "text_begin", 0); EOL("Length"); + EmitDifference("text_end", 0, "text_begin", 0, true); EOL("Length"); EmitInt32(0); EOL("EOM (1)"); EmitInt32(0); EOL("EOM (2)"); @@ -2930,12 +2934,14 @@ /// EmitValue - Emit delta value. /// void DIEDelta::EmitValue(const Dwarf &DW, unsigned Form) const { - DW.EmitDifference(LabelHi, LabelLo); + bool IsSmall = Form == DW_FORM_data4; + DW.EmitDifference(LabelHi, LabelLo, IsSmall); } /// SizeOf - Determine size of delta value in bytes. /// unsigned DIEDelta::SizeOf(const Dwarf &DW, unsigned Form) const { + if (Form == DW_FORM_data4) return 4; return DW.getTargetAsmInfo()->getAddressSize(); } From sabre at nondot.org Wed Dec 6 11:47:27 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:27 -0600 Subject: [llvm-commits] CVS: llvm/lib/Support/Statistic.cpp Timer.cpp Message-ID: <200612061747.kB6HlR3I017122@zion.cs.uiuc.edu> Changes in directory llvm/lib/Support: Statistic.cpp updated: 1.18 -> 1.19 Timer.cpp updated: 1.46 -> 1.47 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+2 -4) Statistic.cpp | 4 +--- Timer.cpp | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) Index: llvm/lib/Support/Statistic.cpp diff -u llvm/lib/Support/Statistic.cpp:1.18 llvm/lib/Support/Statistic.cpp:1.19 --- llvm/lib/Support/Statistic.cpp:1.18 Tue Aug 29 23:17:00 2006 +++ llvm/lib/Support/Statistic.cpp Wed Dec 6 11:46:32 2006 @@ -15,7 +15,7 @@ // This is useful for reporting information like the number of instructions // simplified, optimized or removed by various transformations, like this: // -// static Statistic<> NumInstEliminated("GCSE - Number of instructions killed"); +// static Statistic NumInstEliminated("GCSE - Number of instructions killed"); // // Later, in the code: ++NumInstEliminated; // @@ -33,8 +33,6 @@ unsigned StatisticBase::NumStats = 0; -TEMPLATE_INSTANTIATION(class Statistic); - // -stats - Command line option to cause transformations to emit stats about // what they did. // Index: llvm/lib/Support/Timer.cpp diff -u llvm/lib/Support/Timer.cpp:1.46 llvm/lib/Support/Timer.cpp:1.47 --- llvm/lib/Support/Timer.cpp:1.46 Wed Oct 4 16:50:14 2006 +++ llvm/lib/Support/Timer.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ // getLibSupportInfoOutputFilename - This ugly hack is brought to you courtesy // of constructor/destructor ordering being unspecified by C++. Basically the -// problem is that a Statistic<> object gets destroyed, which ends up calling +// problem is that a Statistic object gets destroyed, which ends up calling // 'GetLibSupportInfoOutputFile()' (below), which calls this function. // LibSupportInfoOutputFilename used to be a global variable, but sometimes it // would get destroyed before the Statistic, causing havoc to ensue. We "fix" From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp Message-ID: <200612061747.kB6HlU9D017170@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.32 -> 1.33 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+1 -1) ARMAsmPrinter.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.32 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.33 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.32 Wed Dec 6 07:35:10 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -35,7 +35,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); static const char *ARMCondCodeToString(ARMCC::CondCodes CC) { switch (CC) { From sabre at nondot.org Wed Dec 6 11:47:27 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:27 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/ADT/Statistic.h Message-ID: <200612061747.kB6HlRoP017129@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/ADT: Statistic.h updated: 1.17 -> 1.18 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+19 -20) Statistic.h | 39 +++++++++++++++++++-------------------- 1 files changed, 19 insertions(+), 20 deletions(-) Index: llvm/include/llvm/ADT/Statistic.h diff -u llvm/include/llvm/ADT/Statistic.h:1.17 llvm/include/llvm/ADT/Statistic.h:1.18 --- llvm/include/llvm/ADT/Statistic.h:1.17 Tue Aug 29 23:17:00 2006 +++ llvm/include/llvm/ADT/Statistic.h Wed Dec 6 11:46:31 2006 @@ -8,17 +8,19 @@ //===----------------------------------------------------------------------===// // // This file defines the 'Statistic' class, which is designed to be an easy way -// to expose various success metrics from passes. These statistics are printed -// at the end of a run, when the -stats command line option is enabled on the -// command line. +// to expose various metrics from passes. These statistics are printed at the +// end of a run (from llvm_shutdown), when the -stats command line option is +// passed on the command line. // // This is useful for reporting information like the number of instructions // simplified, optimized or removed by various transformations, like this: // -// static Statistic<> NumInstsKilled("gcse", "Number of instructions killed"); +// static Statistic NumInstsKilled("gcse", "Number of instructions killed"); // // Later, in the code: ++NumInstsKilled; // +// NOTE: Statistics *must* be declared as global variables. +// //===----------------------------------------------------------------------===// #ifndef LLVM_ADT_STATISTIC_H @@ -29,7 +31,7 @@ namespace llvm { -// StatisticBase - Nontemplated base class for Statistic<> class... +// StatisticBase - Nontemplated base class for Statistic class... class StatisticBase { const char *Name; const char *Desc; @@ -55,39 +57,36 @@ }; // Statistic Class - templated on the data type we are monitoring... -template class Statistic : private StatisticBase { - DataType Value; + unsigned Value; virtual void printValue(std::ostream &o) const { o << Value; } - virtual bool hasSomeData() const { return Value != DataType(); } + virtual bool hasSomeData() const { return Value != 0; } public: // Normal constructor, default initialize data item... Statistic(const char *name, const char *desc) - : StatisticBase(name, desc), Value(DataType()) {} + : StatisticBase(name, desc), Value(0) {} // Constructor to provide an initial value... - Statistic(const DataType &Val, const char *name, const char *desc) + Statistic(const unsigned &Val, const char *name, const char *desc) : StatisticBase(name, desc), Value(Val) {} // Print information when destroyed, iff command line option is specified ~Statistic() { destroy(); } // Allow use of this class as the value itself... - operator DataType() const { return Value; } - const Statistic &operator=(DataType Val) { Value = Val; return *this; } + operator unsigned() const { return Value; } + const Statistic &operator=(unsigned Val) { Value = Val; return *this; } const Statistic &operator++() { ++Value; return *this; } - DataType operator++(int) { return Value++; } + unsigned operator++(int) { return Value++; } const Statistic &operator--() { --Value; return *this; } - DataType operator--(int) { return Value--; } - const Statistic &operator+=(const DataType &V) { Value += V; return *this; } - const Statistic &operator-=(const DataType &V) { Value -= V; return *this; } - const Statistic &operator*=(const DataType &V) { Value *= V; return *this; } - const Statistic &operator/=(const DataType &V) { Value /= V; return *this; } + unsigned operator--(int) { return Value--; } + const Statistic &operator+=(const unsigned &V) { Value += V; return *this; } + const Statistic &operator-=(const unsigned &V) { Value -= V; return *this; } + const Statistic &operator*=(const unsigned &V) { Value *= V; return *this; } + const Statistic &operator/=(const unsigned &V) { Value /= V; return *this; } }; -EXTERN_TEMPLATE_INSTANTIATION(class Statistic); - } // End llvm namespace #endif From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Hello/Hello.cpp Message-ID: <200612061747.kB6HlUAf017188@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Hello: Hello.cpp updated: 1.10 -> 1.11 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+1 -1) Hello.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Hello/Hello.cpp diff -u llvm/lib/Transforms/Hello/Hello.cpp:1.10 llvm/lib/Transforms/Hello/Hello.cpp:1.11 --- llvm/lib/Transforms/Hello/Hello.cpp:1.10 Tue Dec 5 19:50:04 2006 +++ llvm/lib/Transforms/Hello/Hello.cpp Wed Dec 6 11:46:32 2006 @@ -21,7 +21,7 @@ using namespace llvm; namespace { - Statistic<> HelloCounter("hellocount", + Statistic HelloCounter("hellocount", "Counts number of functions greeted"); // Hello - The first implementation, without getAnalysisUsage. struct Hello : public FunctionPass { From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Writer/Writer.cpp Message-ID: <200612061747.kB6HlUrO017207@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Writer: Writer.cpp updated: 1.134 -> 1.135 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+1 -1) Writer.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.134 llvm/lib/Bytecode/Writer/Writer.cpp:1.135 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.134 Tue Dec 5 22:27:07 2006 +++ llvm/lib/Bytecode/Writer/Writer.cpp Wed Dec 6 11:46:31 2006 @@ -45,7 +45,7 @@ static RegisterPass X("emitbytecode", "Bytecode Writer"); -static Statistic<> +static Statistic BytesWritten("bytecodewriter", "Number of bytecode bytes written"); //===----------------------------------------------------------------------===// From sabre at nondot.org Wed Dec 6 11:47:31 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/Andersens.cpp GlobalsModRef.cpp Message-ID: <200612061747.kB6HlViJ017294@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: Andersens.cpp updated: 1.38 -> 1.39 GlobalsModRef.cpp updated: 1.24 -> 1.25 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+10 -10) Andersens.cpp | 10 +++++----- GlobalsModRef.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) Index: llvm/lib/Analysis/IPA/Andersens.cpp diff -u llvm/lib/Analysis/IPA/Andersens.cpp:1.38 llvm/lib/Analysis/IPA/Andersens.cpp:1.39 --- llvm/lib/Analysis/IPA/Andersens.cpp:1.38 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/IPA/Andersens.cpp Wed Dec 6 11:46:31 2006 @@ -65,15 +65,15 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumIters("anders-aa", "Number of iterations to reach convergence"); - Statistic<> + Statistic NumConstraints("anders-aa", "Number of constraints"); - Statistic<> + Statistic NumNodes("anders-aa", "Number of nodes"); - Statistic<> + Statistic NumEscapingFunctions("anders-aa", "Number of internal functions that escape"); - Statistic<> + Statistic NumIndirectCallees("anders-aa", "Number of indirect callees found"); class Andersens : public ModulePass, public AliasAnalysis, Index: llvm/lib/Analysis/IPA/GlobalsModRef.cpp diff -u llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.24 llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.25 --- llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.24 Sun Nov 26 19:05:09 2006 +++ llvm/lib/Analysis/IPA/GlobalsModRef.cpp Wed Dec 6 11:46:31 2006 @@ -30,19 +30,19 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumNonAddrTakenGlobalVars("globalsmodref-aa", "Number of global vars without address taken"); - Statistic<> + Statistic NumNonAddrTakenFunctions("globalsmodref-aa", "Number of functions without address taken"); - Statistic<> + Statistic NumNoMemFunctions("globalsmodref-aa", "Number of functions that do not access memory"); - Statistic<> + Statistic NumReadMemFunctions("globalsmodref-aa", "Number of functions that only read memory"); - Statistic<> + Statistic NumIndirectGlobalVars("globalsmodref-aa", "Number of indirect global objects"); From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaLLRP.cpp Message-ID: <200612061747.kB6HlUth017165@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.54 -> 1.55 AlphaCodeEmitter.cpp updated: 1.18 -> 1.19 AlphaLLRP.cpp updated: 1.4 -> 1.5 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+4 -4) AlphaAsmPrinter.cpp | 2 +- AlphaCodeEmitter.cpp | 2 +- AlphaLLRP.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.54 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.54 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.18 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.19 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.18 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumEmitted("alpha-emitter", "Number of machine instructions emitted"); } Index: llvm/lib/Target/Alpha/AlphaLLRP.cpp diff -u llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.4 llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.5 --- llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.4 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/Alpha/AlphaLLRP.cpp Wed Dec 6 11:46:32 2006 @@ -23,8 +23,8 @@ using namespace llvm; namespace { - Statistic<> nopintro("alpha-nops", "Number of nops inserted"); - Statistic<> nopalign("alpha-nops-align", + Statistic nopintro("alpha-nops", "Number of nops inserted"); + Statistic nopalign("alpha-nops-align", "Number of nops inserted for alignment"); cl::opt From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/InstCount.cpp ScalarEvolution.cpp Message-ID: <200612061747.kB6HlUBh017160@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: InstCount.cpp updated: 1.16 -> 1.17 ScalarEvolution.cpp updated: 1.65 -> 1.66 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+10 -10) InstCount.cpp | 10 +++++----- ScalarEvolution.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) Index: llvm/lib/Analysis/InstCount.cpp diff -u llvm/lib/Analysis/InstCount.cpp:1.16 llvm/lib/Analysis/InstCount.cpp:1.17 --- llvm/lib/Analysis/InstCount.cpp:1.16 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/InstCount.cpp Wed Dec 6 11:46:31 2006 @@ -21,13 +21,13 @@ using namespace llvm; namespace { - Statistic<> TotalInsts ("instcount", "Number of instructions (of all types)"); - Statistic<> TotalBlocks("instcount", "Number of basic blocks"); - Statistic<> TotalFuncs ("instcount", "Number of non-external functions"); - Statistic<> TotalMemInst("instcount", "Number of memory instructions"); + Statistic TotalInsts ("instcount", "Number of instructions (of all types)"); + Statistic TotalBlocks("instcount", "Number of basic blocks"); + Statistic TotalFuncs ("instcount", "Number of non-external functions"); + Statistic TotalMemInst("instcount", "Number of memory instructions"); #define HANDLE_INST(N, OPCODE, CLASS) \ - Statistic<> Num##OPCODE##Inst("instcount", "Number of " #OPCODE " insts"); + Statistic Num##OPCODE##Inst("instcount", "Number of " #OPCODE " insts"); #include "llvm/Instruction.def" Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.65 llvm/lib/Analysis/ScalarEvolution.cpp:1.66 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.65 Tue Dec 5 16:39:58 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Wed Dec 6 11:46:31 2006 @@ -85,20 +85,20 @@ RegisterPass R("scalar-evolution", "Scalar Evolution Analysis"); - Statistic<> + Statistic NumBruteForceEvaluations("scalar-evolution", "Number of brute force evaluations needed to " "calculate high-order polynomial exit values"); - Statistic<> + Statistic NumArrayLenItCounts("scalar-evolution", "Number of trip counts computed with array length"); - Statistic<> + Statistic NumTripCountsComputed("scalar-evolution", "Number of loops with predictable loop counts"); - Statistic<> + Statistic NumTripCountsNotComputed("scalar-evolution", "Number of loops without predictable loop counts"); - Statistic<> + Statistic NumBruteForceTripCountsComputed("scalar-evolution", "Number of loops with trip counts computed by force"); From sabre at nondot.org Wed Dec 6 11:47:32 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:32 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/Sparc/DelaySlotFiller.cpp FPMover.cpp SparcAsmPrinter.cpp Message-ID: <200612061747.kB6HlWiA017302@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Sparc: DelaySlotFiller.cpp updated: 1.11 -> 1.12 FPMover.cpp updated: 1.15 -> 1.16 SparcAsmPrinter.cpp updated: 1.72 -> 1.73 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+4 -4) DelaySlotFiller.cpp | 2 +- FPMover.cpp | 4 ++-- SparcAsmPrinter.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Target/Sparc/DelaySlotFiller.cpp diff -u llvm/lib/Target/Sparc/DelaySlotFiller.cpp:1.11 llvm/lib/Target/Sparc/DelaySlotFiller.cpp:1.12 --- llvm/lib/Target/Sparc/DelaySlotFiller.cpp:1.11 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/Sparc/DelaySlotFiller.cpp Wed Dec 6 11:46:32 2006 @@ -20,7 +20,7 @@ using namespace llvm; namespace { - Statistic<> FilledSlots("delayslotfiller", "Num. of delay slots filled"); + Statistic FilledSlots("delayslotfiller", "Num. of delay slots filled"); struct Filler : public MachineFunctionPass { /// Target machine description which we query for reg. names, data Index: llvm/lib/Target/Sparc/FPMover.cpp diff -u llvm/lib/Target/Sparc/FPMover.cpp:1.15 llvm/lib/Target/Sparc/FPMover.cpp:1.16 --- llvm/lib/Target/Sparc/FPMover.cpp:1.15 Thu Nov 30 01:12:03 2006 +++ llvm/lib/Target/Sparc/FPMover.cpp Wed Dec 6 11:46:32 2006 @@ -23,8 +23,8 @@ using namespace llvm; namespace { - Statistic<> NumFpDs("fpmover", "Number of instructions translated"); - Statistic<> NoopFpDs("fpmover", "Number of noop instructions removed"); + Statistic NumFpDs("fpmover", "Number of instructions translated"); + Statistic NoopFpDs("fpmover", "Number of noop instructions removed"); struct FPMover : public MachineFunctionPass { /// Target machine description which we query for reg. names, data Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.72 llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.73 --- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.72 Wed Dec 6 00:13:25 2006 +++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -34,7 +34,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); struct VISIBILITY_HIDDEN SparcAsmPrinter : public AsmPrinter { SparcAsmPrinter(std::ostream &O, TargetMachine &TM, const TargetAsmInfo *T) From sabre at nondot.org Wed Dec 6 11:47:32 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:32 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/LevelRaise.cpp Message-ID: <200612061747.kB6HlVdc017295@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms: LevelRaise.cpp updated: 1.113 -> 1.114 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+6 -6) LevelRaise.cpp | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Transforms/LevelRaise.cpp diff -u llvm/lib/Transforms/LevelRaise.cpp:1.113 llvm/lib/Transforms/LevelRaise.cpp:1.114 --- llvm/lib/Transforms/LevelRaise.cpp:1.113 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/LevelRaise.cpp Wed Dec 6 11:46:32 2006 @@ -34,22 +34,22 @@ StartInst("raise-start-inst", cl::Hidden, cl::value_desc("inst name"), cl::desc("Start raise pass at the instruction with the specified name")); -static Statistic<> +static Statistic NumLoadStorePeepholes("raise", "Number of load/store peepholes"); -static Statistic<> +static Statistic NumGEPInstFormed("raise", "Number of other getelementptr's formed"); -static Statistic<> +static Statistic NumExprTreesConv("raise", "Number of expression trees converted"); -static Statistic<> +static Statistic NumCastOfCast("raise", "Number of cast-of-self removed"); -static Statistic<> +static Statistic NumDCEorCP("raise", "Number of insts DCEd or constprop'd"); -static Statistic<> +static Statistic NumVarargCallChanges("raise", "Number of vararg call peepholes"); #define PRINT_PEEPHOLE(ID, NUM, I) \ From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp IA64Bundling.cpp IA64ISelDAGToDAG.cpp Message-ID: <200612061747.kB6HlUPp017184@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/IA64: IA64AsmPrinter.cpp updated: 1.38 -> 1.39 IA64Bundling.cpp updated: 1.4 -> 1.5 IA64ISelDAGToDAG.cpp updated: 1.61 -> 1.62 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+4 -4) IA64AsmPrinter.cpp | 2 +- IA64Bundling.cpp | 2 +- IA64ISelDAGToDAG.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.38 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.39 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.38 Wed Dec 6 00:13:25 2006 +++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -30,7 +30,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); struct IA64AsmPrinter : public AsmPrinter { std::set ExternalFunctionNames, ExternalObjectNames; Index: llvm/lib/Target/IA64/IA64Bundling.cpp diff -u llvm/lib/Target/IA64/IA64Bundling.cpp:1.4 llvm/lib/Target/IA64/IA64Bundling.cpp:1.5 --- llvm/lib/Target/IA64/IA64Bundling.cpp:1.4 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/IA64/IA64Bundling.cpp Wed Dec 6 11:46:32 2006 @@ -33,7 +33,7 @@ using namespace llvm; namespace { - Statistic<> StopBitsAdded("ia64-codegen", "Number of stop bits added"); + Statistic StopBitsAdded("ia64-codegen", "Number of stop bits added"); struct IA64BundlingPass : public MachineFunctionPass { /// Target machine description which we query for reg. names, data Index: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp diff -u llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.61 llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.62 --- llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.61 Sat Nov 25 22:34:26 2006 +++ llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp Wed Dec 6 11:46:32 2006 @@ -33,8 +33,8 @@ using namespace llvm; namespace { - Statistic<> FusedFP ("ia64-codegen", "Number of fused fp operations"); - Statistic<> FrameOff("ia64-codegen", "Number of frame idx offsets collapsed"); + Statistic FusedFP ("ia64-codegen", "Number of fused fp operations"); + Statistic FrameOff("ia64-codegen", "Number of frame idx offsets collapsed"); //===--------------------------------------------------------------------===// /// IA64DAGToDAGISel - IA64 specific code to select IA64 machine From sabre at nondot.org Wed Dec 6 11:47:27 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:27 -0600 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Message-ID: <200612061747.kB6HlRRA017127@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine/JIT: JITEmitter.cpp updated: 1.119 -> 1.120 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+2 -2) JITEmitter.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp diff -u llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.119 llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.120 --- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.119 Thu Nov 16 14:04:54 2006 +++ llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Wed Dec 6 11:46:32 2006 @@ -34,8 +34,8 @@ using namespace llvm; namespace { - Statistic<> NumBytes("jit", "Number of bytes of machine code compiled"); - Statistic<> NumRelos("jit", "Number of relocations applied"); + Statistic NumBytes("jit", "Number of bytes of machine code compiled"); + Statistic NumRelos("jit", "Number of relocations applied"); JIT *TheJIT = 0; } From sabre at nondot.org Wed Dec 6 11:47:32 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:32 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/ADCE.cpp BasicBlockPlacement.cpp CondPropagate.cpp ConstantProp.cpp CorrelatedExprs.cpp DCE.cpp DeadStoreElimination.cpp GCSE.cpp IndVarSimplify.cpp InstructionCombining.cpp LICM.cpp LoopStrengthReduce.cpp LoopUnroll.cpp LoopUnswitch.cpp PredicateSimplifier.cpp Reassociate.cpp Reg2Mem.cpp SCCP.cpp ScalarReplAggregates.cpp SimplifyCFG.cpp TailDuplication.cpp TailRecursionElimination.cpp Message-ID: <200612061747.kB6HlW9M017379@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: ADCE.cpp updated: 1.99 -> 1.100 BasicBlockPlacement.cpp updated: 1.6 -> 1.7 CondPropagate.cpp updated: 1.9 -> 1.10 ConstantProp.cpp updated: 1.52 -> 1.53 CorrelatedExprs.cpp updated: 1.38 -> 1.39 DCE.cpp updated: 1.59 -> 1.60 DeadStoreElimination.cpp updated: 1.14 -> 1.15 GCSE.cpp updated: 1.48 -> 1.49 IndVarSimplify.cpp updated: 1.96 -> 1.97 InstructionCombining.cpp updated: 1.559 -> 1.560 LICM.cpp updated: 1.81 -> 1.82 LoopStrengthReduce.cpp updated: 1.96 -> 1.97 LoopUnroll.cpp updated: 1.31 -> 1.32 LoopUnswitch.cpp updated: 1.50 -> 1.51 PredicateSimplifier.cpp updated: 1.35 -> 1.36 Reassociate.cpp updated: 1.66 -> 1.67 Reg2Mem.cpp updated: 1.7 -> 1.8 SCCP.cpp updated: 1.138 -> 1.139 ScalarReplAggregates.cpp updated: 1.51 -> 1.52 SimplifyCFG.cpp updated: 1.15 -> 1.16 TailDuplication.cpp updated: 1.34 -> 1.35 TailRecursionElimination.cpp updated: 1.25 -> 1.26 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+66 -66) ADCE.cpp | 6 +++--- BasicBlockPlacement.cpp | 2 +- CondPropagate.cpp | 4 ++-- ConstantProp.cpp | 2 +- CorrelatedExprs.cpp | 6 +++--- DCE.cpp | 4 ++-- DeadStoreElimination.cpp | 4 ++-- GCSE.cpp | 10 +++++----- IndVarSimplify.cpp | 10 +++++----- InstructionCombining.cpp | 10 +++++----- LICM.cpp | 10 +++++----- LoopStrengthReduce.cpp | 6 +++--- LoopUnroll.cpp | 2 +- LoopUnswitch.cpp | 10 +++++----- PredicateSimplifier.cpp | 6 +++--- Reassociate.cpp | 10 +++++----- Reg2Mem.cpp | 2 +- SCCP.cpp | 12 ++++++------ ScalarReplAggregates.cpp | 6 +++--- SimplifyCFG.cpp | 2 +- TailDuplication.cpp | 4 ++-- TailRecursionElimination.cpp | 4 ++-- 22 files changed, 66 insertions(+), 66 deletions(-) Index: llvm/lib/Transforms/Scalar/ADCE.cpp diff -u llvm/lib/Transforms/Scalar/ADCE.cpp:1.99 llvm/lib/Transforms/Scalar/ADCE.cpp:1.100 --- llvm/lib/Transforms/Scalar/ADCE.cpp:1.99 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/ADCE.cpp Wed Dec 6 11:46:32 2006 @@ -30,9 +30,9 @@ using namespace llvm; namespace { - Statistic<> NumBlockRemoved("adce", "Number of basic blocks removed"); - Statistic<> NumInstRemoved ("adce", "Number of instructions removed"); - Statistic<> NumCallRemoved ("adce", "Number of calls and invokes removed"); + Statistic NumBlockRemoved("adce", "Number of basic blocks removed"); + Statistic NumInstRemoved ("adce", "Number of instructions removed"); + Statistic NumCallRemoved ("adce", "Number of calls and invokes removed"); //===----------------------------------------------------------------------===// // ADCE Class Index: llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp diff -u llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp:1.6 llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp:1.7 --- llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp:1.6 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp Wed Dec 6 11:46:32 2006 @@ -36,7 +36,7 @@ using namespace llvm; namespace { - Statistic<> NumMoved("block-placement", "Number of basic blocks moved"); + Statistic NumMoved("block-placement", "Number of basic blocks moved"); struct BlockPlacement : public FunctionPass { virtual bool runOnFunction(Function &F); Index: llvm/lib/Transforms/Scalar/CondPropagate.cpp diff -u llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.9 llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.10 --- llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.9 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/CondPropagate.cpp Wed Dec 6 11:46:32 2006 @@ -26,9 +26,9 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumBrThread("condprop", "Number of CFG edges threaded through branches"); - Statistic<> + Statistic NumSwThread("condprop", "Number of CFG edges threaded through switches"); struct CondProp : public FunctionPass { Index: llvm/lib/Transforms/Scalar/ConstantProp.cpp diff -u llvm/lib/Transforms/Scalar/ConstantProp.cpp:1.52 llvm/lib/Transforms/Scalar/ConstantProp.cpp:1.53 --- llvm/lib/Transforms/Scalar/ConstantProp.cpp:1.52 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/ConstantProp.cpp Wed Dec 6 11:46:32 2006 @@ -29,7 +29,7 @@ using namespace llvm; namespace { - Statistic<> NumInstKilled("constprop", "Number of instructions killed"); + Statistic NumInstKilled("constprop", "Number of instructions killed"); struct ConstantPropagation : public FunctionPass { bool runOnFunction(Function &F); Index: llvm/lib/Transforms/Scalar/CorrelatedExprs.cpp diff -u llvm/lib/Transforms/Scalar/CorrelatedExprs.cpp:1.38 llvm/lib/Transforms/Scalar/CorrelatedExprs.cpp:1.39 --- llvm/lib/Transforms/Scalar/CorrelatedExprs.cpp:1.38 Thu Nov 2 19:34:58 2006 +++ llvm/lib/Transforms/Scalar/CorrelatedExprs.cpp Wed Dec 6 11:46:32 2006 @@ -46,9 +46,9 @@ using namespace llvm; namespace { - Statistic<> NumSetCCRemoved("cee", "Number of setcc instruction eliminated"); - Statistic<> NumOperandsCann("cee", "Number of operands canonicalized"); - Statistic<> BranchRevectors("cee", "Number of branches revectored"); + Statistic NumSetCCRemoved("cee", "Number of setcc instruction eliminated"); + Statistic NumOperandsCann("cee", "Number of operands canonicalized"); + Statistic BranchRevectors("cee", "Number of branches revectored"); class ValueInfo; class Relation { Index: llvm/lib/Transforms/Scalar/DCE.cpp diff -u llvm/lib/Transforms/Scalar/DCE.cpp:1.59 llvm/lib/Transforms/Scalar/DCE.cpp:1.60 --- llvm/lib/Transforms/Scalar/DCE.cpp:1.59 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/DCE.cpp Wed Dec 6 11:46:32 2006 @@ -26,8 +26,8 @@ using namespace llvm; namespace { - Statistic<> DIEEliminated("die", "Number of insts removed"); - Statistic<> DCEEliminated("dce", "Number of insts removed"); + Statistic DIEEliminated("die", "Number of insts removed"); + Statistic DCEEliminated("dce", "Number of insts removed"); //===--------------------------------------------------------------------===// // DeadInstElimination pass implementation Index: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp diff -u llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.14 llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.15 --- llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.14 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp Wed Dec 6 11:46:32 2006 @@ -28,8 +28,8 @@ using namespace llvm; namespace { - Statistic<> NumStores("dse", "Number of stores deleted"); - Statistic<> NumOther ("dse", "Number of other instrs removed"); + Statistic NumStores("dse", "Number of stores deleted"); + Statistic NumOther ("dse", "Number of other instrs removed"); struct DSE : public FunctionPass { Index: llvm/lib/Transforms/Scalar/GCSE.cpp diff -u llvm/lib/Transforms/Scalar/GCSE.cpp:1.48 llvm/lib/Transforms/Scalar/GCSE.cpp:1.49 --- llvm/lib/Transforms/Scalar/GCSE.cpp:1.48 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/GCSE.cpp Wed Dec 6 11:46:32 2006 @@ -28,12 +28,12 @@ using namespace llvm; namespace { - Statistic<> NumInstRemoved("gcse", "Number of instructions removed"); - Statistic<> NumLoadRemoved("gcse", "Number of loads removed"); - Statistic<> NumCallRemoved("gcse", "Number of calls removed"); - Statistic<> NumNonInsts ("gcse", "Number of instructions removed due " + Statistic NumInstRemoved("gcse", "Number of instructions removed"); + Statistic NumLoadRemoved("gcse", "Number of loads removed"); + Statistic NumCallRemoved("gcse", "Number of calls removed"); + Statistic NumNonInsts ("gcse", "Number of instructions removed due " "to non-instruction values"); - Statistic<> NumArgsRepl ("gcse", "Number of function arguments replaced " + Statistic NumArgsRepl ("gcse", "Number of function arguments replaced " "with constant values"); struct GCSE : public FunctionPass { Index: llvm/lib/Transforms/Scalar/IndVarSimplify.cpp diff -u llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.96 llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.97 --- llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.96 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Scalar/IndVarSimplify.cpp Wed Dec 6 11:46:32 2006 @@ -52,11 +52,11 @@ using namespace llvm; namespace { - Statistic<> NumRemoved ("indvars", "Number of aux indvars removed"); - Statistic<> NumPointer ("indvars", "Number of pointer indvars promoted"); - Statistic<> NumInserted("indvars", "Number of canonical indvars added"); - Statistic<> NumReplaced("indvars", "Number of exit values replaced"); - Statistic<> NumLFTR ("indvars", "Number of loop exit tests replaced"); + Statistic NumRemoved ("indvars", "Number of aux indvars removed"); + Statistic NumPointer ("indvars", "Number of pointer indvars promoted"); + Statistic NumInserted("indvars", "Number of canonical indvars added"); + Statistic NumReplaced("indvars", "Number of exit values replaced"); + Statistic NumLFTR ("indvars", "Number of loop exit tests replaced"); class IndVarSimplify : public FunctionPass { LoopInfo *LI; Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.559 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.560 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.559 Mon Dec 4 19:26:29 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Dec 6 11:46:32 2006 @@ -56,11 +56,11 @@ using namespace llvm::PatternMatch; namespace { - Statistic<> NumCombined ("instcombine", "Number of insts combined"); - Statistic<> NumConstProp("instcombine", "Number of constant folds"); - Statistic<> NumDeadInst ("instcombine", "Number of dead inst eliminated"); - Statistic<> NumDeadStore("instcombine", "Number of dead stores eliminated"); - Statistic<> NumSunkInst ("instcombine", "Number of instructions sunk"); + Statistic NumCombined ("instcombine", "Number of insts combined"); + Statistic NumConstProp("instcombine", "Number of constant folds"); + Statistic NumDeadInst ("instcombine", "Number of dead inst eliminated"); + Statistic NumDeadStore("instcombine", "Number of dead stores eliminated"); + Statistic NumSunkInst ("instcombine", "Number of instructions sunk"); class VISIBILITY_HIDDEN InstCombiner : public FunctionPass, Index: llvm/lib/Transforms/Scalar/LICM.cpp diff -u llvm/lib/Transforms/Scalar/LICM.cpp:1.81 llvm/lib/Transforms/Scalar/LICM.cpp:1.82 --- llvm/lib/Transforms/Scalar/LICM.cpp:1.81 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Scalar/LICM.cpp Wed Dec 6 11:46:33 2006 @@ -54,11 +54,11 @@ DisablePromotion("disable-licm-promotion", cl::Hidden, cl::desc("Disable memory promotion in LICM pass")); - Statistic<> NumSunk("licm", "Number of instructions sunk out of loop"); - Statistic<> NumHoisted("licm", "Number of instructions hoisted out of loop"); - Statistic<> NumMovedLoads("licm", "Number of load insts hoisted or sunk"); - Statistic<> NumMovedCalls("licm", "Number of call insts hoisted or sunk"); - Statistic<> NumPromoted("licm", + Statistic NumSunk("licm", "Number of instructions sunk out of loop"); + Statistic NumHoisted("licm", "Number of instructions hoisted out of loop"); + Statistic NumMovedLoads("licm", "Number of load insts hoisted or sunk"); + Statistic NumMovedCalls("licm", "Number of call insts hoisted or sunk"); + Statistic NumPromoted("licm", "Number of memory locations promoted to registers"); struct LICM : public FunctionPass { Index: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp diff -u llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.96 llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.97 --- llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.96 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp Wed Dec 6 11:46:33 2006 @@ -38,9 +38,9 @@ using namespace llvm; namespace { - Statistic<> NumReduced ("loop-reduce", "Number of GEPs strength reduced"); - Statistic<> NumInserted("loop-reduce", "Number of PHIs inserted"); - Statistic<> NumVariable("loop-reduce","Number of PHIs with variable strides"); + Statistic NumReduced ("loop-reduce", "Number of GEPs strength reduced"); + Statistic NumInserted("loop-reduce", "Number of PHIs inserted"); + Statistic NumVariable("loop-reduce","Number of PHIs with variable strides"); /// IVStrideUse - Keep track of one use of a strided induction variable, where /// the stride is stored externally. The Offset member keeps track of the Index: llvm/lib/Transforms/Scalar/LoopUnroll.cpp diff -u llvm/lib/Transforms/Scalar/LoopUnroll.cpp:1.31 llvm/lib/Transforms/Scalar/LoopUnroll.cpp:1.32 --- llvm/lib/Transforms/Scalar/LoopUnroll.cpp:1.31 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/LoopUnroll.cpp Wed Dec 6 11:46:33 2006 @@ -37,7 +37,7 @@ using namespace llvm; namespace { - Statistic<> NumUnrolled("loop-unroll", "Number of loops completely unrolled"); + Statistic NumUnrolled("loop-unroll", "Number of loops completely unrolled"); cl::opt UnrollThreshold("unroll-threshold", cl::init(100), cl::Hidden, Index: llvm/lib/Transforms/Scalar/LoopUnswitch.cpp diff -u llvm/lib/Transforms/Scalar/LoopUnswitch.cpp:1.50 llvm/lib/Transforms/Scalar/LoopUnswitch.cpp:1.51 --- llvm/lib/Transforms/Scalar/LoopUnswitch.cpp:1.50 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/LoopUnswitch.cpp Wed Dec 6 11:46:33 2006 @@ -44,12 +44,12 @@ using namespace llvm; namespace { - Statistic<> NumBranches("loop-unswitch", "Number of branches unswitched"); - Statistic<> NumSwitches("loop-unswitch", "Number of switches unswitched"); - Statistic<> NumSelects ("loop-unswitch", "Number of selects unswitched"); - Statistic<> NumTrivial ("loop-unswitch", + Statistic NumBranches("loop-unswitch", "Number of branches unswitched"); + Statistic NumSwitches("loop-unswitch", "Number of switches unswitched"); + Statistic NumSelects ("loop-unswitch", "Number of selects unswitched"); + Statistic NumTrivial ("loop-unswitch", "Number of unswitches that are trivial"); - Statistic<> NumSimplify("loop-unswitch", + Statistic NumSimplify("loop-unswitch", "Number of simplifications of unswitched code"); cl::opt Threshold("loop-unswitch-threshold", cl::desc("Max loop size to unswitch"), Index: llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp diff -u llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.35 llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.36 --- llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.35 Fri Dec 1 20:22:01 2006 +++ llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp Wed Dec 6 11:46:33 2006 @@ -93,11 +93,11 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumVarsReplaced("predsimplify", "Number of argument substitutions"); - Statistic<> + Statistic NumInstruction("predsimplify", "Number of instructions removed"); - Statistic<> + Statistic NumSimple("predsimplify", "Number of simple replacements"); /// The InequalityGraph stores the relationships between values. Index: llvm/lib/Transforms/Scalar/Reassociate.cpp diff -u llvm/lib/Transforms/Scalar/Reassociate.cpp:1.66 llvm/lib/Transforms/Scalar/Reassociate.cpp:1.67 --- llvm/lib/Transforms/Scalar/Reassociate.cpp:1.66 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Transforms/Scalar/Reassociate.cpp Wed Dec 6 11:46:33 2006 @@ -37,11 +37,11 @@ using namespace llvm; namespace { - Statistic<> NumLinear ("reassociate","Number of insts linearized"); - Statistic<> NumChanged("reassociate","Number of insts reassociated"); - Statistic<> NumSwapped("reassociate","Number of insts with operands swapped"); - Statistic<> NumAnnihil("reassociate","Number of expr tree annihilated"); - Statistic<> NumFactor ("reassociate","Number of multiplies factored"); + Statistic NumLinear ("reassociate","Number of insts linearized"); + Statistic NumChanged("reassociate","Number of insts reassociated"); + Statistic NumSwapped("reassociate","Number of insts with operands swapped"); + Statistic NumAnnihil("reassociate","Number of expr tree annihilated"); + Statistic NumFactor ("reassociate","Number of multiplies factored"); struct ValueEntry { unsigned Rank; Index: llvm/lib/Transforms/Scalar/Reg2Mem.cpp diff -u llvm/lib/Transforms/Scalar/Reg2Mem.cpp:1.7 llvm/lib/Transforms/Scalar/Reg2Mem.cpp:1.8 --- llvm/lib/Transforms/Scalar/Reg2Mem.cpp:1.7 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/Reg2Mem.cpp Wed Dec 6 11:46:33 2006 @@ -30,7 +30,7 @@ using namespace llvm; namespace { - Statistic<> NumDemoted("reg2mem", "Number of registers demoted"); + Statistic NumDemoted("reg2mem", "Number of registers demoted"); struct RegToMem : public FunctionPass { Index: llvm/lib/Transforms/Scalar/SCCP.cpp diff -u llvm/lib/Transforms/Scalar/SCCP.cpp:1.138 llvm/lib/Transforms/Scalar/SCCP.cpp:1.139 --- llvm/lib/Transforms/Scalar/SCCP.cpp:1.138 Mon Dec 4 17:54:59 2006 +++ llvm/lib/Transforms/Scalar/SCCP.cpp Wed Dec 6 11:46:33 2006 @@ -1080,8 +1080,8 @@ namespace { - Statistic<> NumInstRemoved("sccp", "Number of instructions removed"); - Statistic<> NumDeadBlocks ("sccp", "Number of basic blocks unreachable"); + Statistic NumInstRemoved("sccp", "Number of instructions removed"); + Statistic NumDeadBlocks ("sccp", "Number of basic blocks unreachable"); //===--------------------------------------------------------------------===// // @@ -1191,11 +1191,11 @@ } namespace { - Statistic<> IPNumInstRemoved("ipsccp", "Number of instructions removed"); - Statistic<> IPNumDeadBlocks ("ipsccp", "Number of basic blocks unreachable"); - Statistic<> IPNumArgsElimed ("ipsccp", + Statistic IPNumInstRemoved("ipsccp", "Number of instructions removed"); + Statistic IPNumDeadBlocks ("ipsccp", "Number of basic blocks unreachable"); + Statistic IPNumArgsElimed ("ipsccp", "Number of arguments constant propagated"); - Statistic<> IPNumGlobalConst("ipsccp", + Statistic IPNumGlobalConst("ipsccp", "Number of globals found to be constant"); //===--------------------------------------------------------------------===// Index: llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp diff -u llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.51 llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.52 --- llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.51 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp Wed Dec 6 11:46:33 2006 @@ -37,9 +37,9 @@ using namespace llvm; namespace { - Statistic<> NumReplaced("scalarrepl", "Number of allocas broken up"); - Statistic<> NumPromoted("scalarrepl", "Number of allocas promoted"); - Statistic<> NumConverted("scalarrepl", + Statistic NumReplaced("scalarrepl", "Number of allocas broken up"); + Statistic NumPromoted("scalarrepl", "Number of allocas promoted"); + Statistic NumConverted("scalarrepl", "Number of aggregates converted to scalar"); struct VISIBILITY_HIDDEN SROA : public FunctionPass { Index: llvm/lib/Transforms/Scalar/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Scalar/SimplifyCFG.cpp:1.15 llvm/lib/Transforms/Scalar/SimplifyCFG.cpp:1.16 --- llvm/lib/Transforms/Scalar/SimplifyCFG.cpp:1.15 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/SimplifyCFG.cpp Wed Dec 6 11:46:33 2006 @@ -30,7 +30,7 @@ using namespace llvm; namespace { - Statistic<> NumSimpl("cfgsimplify", "Number of blocks simplified"); + Statistic NumSimpl("cfgsimplify", "Number of blocks simplified"); struct CFGSimplifyPass : public FunctionPass { virtual bool runOnFunction(Function &F); Index: llvm/lib/Transforms/Scalar/TailDuplication.cpp diff -u llvm/lib/Transforms/Scalar/TailDuplication.cpp:1.34 llvm/lib/Transforms/Scalar/TailDuplication.cpp:1.35 --- llvm/lib/Transforms/Scalar/TailDuplication.cpp:1.34 Sun Nov 26 03:46:52 2006 +++ llvm/lib/Transforms/Scalar/TailDuplication.cpp Wed Dec 6 11:46:33 2006 @@ -37,9 +37,9 @@ cl::opt Threshold("taildup-threshold", cl::desc("Max block size to tail duplicate"), cl::init(6), cl::Hidden); - Statistic<> NumEliminated("tailduplicate", + Statistic NumEliminated("tailduplicate", "Number of unconditional branches eliminated"); - Statistic<> NumPHINodes("tailduplicate", "Number of phi nodes inserted"); + Statistic NumPHINodes("tailduplicate", "Number of phi nodes inserted"); class TailDup : public FunctionPass { bool runOnFunction(Function &F); Index: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp diff -u llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.25 llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.26 --- llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.25 Thu Nov 2 14:25:50 2006 +++ llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp Wed Dec 6 11:46:33 2006 @@ -61,8 +61,8 @@ using namespace llvm; namespace { - Statistic<> NumEliminated("tailcallelim", "Number of tail calls removed"); - Statistic<> NumAccumAdded("tailcallelim","Number of accumulators introduced"); + Statistic NumEliminated("tailcallelim", "Number of tail calls removed"); + Statistic NumAccumAdded("tailcallelim","Number of accumulators introduced"); struct TailCallElim : public FunctionPass { virtual bool runOnFunction(Function &F); From sabre at nondot.org Wed Dec 6 11:47:32 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:32 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/BranchFolding.cpp LiveIntervalAnalysis.cpp PHIElimination.cpp RegAllocLinearScan.cpp RegAllocLocal.cpp RegAllocSimple.cpp TwoAddressInstructionPass.cpp VirtRegMap.cpp Message-ID: <200612061747.kB6HlWMp017323@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: BranchFolding.cpp updated: 1.37 -> 1.38 LiveIntervalAnalysis.cpp updated: 1.200 -> 1.201 PHIElimination.cpp updated: 1.51 -> 1.52 RegAllocLinearScan.cpp updated: 1.134 -> 1.135 RegAllocLocal.cpp updated: 1.96 -> 1.97 RegAllocSimple.cpp updated: 1.77 -> 1.78 TwoAddressInstructionPass.cpp updated: 1.42 -> 1.43 VirtRegMap.cpp updated: 1.81 -> 1.82 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+26 -26) BranchFolding.cpp | 6 +++--- LiveIntervalAnalysis.cpp | 10 +++++----- PHIElimination.cpp | 4 ++-- RegAllocLinearScan.cpp | 4 ++-- RegAllocLocal.cpp | 6 +++--- RegAllocSimple.cpp | 4 ++-- TwoAddressInstructionPass.cpp | 6 +++--- VirtRegMap.cpp | 12 ++++++------ 8 files changed, 26 insertions(+), 26 deletions(-) Index: llvm/lib/CodeGen/BranchFolding.cpp diff -u llvm/lib/CodeGen/BranchFolding.cpp:1.37 llvm/lib/CodeGen/BranchFolding.cpp:1.38 --- llvm/lib/CodeGen/BranchFolding.cpp:1.37 Sat Nov 18 16:25:39 2006 +++ llvm/lib/CodeGen/BranchFolding.cpp Wed Dec 6 11:46:31 2006 @@ -30,9 +30,9 @@ #include using namespace llvm; -static Statistic<> NumDeadBlocks("branchfold", "Number of dead blocks removed"); -static Statistic<> NumBranchOpts("branchfold", "Number of branches optimized"); -static Statistic<> NumTailMerge ("branchfold", "Number of block tails merged"); +static Statistic NumDeadBlocks("branchfold", "Number of dead blocks removed"); +static Statistic NumBranchOpts("branchfold", "Number of branches optimized"); +static Statistic NumTailMerge ("branchfold", "Number of block tails merged"); static cl::opt EnableTailMerge("enable-tail-merge", cl::Hidden); namespace { Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.200 llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.201 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.200 Fri Dec 1 20:22:01 2006 +++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Dec 6 11:46:31 2006 @@ -39,19 +39,19 @@ namespace { RegisterPass X("liveintervals", "Live Interval Analysis"); - static Statistic<> numIntervals + static Statistic numIntervals ("liveintervals", "Number of original intervals"); - static Statistic<> numIntervalsAfter + static Statistic numIntervalsAfter ("liveintervals", "Number of intervals after coalescing"); - static Statistic<> numJoins + static Statistic numJoins ("liveintervals", "Number of interval joins performed"); - static Statistic<> numPeep + static Statistic numPeep ("liveintervals", "Number of identity moves eliminated after coalescing"); - static Statistic<> numFolded + static Statistic numFolded ("liveintervals", "Number of loads/stores folded into instructions"); static cl::opt Index: llvm/lib/CodeGen/PHIElimination.cpp diff -u llvm/lib/CodeGen/PHIElimination.cpp:1.51 llvm/lib/CodeGen/PHIElimination.cpp:1.52 --- llvm/lib/CodeGen/PHIElimination.cpp:1.51 Thu Sep 28 02:10:24 2006 +++ llvm/lib/CodeGen/PHIElimination.cpp Wed Dec 6 11:46:31 2006 @@ -29,8 +29,8 @@ using namespace llvm; namespace { - static Statistic<> NumAtomic("phielim", "Number of atomic phis lowered"); - static Statistic<> NumSimple("phielim", "Number of simple phis lowered"); + static Statistic NumAtomic("phielim", "Number of atomic phis lowered"); + static Statistic NumSimple("phielim", "Number of simple phis lowered"); struct VISIBILITY_HIDDEN PNE : public MachineFunctionPass { bool runOnMachineFunction(MachineFunction &Fn) { Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp diff -u llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.134 llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.135 --- llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.134 Tue Dec 5 19:48:55 2006 +++ llvm/lib/CodeGen/RegAllocLinearScan.cpp Wed Dec 6 11:46:31 2006 @@ -37,9 +37,9 @@ namespace { - static Statistic<> NumIters + static Statistic NumIters ("regalloc", "Number of iterations performed"); - static Statistic<> NumBacktracks + static Statistic NumBacktracks ("regalloc", "Number of times we had to backtrack"); static RegisterRegAlloc Index: llvm/lib/CodeGen/RegAllocLocal.cpp diff -u llvm/lib/CodeGen/RegAllocLocal.cpp:1.96 llvm/lib/CodeGen/RegAllocLocal.cpp:1.97 --- llvm/lib/CodeGen/RegAllocLocal.cpp:1.96 Thu Nov 16 20:09:07 2006 +++ llvm/lib/CodeGen/RegAllocLocal.cpp Wed Dec 6 11:46:31 2006 @@ -33,9 +33,9 @@ using namespace llvm; namespace { - static Statistic<> NumStores("ra-local", "Number of stores added"); - static Statistic<> NumLoads ("ra-local", "Number of loads added"); - static Statistic<> NumFolded("ra-local", "Number of loads/stores folded " + static Statistic NumStores("ra-local", "Number of stores added"); + static Statistic NumLoads ("ra-local", "Number of loads added"); + static Statistic NumFolded("ra-local", "Number of loads/stores folded " "into instructions"); static RegisterRegAlloc Index: llvm/lib/CodeGen/RegAllocSimple.cpp diff -u llvm/lib/CodeGen/RegAllocSimple.cpp:1.77 llvm/lib/CodeGen/RegAllocSimple.cpp:1.78 --- llvm/lib/CodeGen/RegAllocSimple.cpp:1.77 Tue Nov 28 16:48:48 2006 +++ llvm/lib/CodeGen/RegAllocSimple.cpp Wed Dec 6 11:46:31 2006 @@ -31,8 +31,8 @@ using namespace llvm; namespace { - static Statistic<> NumStores("ra-simple", "Number of stores added"); - static Statistic<> NumLoads ("ra-simple", "Number of loads added"); + static Statistic NumStores("ra-simple", "Number of stores added"); + static Statistic NumLoads ("ra-simple", "Number of loads added"); static RegisterRegAlloc simpleRegAlloc("simple", " simple register allocator", Index: llvm/lib/CodeGen/TwoAddressInstructionPass.cpp diff -u llvm/lib/CodeGen/TwoAddressInstructionPass.cpp:1.42 llvm/lib/CodeGen/TwoAddressInstructionPass.cpp:1.43 --- llvm/lib/CodeGen/TwoAddressInstructionPass.cpp:1.42 Fri Dec 1 15:48:44 2006 +++ llvm/lib/CodeGen/TwoAddressInstructionPass.cpp Wed Dec 6 11:46:31 2006 @@ -45,11 +45,11 @@ using namespace llvm; namespace { - static Statistic<> NumTwoAddressInstrs("twoaddressinstruction", + static Statistic NumTwoAddressInstrs("twoaddressinstruction", "Number of two-address instructions"); - static Statistic<> NumCommuted("twoaddressinstruction", + static Statistic NumCommuted("twoaddressinstruction", "Number of instructions commuted to coalesce"); - static Statistic<> NumConvertedTo3Addr("twoaddressinstruction", + static Statistic NumConvertedTo3Addr("twoaddressinstruction", "Number of instructions promoted to 3-address"); struct VISIBILITY_HIDDEN TwoAddressInstructionPass Index: llvm/lib/CodeGen/VirtRegMap.cpp diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.81 llvm/lib/CodeGen/VirtRegMap.cpp:1.82 --- llvm/lib/CodeGen/VirtRegMap.cpp:1.81 Fri Dec 1 15:48:44 2006 +++ llvm/lib/CodeGen/VirtRegMap.cpp Wed Dec 6 11:46:31 2006 @@ -33,12 +33,12 @@ using namespace llvm; namespace { - static Statistic<> NumSpills("spiller", "Number of register spills"); - static Statistic<> NumStores("spiller", "Number of stores added"); - static Statistic<> NumLoads ("spiller", "Number of loads added"); - static Statistic<> NumReused("spiller", "Number of values reused"); - static Statistic<> NumDSE ("spiller", "Number of dead stores elided"); - static Statistic<> NumDCE ("spiller", "Number of copies elided"); + static Statistic NumSpills("spiller", "Number of register spills"); + static Statistic NumStores("spiller", "Number of stores added"); + static Statistic NumLoads ("spiller", "Number of loads added"); + static Statistic NumReused("spiller", "Number of values reused"); + static Statistic NumDSE ("spiller", "Number of dead stores elided"); + static Statistic NumDCE ("spiller", "Number of copies elided"); enum SpillerName { simple, local }; From sabre at nondot.org Wed Dec 6 11:47:31 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86AsmPrinter.cpp X86AsmPrinter.h X86CodeEmitter.cpp X86FloatingPoint.cpp X86ISelDAGToDAG.cpp Message-ID: <200612061747.kB6HlVuN017286@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86AsmPrinter.cpp updated: 1.219 -> 1.220 X86AsmPrinter.h updated: 1.36 -> 1.37 X86CodeEmitter.cpp updated: 1.126 -> 1.127 X86FloatingPoint.cpp updated: 1.63 -> 1.64 X86ISelDAGToDAG.cpp updated: 1.136 -> 1.137 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+7 -7) X86AsmPrinter.cpp | 2 +- X86AsmPrinter.h | 2 +- X86CodeEmitter.cpp | 2 +- X86FloatingPoint.cpp | 4 ++-- X86ISelDAGToDAG.cpp | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.219 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.220 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.219 Fri Dec 1 14:47:11 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -30,7 +30,7 @@ using namespace llvm; -Statistic<> llvm::EmittedInsts("asm-printer", +Statistic llvm::EmittedInsts("asm-printer", "Number of machine instrs printed"); static X86FunctionInfo calculateFunctionInfo(const Function *F, Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.36 llvm/lib/Target/X86/X86AsmPrinter.h:1.37 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.36 Thu Nov 30 18:25:12 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Wed Dec 6 11:46:32 2006 @@ -28,7 +28,7 @@ namespace llvm { -extern Statistic<> EmittedInsts; +extern Statistic EmittedInsts; // FIXME: Move this to CodeGen/AsmPrinter.h namespace PICStyle { Index: llvm/lib/Target/X86/X86CodeEmitter.cpp diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.126 llvm/lib/Target/X86/X86CodeEmitter.cpp:1.127 --- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.126 Tue Dec 5 01:29:55 2006 +++ llvm/lib/Target/X86/X86CodeEmitter.cpp Wed Dec 6 11:46:32 2006 @@ -29,7 +29,7 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumEmitted("x86-emitter", "Number of machine instructions emitted"); } Index: llvm/lib/Target/X86/X86FloatingPoint.cpp diff -u llvm/lib/Target/X86/X86FloatingPoint.cpp:1.63 llvm/lib/Target/X86/X86FloatingPoint.cpp:1.64 --- llvm/lib/Target/X86/X86FloatingPoint.cpp:1.63 Fri Dec 1 04:11:51 2006 +++ llvm/lib/Target/X86/X86FloatingPoint.cpp Wed Dec 6 11:46:32 2006 @@ -49,8 +49,8 @@ using namespace llvm; namespace { - Statistic<> NumFXCH("x86-codegen", "Number of fxch instructions inserted"); - Statistic<> NumFP ("x86-codegen", "Number of floating point instructions"); + Statistic NumFXCH("x86-codegen", "Number of fxch instructions inserted"); + Statistic NumFP ("x86-codegen", "Number of floating point instructions"); struct VISIBILITY_HIDDEN FPS : public MachineFunctionPass { virtual bool runOnMachineFunction(MachineFunction &MF); Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.136 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.137 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.136 Tue Dec 5 16:03:40 2006 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Wed Dec 6 11:46:32 2006 @@ -76,10 +76,10 @@ } namespace { - Statistic<> + Statistic NumFPKill("x86-codegen", "Number of FP_REG_KILL instructions added"); - Statistic<> + Statistic NumLoadMoved("x86-codegen", "Number of loads moved below TokenFactor"); //===--------------------------------------------------------------------===// From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp LCSSA.cpp LoopSimplify.cpp LowerAllocations.cpp LowerInvoke.cpp LowerSelect.cpp LowerSwitch.cpp Mem2Reg.cpp Message-ID: <200612061747.kB6HlUP0017216@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Utils: BreakCriticalEdges.cpp updated: 1.36 -> 1.37 LCSSA.cpp updated: 1.30 -> 1.31 LoopSimplify.cpp updated: 1.77 -> 1.78 LowerAllocations.cpp updated: 1.63 -> 1.64 LowerInvoke.cpp updated: 1.44 -> 1.45 LowerSelect.cpp updated: 1.7 -> 1.8 LowerSwitch.cpp updated: 1.26 -> 1.27 Mem2Reg.cpp updated: 1.20 -> 1.21 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+11 -11) BreakCriticalEdges.cpp | 2 +- LCSSA.cpp | 2 +- LoopSimplify.cpp | 4 ++-- LowerAllocations.cpp | 2 +- LowerInvoke.cpp | 6 +++--- LowerSelect.cpp | 2 +- LowerSwitch.cpp | 2 +- Mem2Reg.cpp | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) Index: llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp diff -u llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp:1.36 llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp:1.37 --- llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp:1.36 Sat Oct 28 01:58:17 2006 +++ llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp Wed Dec 6 11:46:33 2006 @@ -30,7 +30,7 @@ using namespace llvm; namespace { - Statistic<> NumBroken("break-crit-edges", "Number of blocks inserted"); + Statistic NumBroken("break-crit-edges", "Number of blocks inserted"); struct VISIBILITY_HIDDEN BreakCriticalEdges : public FunctionPass { virtual bool runOnFunction(Function &F); Index: llvm/lib/Transforms/Utils/LCSSA.cpp diff -u llvm/lib/Transforms/Utils/LCSSA.cpp:1.30 llvm/lib/Transforms/Utils/LCSSA.cpp:1.31 --- llvm/lib/Transforms/Utils/LCSSA.cpp:1.30 Tue Oct 31 12:56:48 2006 +++ llvm/lib/Transforms/Utils/LCSSA.cpp Wed Dec 6 11:46:33 2006 @@ -43,7 +43,7 @@ using namespace llvm; namespace { - static Statistic<> NumLCSSA("lcssa", + static Statistic NumLCSSA("lcssa", "Number of live out of a loop variables"); struct LCSSA : public FunctionPass { Index: llvm/lib/Transforms/Utils/LoopSimplify.cpp diff -u llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.77 llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.78 --- llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.77 Thu Nov 2 14:25:50 2006 +++ llvm/lib/Transforms/Utils/LoopSimplify.cpp Wed Dec 6 11:46:33 2006 @@ -49,9 +49,9 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumInserted("loopsimplify", "Number of pre-header or exit blocks inserted"); - Statistic<> + Statistic NumNested("loopsimplify", "Number of nested loops split out"); struct VISIBILITY_HIDDEN LoopSimplify : public FunctionPass { Index: llvm/lib/Transforms/Utils/LowerAllocations.cpp diff -u llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.63 llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.64 --- llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.63 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Utils/LowerAllocations.cpp Wed Dec 6 11:46:33 2006 @@ -25,7 +25,7 @@ using namespace llvm; namespace { - Statistic<> NumLowered("lowerallocs", "Number of allocations lowered"); + Statistic NumLowered("lowerallocs", "Number of allocations lowered"); /// LowerAllocations - Turn malloc and free instructions into %malloc and /// %free calls. Index: llvm/lib/Transforms/Utils/LowerInvoke.cpp diff -u llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.44 llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.45 --- llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.44 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Utils/LowerInvoke.cpp Wed Dec 6 11:46:33 2006 @@ -50,9 +50,9 @@ using namespace llvm; namespace { - Statistic<> NumInvokes("lowerinvoke", "Number of invokes replaced"); - Statistic<> NumUnwinds("lowerinvoke", "Number of unwinds replaced"); - Statistic<> NumSpilled("lowerinvoke", + Statistic NumInvokes("lowerinvoke", "Number of invokes replaced"); + Statistic NumUnwinds("lowerinvoke", "Number of unwinds replaced"); + Statistic NumSpilled("lowerinvoke", "Number of registers live across unwind edges"); cl::opt ExpensiveEHSupport("enable-correct-eh-support", cl::desc("Make the -lowerinvoke pass insert expensive, but correct, EH code")); Index: llvm/lib/Transforms/Utils/LowerSelect.cpp diff -u llvm/lib/Transforms/Utils/LowerSelect.cpp:1.7 llvm/lib/Transforms/Utils/LowerSelect.cpp:1.8 --- llvm/lib/Transforms/Utils/LowerSelect.cpp:1.7 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Utils/LowerSelect.cpp Wed Dec 6 11:46:33 2006 @@ -28,7 +28,7 @@ using namespace llvm; namespace { - Statistic<> NumLowered("lowerselect","Number of select instructions lowered"); + Statistic NumLowered("lowerselect","Number of select instructions lowered"); /// LowerSelect - Turn select instructions into conditional branches. /// Index: llvm/lib/Transforms/Utils/LowerSwitch.cpp diff -u llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.26 llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.27 --- llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.26 Sun Nov 26 04:17:54 2006 +++ llvm/lib/Transforms/Utils/LowerSwitch.cpp Wed Dec 6 11:46:33 2006 @@ -26,7 +26,7 @@ using namespace llvm; namespace { - Statistic<> NumLowered("lowerswitch", "Number of SwitchInst's replaced"); + Statistic NumLowered("lowerswitch", "Number of SwitchInst's replaced"); /// LowerSwitch Pass - Replace all SwitchInst instructions with chained branch /// instructions. Note that this cannot be a BasicBlock pass because it Index: llvm/lib/Transforms/Utils/Mem2Reg.cpp diff -u llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.20 llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.21 --- llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.20 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Utils/Mem2Reg.cpp Wed Dec 6 11:46:33 2006 @@ -24,7 +24,7 @@ using namespace llvm; namespace { - Statistic<> NumPromoted("mem2reg", "Number of alloca's promoted"); + Statistic NumPromoted("mem2reg", "Number of alloca's promoted"); struct VISIBILITY_HIDDEN PromotePass : public FunctionPass { // runOnFunction - To run this pass, first we calculate the alloca From sabre at nondot.org Wed Dec 6 11:47:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/ExecutionEngine.cpp Message-ID: <200612061747.kB6HlUL7017173@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine: ExecutionEngine.cpp updated: 1.90 -> 1.91 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+2 -2) ExecutionEngine.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/ExecutionEngine/ExecutionEngine.cpp diff -u llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.90 llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.91 --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.90 Thu Nov 30 18:25:12 2006 +++ llvm/lib/ExecutionEngine/ExecutionEngine.cpp Wed Dec 6 11:46:32 2006 @@ -27,8 +27,8 @@ using namespace llvm; namespace { - Statistic<> NumInitBytes("lli", "Number of bytes of global vars initialized"); - Statistic<> NumGlobals ("lli", "Number of global vars initialized"); + Statistic NumInitBytes("lli", "Number of bytes of global vars initialized"); + Statistic NumGlobals ("lli", "Number of global vars initialized"); } ExecutionEngine::EECtorFn ExecutionEngine::JITCtor = 0; From sabre at nondot.org Wed Dec 6 11:47:32 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:32 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp ScheduleDAGList.cpp Message-ID: <200612061747.kB6HlWZC017356@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen/SelectionDAG: DAGCombiner.cpp updated: 1.255 -> 1.256 ScheduleDAGList.cpp updated: 1.68 -> 1.69 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+5 -5) DAGCombiner.cpp | 6 +++--- ScheduleDAGList.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.255 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.256 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.255 Sun Nov 26 22:40:53 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Wed Dec 6 11:46:32 2006 @@ -43,12 +43,12 @@ using namespace llvm; namespace { - static Statistic<> NodesCombined ("dagcombiner", + static Statistic NodesCombined ("dagcombiner", "Number of dag nodes combined"); - static Statistic<> PreIndexedNodes ("pre_indexed_ops", + static Statistic PreIndexedNodes ("pre_indexed_ops", "Number of pre-indexed nodes created"); - static Statistic<> PostIndexedNodes ("post_indexed_ops", + static Statistic PostIndexedNodes ("post_indexed_ops", "Number of post-indexed nodes created"); static cl::opt Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.68 llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.69 --- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.68 Sat Nov 4 03:44:31 2006 +++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp Wed Dec 6 11:46:32 2006 @@ -36,8 +36,8 @@ using namespace llvm; namespace { - static Statistic<> NumNoops ("scheduler", "Number of noops inserted"); - static Statistic<> NumStalls("scheduler", "Number of pipeline stalls"); + static Statistic NumNoops ("scheduler", "Number of noops inserted"); + static Statistic NumStalls("scheduler", "Number of pipeline stalls"); } static RegisterScheduler From sabre at nondot.org Wed Dec 6 11:47:28 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:28 -0600 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp Message-ID: <200612061747.kB6HlSbC017137@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine/Interpreter: Execution.cpp updated: 1.150 -> 1.151 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+1 -1) Execution.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp diff -u llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.150 llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.151 --- llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.150 Fri Dec 1 20:22:01 2006 +++ llvm/lib/ExecutionEngine/Interpreter/Execution.cpp Wed Dec 6 11:46:32 2006 @@ -24,7 +24,7 @@ using namespace llvm; namespace { - Statistic<> NumDynamicInsts("lli", "Number of dynamic instructions executed"); + Statistic NumDynamicInsts("lli", "Number of dynamic instructions executed"); Interpreter *TheEE = 0; } From sabre at nondot.org Wed Dec 6 11:47:31 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp CallTargets.cpp CompleteBottomUp.cpp DataStructure.cpp DataStructureOpt.cpp DataStructureStats.cpp EquivClassGraphs.cpp Printer.cpp TopDownClosure.cpp Message-ID: <200612061747.kB6HlVhB017237@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/DataStructure: BottomUpClosure.cpp updated: 1.125 -> 1.126 CallTargets.cpp updated: 1.5 -> 1.6 CompleteBottomUp.cpp updated: 1.38 -> 1.39 DataStructure.cpp updated: 1.252 -> 1.253 DataStructureOpt.cpp updated: 1.13 -> 1.14 DataStructureStats.cpp updated: 1.22 -> 1.23 EquivClassGraphs.cpp updated: 1.51 -> 1.52 Printer.cpp updated: 1.89 -> 1.90 TopDownClosure.cpp updated: 1.94 -> 1.95 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+26 -26) BottomUpClosure.cpp | 6 +++--- CallTargets.cpp | 8 ++++---- CompleteBottomUp.cpp | 2 +- DataStructure.cpp | 12 ++++++------ DataStructureOpt.cpp | 4 ++-- DataStructureStats.cpp | 10 +++++----- EquivClassGraphs.cpp | 4 ++-- Printer.cpp | 4 ++-- TopDownClosure.cpp | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) Index: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp diff -u llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.125 llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.126 --- llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.125 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp Wed Dec 6 11:46:31 2006 @@ -26,9 +26,9 @@ using namespace llvm; namespace { - Statistic<> MaxSCC("budatastructure", "Maximum SCC Size in Call Graph"); - Statistic<> NumBUInlines("budatastructures", "Number of graphs inlined"); - Statistic<> NumCallEdges("budatastructures", "Number of 'actual' call edges"); + Statistic MaxSCC("budatastructure", "Maximum SCC Size in Call Graph"); + Statistic NumBUInlines("budatastructures", "Number of graphs inlined"); + Statistic NumCallEdges("budatastructures", "Number of 'actual' call edges"); cl::opt AddGlobals("budatastructures-annotate-calls", cl::Hidden, Index: llvm/lib/Analysis/DataStructure/CallTargets.cpp diff -u llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.5 llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.6 --- llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.5 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/CallTargets.cpp Wed Dec 6 11:46:31 2006 @@ -29,10 +29,10 @@ using namespace llvm; namespace { - Statistic<> DirCall("calltarget", "Number of direct calls"); - Statistic<> IndCall("calltarget", "Number of indirect calls"); - Statistic<> CompleteInd("calltarget", "Number of complete indirect calls"); - Statistic<> CompleteEmpty("calltarget", "Number of complete empty calls"); + Statistic DirCall("calltarget", "Number of direct calls"); + Statistic IndCall("calltarget", "Number of indirect calls"); + Statistic CompleteInd("calltarget", "Number of complete indirect calls"); + Statistic CompleteEmpty("calltarget", "Number of complete empty calls"); RegisterPass X("calltarget","Find Call Targets (uses DSA)"); } Index: llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp diff -u llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp:1.38 llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp:1.39 --- llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp:1.38 Fri Nov 17 01:33:59 2006 +++ llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp Wed Dec 6 11:46:31 2006 @@ -26,7 +26,7 @@ namespace { RegisterPass X("cbudatastructure", "'Complete' Bottom-up Data Structure Analysis"); - Statistic<> NumCBUInlines("cbudatastructures", "Number of graphs inlined"); + Statistic NumCBUInlines("cbudatastructures", "Number of graphs inlined"); } Index: llvm/lib/Analysis/DataStructure/DataStructure.cpp diff -u llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.252 llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.253 --- llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.252 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/DataStructure.cpp Wed Dec 6 11:46:31 2006 @@ -34,12 +34,12 @@ #define COLLAPSE_ARRAYS_AGGRESSIVELY 0 namespace { - Statistic<> NumFolds ("dsa", "Number of nodes completely folded"); - Statistic<> NumCallNodesMerged("dsa", "Number of call nodes merged"); - Statistic<> NumNodeAllocated ("dsa", "Number of nodes allocated"); - Statistic<> NumDNE ("dsa", "Number of nodes removed by reachability"); - Statistic<> NumTrivialDNE ("dsa", "Number of nodes trivially removed"); - Statistic<> NumTrivialGlobalDNE("dsa", "Number of globals trivially removed"); + Statistic NumFolds ("dsa", "Number of nodes completely folded"); + Statistic NumCallNodesMerged("dsa", "Number of call nodes merged"); + Statistic NumNodeAllocated ("dsa", "Number of nodes allocated"); + Statistic NumDNE ("dsa", "Number of nodes removed by reachability"); + Statistic NumTrivialDNE ("dsa", "Number of nodes trivially removed"); + Statistic NumTrivialGlobalDNE("dsa", "Number of globals trivially removed"); static cl::opt DSAFieldLimit("dsa-field-limit", cl::Hidden, cl::desc("Number of fields to track before collapsing a node"), Index: llvm/lib/Analysis/DataStructure/DataStructureOpt.cpp diff -u llvm/lib/Analysis/DataStructure/DataStructureOpt.cpp:1.13 llvm/lib/Analysis/DataStructure/DataStructureOpt.cpp:1.14 --- llvm/lib/Analysis/DataStructure/DataStructureOpt.cpp:1.13 Sun Aug 27 17:42:51 2006 +++ llvm/lib/Analysis/DataStructure/DataStructureOpt.cpp Wed Dec 6 11:46:31 2006 @@ -22,9 +22,9 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumGlobalsConstanted("ds-opt", "Number of globals marked constant"); - Statistic<> + Statistic NumGlobalsIsolated("ds-opt", "Number of globals with references dropped"); class DSOpt : public ModulePass { Index: llvm/lib/Analysis/DataStructure/DataStructureStats.cpp diff -u llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.22 llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.23 --- llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.22 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/DataStructureStats.cpp Wed Dec 6 11:46:31 2006 @@ -23,19 +23,19 @@ using namespace llvm; namespace { - Statistic<> TotalNumCallees("totalcallees", + Statistic TotalNumCallees("totalcallees", "Total number of callee functions at all indirect call sites"); - Statistic<> NumIndirectCalls("numindirect", + Statistic NumIndirectCalls("numindirect", "Total number of indirect call sites in the program"); - Statistic<> NumPoolNodes("numpools", + Statistic NumPoolNodes("numpools", "Number of allocation nodes that could be pool allocated"); // Typed/Untyped memory accesses: If DSA can infer that the types the loads // and stores are accessing are correct (ie, the node has not been collapsed), // increment the appropriate counter. - Statistic<> NumTypedMemAccesses("numtypedmemaccesses", + Statistic NumTypedMemAccesses("numtypedmemaccesses", "Number of loads/stores which are fully typed"); - Statistic<> NumUntypedMemAccesses("numuntypedmemaccesses", + Statistic NumUntypedMemAccesses("numuntypedmemaccesses", "Number of loads/stores which are untyped"); class DSGraphStats : public FunctionPass, public InstVisitor { Index: llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp diff -u llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.51 llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.52 --- llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.51 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp Wed Dec 6 11:46:31 2006 @@ -31,9 +31,9 @@ namespace { RegisterPass X("eqdatastructure", "Equivalence-class Bottom-up Data Structure Analysis"); - Statistic<> NumEquivBUInlines("equivdatastructures", + Statistic NumEquivBUInlines("equivdatastructures", "Number of graphs inlined"); - Statistic<> NumFoldGraphInlines("Inline equiv-class graphs bottom up", + Statistic NumFoldGraphInlines("Inline equiv-class graphs bottom up", "Number of graphs inlined"); } Index: llvm/lib/Analysis/DataStructure/Printer.cpp diff -u llvm/lib/Analysis/DataStructure/Printer.cpp:1.89 llvm/lib/Analysis/DataStructure/Printer.cpp:1.90 --- llvm/lib/Analysis/DataStructure/Printer.cpp:1.89 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Analysis/DataStructure/Printer.cpp Wed Dec 6 11:46:31 2006 @@ -33,8 +33,8 @@ namespace { cl::opt OnlyPrintMain("only-print-main-ds", cl::ReallyHidden); cl::opt DontPrintAnything("dont-print-ds", cl::ReallyHidden); - Statistic<> MaxGraphSize ("dsa", "Maximum graph size"); - Statistic<> NumFoldedNodes ("dsa", "Number of folded nodes (in final graph)"); + Statistic MaxGraphSize ("dsa", "Maximum graph size"); + Statistic NumFoldedNodes ("dsa", "Number of folded nodes (in final graph)"); } void DSNode::dump() const { print(llvm_cerr, 0); } Index: llvm/lib/Analysis/DataStructure/TopDownClosure.cpp diff -u llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.94 llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.95 --- llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.94 Fri Nov 17 01:33:59 2006 +++ llvm/lib/Analysis/DataStructure/TopDownClosure.cpp Wed Dec 6 11:46:31 2006 @@ -34,7 +34,7 @@ RegisterPass // Register the pass Y("tddatastructure", "Top-down Data Structure Analysis"); - Statistic<> NumTDInlines("tddatastructures", "Number of graphs inlined"); + Statistic NumTDInlines("tddatastructures", "Number of graphs inlined"); } void TDDataStructures::markReachableFunctionsExternallyAccessible(DSNode *N, From sabre at nondot.org Wed Dec 6 11:47:28 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:28 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp PPCBranchSelector.cpp PPCISelDAGToDAG.cpp Message-ID: <200612061747.kB6HlSZ6017151@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCAsmPrinter.cpp updated: 1.216 -> 1.217 PPCBranchSelector.cpp updated: 1.39 -> 1.40 PPCISelDAGToDAG.cpp updated: 1.225 -> 1.226 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+3 -3) PPCAsmPrinter.cpp | 2 +- PPCBranchSelector.cpp | 2 +- PPCISelDAGToDAG.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp diff -u llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.216 llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.217 --- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.216 Fri Dec 1 14:47:11 2006 +++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -46,7 +46,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); struct VISIBILITY_HIDDEN PPCAsmPrinter : public AsmPrinter { std::set FnStubs, GVStubs; Index: llvm/lib/Target/PowerPC/PPCBranchSelector.cpp diff -u llvm/lib/Target/PowerPC/PPCBranchSelector.cpp:1.39 llvm/lib/Target/PowerPC/PPCBranchSelector.cpp:1.40 --- llvm/lib/Target/PowerPC/PPCBranchSelector.cpp:1.39 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/PowerPC/PPCBranchSelector.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ #include "llvm/Support/MathExtras.h" using namespace llvm; -static Statistic<> NumExpanded("ppc-branch-select", +static Statistic NumExpanded("ppc-branch-select", "Num branches expanded to long format"); namespace { Index: llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp diff -u llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.225 llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.226 --- llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.225 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp Wed Dec 6 11:46:32 2006 @@ -36,7 +36,7 @@ using namespace llvm; namespace { - Statistic<> FrameOff("ppc-codegen", "Number of frame idx offsets collapsed"); + Statistic FrameOff("ppc-codegen", "Number of frame idx offsets collapsed"); //===--------------------------------------------------------------------===// /// PPCDAGToDAGISel - PPC specific code to select PPC machine From sabre at nondot.org Wed Dec 6 11:47:31 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp ConstantMerge.cpp DeadArgumentElimination.cpp DeadTypeElimination.cpp FunctionResolution.cpp GlobalDCE.cpp GlobalOpt.cpp IPConstantPropagation.cpp IndMemRemoval.cpp Inliner.cpp Internalize.cpp LoopExtractor.cpp LowerSetJmp.cpp PruneEH.cpp RaiseAllocations.cpp SimplifyLibCalls.cpp Message-ID: <200612061747.kB6HlVEC017273@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/IPO: ArgumentPromotion.cpp updated: 1.30 -> 1.31 ConstantMerge.cpp updated: 1.32 -> 1.33 DeadArgumentElimination.cpp updated: 1.30 -> 1.31 DeadTypeElimination.cpp updated: 1.56 -> 1.57 FunctionResolution.cpp updated: 1.60 -> 1.61 GlobalDCE.cpp updated: 1.38 -> 1.39 GlobalOpt.cpp updated: 1.76 -> 1.77 IPConstantPropagation.cpp updated: 1.19 -> 1.20 IndMemRemoval.cpp updated: 1.6 -> 1.7 Inliner.cpp updated: 1.33 -> 1.34 Internalize.cpp updated: 1.37 -> 1.38 LoopExtractor.cpp updated: 1.19 -> 1.20 LowerSetJmp.cpp updated: 1.32 -> 1.33 PruneEH.cpp updated: 1.24 -> 1.25 RaiseAllocations.cpp updated: 1.31 -> 1.32 SimplifyLibCalls.cpp updated: 1.73 -> 1.74 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+40 -40) ArgumentPromotion.cpp | 6 +++--- ConstantMerge.cpp | 2 +- DeadArgumentElimination.cpp | 4 ++-- DeadTypeElimination.cpp | 2 +- FunctionResolution.cpp | 4 ++-- GlobalDCE.cpp | 4 ++-- GlobalOpt.cpp | 22 +++++++++++----------- IPConstantPropagation.cpp | 4 ++-- IndMemRemoval.cpp | 4 ++-- Inliner.cpp | 4 ++-- Internalize.cpp | 4 ++-- LoopExtractor.cpp | 2 +- LowerSetJmp.cpp | 8 ++++---- PruneEH.cpp | 4 ++-- RaiseAllocations.cpp | 2 +- SimplifyLibCalls.cpp | 4 ++-- 16 files changed, 40 insertions(+), 40 deletions(-) Index: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp diff -u llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.30 llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.31 --- llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.30 Sun Nov 26 04:02:32 2006 +++ llvm/lib/Transforms/IPO/ArgumentPromotion.cpp Wed Dec 6 11:46:32 2006 @@ -48,11 +48,11 @@ using namespace llvm; namespace { - Statistic<> NumArgumentsPromoted("argpromotion", + Statistic NumArgumentsPromoted("argpromotion", "Number of pointer arguments promoted"); - Statistic<> NumAggregatesPromoted("argpromotion", + Statistic NumAggregatesPromoted("argpromotion", "Number of aggregate arguments promoted"); - Statistic<> NumArgumentsDead("argpromotion", + Statistic NumArgumentsDead("argpromotion", "Number of dead pointer args eliminated"); /// ArgPromotion - The 'by reference' to 'by value' argument promotion pass. Index: llvm/lib/Transforms/IPO/ConstantMerge.cpp diff -u llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.32 llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.33 --- llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.32 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/ConstantMerge.cpp Wed Dec 6 11:46:32 2006 @@ -24,7 +24,7 @@ using namespace llvm; namespace { - Statistic<> NumMerged("constmerge", "Number of global constants merged"); + Statistic NumMerged("constmerge", "Number of global constants merged"); struct ConstantMerge : public ModulePass { // run - For this pass, process all of the globals in the module, Index: llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp diff -u llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.30 llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.31 --- llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.30 Sun Nov 26 04:02:32 2006 +++ llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp Wed Dec 6 11:46:32 2006 @@ -33,9 +33,9 @@ using namespace llvm; namespace { - Statistic<> NumArgumentsEliminated("deadargelim", + Statistic NumArgumentsEliminated("deadargelim", "Number of unread args removed"); - Statistic<> NumRetValsEliminated("deadargelim", + Statistic NumRetValsEliminated("deadargelim", "Number of unused return values removed"); /// DAE - The dead argument elimination pass. Index: llvm/lib/Transforms/IPO/DeadTypeElimination.cpp diff -u llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.56 llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.57 --- llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.56 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/DeadTypeElimination.cpp Wed Dec 6 11:46:32 2006 @@ -37,7 +37,7 @@ } }; RegisterPass X("deadtypeelim", "Dead Type Elimination"); - Statistic<> + Statistic NumKilled("deadtypeelim", "Number of unused typenames removed from symtab"); } Index: llvm/lib/Transforms/IPO/FunctionResolution.cpp diff -u llvm/lib/Transforms/IPO/FunctionResolution.cpp:1.60 llvm/lib/Transforms/IPO/FunctionResolution.cpp:1.61 --- llvm/lib/Transforms/IPO/FunctionResolution.cpp:1.60 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/FunctionResolution.cpp Wed Dec 6 11:46:32 2006 @@ -33,8 +33,8 @@ using namespace llvm; namespace { - Statistic<>NumResolved("funcresolve", "Number of varargs functions resolved"); - Statistic<> NumGlobals("funcresolve", "Number of global variables resolved"); + Statistic NumResolved("funcresolve", "Number of varargs functions resolved"); + Statistic NumGlobals("funcresolve", "Number of global variables resolved"); struct FunctionResolvingPass : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { Index: llvm/lib/Transforms/IPO/GlobalDCE.cpp diff -u llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.38 llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.39 --- llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.38 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/GlobalDCE.cpp Wed Dec 6 11:46:32 2006 @@ -24,8 +24,8 @@ using namespace llvm; namespace { - Statistic<> NumFunctions("globaldce","Number of functions removed"); - Statistic<> NumVariables("globaldce","Number of global variables removed"); + Statistic NumFunctions("globaldce","Number of functions removed"); + Statistic NumVariables("globaldce","Number of global variables removed"); struct GlobalDCE : public ModulePass { // run - Do the GlobalDCE pass on the specified module, optionally updating Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.76 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.77 --- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.76 Thu Nov 30 11:35:08 2006 +++ llvm/lib/Transforms/IPO/GlobalOpt.cpp Wed Dec 6 11:46:32 2006 @@ -32,21 +32,21 @@ using namespace llvm; namespace { - Statistic<> NumMarked ("globalopt", "Number of globals marked constant"); - Statistic<> NumSRA ("globalopt", "Number of aggregate globals broken " + Statistic NumMarked ("globalopt", "Number of globals marked constant"); + Statistic NumSRA ("globalopt", "Number of aggregate globals broken " "into scalars"); - Statistic<> NumHeapSRA ("globalopt", "Number of heap objects SRA'd"); - Statistic<> NumSubstitute("globalopt", + Statistic NumHeapSRA ("globalopt", "Number of heap objects SRA'd"); + Statistic NumSubstitute("globalopt", "Number of globals with initializers stored into them"); - Statistic<> NumDeleted ("globalopt", "Number of globals deleted"); - Statistic<> NumFnDeleted("globalopt", "Number of functions deleted"); - Statistic<> NumGlobUses ("globalopt", "Number of global uses devirtualized"); - Statistic<> NumLocalized("globalopt", "Number of globals localized"); - Statistic<> NumShrunkToBool("globalopt", + Statistic NumDeleted ("globalopt", "Number of globals deleted"); + Statistic NumFnDeleted("globalopt", "Number of functions deleted"); + Statistic NumGlobUses ("globalopt", "Number of global uses devirtualized"); + Statistic NumLocalized("globalopt", "Number of globals localized"); + Statistic NumShrunkToBool("globalopt", "Number of global vars shrunk to booleans"); - Statistic<> NumFastCallFns("globalopt", + Statistic NumFastCallFns("globalopt", "Number of functions converted to fastcc"); - Statistic<> NumCtorsEvaluated("globalopt","Number of static ctors evaluated"); + Statistic NumCtorsEvaluated("globalopt","Number of static ctors evaluated"); struct GlobalOpt : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { Index: llvm/lib/Transforms/IPO/IPConstantPropagation.cpp diff -u llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.19 llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.20 --- llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.19 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/IPConstantPropagation.cpp Wed Dec 6 11:46:32 2006 @@ -25,9 +25,9 @@ using namespace llvm; namespace { - Statistic<> NumArgumentsProped("ipconstprop", + Statistic NumArgumentsProped("ipconstprop", "Number of args turned into constants"); - Statistic<> NumReturnValProped("ipconstprop", + Statistic NumReturnValProped("ipconstprop", "Number of return values turned into constants"); /// IPCP - The interprocedural constant propagation pass Index: llvm/lib/Transforms/IPO/IndMemRemoval.cpp diff -u llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.6 llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.7 --- llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.6 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/IPO/IndMemRemoval.cpp Wed Dec 6 11:46:32 2006 @@ -28,8 +28,8 @@ using namespace llvm; namespace { - Statistic<> NumBounceSites("indmemrem", "Number of sites modified"); - Statistic<> NumBounce ("indmemrem", "Number of bounce functions created"); + Statistic NumBounceSites("indmemrem", "Number of sites modified"); + Statistic NumBounce ("indmemrem", "Number of bounce functions created"); class IndMemRemPass : public ModulePass { Index: llvm/lib/Transforms/IPO/Inliner.cpp diff -u llvm/lib/Transforms/IPO/Inliner.cpp:1.33 llvm/lib/Transforms/IPO/Inliner.cpp:1.34 --- llvm/lib/Transforms/IPO/Inliner.cpp:1.33 Sun Nov 26 04:02:32 2006 +++ llvm/lib/Transforms/IPO/Inliner.cpp Wed Dec 6 11:46:32 2006 @@ -26,8 +26,8 @@ using namespace llvm; namespace { - Statistic<> NumInlined("inline", "Number of functions inlined"); - Statistic<> NumDeleted("inline", + Statistic NumInlined("inline", "Number of functions inlined"); + Statistic NumDeleted("inline", "Number of functions deleted because all callers found"); cl::opt // FIXME: 200 is VERY conservative InlineLimit("inline-threshold", cl::Hidden, cl::init(200), Index: llvm/lib/Transforms/IPO/Internalize.cpp diff -u llvm/lib/Transforms/IPO/Internalize.cpp:1.37 llvm/lib/Transforms/IPO/Internalize.cpp:1.38 --- llvm/lib/Transforms/IPO/Internalize.cpp:1.37 Sun Nov 26 04:02:32 2006 +++ llvm/lib/Transforms/IPO/Internalize.cpp Wed Dec 6 11:46:32 2006 @@ -24,8 +24,8 @@ using namespace llvm; namespace { - Statistic<> NumFunctions("internalize", "Number of functions internalized"); - Statistic<> NumGlobals ("internalize", "Number of global vars internalized"); + Statistic NumFunctions("internalize", "Number of functions internalized"); + Statistic NumGlobals ("internalize", "Number of global vars internalized"); // APIFile - A file which contains a list of symbols that should not be marked // external. Index: llvm/lib/Transforms/IPO/LoopExtractor.cpp diff -u llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.19 llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.20 --- llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.19 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/LoopExtractor.cpp Wed Dec 6 11:46:32 2006 @@ -26,7 +26,7 @@ using namespace llvm; namespace { - Statistic<> NumExtracted("loop-extract", "Number of loops extracted"); + Statistic NumExtracted("loop-extract", "Number of loops extracted"); // FIXME: This is not a function pass, but the PassManager doesn't allow // Module passes to require FunctionPasses, so we can't get loop info if we're Index: llvm/lib/Transforms/IPO/LowerSetJmp.cpp diff -u llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.32 llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.33 --- llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.32 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/IPO/LowerSetJmp.cpp Wed Dec 6 11:46:32 2006 @@ -50,13 +50,13 @@ using namespace llvm; namespace { - Statistic<> LongJmpsTransformed("lowersetjmp", + Statistic LongJmpsTransformed("lowersetjmp", "Number of longjmps transformed"); - Statistic<> SetJmpsTransformed("lowersetjmp", + Statistic SetJmpsTransformed("lowersetjmp", "Number of setjmps transformed"); - Statistic<> CallsTransformed("lowersetjmp", + Statistic CallsTransformed("lowersetjmp", "Number of calls invokified"); - Statistic<> InvokesTransformed("lowersetjmp", + Statistic InvokesTransformed("lowersetjmp", "Number of invokes modified"); //===--------------------------------------------------------------------===// Index: llvm/lib/Transforms/IPO/PruneEH.cpp diff -u llvm/lib/Transforms/IPO/PruneEH.cpp:1.24 llvm/lib/Transforms/IPO/PruneEH.cpp:1.25 --- llvm/lib/Transforms/IPO/PruneEH.cpp:1.24 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/PruneEH.cpp Wed Dec 6 11:46:32 2006 @@ -28,8 +28,8 @@ using namespace llvm; namespace { - Statistic<> NumRemoved("prune-eh", "Number of invokes removed"); - Statistic<> NumUnreach("prune-eh", "Number of noreturn calls optimized"); + Statistic NumRemoved("prune-eh", "Number of invokes removed"); + Statistic NumUnreach("prune-eh", "Number of noreturn calls optimized"); struct PruneEH : public CallGraphSCCPass { /// DoesNotUnwind - This set contains all of the functions which we have Index: llvm/lib/Transforms/IPO/RaiseAllocations.cpp diff -u llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.31 llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.32 --- llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.31 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/IPO/RaiseAllocations.cpp Wed Dec 6 11:46:32 2006 @@ -23,7 +23,7 @@ using namespace llvm; namespace { - Statistic<> NumRaised("raiseallocs", "Number of allocations raised"); + Statistic NumRaised("raiseallocs", "Number of allocations raised"); // RaiseAllocations - Turn %malloc and %free calls into the appropriate // instruction. Index: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp diff -u llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.73 llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.74 --- llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.73 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp Wed Dec 6 11:46:32 2006 @@ -35,7 +35,7 @@ /// This statistic keeps track of the total number of library calls that have /// been simplified regardless of which call it is. -Statistic<> SimplifiedLibCalls("simplify-libcalls", +Statistic SimplifiedLibCalls("simplify-libcalls", "Number of library calls simplified"); // Forward declarations @@ -68,7 +68,7 @@ LibCallOptimization **Prev, *Next; const char *FunctionName; ///< Name of the library call we optimize #ifndef NDEBUG - Statistic<> occurrences; ///< debug statistic (-debug-only=simplify-libcalls) + Statistic occurrences; ///< debug statistic (-debug-only=simplify-libcalls) #endif public: /// The \p fname argument must be the name of the library function being From sabre at nondot.org Wed Dec 6 11:47:28 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 11:47:28 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Instrumentation/RSProfiling.cpp Message-ID: <200612061747.kB6HlSW8017136@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Instrumentation: RSProfiling.cpp updated: 1.10 -> 1.11 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+1 -1) RSProfiling.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Instrumentation/RSProfiling.cpp diff -u llvm/lib/Transforms/Instrumentation/RSProfiling.cpp:1.10 llvm/lib/Transforms/Instrumentation/RSProfiling.cpp:1.11 --- llvm/lib/Transforms/Instrumentation/RSProfiling.cpp:1.10 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Instrumentation/RSProfiling.cpp Wed Dec 6 11:46:32 2006 @@ -52,7 +52,7 @@ using namespace llvm; namespace { - Statistic<> NumBackEdges("bedge", "Number of BackEdges"); + Statistic NumBackEdges("bedge", "Number of BackEdges"); enum RandomMeth { GBV, GBVO, HOSTCC From rafael.espindola at gmail.com Wed Dec 6 11:51:45 2006 From: rafael.espindola at gmail.com (=?UTF-8?Q?Rafael_Esp=C3=ADndola?=) Date: Wed, 6 Dec 2006 14:51:45 -0300 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> Message-ID: <564d96fb0612060951v3e0fea05v5d2f819e2f1a93f6@mail.gmail.com> On 12/5/06, Jim Laskey wrote: > I had to revert these changes. When I did a clean build I was > inundated with errors. I'm not sure if I made the cut off time for > the mirror. Apparently the problem is caused by the patch making gcc/unwind.h empty but not removing it !!!! Could you please try to remove the empty gcc/unwind.h and try again? I am currently compiling on a powerbook. I will report as soon as it finishes. Best Regards, Rafael From sabre at nondot.org Wed Dec 6 12:13:27 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 12:13:27 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp Message-ID: <200612061813.kB6IDRGw011563@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: PredicateSimplifier.cpp updated: 1.36 -> 1.37 --- Log message: add missing #include --- Diffs of the changes: (+1 -0) PredicateSimplifier.cpp | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp diff -u llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.36 llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.37 --- llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.36 Wed Dec 6 11:46:33 2006 +++ llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp Wed Dec 6 12:13:12 2006 @@ -82,6 +82,7 @@ #include "llvm/Analysis/ET-Forest.h" #include "llvm/Assembly/Writer.h" #include "llvm/Support/CFG.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Debug.h" #include "llvm/Support/InstVisitor.h" #include "llvm/Transforms/Utils/Local.h" From sabre at nondot.org Wed Dec 6 12:15:01 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 12:15:01 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86AsmPrinter.h Message-ID: <200612061815.kB6IF1Sp011638@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86AsmPrinter.h updated: 1.37 -> 1.38 --- Log message: add missing #include --- Diffs of the changes: (+1 -0) X86AsmPrinter.h | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.37 llvm/lib/Target/X86/X86AsmPrinter.h:1.38 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.37 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Wed Dec 6 12:14:47 2006 @@ -23,6 +23,7 @@ #include "llvm/CodeGen/DwarfWriter.h" #include "llvm/CodeGen/MachineDebugInfo.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" #include From sabre at nondot.org Wed Dec 6 12:20:08 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 12:20:08 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Message-ID: <200612061820.kB6IK8Dc011783@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.55 -> 1.56 --- Log message: add #include --- Diffs of the changes: (+1 -0) AlphaAsmPrinter.cpp | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.56 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Dec 6 12:19:53 2006 @@ -21,6 +21,7 @@ #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" #include From sabre at nondot.org Wed Dec 6 12:20:59 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 12:20:59 -0600 Subject: [llvm-commits] CVS: llvm/lib/Support/Statistic.cpp Message-ID: <200612061820.kB6IKxv0011830@zion.cs.uiuc.edu> Changes in directory llvm/lib/Support: Statistic.cpp updated: 1.19 -> 1.20 --- Log message: merge the Statistic and StatisticBase classes, eliminating virtual methods and eliminating #includes from the Statistic.h file. --- Diffs of the changes: (+5 -10) Statistic.cpp | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) Index: llvm/lib/Support/Statistic.cpp diff -u llvm/lib/Support/Statistic.cpp:1.19 llvm/lib/Support/Statistic.cpp:1.20 --- llvm/lib/Support/Statistic.cpp:1.19 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Support/Statistic.cpp Wed Dec 6 12:20:44 2006 @@ -23,6 +23,7 @@ #include "llvm/ADT/Statistic.h" #include "llvm/Support/CommandLine.h" +#include "llvm/ADT/StringExtras.h" #include #include #include @@ -31,7 +32,7 @@ // GetLibSupportInfoOutputFile - Return a file stream to print our output on... namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); } -unsigned StatisticBase::NumStats = 0; +unsigned Statistic::NumStats = 0; // -stats - Command line option to cause transformations to emit stats about // what they did. @@ -61,19 +62,13 @@ static std::vector *AccumStats = 0; -// Out of line virtual dtor, to give the vtable etc a home. -StatisticBase::~StatisticBase() { -} - // Print information when destroyed, iff command line option is specified -void StatisticBase::destroy() const { - if (Enabled && hasSomeData()) { +Statistic::~Statistic() { + if (Enabled && Value != 0) { if (AccumStats == 0) AccumStats = new std::vector(); - std::ostringstream Out; - printValue(Out); - AccumStats->push_back(StatRecord(Out.str(), Name, Desc)); + AccumStats->push_back(StatRecord(utostr(Value), Name, Desc)); } if (--NumStats == 0 && AccumStats) { From sabre at nondot.org Wed Dec 6 12:21:00 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 12:21:00 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/ADT/Statistic.h Message-ID: <200612061821.kB6IL0vj011836@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/ADT: Statistic.h updated: 1.18 -> 1.19 --- Log message: merge the Statistic and StatisticBase classes, eliminating virtual methods and eliminating #includes from the Statistic.h file. --- Diffs of the changes: (+6 -37) Statistic.h | 43 ++++++------------------------------------- 1 files changed, 6 insertions(+), 37 deletions(-) Index: llvm/include/llvm/ADT/Statistic.h diff -u llvm/include/llvm/ADT/Statistic.h:1.18 llvm/include/llvm/ADT/Statistic.h:1.19 --- llvm/include/llvm/ADT/Statistic.h:1.18 Wed Dec 6 11:46:31 2006 +++ llvm/include/llvm/ADT/Statistic.h Wed Dec 6 12:20:44 2006 @@ -26,53 +26,22 @@ #ifndef LLVM_ADT_STATISTIC_H #define LLVM_ADT_STATISTIC_H -#include -#include "llvm/Support/Compiler.h" - namespace llvm { -// StatisticBase - Nontemplated base class for Statistic class... -class StatisticBase { +class Statistic { const char *Name; const char *Desc; - static unsigned NumStats; -protected: - StatisticBase(const char *name, const char *desc) : Name(name), Desc(desc) { - ++NumStats; // Keep track of how many stats are created... - } - // Out of line virtual dtor, to give the vtable etc a home. - virtual ~StatisticBase(); - - // destroy - Called by subclass dtor so that we can still invoke virtual - // functions on the subclass. - void destroy() const; - - // printValue - Overridden by template class to print out the value type... - virtual void printValue(std::ostream &o) const = 0; - - // hasSomeData - Return true if some data has been aquired. Avoid printing - // lots of zero counts. - // - virtual bool hasSomeData() const = 0; -}; - -// Statistic Class - templated on the data type we are monitoring... -class Statistic : private StatisticBase { unsigned Value; - - virtual void printValue(std::ostream &o) const { o << Value; } - virtual bool hasSomeData() const { return Value != 0; } + static unsigned NumStats; public: // Normal constructor, default initialize data item... Statistic(const char *name, const char *desc) - : StatisticBase(name, desc), Value(0) {} - - // Constructor to provide an initial value... - Statistic(const unsigned &Val, const char *name, const char *desc) - : StatisticBase(name, desc), Value(Val) {} + : Name(name), Desc(desc), Value(0) { + ++NumStats; // Keep track of how many stats are created... + } // Print information when destroyed, iff command line option is specified - ~Statistic() { destroy(); } + ~Statistic(); // Allow use of this class as the value itself... operator unsigned() const { return Value; } From rafael.espindola at gmail.com Wed Dec 6 12:58:01 2006 From: rafael.espindola at gmail.com (=?UTF-8?Q?Rafael_Esp=C3=ADndola?=) Date: Wed, 6 Dec 2006 15:58:01 -0300 Subject: [llvm-commits] [LLVMdev] combined arm patch In-Reply-To: <564d96fb0612060951v3e0fea05v5d2f819e2f1a93f6@mail.gmail.com> References: <564d96fb0612011230v30bdeb1akad826ad7d7081ad3@mail.gmail.com> <892D9075-18D5-46A6-AB62-3024C8FD78A3@apple.com> <564d96fb0612041232g62eaa80k8f7d948aa61ea070@mail.gmail.com> <0A5D6DD0-FA29-4BA0-BCB8-9EE914D65653@apple.com> <564d96fb0612060951v3e0fea05v5d2f819e2f1a93f6@mail.gmail.com> Message-ID: <564d96fb0612061058of3e7474n3146d8175f68eb61@mail.gmail.com> > Could you please try to remove the empty gcc/unwind.h and try again? I > am currently compiling on a powerbook. I will report as soon as it > finishes. The build finished successfully! Rafael From dpatel at apple.com Wed Dec 6 13:00:42 2006 From: dpatel at apple.com (Devang Patel) Date: Wed, 6 Dec 2006 13:00:42 -0600 Subject: [llvm-commits] CVS: llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp Message-ID: <200612061900.kB6J0gMF012422@zion.cs.uiuc.edu> Changes in directory llvm/projects/Stacker/lib/compiler: StackerCompiler.cpp updated: 1.24 -> 1.25 --- Log message: Detemplatize the Statistic class. --- Diffs of the changes: (+1 -1) StackerCompiler.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp diff -u llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp:1.24 llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp:1.25 --- llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp:1.24 Sun Nov 26 19:05:10 2006 +++ llvm/projects/Stacker/lib/compiler/StackerCompiler.cpp Wed Dec 6 13:00:27 2006 @@ -38,7 +38,7 @@ StackerCompiler* StackerCompiler::TheInstance = 0; -static Statistic<> NumDefinitions( +static Statistic NumDefinitions( "numdefs","The # of definitions encoutered while compiling Stacker"); StackerCompiler::StackerCompiler() From sabre at nondot.org Wed Dec 6 13:40:19 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 13:40:19 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp Message-ID: <200612061940.kB6JeJ4r013231@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCCodeEmitter.cpp updated: 1.69 -> 1.70 --- Log message: add relocation support for ppc64 branches. --- Diffs of the changes: (+2 -2) PPCCodeEmitter.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp diff -u llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.69 llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.70 --- llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.69 Tue Nov 14 12:44:47 2006 +++ llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp Wed Dec 6 13:40:04 2006 @@ -127,11 +127,11 @@ } else if (MO.isGlobalAddress() || MO.isExternalSymbol() || MO.isConstantPoolIndex() || MO.isJumpTableIndex()) { unsigned Reloc = 0; - if (MI.getOpcode() == PPC::BL) + if (MI.getOpcode() == PPC::BL || MI.getOpcode() == PPC::BL8) Reloc = PPC::reloc_pcrel_bx; else { switch (MI.getOpcode()) { - default: DEBUG(MI.dump()); assert(0 && "Unknown instruction for relocation!"); + default: MI.dump(); assert(0 && "Unknown instruction for relocation!"); case PPC::LIS: case PPC::LIS8: case PPC::ADDIS: From isanbard at gmail.com Wed Dec 6 13:59:08 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 11:59:08 -0800 Subject: [llvm-commits] [llmv-gcc4] Change in arguments (fix build.) In-Reply-To: References: Message-ID: <16e5fdf90612061159tdf030e0lbba1164ee45f668f@mail.gmail.com> Thank you! On 12/6/06, Jim Laskey wrote: > Index: gcc/llvm-backend.cpp > =================================================================== > --- gcc/llvm-backend.cpp (revision 120946) > +++ gcc/llvm-backend.cpp (working copy) > @@ -818,7 +818,7 @@ > void print_llvm(FILE *file, void *LLVM) { > oFILEstream FS(file); > FS << "LLVM: "; > - WriteAsOperand(FS, (Value*)LLVM, true, true, TheModule); > + WriteAsOperand(FS, (Value*)LLVM, true, TheModule); > } > /* APPLE LOCAL end LLVM (ENTIRE FILE!) */ > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > > > From sabre at nondot.org Wed Dec 6 14:03:09 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 14:03:09 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrFormats.td Message-ID: <200612062003.kB6K39m8013606@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCInstrFormats.td updated: 1.86 -> 1.87 --- Log message: fix the jit encoding of sradi, simplify the MDForm1 description. --- Diffs of the changes: (+5 -5) PPCInstrFormats.td | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/lib/Target/PowerPC/PPCInstrFormats.td diff -u llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.86 llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.87 --- llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.86 Fri Nov 17 18:32:03 2006 +++ llvm/lib/Target/PowerPC/PPCInstrFormats.td Wed Dec 6 14:02:54 2006 @@ -498,7 +498,7 @@ let SPR = spr; } -// 1.7.10 XS-Form +// 1.7.10 XS-Form - SRADI. class XSForm_1 opcode, bits<9> xo, dag OL, string asmstr, InstrItinClass itin, list pattern> : I { @@ -511,9 +511,9 @@ let Inst{6-10} = RS; let Inst{11-15} = A; - let Inst{16-20} = SH{1-5}; + let Inst{16-20} = SH{4,3,2,1,0}; let Inst{21-29} = xo; - let Inst{30} = SH{0}; + let Inst{30} = SH{5}; let Inst{31} = RC; } @@ -618,8 +618,8 @@ let Inst{6-10} = RS; let Inst{11-15} = RA; - let Inst{16-20} = { SH{4}, SH{3}, SH{2}, SH{1}, SH{0} }; - let Inst{21-26} = { MBE{4}, MBE{3}, MBE{2}, MBE{1}, MBE{0}, MBE{5} }; + let Inst{16-20} = SH{4,3,2,1,0}; + let Inst{21-26} = MBE{4,3,2,1,0,5}; let Inst{27-29} = xo; let Inst{30} = SH{5}; let Inst{31} = RC; From reid at x10sys.com Wed Dec 6 14:29:02 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:29:02 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/GlobalValue.h Message-ID: <200612062029.kB6KT2cl022889@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: GlobalValue.h updated: 1.28 -> 1.29 --- Log message: Fix some 80 col violations. --- Diffs of the changes: (+2 -2) GlobalValue.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/include/llvm/GlobalValue.h diff -u llvm/include/llvm/GlobalValue.h:1.28 llvm/include/llvm/GlobalValue.h:1.29 --- llvm/include/llvm/GlobalValue.h:1.28 Thu Sep 14 13:23:26 2006 +++ llvm/include/llvm/GlobalValue.h Wed Dec 6 14:28:46 2006 @@ -29,13 +29,13 @@ public: enum LinkageTypes { ExternalLinkage, /// Externally visible function - LinkOnceLinkage, /// Keep one copy of named function when linking (inline) + LinkOnceLinkage, /// Keep one copy of function when linking (inline) WeakLinkage, /// Keep one copy of named function when linking (weak) AppendingLinkage, /// Special purpose, only applies to global arrays InternalLinkage, /// Rename collisions when linking (static functions) DLLImportLinkage, /// Function to be imported from DLL DLLExportLinkage, /// Function to be accessible from DLL - ExternalWeakLinkage, /// TBD: ExternalWeak linkage description + ExternalWeakLinkage, /// ExternalWeak linkage description GhostLinkage /// Stand-in functions for streaming fns from BC files }; protected: From reid at x10sys.com Wed Dec 6 14:30:35 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:30:35 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp Message-ID: <200612062030.kB6KUZDQ022932@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: Constants.cpp updated: 1.181 -> 1.182 --- Log message: For PR950: http://llvm.org/PR950 : Remove the getMaxValue and getMinValue functions from ConstantIntegral. They don't make sense for a signless type. Also, for isMaxValue and isMinValue, have the caller provided the signedness rather than obtaining it from the constant's type. --- Diffs of the changes: (+0 -47) Constants.cpp | 47 ----------------------------------------------- 1 files changed, 47 deletions(-) Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.181 llvm/lib/VMCore/Constants.cpp:1.182 --- llvm/lib/VMCore/Constants.cpp:1.181 Tue Dec 5 13:14:13 2006 +++ llvm/lib/VMCore/Constants.cpp Wed Dec 6 14:30:17 2006 @@ -152,53 +152,6 @@ } } -// Static constructor to create the maximum constant of an integral type... -ConstantIntegral *ConstantIntegral::getMaxValue(const Type *Ty) { - switch (Ty->getTypeID()) { - case Type::BoolTyID: return ConstantBool::getTrue(); - case Type::SByteTyID: - case Type::ShortTyID: - case Type::IntTyID: - case Type::LongTyID: { - // Calculate 011111111111111... - unsigned TypeBits = Ty->getPrimitiveSize()*8; - int64_t Val = INT64_MAX; // All ones - Val >>= 64-TypeBits; // Shift out unwanted 1 bits... - return ConstantInt::get(Ty, Val); - } - - case Type::UByteTyID: - case Type::UShortTyID: - case Type::UIntTyID: - case Type::ULongTyID: return getAllOnesValue(Ty); - - default: return 0; - } -} - -// Static constructor to create the minimum constant for an integral type... -ConstantIntegral *ConstantIntegral::getMinValue(const Type *Ty) { - switch (Ty->getTypeID()) { - case Type::BoolTyID: return ConstantBool::getFalse(); - case Type::SByteTyID: - case Type::ShortTyID: - case Type::IntTyID: - case Type::LongTyID: { - // Calculate 1111111111000000000000 - unsigned TypeBits = Ty->getPrimitiveSize()*8; - int64_t Val = -1; // All ones - Val <<= TypeBits-1; // Shift over to the right spot - return ConstantInt::get(Ty, Val); - } - - case Type::UByteTyID: - case Type::UShortTyID: - case Type::UIntTyID: - case Type::ULongTyID: return ConstantInt::get(Ty, 0); - - default: return 0; - } -} // Static constructor to create an integral constant with all bits set ConstantIntegral *ConstantIntegral::getAllOnesValue(const Type *Ty) { From reid at x10sys.com Wed Dec 6 14:30:35 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:30:35 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h Message-ID: <200612062030.kB6KUZgs022937@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Constants.h updated: 1.103 -> 1.104 --- Log message: For PR950: http://llvm.org/PR950 : Remove the getMaxValue and getMinValue functions from ConstantIntegral. They don't make sense for a signless type. Also, for isMaxValue and isMinValue, have the caller provided the signedness rather than obtaining it from the constant's type. --- Diffs of the changes: (+8 -16) Constants.h | 24 ++++++++---------------- 1 files changed, 8 insertions(+), 16 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.103 llvm/include/llvm/Constants.h:1.104 --- llvm/include/llvm/Constants.h:1.103 Tue Dec 5 13:14:13 2006 +++ llvm/include/llvm/Constants.h Wed Dec 6 14:30:17 2006 @@ -75,14 +75,14 @@ /// constant's type. /// @returns true if the constant's value is maximal. /// @brief Determine if the value is maximal. - virtual bool isMaxValue() const = 0; + virtual bool isMaxValue(bool isSigned) const = 0; /// This function is implemented by subclasses and will return true iff this /// constant represents the smallest value that may be represented by this /// constant's type. /// @returns true if the constant's value is minimal /// @brief Determine if the value is minimal. - virtual bool isMinValue() const = 0; + virtual bool isMinValue(bool isSigned) const = 0; /// This function is implemented by subclasses and will return true iff every /// bit in this constant is set to true. @@ -90,14 +90,6 @@ /// @brief Determine if the value is all ones. virtual bool isAllOnesValue() const = 0; - /// @returns the largest value for an integer constant of the given type - /// @brief Get the maximal value - static ConstantIntegral *getMaxValue(const Type *Ty); - - /// @returns the smallest value for an integer constant of the given type - /// @brief Get the minimal value - static ConstantIntegral *getMinValue(const Type *Ty); - /// @returns the value for an integer constant of the given type that has all /// its bits set to true. /// @brief Get the all ones value @@ -147,8 +139,8 @@ /// @see ConstantIntegral for details /// @brief Implement overrides virtual bool isNullValue() const { return getValue() == false; } - virtual bool isMaxValue() const { return getValue() == true; } - virtual bool isMinValue() const { return getValue() == false; } + virtual bool isMaxValue(bool isSigned) const { return getValue() == true; } + virtual bool isMinValue(bool isSigned) const { return getValue() == false; } virtual bool isAllOnesValue() const { return getValue() == true; } /// @brief Methods to support type inquiry through isa, cast, and dyn_cast: @@ -208,8 +200,8 @@ /// by this type. /// @see ConstantIntegeral /// @brief Override implementation - virtual bool isMaxValue() const { - if (getType()->isSigned()) { + virtual bool isMaxValue(bool isSigned) const { + if (isSigned) { int64_t V = getSExtValue(); if (V < 0) return false; // Be careful about wrap-around on 'long's ++V; @@ -222,8 +214,8 @@ /// this type. /// @see ConstantIntegral /// @brief Override implementation - virtual bool isMinValue() const { - if (getType()->isSigned()) { + virtual bool isMinValue(bool isSigned) const { + if (isSigned) { int64_t V = getSExtValue(); if (V > 0) return false; // Be careful about wrap-around on 'long's --V; From reid at x10sys.com Wed Dec 6 14:40:12 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:40:12 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200612062040.kB6KeCrs023087@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.560 -> 1.561 --- Log message: Update ConstantIntegral Max/Min tests for new interface. --- Diffs of the changes: (+4 -4) InstructionCombining.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.560 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.561 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.560 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Dec 6 14:39:57 2006 @@ -2889,7 +2889,7 @@ if (Inside) { if (Lo == Hi) // Trivially false. return new SetCondInst(Instruction::SetNE, V, V); - if (cast(Lo)->isMinValue()) + if (cast(Lo)->isMinValue(Lo->getType()->isSigned())) return new SetCondInst(Instruction::SetLT, V, Hi); Constant *AddCST = ConstantExpr::getNeg(Lo); @@ -2909,7 +2909,7 @@ Hi = SubOne(cast(Hi)); // V < 0 || V >= Hi ->'V > Hi-1' - if (cast(Lo)->isMinValue()) + if (cast(Lo)->isMinValue(Lo->getType()->isSigned())) return new SetCondInst(Instruction::SetGT, V, Hi); // Emit X-Lo > Hi-Lo-1 @@ -4165,7 +4165,7 @@ // can be folded into the comparison. if (ConstantInt *CI = dyn_cast(Op1)) { // Check to see if we are comparing against the minimum or maximum value... - if (CI->isMinValue()) { + if (CI->isMinValue(CI->getType()->isSigned())) { if (I.getOpcode() == Instruction::SetLT) // A < MIN -> FALSE return ReplaceInstUsesWith(I, ConstantBool::getFalse()); if (I.getOpcode() == Instruction::SetGE) // A >= MIN -> TRUE @@ -4175,7 +4175,7 @@ if (I.getOpcode() == Instruction::SetGT) // A > MIN -> A != MIN return BinaryOperator::createSetNE(Op0, Op1); - } else if (CI->isMaxValue()) { + } else if (CI->isMaxValue(CI->getType()->isSigned())) { if (I.getOpcode() == Instruction::SetGT) // A > MAX -> FALSE return ReplaceInstUsesWith(I, ConstantBool::getFalse()); if (I.getOpcode() == Instruction::SetLE) // A <= MAX -> TRUE From reid at x10sys.com Wed Dec 6 14:45:33 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:45:33 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp Message-ID: <200612062045.kB6KjX0u023191@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/CBackend: Writer.cpp updated: 1.290 -> 1.291 --- Log message: Adjust to new ConstantIntegral interface for Max/Min tests. --- Diffs of the changes: (+1 -1) Writer.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/CBackend/Writer.cpp diff -u llvm/lib/Target/CBackend/Writer.cpp:1.290 llvm/lib/Target/CBackend/Writer.cpp:1.291 --- llvm/lib/Target/CBackend/Writer.cpp:1.290 Thu Nov 30 18:25:12 2006 +++ llvm/lib/Target/CBackend/Writer.cpp Wed Dec 6 14:45:15 2006 @@ -753,7 +753,7 @@ break; case Type::LongTyID: - if (cast(CPV)->isMinValue()) + if (cast(CPV)->isMinValue(CPV->getType()->isSigned())) Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)"; else Out << cast(CPV)->getSExtValue() << "ll"; From reid at x10sys.com Wed Dec 6 14:45:33 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 14:45:33 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/ConstantRange.cpp Message-ID: <200612062045.kB6KjX0e023188@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: ConstantRange.cpp updated: 1.19 -> 1.20 --- Log message: Adjust to new ConstantIntegral interface for Max/Min tests. --- Diffs of the changes: (+56 -10) ConstantRange.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 56 insertions(+), 10 deletions(-) Index: llvm/lib/Analysis/ConstantRange.cpp diff -u llvm/lib/Analysis/ConstantRange.cpp:1.19 llvm/lib/Analysis/ConstantRange.cpp:1.20 --- llvm/lib/Analysis/ConstantRange.cpp:1.19 Sun Dec 3 20:46:44 2006 +++ llvm/lib/Analysis/ConstantRange.cpp Wed Dec 6 14:45:15 2006 @@ -29,6 +29,52 @@ #include using namespace llvm; +static ConstantIntegral *getMaxValue(const Type *Ty) { + switch (Ty->getTypeID()) { + case Type::BoolTyID: return ConstantBool::getTrue(); + case Type::SByteTyID: + case Type::ShortTyID: + case Type::IntTyID: + case Type::LongTyID: { + // Calculate 011111111111111... + unsigned TypeBits = Ty->getPrimitiveSize()*8; + int64_t Val = INT64_MAX; // All ones + Val >>= 64-TypeBits; // Shift out unwanted 1 bits... + return ConstantInt::get(Ty, Val); + } + + case Type::UByteTyID: + case Type::UShortTyID: + case Type::UIntTyID: + case Type::ULongTyID: return ConstantInt::getAllOnesValue(Ty); + + default: return 0; + } +} + +// Static constructor to create the minimum constant for an integral type... +static ConstantIntegral *getMinValue(const Type *Ty) { + switch (Ty->getTypeID()) { + case Type::BoolTyID: return ConstantBool::getFalse(); + case Type::SByteTyID: + case Type::ShortTyID: + case Type::IntTyID: + case Type::LongTyID: { + // Calculate 1111111111000000000000 + unsigned TypeBits = Ty->getPrimitiveSize()*8; + int64_t Val = -1; // All ones + Val <<= TypeBits-1; // Shift over to the right spot + return ConstantInt::get(Ty, Val); + } + + case Type::UByteTyID: + case Type::UShortTyID: + case Type::UIntTyID: + case Type::ULongTyID: return ConstantInt::get(Ty, 0); + + default: return 0; + } +} static ConstantIntegral *Next(ConstantIntegral *CI) { if (ConstantBool *CB = dyn_cast(CI)) return ConstantBool::get(!CB->getValue()); @@ -65,9 +111,9 @@ assert(Ty->isIntegral() && "Cannot make constant range of non-integral type!"); if (Full) - Lower = Upper = ConstantIntegral::getMaxValue(Ty); + Lower = Upper = getMaxValue(Ty); else - Lower = Upper = ConstantIntegral::getMinValue(Ty); + Lower = Upper = getMinValue(Ty); } /// Initialize a range to hold the single specified value. @@ -86,8 +132,8 @@ "Incompatible types for ConstantRange!"); // Make sure that if L & U are equal that they are either Min or Max... - assert((L != U || (L == ConstantIntegral::getMaxValue(L->getType()) || - L == ConstantIntegral::getMinValue(L->getType()))) && + assert((L != U || (L == getMaxValue(L->getType()) || + L == getMinValue(L->getType()))) && "Lower == Upper, but they aren't min or max for type!"); } @@ -99,20 +145,20 @@ case Instruction::SetEQ: Lower = C; Upper = Next(C); return; case Instruction::SetNE: Upper = C; Lower = Next(C); return; case Instruction::SetLT: - Lower = ConstantIntegral::getMinValue(C->getType()); + Lower = getMinValue(C->getType()); Upper = C; return; case Instruction::SetGT: Lower = Next(C); - Upper = ConstantIntegral::getMinValue(C->getType()); // Min = Next(Max) + Upper = getMinValue(C->getType()); // Min = Next(Max) return; case Instruction::SetLE: - Lower = ConstantIntegral::getMinValue(C->getType()); + Lower = getMinValue(C->getType()); Upper = Next(C); return; case Instruction::SetGE: Lower = C; - Upper = ConstantIntegral::getMinValue(C->getType()); // Min = Next(Max) + Upper = getMinValue(C->getType()); // Min = Next(Max) return; } } @@ -124,13 +170,13 @@ /// isFullSet - Return true if this set contains all of the elements possible /// for this data-type bool ConstantRange::isFullSet() const { - return Lower == Upper && Lower == ConstantIntegral::getMaxValue(getType()); + return Lower == Upper && Lower == getMaxValue(getType()); } /// isEmptySet - Return true if this set contains no members. /// bool ConstantRange::isEmptySet() const { - return Lower == Upper && Lower == ConstantIntegral::getMinValue(getType()); + return Lower == Upper && Lower == getMinValue(getType()); } /// isWrappedSet - Return true if this set wraps around the top of the range, From clattner at apple.com Wed Dec 6 15:20:17 2006 From: clattner at apple.com (Chris Lattner) Date: Wed, 6 Dec 2006 13:20:17 -0800 Subject: [llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp In-Reply-To: <200612062045.kB6KjX0u023191@zion.cs.uiuc.edu> References: <200612062045.kB6KjX0u023191@zion.cs.uiuc.edu> Message-ID: On Dec 6,lib/Target/CBackend/Writer.cpp > diff -u llvm/lib/Target/CBackend/Writer.cpp:1.290 llvm/lib/Target/ > CBackend/Writer.cpp:1.291 > --- llvm/lib/Target/CBackend/Writer.cpp:1.290 Thu Nov 30 18:25:12 2006 > +++ llvm/lib/Target/CBackend/Writer.cpp Wed Dec 6 14:45:15 2006 > @@ -753,7 +753,7 @@ > break; > > case Type::LongTyID: > - if (cast(CPV)->isMinValue()) > + if (cast(CPV)->isMinValue(CPV->getType()->isSigned > ())) > Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)"; > else > Out << cast(CPV)->getSExtValue() << "ll"; This should always pass true. -Chris From clattner at apple.com Wed Dec 6 15:20:55 2006 From: clattner at apple.com (Chris Lattner) Date: Wed, 6 Dec 2006 13:20:55 -0800 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h In-Reply-To: <200612062030.kB6KUZgs022937@zion.cs.uiuc.edu> References: <200612062030.kB6KUZgs022937@zion.cs.uiuc.edu> Message-ID: On Dec 6, 2006, at 12:30 PM, Reid Spencer wrote: > > > Changes in directory llvm/include/llvm: > > Constants.h updated: 1.103 -> 1.104 > --- > Log message: > > For PR950: http://llvm.org/PR950 : > Remove the getMaxValue and getMinValue functions from > ConstantIntegral. > They don't make sense for a signless type. Also, for isMaxValue and > isMinValue, have the caller provided the signedness rather than > obtaining > it from the constant's type. Nice, is there any reason for these to remain virtual? -Chris > > --- > Diffs of the changes: (+8 -16) > > Constants.h | 24 ++++++++---------------- > 1 files changed, 8 insertions(+), 16 deletions(-) > > > Index: llvm/include/llvm/Constants.h > diff -u llvm/include/llvm/Constants.h:1.103 llvm/include/llvm/ > Constants.h:1.104 > --- llvm/include/llvm/Constants.h:1.103 Tue Dec 5 13:14:13 2006 > +++ llvm/include/llvm/Constants.h Wed Dec 6 14:30:17 2006 > @@ -75,14 +75,14 @@ > /// constant's type. > /// @returns true if the constant's value is maximal. > /// @brief Determine if the value is maximal. > - virtual bool isMaxValue() const = 0; > + virtual bool isMaxValue(bool isSigned) const = 0; > > /// This function is implemented by subclasses and will return > true iff this > /// constant represents the smallest value that may be > represented by this > /// constant's type. > /// @returns true if the constant's value is minimal > /// @brief Determine if the value is minimal. > - virtual bool isMinValue() const = 0; > + virtual bool isMinValue(bool isSigned) const = 0; > > /// This function is implemented by subclasses and will return > true iff every > /// bit in this constant is set to true. > @@ -90,14 +90,6 @@ > /// @brief Determine if the value is all ones. > virtual bool isAllOnesValue() const = 0; > > - /// @returns the largest value for an integer constant of the > given type > - /// @brief Get the maximal value > - static ConstantIntegral *getMaxValue(const Type *Ty); > - > - /// @returns the smallest value for an integer constant of the > given type > - /// @brief Get the minimal value > - static ConstantIntegral *getMinValue(const Type *Ty); > - > /// @returns the value for an integer constant of the given type > that has all > /// its bits set to true. > /// @brief Get the all ones value > @@ -147,8 +139,8 @@ > /// @see ConstantIntegral for details > /// @brief Implement overrides > virtual bool isNullValue() const { return getValue() == false; } > - virtual bool isMaxValue() const { return getValue() == true; } > - virtual bool isMinValue() const { return getValue() == false; } > + virtual bool isMaxValue(bool isSigned) const { return getValue() > == true; } > + virtual bool isMinValue(bool isSigned) const { return getValue() > == false; } > virtual bool isAllOnesValue() const { return getValue() == true; } > > /// @brief Methods to support type inquiry through isa, cast, > and dyn_cast: > @@ -208,8 +200,8 @@ > /// by this type. > /// @see ConstantIntegeral > /// @brief Override implementation > - virtual bool isMaxValue() const { > - if (getType()->isSigned()) { > + virtual bool isMaxValue(bool isSigned) const { > + if (isSigned) { > int64_t V = getSExtValue(); > if (V < 0) return false; // Be careful about wrap-around > on 'long's > ++V; > @@ -222,8 +214,8 @@ > /// this type. > /// @see ConstantIntegral > /// @brief Override implementation > - virtual bool isMinValue() const { > - if (getType()->isSigned()) { > + virtual bool isMinValue(bool isSigned) const { > + if (isSigned) { > int64_t V = getSExtValue(); > if (V > 0) return false; // Be careful about wrap-around > on 'long's > --V; > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From reid at x10sys.com Wed Dec 6 15:24:35 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 06 Dec 2006 13:24:35 -0800 Subject: [llvm-commits] CVS: llvm/include/llvm/Constants.h In-Reply-To: References: <200612062030.kB6KUZgs022937@zion.cs.uiuc.edu> Message-ID: <1165440275.26545.199.camel@bashful.x10sys.com> On Wed, 2006-12-06 at 13:20 -0800, Chris Lattner wrote: > On Dec 6, 2006, at 12:30 PM, Reid Spencer wrote: > > > > > > > Changes in directory llvm/include/llvm: > > > > Constants.h updated: 1.103 -> 1.104 > > --- > > Log message: > > > > For PR950: http://llvm.org/PR950 : > > Remove the getMaxValue and getMinValue functions from > > ConstantIntegral. > > They don't make sense for a signless type. Also, for isMaxValue and > > isMinValue, have the caller provided the signedness rather than > > obtaining > > it from the constant's type. > > Nice, is there any reason for these to remain virtual? Yes, because I'm scared of breaking things badly? :) I'll give it a whirl. > > -Chris > > > > > --- > > Diffs of the changes: (+8 -16) > > > > Constants.h | 24 ++++++++---------------- > > 1 files changed, 8 insertions(+), 16 deletions(-) > > > > > > Index: llvm/include/llvm/Constants.h > > diff -u llvm/include/llvm/Constants.h:1.103 llvm/include/llvm/ > > Constants.h:1.104 > > --- llvm/include/llvm/Constants.h:1.103 Tue Dec 5 13:14:13 2006 > > +++ llvm/include/llvm/Constants.h Wed Dec 6 14:30:17 2006 > > @@ -75,14 +75,14 @@ > > /// constant's type. > > /// @returns true if the constant's value is maximal. > > /// @brief Determine if the value is maximal. > > - virtual bool isMaxValue() const = 0; > > + virtual bool isMaxValue(bool isSigned) const = 0; > > > > /// This function is implemented by subclasses and will return > > true iff this > > /// constant represents the smallest value that may be > > represented by this > > /// constant's type. > > /// @returns true if the constant's value is minimal > > /// @brief Determine if the value is minimal. > > - virtual bool isMinValue() const = 0; > > + virtual bool isMinValue(bool isSigned) const = 0; > > > > /// This function is implemented by subclasses and will return > > true iff every > > /// bit in this constant is set to true. > > @@ -90,14 +90,6 @@ > > /// @brief Determine if the value is all ones. > > virtual bool isAllOnesValue() const = 0; > > > > - /// @returns the largest value for an integer constant of the > > given type > > - /// @brief Get the maximal value > > - static ConstantIntegral *getMaxValue(const Type *Ty); > > - > > - /// @returns the smallest value for an integer constant of the > > given type > > - /// @brief Get the minimal value > > - static ConstantIntegral *getMinValue(const Type *Ty); > > - > > /// @returns the value for an integer constant of the given type > > that has all > > /// its bits set to true. > > /// @brief Get the all ones value > > @@ -147,8 +139,8 @@ > > /// @see ConstantIntegral for details > > /// @brief Implement overrides > > virtual bool isNullValue() const { return getValue() == false; } > > - virtual bool isMaxValue() const { return getValue() == true; } > > - virtual bool isMinValue() const { return getValue() == false; } > > + virtual bool isMaxValue(bool isSigned) const { return getValue() > > == true; } > > + virtual bool isMinValue(bool isSigned) const { return getValue() > > == false; } > > virtual bool isAllOnesValue() const { return getValue() == true; } > > > > /// @brief Methods to support type inquiry through isa, cast, > > and dyn_cast: > > @@ -208,8 +200,8 @@ > > /// by this type. > > /// @see ConstantIntegeral > > /// @brief Override implementation > > - virtual bool isMaxValue() const { > > - if (getType()->isSigned()) { > > + virtual bool isMaxValue(bool isSigned) const { > > + if (isSigned) { > > int64_t V = getSExtValue(); > > if (V < 0) return false; // Be careful about wrap-around > > on 'long's > > ++V; > > @@ -222,8 +214,8 @@ > > /// this type. > > /// @see ConstantIntegral > > /// @brief Override implementation > > - virtual bool isMinValue() const { > > - if (getType()->isSigned()) { > > + virtual bool isMinValue(bool isSigned) const { > > + if (isSigned) { > > int64_t V = getSExtValue(); > > if (V > 0) return false; // Be careful about wrap-around > > on 'long's > > --V; > > > > > > > > _______________________________________________ > > llvm-commits mailing list > > llvm-commits at cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061206/a4b41ad4/attachment.bin From reid at x10sys.com Wed Dec 6 15:25:10 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 06 Dec 2006 13:25:10 -0800 Subject: [llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp In-Reply-To: References: <200612062045.kB6KjX0u023191@zion.cs.uiuc.edu> Message-ID: <1165440310.26545.201.camel@bashful.x10sys.com> On Wed, 2006-12-06 at 13:20 -0800, Chris Lattner wrote: > On Dec 6,lib/Target/CBackend/Writer.cpp > > diff -u llvm/lib/Target/CBackend/Writer.cpp:1.290 llvm/lib/Target/ > > CBackend/Writer.cpp:1.291 > > --- llvm/lib/Target/CBackend/Writer.cpp:1.290 Thu Nov 30 18:25:12 2006 > > +++ llvm/lib/Target/CBackend/Writer.cpp Wed Dec 6 14:45:15 2006 > > @@ -753,7 +753,7 @@ > > break; > > > > case Type::LongTyID: > > - if (cast(CPV)->isMinValue()) > > + if (cast(CPV)->isMinValue(CPV->getType()->isSigned > > ())) > > Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)"; > > else > > Out << cast(CPV)->getSExtValue() << "ll"; > > This should always pass true. Right. > > -Chris > -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20061206/409724c1/attachment.bin From reid at x10sys.com Wed Dec 6 15:27:28 2006 From: reid at x10sys.com (Reid Spencer) Date: Wed, 6 Dec 2006 15:27:28 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp Message-ID: <200612062127.kB6LRSJf031925@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/CBackend: Writer.cpp updated: 1.291 -> 1.292 --- Log message: Always pass "true" to isMaxValue(bool) because we know the type is LongTy. --- Diffs of the changes: (+1 -1) Writer.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/CBackend/Writer.cpp diff -u llvm/lib/Target/CBackend/Writer.cpp:1.291 llvm/lib/Target/CBackend/Writer.cpp:1.292 --- llvm/lib/Target/CBackend/Writer.cpp:1.291 Wed Dec 6 14:45:15 2006 +++ llvm/lib/Target/CBackend/Writer.cpp Wed Dec 6 15:27:07 2006 @@ -753,7 +753,7 @@ break; case Type::LongTyID: - if (cast(CPV)->isMinValue(CPV->getType()->isSigned())) + if (cast(CPV)->isMinValue(true)) Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)"; else Out << cast(CPV)->getSExtValue() << "ll"; From sabre at nondot.org Wed Dec 6 15:35:25 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 15:35:25 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrFormats.td Message-ID: <200612062135.kB6LZP1H032095@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCInstrFormats.td updated: 1.87 -> 1.88 --- Log message: fix another sradi encoding bug. This fixes Olden/health with the ppc64 jit. --- Diffs of the changes: (+1 -1) PPCInstrFormats.td | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCInstrFormats.td diff -u llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.87 llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.88 --- llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.87 Wed Dec 6 14:02:54 2006 +++ llvm/lib/Target/PowerPC/PPCInstrFormats.td Wed Dec 6 15:35:10 2006 @@ -502,8 +502,8 @@ class XSForm_1 opcode, bits<9> xo, dag OL, string asmstr, InstrItinClass itin, list pattern> : I { - bits<5> RS; bits<5> A; + bits<5> RS; bits<6> SH; bit RC = 0; // set by isDOT From jlaskey at apple.com Wed Dec 6 15:36:22 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 15:36:22 -0600 Subject: [llvm-commits] CVS: llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp Message-ID: <200612062136.kB6LaMwG032120@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/DebugInfo: 2006-11-30-Pubnames.cpp updated: 1.3 -> 1.4 --- Log message: Failing linux. --- Diffs of the changes: (+1 -1) 2006-11-30-Pubnames.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp diff -u llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.3 llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.4 --- llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp:1.3 Mon Dec 4 14:46:05 2006 +++ llvm/test/Regression/DebugInfo/2006-11-30-Pubnames.cpp Wed Dec 6 15:36:07 2006 @@ -5,7 +5,7 @@ // RUN: g++ Output/Pubnames.o -o Output/Pubnames.exe // RUN: ( echo "break main"; echo "run" ; echo "p Pubnames::pubname" ) > Output/Pubnames.gdbin // RUN: gdb -q -batch -n -x Output/Pubnames.gdbin Output/Pubnames.exe | tee Output/Pubnames.out | grep '10' -// XFAIL: alpha|ia64|arm +// XFAIL: alpha|ia64|arm|linux struct Pubnames { static int pubname; From sabre at nondot.org Wed Dec 6 15:46:30 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 15:46:30 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstr64Bit.td Message-ID: <200612062146.kB6LkU1b000617@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCInstr64Bit.td updated: 1.32 -> 1.33 --- Log message: implement sextinreg i8->i64 and i16->i64 --- Diffs of the changes: (+8 -0) PPCInstr64Bit.td | 8 ++++++++ 1 files changed, 8 insertions(+) Index: llvm/lib/Target/PowerPC/PPCInstr64Bit.td diff -u llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.32 llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.33 --- llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.32 Thu Nov 16 16:43:37 2006 +++ llvm/lib/Target/PowerPC/PPCInstr64Bit.td Wed Dec 6 15:46:13 2006 @@ -224,6 +224,14 @@ def SRAD : XForm_6<31, 794, (ops G8RC:$rA, G8RC:$rS, GPRC:$rB), "srad $rA, $rS, $rB", IntRotateD, [(set G8RC:$rA, (sra G8RC:$rS, GPRC:$rB))]>, isPPC64; + +def EXTSB8 : XForm_11<31, 954, (ops G8RC:$rA, G8RC:$rS), + "extsb $rA, $rS", IntGeneral, + [(set G8RC:$rA, (sext_inreg G8RC:$rS, i8))]>; +def EXTSH8 : XForm_11<31, 922, (ops G8RC:$rA, G8RC:$rS), + "extsh $rA, $rS", IntGeneral, + [(set G8RC:$rA, (sext_inreg G8RC:$rS, i16))]>; + def EXTSW : XForm_11<31, 986, (ops G8RC:$rA, G8RC:$rS), "extsw $rA, $rS", IntGeneral, [(set G8RC:$rA, (sext_inreg G8RC:$rS, i32))]>, isPPC64; From jlaskey at apple.com Wed Dec 6 16:47:31 2006 From: jlaskey at apple.com (Jim Laskey) Date: Wed, 6 Dec 2006 16:47:31 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/MathExtras.h Message-ID: <200612062247.kB6MlVOt003083@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: MathExtras.h updated: 1.35 -> 1.36 --- Log message: Ignoring the upper 32 bits of a 64 bit constant is not a good thing. --- Diffs of the changes: (+4 -4) MathExtras.h | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/include/llvm/Support/MathExtras.h diff -u llvm/include/llvm/Support/MathExtras.h:1.35 llvm/include/llvm/Support/MathExtras.h:1.36 --- llvm/include/llvm/Support/MathExtras.h:1.35 Fri Aug 11 18:52:54 2006 +++ llvm/include/llvm/Support/MathExtras.h Wed Dec 6 16:47:14 2006 @@ -35,16 +35,16 @@ } // is?Type - these functions produce optimal testing for integer data types. -inline bool isInt8 (int Value) { +inline bool isInt8 (int64_t Value) { return static_cast(Value) == Value; } -inline bool isUInt8 (int Value) { +inline bool isUInt8 (int64_t Value) { return static_cast(Value) == Value; } -inline bool isInt16 (int Value) { +inline bool isInt16 (int64_t Value) { return static_cast(Value) == Value; } -inline bool isUInt16(int Value) { +inline bool isUInt16(int64_t Value) { return static_cast(Value) == Value; } inline bool isInt32 (int64_t Value) { From evan.cheng at apple.com Wed Dec 6 18:46:19 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 6 Dec 2006 18:46:19 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/VirtRegMap.cpp Message-ID: <200612070046.kB70kJvF005136@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: VirtRegMap.cpp updated: 1.82 -> 1.83 --- Log message: getOperandConstraint returns -1 if the operand does have the specific constraint. This bug was causing excessive spills. --- Diffs of the changes: (+1 -1) VirtRegMap.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/CodeGen/VirtRegMap.cpp diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.82 llvm/lib/CodeGen/VirtRegMap.cpp:1.83 --- llvm/lib/CodeGen/VirtRegMap.cpp:1.82 Wed Dec 6 11:46:31 2006 +++ llvm/lib/CodeGen/VirtRegMap.cpp Wed Dec 6 18:46:04 2006 @@ -97,7 +97,7 @@ } ModRef MRInfo; - if (TII.getOperandConstraint(OldMI->getOpcode(), OpNo, TOI::TIED_TO)) { + if (TII.getOperandConstraint(OldMI->getOpcode(), OpNo, TOI::TIED_TO) != -1) { // Folded a two-address operand. MRInfo = isModRef; } else if (OldMI->getOperand(OpNo).isDef()) { From evan.cheng at apple.com Wed Dec 6 19:19:52 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 6 Dec 2006 19:19:52 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp VirtRegMap.cpp Message-ID: <200612070119.kB71Jq74005746@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: LiveIntervalAnalysis.cpp updated: 1.201 -> 1.202 VirtRegMap.cpp updated: 1.83 -> 1.84 --- Log message: MI keeps a ptr of TargetInstrDescriptor, use it. --- Diffs of the changes: (+5 -3) LiveIntervalAnalysis.cpp | 3 ++- VirtRegMap.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.201 llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.202 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.201 Wed Dec 6 11:46:31 2006 +++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Dec 6 19:19:37 2006 @@ -434,7 +434,8 @@ for (unsigned j = i+1; j < e; ++j) { MachineOperand &MO2 = MI->getOperand(j); if (MO2.isRegister() && MO2.isUse() && MO2.getReg() == Reg && - TII->getOperandConstraint(MI->getOpcode(),j,TOI::TIED_TO) == (int)i) + MI->getInstrDescriptor()-> + getOperandConstraint(j, TOI::TIED_TO) == (int)i) return true; } } Index: llvm/lib/CodeGen/VirtRegMap.cpp diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.83 llvm/lib/CodeGen/VirtRegMap.cpp:1.84 --- llvm/lib/CodeGen/VirtRegMap.cpp:1.83 Wed Dec 6 18:46:04 2006 +++ llvm/lib/CodeGen/VirtRegMap.cpp Wed Dec 6 19:19:37 2006 @@ -97,7 +97,8 @@ } ModRef MRInfo; - if (TII.getOperandConstraint(OldMI->getOpcode(), OpNo, TOI::TIED_TO) != -1) { + if (OldMI->getInstrDescriptor()-> + getOperandConstraint(OpNo, TOI::TIED_TO) != -1) { // Folded a two-address operand. MRInfo = isModRef; } else if (OldMI->getOperand(OpNo).isDef()) { @@ -591,7 +592,7 @@ // aren't allowed to modify the reused register. If none of these cases // apply, reuse it. bool CanReuse = true; - int ti = TII->getOperandConstraint(MI.getOpcode(), i, TOI::TIED_TO); + int ti = MI.getInstrDescriptor()->getOperandConstraint(i, TOI::TIED_TO); if (ti != -1 && MI.getOperand(ti).isReg() && MI.getOperand(ti).getReg() == VirtReg) { From evan.cheng at apple.com Wed Dec 6 19:22:14 2006 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 6 Dec 2006 19:22:14 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86RegisterInfo.cpp Message-ID: <200612070122.kB71MEQ6005799@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86RegisterInfo.cpp updated: 1.182 -> 1.183 --- Log message: MI keeps a ptr of TargetInstrDescriptor, use it. --- Diffs of the changes: (+2 -1) X86RegisterInfo.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86RegisterInfo.cpp diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.182 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.183 --- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.182 Fri Dec 1 15:52:58 2006 +++ llvm/lib/Target/X86/X86RegisterInfo.cpp Wed Dec 6 19:21:59 2006 @@ -27,6 +27,7 @@ #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineLocation.h" #include "llvm/Target/TargetFrameInfo.h" +#include "llvm/Target/TargetInstrInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" #include "llvm/Support/CommandLine.h" @@ -289,7 +290,7 @@ bool isTwoAddrFold = false; unsigned NumOps = TII.getNumOperands(MI->getOpcode()); bool isTwoAddr = NumOps > 1 && - TII.getOperandConstraint(MI->getOpcode(), 1, TOI::TIED_TO) != -1; + MI->getInstrDescriptor()->getOperandConstraint(1, TOI::TIED_TO) != -1; MachineInstr *NewMI = NULL; // Folding a memory location into the two-address part of a two-address From sabre at nondot.org Wed Dec 6 19:24:31 2006 From: sabre at nondot.org (Chris Lattner) Date: Wed, 6 Dec 2006 19:24:31 -0600 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCISelLowering.cpp Message-ID: <200612070124.kB71OVRq005880@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPCISelLowering.cpp updated: 1.240 -> 1.241 --- Log message: Fix i64 uint_to_fp on ppc64 --- Diffs of the changes: (+2 -1) PPCISelLowering.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.240 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.241 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.240 Mon Dec 4 16:04:42 2006 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Wed Dec 6 19:24:16 2006 @@ -181,7 +181,8 @@ // They also have instructions for converting between i64 and fp. setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom); setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom); - + setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand); + // FIXME: disable this lowered code. This generates 64-bit register values, // and we don't model the fact that the top part is clobbered by calls. We // need to flag these together so that the value isn't live across a call. From isanbard at gmail.com Wed Dec 6 19:31:56 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:56 -0600 Subject: [llvm-commits] CVS: llvm/lib/Linker/LinkModules.cpp Linker.cpp Message-ID: <200612070131.kB71VuCM006224@zion.cs.uiuc.edu> Changes in directory llvm/lib/Linker: LinkModules.cpp updated: 1.120 -> 1.121 Linker.cpp updated: 1.12 -> 1.13 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+11 -12) LinkModules.cpp | 17 ++++++++--------- Linker.cpp | 6 +++--- 2 files changed, 11 insertions(+), 12 deletions(-) Index: llvm/lib/Linker/LinkModules.cpp diff -u llvm/lib/Linker/LinkModules.cpp:1.120 llvm/lib/Linker/LinkModules.cpp:1.121 --- llvm/lib/Linker/LinkModules.cpp:1.120 Thu Nov 30 18:25:12 2006 +++ llvm/lib/Linker/LinkModules.cpp Wed Dec 6 19:30:31 2006 @@ -25,7 +25,6 @@ #include "llvm/Assembly/Writer.h" #include "llvm/Support/Streams.h" #include "llvm/System/Path.h" -#include using namespace llvm; // Error - Simple wrapper function to conditionally assign to E and return true. @@ -251,11 +250,11 @@ static void PrintMap(const std::map &M) { for (std::map::const_iterator I = M.begin(), E =M.end(); I != E; ++I) { - llvm_cerr << " Fr: " << (void*)I->first << " "; + cerr << " Fr: " << (void*)I->first << " "; I->first->dump(); - llvm_cerr << " To: " << (void*)I->second << " "; + cerr << " To: " << (void*)I->second << " "; I->second->dump(); - llvm_cerr << "\n"; + cerr << "\n"; } } @@ -313,10 +312,10 @@ } - llvm_cerr << "LinkModules ValueMap: \n"; + cerr << "LinkModules ValueMap: \n"; PrintMap(ValueMap); - llvm_cerr << "Couldn't remap value: " << (void*)In << " " << *In << "\n"; + cerr << "Couldn't remap value: " << (void*)In << " " << *In << "\n"; assert(0 && "Couldn't remap value!"); return 0; } @@ -844,13 +843,13 @@ if (Src->getEndianness() != Module::AnyEndianness && Dest->getEndianness() != Src->getEndianness()) - llvm_cerr << "WARNING: Linking two modules of different endianness!\n"; + cerr << "WARNING: Linking two modules of different endianness!\n"; if (Src->getPointerSize() != Module::AnyPointerSize && Dest->getPointerSize() != Src->getPointerSize()) - llvm_cerr << "WARNING: Linking two modules of different pointer size!\n"; + cerr << "WARNING: Linking two modules of different pointer size!\n"; if (!Src->getTargetTriple().empty() && Dest->getTargetTriple() != Src->getTargetTriple()) - llvm_cerr << "WARNING: Linking two modules of different target triples!\n"; + cerr << "WARNING: Linking two modules of different target triples!\n"; if (!Src->getModuleInlineAsm().empty()) { if (Dest->getModuleInlineAsm().empty()) Index: llvm/lib/Linker/Linker.cpp diff -u llvm/lib/Linker/Linker.cpp:1.12 llvm/lib/Linker/Linker.cpp:1.13 --- llvm/lib/Linker/Linker.cpp:1.12 Mon Nov 27 04:09:12 2006 +++ llvm/lib/Linker/Linker.cpp Wed Dec 6 19:30:31 2006 @@ -45,7 +45,7 @@ Linker::error(const std::string& message) { Error = message; if (!(Flags&QuietErrors)) - llvm_cerr << ProgramName << ": error: " << message << "\n"; + cerr << ProgramName << ": error: " << message << "\n"; return true; } @@ -53,14 +53,14 @@ Linker::warning(const std::string& message) { Error = message; if (!(Flags&QuietErrors)) - llvm_cerr << ProgramName << ": warning: " << message << "\n"; + cerr << ProgramName << ": warning: " << message << "\n"; return false; } void Linker::verbose(const std::string& message) { if (Flags&Verbose) - llvm_cerr << " " << message << "\n"; + cerr << " " << message << "\n"; } void From isanbard at gmail.com Wed Dec 6 19:31:58 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:58 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LowerSwitch.cpp Message-ID: <200612070131.kB71Vw0A006273@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.42 -> 1.43 LowerSwitch.cpp updated: 1.27 -> 1.28 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+3 -4) CodeExtractor.cpp | 4 ++-- LowerSwitch.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.42 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.43 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.42 Sun Nov 26 04:17:54 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Wed Dec 6 19:30:31 2006 @@ -699,10 +699,10 @@ } } - //llvm_cerr << "NEW FUNCTION: " << *newFunction; + //cerr << "NEW FUNCTION: " << *newFunction; // verifyFunction(*newFunction); - // llvm_cerr << "OLD FUNCTION: " << *oldFunction; + // cerr << "OLD FUNCTION: " << *oldFunction; // verifyFunction(*oldFunction); DEBUG(if (verifyFunction(*newFunction)) abort()); Index: llvm/lib/Transforms/Utils/LowerSwitch.cpp diff -u llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.27 llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.28 --- llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.27 Wed Dec 6 11:46:33 2006 +++ llvm/lib/Transforms/Utils/LowerSwitch.cpp Wed Dec 6 19:30:31 2006 @@ -96,8 +96,7 @@ // operator<< - Used for debugging purposes. // -llvm_ostream& operator<<(llvm_ostream &O, - const std::vector &C) { +OStream& operator<<(OStream &O, const std::vector &C) { O << "["; for (std::vector::const_iterator B = C.begin(), From isanbard at gmail.com Wed Dec 6 19:31:58 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:58 -0600 Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp gccld.cpp Message-ID: <200612070131.kB71Vwxg006281@zion.cs.uiuc.edu> Changes in directory llvm/tools/gccld: GenerateCode.cpp updated: 1.66 -> 1.67 gccld.cpp updated: 1.114 -> 1.115 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+21 -21) GenerateCode.cpp | 8 ++++---- gccld.cpp | 34 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 21 deletions(-) Index: llvm/tools/gccld/GenerateCode.cpp diff -u llvm/tools/gccld/GenerateCode.cpp:1.66 llvm/tools/gccld/GenerateCode.cpp:1.67 --- llvm/tools/gccld/GenerateCode.cpp:1.66 Tue Nov 28 18:19:40 2006 +++ llvm/tools/gccld/GenerateCode.cpp Wed Dec 6 19:30:31 2006 @@ -123,10 +123,10 @@ } static void dumpArgs(const char **args) { - llvm_cerr << *args++; + cerr << *args++; while (*args) - llvm_cerr << ' ' << *args++; - llvm_cerr << '\n' << std::flush; + cerr << ' ' << *args++; + cerr << '\n' << std::flush; } static inline void addPass(PassManager &PM, Pass *P) { @@ -283,7 +283,7 @@ Passes.add(createVerifierPass()); // Add the pass that writes bytecode to the output file... - llvm_ostream L(*Out); + OStream L(*Out); addPass(Passes, new WriteBytecodePass(&L, false, !NoCompress)); // Run our queue of passes all at once now, efficiently. Index: llvm/tools/gccld/gccld.cpp diff -u llvm/tools/gccld/gccld.cpp:1.114 llvm/tools/gccld/gccld.cpp:1.115 --- llvm/tools/gccld/gccld.cpp:1.114 Tue Dec 5 19:18:00 2006 +++ llvm/tools/gccld/gccld.cpp Wed Dec 6 19:30:31 2006 @@ -127,7 +127,7 @@ /// Message - The message to print to standard error. /// static int PrintAndReturn(const char *progname, const std::string &Message) { - llvm_cerr << progname << ": " << Message << "\n"; + cerr << progname << ": " << Message << "\n"; return 1; } @@ -141,11 +141,11 @@ std::string ErrMsg; sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0]); if (llvmstub.isEmpty()) { - llvm_cerr << "Could not find llvm-stub.exe executable!\n"; + cerr << "Could not find llvm-stub.exe executable!\n"; exit(1); } if (0 != sys::CopyFile(sys::Path(OutputFilename), llvmstub, &ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; exit(1); } @@ -326,18 +326,18 @@ return PrintAndReturn(argv[0], "Failed to find gcc"); // Generate an assembly language file for the bytecode. - if (Verbose) llvm_cout << "Generating Assembly Code\n"; + if (Verbose) cout << "Generating Assembly Code\n"; std::string ErrMsg; if (0 != GenerateAssembly( AssemblyFile.toString(), RealBytecodeOutput, llc, ErrMsg, Verbose)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } - if (Verbose) llvm_cout << "Generating Native Code\n"; + if (Verbose) cout << "Generating Native Code\n"; if (0 != GenerateNative(OutputFilename, AssemblyFile.toString(), LibPaths, Libraries, gcc, envp, LinkAsLibrary, NoInternalize, RPath, SOName, ErrMsg, Verbose) ) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } @@ -366,18 +366,18 @@ return PrintAndReturn(argv[0], "Failed to find gcc"); // Generate an assembly language file for the bytecode. - if (Verbose) llvm_cout << "Generating C Source Code\n"; + if (Verbose) cout << "Generating C Source Code\n"; std::string ErrMsg; if (0 != GenerateCFile( CFile.toString(), RealBytecodeOutput, llc, ErrMsg, Verbose)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } - if (Verbose) llvm_cout << "Generating Native Code\n"; + if (Verbose) cout << "Generating Native Code\n"; if (0 != GenerateNative(OutputFilename, CFile.toString(), LibPaths, Libraries, gcc, envp, LinkAsLibrary, NoInternalize, RPath, SOName, ErrMsg, Verbose)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } @@ -394,11 +394,11 @@ // Make the bytecode file readable and directly executable in LLEE std::string ErrMsg; if (sys::Path(RealBytecodeOutput).makeExecutableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } if (sys::Path(RealBytecodeOutput).makeReadableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } } @@ -406,18 +406,18 @@ // Make the output, whether native or script, executable as well... std::string ErrMsg; if (sys::Path(OutputFilename).makeExecutableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } } catch (const char*msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; exitCode = 1; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; exitCode = 2; } catch (...) { // This really shouldn't happen, but just in case .... - llvm_cerr << argv[0] << ": An unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": An unexpected unknown exception occurred.\n"; exitCode = 3; } From isanbard at gmail.com Wed Dec 6 19:31:57 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:57 -0600 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp ExternalFunctions.cpp Message-ID: <200612070131.kB71VvFb006262@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine/Interpreter: Execution.cpp updated: 1.151 -> 1.152 ExternalFunctions.cpp updated: 1.91 -> 1.92 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+35 -36) Execution.cpp | 57 ++++++++++++++++++++++++-------------------------- ExternalFunctions.cpp | 14 ++++++------ 2 files changed, 35 insertions(+), 36 deletions(-) Index: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp diff -u llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.151 llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.152 --- llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.151 Wed Dec 6 11:46:32 2006 +++ llvm/lib/ExecutionEngine/Interpreter/Execution.cpp Wed Dec 6 19:30:31 2006 @@ -188,7 +188,7 @@ getOperandValue(CE->getOperand(1), SF), getOperandValue(CE->getOperand(2), SF)); default: - llvm_cerr << "Unhandled ConstantExpr: " << *CE << "\n"; + cerr << "Unhandled ConstantExpr: " << *CE << "\n"; abort(); return GenericValue(); } @@ -236,7 +236,7 @@ IMPLEMENT_BINARY_OPERATOR(+, Float); IMPLEMENT_BINARY_OPERATOR(+, Double); default: - llvm_cerr << "Unhandled type for Add instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Add instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -257,7 +257,7 @@ IMPLEMENT_BINARY_OPERATOR(-, Float); IMPLEMENT_BINARY_OPERATOR(-, Double); default: - llvm_cerr << "Unhandled type for Sub instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Sub instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -278,7 +278,7 @@ IMPLEMENT_BINARY_OPERATOR(*, Float); IMPLEMENT_BINARY_OPERATOR(*, Double); default: - llvm_cerr << "Unhandled type for Mul instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Mul instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -296,7 +296,7 @@ IMPLEMENT_SIGNLESS_BINOP(/, UInt, Int); IMPLEMENT_SIGNLESS_BINOP(/, ULong, Long); default: - llvm_cerr << "Unhandled type for UDiv instruction: " << *Ty << "\n"; + cerr << "Unhandled type for UDiv instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -311,7 +311,7 @@ IMPLEMENT_SIGNLESS_BINOP(/, Int, UInt); IMPLEMENT_SIGNLESS_BINOP(/, Long, ULong); default: - llvm_cerr << "Unhandled type for SDiv instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SDiv instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -324,7 +324,7 @@ IMPLEMENT_BINARY_OPERATOR(/, Float); IMPLEMENT_BINARY_OPERATOR(/, Double); default: - llvm_cerr << "Unhandled type for Div instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Div instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -339,7 +339,7 @@ IMPLEMENT_SIGNLESS_BINOP(%, UInt, Int); IMPLEMENT_SIGNLESS_BINOP(%, ULong, Long); default: - llvm_cerr << "Unhandled type for URem instruction: " << *Ty << "\n"; + cerr << "Unhandled type for URem instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -354,7 +354,7 @@ IMPLEMENT_SIGNLESS_BINOP(%, Int, UInt); IMPLEMENT_SIGNLESS_BINOP(%, Long, ULong); default: - llvm_cerr << "Unhandled type for Rem instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Rem instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -371,7 +371,7 @@ Dest.DoubleVal = fmod(Src1.DoubleVal, Src2.DoubleVal); break; default: - llvm_cerr << "Unhandled type for Rem instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Rem instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -391,7 +391,7 @@ IMPLEMENT_BINARY_OPERATOR(&, ULong); IMPLEMENT_BINARY_OPERATOR(&, Long); default: - llvm_cerr << "Unhandled type for And instruction: " << *Ty << "\n"; + cerr << "Unhandled type for And instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -411,7 +411,7 @@ IMPLEMENT_BINARY_OPERATOR(|, ULong); IMPLEMENT_BINARY_OPERATOR(|, Long); default: - llvm_cerr << "Unhandled type for Or instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Or instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -431,7 +431,7 @@ IMPLEMENT_BINARY_OPERATOR(^, ULong); IMPLEMENT_BINARY_OPERATOR(^, Long); default: - llvm_cerr << "Unhandled type for Xor instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Xor instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -465,7 +465,7 @@ IMPLEMENT_SETCC(==, Double); IMPLEMENT_POINTERSETCC(==); default: - llvm_cerr << "Unhandled type for SetEQ instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetEQ instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -488,7 +488,7 @@ IMPLEMENT_POINTERSETCC(!=); default: - llvm_cerr << "Unhandled type for SetNE instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetNE instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -510,7 +510,7 @@ IMPLEMENT_SETCC(<=, Double); IMPLEMENT_POINTERSETCC(<=); default: - llvm_cerr << "Unhandled type for SetLE instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetLE instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -532,7 +532,7 @@ IMPLEMENT_SETCC(>=, Double); IMPLEMENT_POINTERSETCC(>=); default: - llvm_cerr << "Unhandled type for SetGE instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetGE instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -554,7 +554,7 @@ IMPLEMENT_SETCC(<, Double); IMPLEMENT_POINTERSETCC(<); default: - llvm_cerr << "Unhandled type for SetLT instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetLT instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -576,7 +576,7 @@ IMPLEMENT_SETCC(>, Double); IMPLEMENT_POINTERSETCC(>); default: - llvm_cerr << "Unhandled type for SetGT instruction: " << *Ty << "\n"; + cerr << "Unhandled type for SetGT instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -609,7 +609,7 @@ case Instruction::SetLT: R = executeSetLTInst(Src1, Src2, Ty); break; case Instruction::SetGT: R = executeSetGTInst(Src1, Src2, Ty); break; default: - llvm_cerr << "Don't know how to handle this binary operator!\n-->" << I; + cerr << "Don't know how to handle this binary operator!\n-->" << I; abort(); } @@ -710,7 +710,7 @@ } void Interpreter::visitUnreachableInst(UnreachableInst &I) { - llvm_cerr << "ERROR: Program executed an 'unreachable' instruction!\n"; + cerr << "ERROR: Program executed an 'unreachable' instruction!\n"; abort(); } @@ -978,7 +978,7 @@ IMPLEMENT_SHIFT(<<, ULong); IMPLEMENT_SHIFT(<<, Long); default: - llvm_cerr << "Unhandled type for Shl instruction: " << *Ty << "\n"; + cerr << "Unhandled type for Shl instruction: " << *Ty << "\n"; } return Dest; } @@ -992,7 +992,7 @@ IMPLEMENT_SIGNLESS_SHIFT(>>, UInt, Int); IMPLEMENT_SIGNLESS_SHIFT(>>, ULong, Long); default: - llvm_cerr << "Unhandled type for LShr instruction: " << *Ty << "\n"; + cerr << "Unhandled type for LShr instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -1007,7 +1007,7 @@ IMPLEMENT_SIGNLESS_SHIFT(>>, Int, UInt); IMPLEMENT_SIGNLESS_SHIFT(>>, Long, ULong); default: - llvm_cerr << "Unhandled type for AShr instruction: " << *Ty << "\n"; + cerr << "Unhandled type for AShr instruction: " << *Ty << "\n"; abort(); } return Dest; @@ -1065,14 +1065,14 @@ IMPLEMENT_CAST(DESTTY, DESTCTY, Float); \ IMPLEMENT_CAST(DESTTY, DESTCTY, Double) \ default: \ - llvm_cerr << "Unhandled cast: " \ + cerr << "Unhandled cast: " \ << *SrcTy << " to " << *DstTy << "\n"; \ abort(); \ } \ break #define IMPLEMENT_CAST_END \ - default: llvm_cerr \ + default: cerr \ << "Unhandled dest type for cast instruction: " \ << *DstTy << "\n"; \ abort(); \ @@ -1226,8 +1226,7 @@ IMPLEMENT_CAST_END break; default: - llvm_cerr - << "Invalid cast opcode for cast instruction: " << opcode << "\n"; + cerr << "Invalid cast opcode for cast instruction: " << opcode << "\n"; abort(); } return Dest; @@ -1266,7 +1265,7 @@ IMPLEMENT_VAARG(Double); IMPLEMENT_VAARG(Bool); default: - llvm_cerr << "Unhandled dest type for vaarg instruction: " << *Ty << "\n"; + cerr << "Unhandled dest type for vaarg instruction: " << *Ty << "\n"; abort(); } Index: llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp diff -u llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:1.91 llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:1.92 --- llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:1.91 Fri Dec 1 20:22:01 2006 +++ llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp Wed Dec 6 19:30:31 2006 @@ -93,8 +93,8 @@ std::map::iterator FI = Functions.find(F); ExFunc Fn = (FI == Functions.end()) ? lookupFunction(F) : FI->second; if (Fn == 0) { - llvm_cerr << "Tried to execute an unknown external function: " - << F->getType()->getDescription() << " " << F->getName() << "\n"; + cerr << "Tried to execute an unknown external function: " + << F->getType()->getDescription() << " " << F->getName() << "\n"; if (F->getName() == "__main") return GenericValue(); abort(); @@ -114,19 +114,19 @@ // void putchar(sbyte) GenericValue lle_Vb_putchar(FunctionType *M, const vector &Args) { - llvm_cout << Args[0].SByteVal; + cout << Args[0].SByteVal; return GenericValue(); } // int putchar(int) GenericValue lle_ii_putchar(FunctionType *M, const vector &Args) { - llvm_cout << ((char)Args[0].IntVal) << std::flush; + cout << ((char)Args[0].IntVal) << std::flush; return Args[0]; } // void putchar(ubyte) GenericValue lle_VB_putchar(FunctionType *M, const vector &Args) { - llvm_cout << Args[0].SByteVal << std::flush; + cout << Args[0].SByteVal << std::flush; return Args[0]; } @@ -332,7 +332,7 @@ sprintf(Buffer, FmtBuf, (void*)GVTOP(Args[ArgNo++])); break; case 's': sprintf(Buffer, FmtBuf, (char*)GVTOP(Args[ArgNo++])); break; - default: llvm_cerr << ""; + default: cerr << ""; ArgNo++; break; } strcpy(OutputBuffer, Buffer); @@ -350,7 +350,7 @@ NewArgs.push_back(PTOGV(Buffer)); NewArgs.insert(NewArgs.end(), Args.begin(), Args.end()); GenericValue GV = lle_X_sprintf(M, NewArgs); - llvm_cout << Buffer; + cout << Buffer; return GV; } From isanbard at gmail.com Wed Dec 6 19:31:58 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:58 -0600 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp DwarfWriter.cpp ELFWriter.cpp IntrinsicLowering.cpp LiveInterval.cpp LiveIntervalAnalysis.cpp MachineInstr.cpp VirtRegMap.cpp VirtRegMap.h Message-ID: <200612070131.kB71VwkA006279@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen: AsmPrinter.cpp updated: 1.119 -> 1.120 DwarfWriter.cpp updated: 1.106 -> 1.107 ELFWriter.cpp updated: 1.29 -> 1.30 IntrinsicLowering.cpp updated: 1.48 -> 1.49 LiveInterval.cpp updated: 1.39 -> 1.40 LiveIntervalAnalysis.cpp updated: 1.202 -> 1.203 MachineInstr.cpp updated: 1.137 -> 1.138 VirtRegMap.cpp updated: 1.84 -> 1.85 VirtRegMap.h updated: 1.23 -> 1.24 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+51 -57) AsmPrinter.cpp | 37 ++++++++++++++++++------------------- DwarfWriter.cpp | 16 +++++++--------- ELFWriter.cpp | 7 +++---- IntrinsicLowering.cpp | 24 ++++++++++++------------ LiveInterval.cpp | 7 +++---- LiveIntervalAnalysis.cpp | 4 ++-- MachineInstr.cpp | 3 +-- VirtRegMap.cpp | 6 +++--- VirtRegMap.h | 4 ++-- 9 files changed, 51 insertions(+), 57 deletions(-) Index: llvm/lib/CodeGen/AsmPrinter.cpp diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.119 llvm/lib/CodeGen/AsmPrinter.cpp:1.120 --- llvm/lib/CodeGen/AsmPrinter.cpp:1.119 Tue Nov 28 18:39:47 2006 +++ llvm/lib/CodeGen/AsmPrinter.cpp Wed Dec 6 19:30:31 2006 @@ -25,7 +25,6 @@ #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetLowering.h" #include "llvm/Target/TargetMachine.h" -#include #include using namespace llvm; @@ -668,8 +667,8 @@ if (LastMI != MI) { ++Counter; LastMI = MI; } O << Counter; } else { - llvm_cerr << "Unknown special formatter '" << Code - << "' for machine instr: " << *MI; + cerr << "Unknown special formatter '" << Code + << "' for machine instr: " << *MI; exit(1); } } @@ -737,8 +736,8 @@ case '(': // $( -> same as GCC's { character. ++LastEmitted; // Consume '(' character. if (CurVariant != -1) { - llvm_cerr << "Nested variants found in inline asm string: '" - << AsmStr << "'\n"; + cerr << "Nested variants found in inline asm string: '" + << AsmStr << "'\n"; exit(1); } CurVariant = 0; // We're in the first variant now. @@ -746,8 +745,8 @@ case '|': ++LastEmitted; // consume '|' character. if (CurVariant == -1) { - llvm_cerr << "Found '|' character outside of variant in inline asm " - << "string: '" << AsmStr << "'\n"; + cerr << "Found '|' character outside of variant in inline asm " + << "string: '" << AsmStr << "'\n"; exit(1); } ++CurVariant; // We're in the next variant. @@ -755,8 +754,8 @@ case ')': // $) -> same as GCC's } char. ++LastEmitted; // consume ')' character. if (CurVariant == -1) { - llvm_cerr << "Found '}' character outside of variant in inline asm " - << "string: '" << AsmStr << "'\n"; + cerr << "Found '}' character outside of variant in inline asm " + << "string: '" << AsmStr << "'\n"; exit(1); } CurVariant = -1; @@ -774,8 +773,8 @@ char *IDEnd; long Val = strtol(IDStart, &IDEnd, 10); // We only accept numbers for IDs. if (!isdigit(*IDStart) || (Val == 0 && errno == EINVAL)) { - llvm_cerr << "Bad $ operand number in inline asm string: '" - << AsmStr << "'\n"; + cerr << "Bad $ operand number in inline asm string: '" + << AsmStr << "'\n"; exit(1); } LastEmitted = IDEnd; @@ -788,8 +787,8 @@ if (*LastEmitted == ':') { ++LastEmitted; // Consume ':' character. if (*LastEmitted == 0) { - llvm_cerr << "Bad ${:} expression in inline asm string: '" - << AsmStr << "'\n"; + cerr << "Bad ${:} expression in inline asm string: '" + << AsmStr << "'\n"; exit(1); } @@ -798,16 +797,16 @@ } if (*LastEmitted != '}') { - llvm_cerr << "Bad ${} expression in inline asm string: '" - << AsmStr << "'\n"; + cerr << "Bad ${} expression in inline asm string: '" + << AsmStr << "'\n"; exit(1); } ++LastEmitted; // Consume '}' character. } if ((unsigned)Val >= NumOperands-1) { - llvm_cerr << "Invalid $ operand number in inline asm string: '" - << AsmStr << "'\n"; + cerr << "Invalid $ operand number in inline asm string: '" + << AsmStr << "'\n"; exit(1); } @@ -841,8 +840,8 @@ } } if (Error) { - llvm_cerr << "Invalid operand found in inline asm: '" - << AsmStr << "'\n"; + cerr << "Invalid operand found in inline asm: '" + << AsmStr << "'\n"; MI->dump(); exit(1); } Index: llvm/lib/CodeGen/DwarfWriter.cpp diff -u llvm/lib/CodeGen/DwarfWriter.cpp:1.106 llvm/lib/CodeGen/DwarfWriter.cpp:1.107 --- llvm/lib/CodeGen/DwarfWriter.cpp:1.106 Wed Dec 6 11:43:18 2006 +++ llvm/lib/CodeGen/DwarfWriter.cpp Wed Dec 6 19:30:31 2006 @@ -31,10 +31,8 @@ #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetFrameInfo.h" - #include #include - using namespace llvm; using namespace llvm::dwarf; @@ -139,7 +137,7 @@ } #ifndef NDEBUG - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } void print(std::ostream &O) const { @@ -247,7 +245,7 @@ void Emit(const Dwarf &DW) const; #ifndef NDEBUG - void print(llvm_ostream &O) { + void print(OStream &O) { if (O.stream()) print(*O.stream()); } void print(std::ostream &O); @@ -337,7 +335,7 @@ void Profile(FoldingSetNodeID &ID) ; #ifndef NDEBUG - void print(llvm_ostream &O, unsigned IncIndent = 0) { + void print(OStream &O, unsigned IncIndent = 0) { if (O.stream()) print(*O.stream(), IncIndent); } void print(std::ostream &O, unsigned IncIndent = 0); @@ -388,7 +386,7 @@ virtual void Profile(FoldingSetNodeID &ID) = 0; #ifndef NDEBUG - void print(llvm_ostream &O) { + void print(OStream &O) { if (O.stream()) print(*O.stream()); } virtual void print(std::ostream &O) = 0; @@ -2861,14 +2859,14 @@ << "\n"; } } -void DIEAbbrev::dump() { print(llvm_cerr); } +void DIEAbbrev::dump() { print(cerr); } #endif //===----------------------------------------------------------------------===// #ifndef NDEBUG void DIEValue::dump() { - print(llvm_cerr); + print(cerr); } #endif @@ -3079,7 +3077,7 @@ } void DIE::dump() { - print(llvm_cerr); + print(cerr); } #endif Index: llvm/lib/CodeGen/ELFWriter.cpp diff -u llvm/lib/CodeGen/ELFWriter.cpp:1.29 llvm/lib/CodeGen/ELFWriter.cpp:1.30 --- llvm/lib/CodeGen/ELFWriter.cpp:1.29 Tue Nov 28 18:39:47 2006 +++ llvm/lib/CodeGen/ELFWriter.cpp Wed Dec 6 19:30:31 2006 @@ -39,7 +39,6 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Mangler.h" #include "llvm/Support/Streams.h" -#include using namespace llvm; //===----------------------------------------------------------------------===// @@ -104,9 +103,9 @@ ELFWriter::ELFSection::SHF_EXECINSTR | ELFWriter::ELFSection::SHF_ALLOC); OutBuffer = &ES->SectionData; - llvm_cerr << "FIXME: This code needs to be updated for changes in the" - << " CodeEmitter interfaces. In particular, this should set " - << "BufferBegin/BufferEnd/CurBufferPtr, not deal with OutBuffer!"; + cerr << "FIXME: This code needs to be updated for changes in the" + << " CodeEmitter interfaces. In particular, this should set " + << "BufferBegin/BufferEnd/CurBufferPtr, not deal with OutBuffer!"; abort(); // Upgrade the section alignment if required. Index: llvm/lib/CodeGen/IntrinsicLowering.cpp diff -u llvm/lib/CodeGen/IntrinsicLowering.cpp:1.48 llvm/lib/CodeGen/IntrinsicLowering.cpp:1.49 --- llvm/lib/CodeGen/IntrinsicLowering.cpp:1.48 Mon Nov 27 20:08:17 2006 +++ llvm/lib/CodeGen/IntrinsicLowering.cpp Wed Dec 6 19:30:31 2006 @@ -274,12 +274,12 @@ switch (Callee->getIntrinsicID()) { case Intrinsic::not_intrinsic: - llvm_cerr << "Cannot lower a call to a non-intrinsic function '" - << Callee->getName() << "'!\n"; + cerr << "Cannot lower a call to a non-intrinsic function '" + << Callee->getName() << "'!\n"; abort(); default: - llvm_cerr << "Error: Code generator does not support intrinsic function '" - << Callee->getName() << "'!\n"; + cerr << "Error: Code generator does not support intrinsic function '" + << Callee->getName() << "'!\n"; abort(); // The setjmp/longjmp intrinsics should only exist in the code if it was @@ -356,9 +356,9 @@ case Intrinsic::stackrestore: { static bool Warned = false; if (!Warned) - llvm_cerr << "WARNING: this target does not support the llvm.stack" - << (Callee->getIntrinsicID() == Intrinsic::stacksave ? - "save" : "restore") << " intrinsic.\n"; + cerr << "WARNING: this target does not support the llvm.stack" + << (Callee->getIntrinsicID() == Intrinsic::stacksave ? + "save" : "restore") << " intrinsic.\n"; Warned = true; if (Callee->getIntrinsicID() == Intrinsic::stacksave) CI->replaceAllUsesWith(Constant::getNullValue(CI->getType())); @@ -367,9 +367,9 @@ case Intrinsic::returnaddress: case Intrinsic::frameaddress: - llvm_cerr << "WARNING: this target does not support the llvm." - << (Callee->getIntrinsicID() == Intrinsic::returnaddress ? - "return" : "frame") << "address intrinsic.\n"; + cerr << "WARNING: this target does not support the llvm." + << (Callee->getIntrinsicID() == Intrinsic::returnaddress ? + "return" : "frame") << "address intrinsic.\n"; CI->replaceAllUsesWith(ConstantPointerNull::get( cast(CI->getType()))); break; @@ -380,8 +380,8 @@ case Intrinsic::pcmarker: break; // Simply strip out pcmarker on unsupported architectures case Intrinsic::readcyclecounter: { - llvm_cerr << "WARNING: this target does not support the llvm.readcyclecoun" - << "ter intrinsic. It is being lowered to a constant 0\n"; + cerr << "WARNING: this target does not support the llvm.readcyclecoun" + << "ter intrinsic. It is being lowered to a constant 0\n"; CI->replaceAllUsesWith(ConstantInt::get(Type::ULongTy, 0)); break; } Index: llvm/lib/CodeGen/LiveInterval.cpp diff -u llvm/lib/CodeGen/LiveInterval.cpp:1.39 llvm/lib/CodeGen/LiveInterval.cpp:1.40 --- llvm/lib/CodeGen/LiveInterval.cpp:1.39 Tue Nov 28 18:39:47 2006 +++ llvm/lib/CodeGen/LiveInterval.cpp Wed Dec 6 19:30:31 2006 @@ -23,7 +23,6 @@ #include "llvm/Support/Streams.h" #include "llvm/Target/MRegisterInfo.h" #include -#include #include using namespace llvm; @@ -472,10 +471,10 @@ } void LiveRange::dump() const { - llvm_cerr << *this << "\n"; + cerr << *this << "\n"; } -void LiveInterval::print(llvm_ostream OS, const MRegisterInfo *MRI) const { +void LiveInterval::print(OStream OS, const MRegisterInfo *MRI) const { if (MRI && MRegisterInfo::isPhysicalRegister(reg)) OS << MRI->getName(reg); else @@ -508,5 +507,5 @@ } void LiveInterval::dump() const { - llvm_cerr << *this << "\n"; + cerr << *this << "\n"; } Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.202 llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.203 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.202 Wed Dec 6 19:19:37 2006 +++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Dec 6 19:30:31 2006 @@ -419,9 +419,9 @@ void LiveIntervals::printRegName(unsigned reg) const { if (MRegisterInfo::isPhysicalRegister(reg)) - llvm_cerr << mri_->getName(reg); + cerr << mri_->getName(reg); else - llvm_cerr << "%reg" << reg; + cerr << "%reg" << reg; } /// isReDefinedByTwoAddr - Returns true if the Reg re-definition is due to Index: llvm/lib/CodeGen/MachineInstr.cpp diff -u llvm/lib/CodeGen/MachineInstr.cpp:1.137 llvm/lib/CodeGen/MachineInstr.cpp:1.138 --- llvm/lib/CodeGen/MachineInstr.cpp:1.137 Wed Dec 6 02:27:42 2006 +++ llvm/lib/CodeGen/MachineInstr.cpp Wed Dec 6 19:30:31 2006 @@ -18,7 +18,6 @@ #include "llvm/Target/MRegisterInfo.h" #include "llvm/Support/LeakDetector.h" #include "llvm/Support/Streams.h" -#include using namespace llvm; /// MachineInstr ctor - This constructor creates a dummy MachineInstr with @@ -201,7 +200,7 @@ } void MachineInstr::dump() const { - llvm_cerr << " " << *this; + cerr << " " << *this; } static inline void OutputReg(std::ostream &os, unsigned RegNo, Index: llvm/lib/CodeGen/VirtRegMap.cpp diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.84 llvm/lib/CodeGen/VirtRegMap.cpp:1.85 --- llvm/lib/CodeGen/VirtRegMap.cpp:1.84 Wed Dec 6 19:19:37 2006 +++ llvm/lib/CodeGen/VirtRegMap.cpp Wed Dec 6 19:30:31 2006 @@ -112,11 +112,11 @@ } void VirtRegMap::print(std::ostream &OS) const { - llvm_ostream LOS(OS); + OStream LOS(OS); print(LOS); } -void VirtRegMap::print(llvm_ostream &OS) const { +void VirtRegMap::print(OStream &OS) const { const MRegisterInfo* MRI = MF.getTarget().getRegisterInfo(); OS << "********** REGISTER MAP **********\n"; @@ -135,7 +135,7 @@ } void VirtRegMap::dump() const { - llvm_ostream OS = DOUT; + OStream OS = DOUT; print(OS); } Index: llvm/lib/CodeGen/VirtRegMap.h diff -u llvm/lib/CodeGen/VirtRegMap.h:1.23 llvm/lib/CodeGen/VirtRegMap.h:1.24 --- llvm/lib/CodeGen/VirtRegMap.h:1.23 Thu Nov 16 20:09:07 2006 +++ llvm/lib/CodeGen/VirtRegMap.h Wed Dec 6 19:30:31 2006 @@ -19,12 +19,12 @@ #include "llvm/Target/MRegisterInfo.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/Support/Streams.h" #include namespace llvm { class MachineInstr; class TargetInstrInfo; - class llvm_ostream; class VirtRegMap { public: @@ -145,7 +145,7 @@ } void print(std::ostream &OS) const; - void print(llvm_ostream &OS) const; + void print(OStream &OS) const; void dump() const; }; From isanbard at gmail.com Wed Dec 6 19:32:00 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:00 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Assembly/PrintModulePass.h Message-ID: <200612070132.kB71W0Pr006303@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Assembly: PrintModulePass.h updated: 1.20 -> 1.21 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+8 -10) PrintModulePass.h | 18 ++++++++---------- 1 files changed, 8 insertions(+), 10 deletions(-) Index: llvm/include/llvm/Assembly/PrintModulePass.h diff -u llvm/include/llvm/Assembly/PrintModulePass.h:1.20 llvm/include/llvm/Assembly/PrintModulePass.h:1.21 --- llvm/include/llvm/Assembly/PrintModulePass.h:1.20 Tue Nov 28 17:31:42 2006 +++ llvm/include/llvm/Assembly/PrintModulePass.h Wed Dec 6 19:30:30 2006 @@ -25,13 +25,12 @@ namespace llvm { class PrintModulePass : public ModulePass { - llvm_ostream *Out; // ostream to print on + OStream *Out; // ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: - PrintModulePass() : Out(&llvm_cerr), DeleteStream(false) {} - PrintModulePass(llvm_ostream *o, bool DS = false) - : Out(o), DeleteStream(DS) { - } + PrintModulePass() : Out(&cerr), DeleteStream(false) {} + PrintModulePass(OStream *o, bool DS = false) + : Out(o), DeleteStream(DS) {} ~PrintModulePass() { if (DeleteStream) delete Out; @@ -49,14 +48,13 @@ class PrintFunctionPass : public FunctionPass { std::string Banner; // String to print before each function - llvm_ostream *Out; // ostream to print on + OStream *Out; // ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: - PrintFunctionPass() : Banner(""), Out(&llvm_cerr), DeleteStream(false) {} - PrintFunctionPass(const std::string &B, llvm_ostream *o = &llvm_cout, + PrintFunctionPass() : Banner(""), Out(&cerr), DeleteStream(false) {} + PrintFunctionPass(const std::string &B, OStream *o = &cout, bool DS = false) - : Banner(B), Out(o), DeleteStream(DS) { - } + : Banner(B), Out(o), DeleteStream(DS) {} inline ~PrintFunctionPass() { if (DeleteStream) delete Out; From isanbard at gmail.com Wed Dec 6 19:31:58 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:58 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp LoopStrengthReduce.cpp LowerPacked.cpp SCCP.cpp Message-ID: <200612070131.kB71VvDM006264@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.561 -> 1.562 LoopStrengthReduce.cpp updated: 1.97 -> 1.98 LowerPacked.cpp updated: 1.12 -> 1.13 SCCP.cpp updated: 1.139 -> 1.140 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+10 -11) InstructionCombining.cpp | 4 ++-- LoopStrengthReduce.cpp | 8 ++++---- LowerPacked.cpp | 3 +-- SCCP.cpp | 6 +++--- 4 files changed, 10 insertions(+), 11 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.561 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.562 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.561 Wed Dec 6 14:39:57 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Dec 6 19:30:31 2006 @@ -7018,8 +7018,8 @@ // If we are removing arguments to the function, emit an obnoxious warning... if (FT->getNumParams() < NumActualArgs) if (!FT->isVarArg()) { - llvm_cerr << "WARNING: While resolving call to function '" - << Callee->getName() << "' arguments were dropped!\n"; + cerr << "WARNING: While resolving call to function '" + << Callee->getName() << "' arguments were dropped!\n"; } else { // Add all of the arguments in their promoted form to the arg list... for (unsigned i = FT->getNumParams(); i != NumActualArgs; ++i, ++AI) { Index: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp diff -u llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.97 llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.98 --- llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.97 Wed Dec 6 11:46:33 2006 +++ llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp Wed Dec 6 19:30:31 2006 @@ -507,12 +507,12 @@ } void BasedUser::dump() const { - llvm_cerr << " Base=" << *Base; - llvm_cerr << " Imm=" << *Imm; + cerr << " Base=" << *Base; + cerr << " Imm=" << *Imm; if (EmittedBase) - llvm_cerr << " EB=" << *EmittedBase; + cerr << " EB=" << *EmittedBase; - llvm_cerr << " Inst: " << *Inst; + cerr << " Inst: " << *Inst; } Value *BasedUser::InsertCodeForBaseAtPosition(const SCEVHandle &NewBase, Index: llvm/lib/Transforms/Scalar/LowerPacked.cpp diff -u llvm/lib/Transforms/Scalar/LowerPacked.cpp:1.12 llvm/lib/Transforms/Scalar/LowerPacked.cpp:1.13 --- llvm/lib/Transforms/Scalar/LowerPacked.cpp:1.12 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/Scalar/LowerPacked.cpp Wed Dec 6 19:30:31 2006 @@ -73,8 +73,7 @@ /// @param I the unhandled instruction void visitInstruction(Instruction &I) { if (isa(I.getType())) - llvm_cerr << "Unhandled Instruction with Packed ReturnType: " - << I << '\n'; + cerr << "Unhandled Instruction with Packed ReturnType: " << I << '\n'; } private: /// @brief Retrieves lowered values for a packed value. Index: llvm/lib/Transforms/Scalar/SCCP.cpp diff -u llvm/lib/Transforms/Scalar/SCCP.cpp:1.139 llvm/lib/Transforms/Scalar/SCCP.cpp:1.140 --- llvm/lib/Transforms/Scalar/SCCP.cpp:1.139 Wed Dec 6 11:46:33 2006 +++ llvm/lib/Transforms/Scalar/SCCP.cpp Wed Dec 6 19:30:31 2006 @@ -350,7 +350,7 @@ void visitInstruction(Instruction &I) { // If a new instruction is added to LLVM that we don't handle... - llvm_cerr << "SCCP: Don't know how to handle: " << I; + cerr << "SCCP: Don't know how to handle: " << I; markOverdefined(&I); // Just in case } }; @@ -400,7 +400,7 @@ Succs[0] = true; } } else { - llvm_cerr << "SCCP: Don't know how to handle: " << TI; + cerr << "SCCP: Don't know how to handle: " << TI; Succs.assign(TI.getNumSuccessors(), true); } } @@ -459,7 +459,7 @@ } return false; } else { - llvm_cerr << "Unknown terminator instruction: " << *TI; + cerr << "Unknown terminator instruction: " << *TI; abort(); } } From isanbard at gmail.com Wed Dec 6 19:32:00 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:00 -0600 Subject: [llvm-commits] CVS: llvm/examples/ModuleMaker/ModuleMaker.cpp Message-ID: <200612070132.kB71W07c006300@zion.cs.uiuc.edu> Changes in directory llvm/examples/ModuleMaker: ModuleMaker.cpp updated: 1.10 -> 1.11 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+1 -1) ModuleMaker.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/examples/ModuleMaker/ModuleMaker.cpp diff -u llvm/examples/ModuleMaker/ModuleMaker.cpp:1.10 llvm/examples/ModuleMaker/ModuleMaker.cpp:1.11 --- llvm/examples/ModuleMaker/ModuleMaker.cpp:1.10 Tue Nov 28 18:19:40 2006 +++ llvm/examples/ModuleMaker/ModuleMaker.cpp Wed Dec 6 19:30:30 2006 @@ -53,7 +53,7 @@ BB->getInstList().push_back(new ReturnInst(Add)); // Output the bytecode file to stdout - WriteBytecodeToFile(M, llvm_cout); + WriteBytecodeToFile(M, cout); // Delete the module and all of its contents. delete M; From isanbard at gmail.com Wed Dec 6 19:32:01 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:01 -0600 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp LeakDetector.cpp PassManager.cpp TypeSymbolTable.cpp Verifier.cpp Message-ID: <200612070132.kB71W1K5006387@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.226 -> 1.227 LeakDetector.cpp updated: 1.16 -> 1.17 PassManager.cpp updated: 1.33 -> 1.34 TypeSymbolTable.cpp updated: 1.4 -> 1.5 Verifier.cpp updated: 1.169 -> 1.170 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+27 -29) AsmWriter.cpp | 10 +++++----- LeakDetector.cpp | 19 +++++++++---------- PassManager.cpp | 2 +- TypeSymbolTable.cpp | 20 ++++++++++---------- Verifier.cpp | 5 ++--- 5 files changed, 27 insertions(+), 29 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.226 llvm/lib/VMCore/AsmWriter.cpp:1.227 --- llvm/lib/VMCore/AsmWriter.cpp:1.226 Wed Dec 6 00:40:49 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Wed Dec 6 19:30:31 2006 @@ -829,7 +829,7 @@ case GlobalValue::ExternalWeakLinkage: Out << "extern_weak "; break; case GlobalValue::ExternalLinkage: break; case GlobalValue::GhostLinkage: - llvm_cerr << "GhostLinkage not allowed in AsmWriter!\n"; + cerr << "GhostLinkage not allowed in AsmWriter!\n"; abort(); } @@ -928,7 +928,7 @@ case GlobalValue::ExternalWeakLinkage: Out << "extern_weak "; break; case GlobalValue::ExternalLinkage: break; case GlobalValue::GhostLinkage: - llvm_cerr << "GhostLinkage not allowed in AsmWriter!\n"; + cerr << "GhostLinkage not allowed in AsmWriter!\n"; abort(); } @@ -1328,18 +1328,18 @@ // Value::dump - allow easy printing of Values from the debugger. // Located here because so much of the needed functionality is here. -void Value::dump() const { print(std::cerr); llvm_cerr << '\n'; } +void Value::dump() const { print(std::cerr); cerr << '\n'; } // Type::dump - allow easy printing of Values from the debugger. // Located here because so much of the needed functionality is here. -void Type::dump() const { print(std::cerr); llvm_cerr << '\n'; } +void Type::dump() const { print(std::cerr); cerr << '\n'; } //===----------------------------------------------------------------------===// // SlotMachine Implementation //===----------------------------------------------------------------------===// #if 0 -#define SC_DEBUG(X) llvm_cerr << X +#define SC_DEBUG(X) cerr << X #else #define SC_DEBUG(X) #endif Index: llvm/lib/VMCore/LeakDetector.cpp diff -u llvm/lib/VMCore/LeakDetector.cpp:1.16 llvm/lib/VMCore/LeakDetector.cpp:1.17 --- llvm/lib/VMCore/LeakDetector.cpp:1.16 Mon Nov 27 20:09:03 2006 +++ llvm/lib/VMCore/LeakDetector.cpp Wed Dec 6 19:30:31 2006 @@ -11,8 +11,8 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/Compiler.h" #include "llvm/Support/LeakDetector.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Streams.h" #include "llvm/Value.h" #include @@ -21,12 +21,12 @@ namespace { template struct VISIBILITY_HIDDEN PrinterTrait { - static void print(const T* P) { llvm_cerr << P; } + static void print(const T* P) { cerr << P; } }; template<> struct VISIBILITY_HIDDEN PrinterTrait { - static void print(const Value* P) { llvm_cerr << *P; } + static void print(const Value* P) { cerr << *P; } }; template @@ -59,15 +59,14 @@ assert(Cache == 0 && "No value should be cached anymore!"); if (!Ts.empty()) { - llvm_cerr - << "Leaked " << Name << " objects found: " << Message << ":\n"; + cerr << "Leaked " << Name << " objects found: " << Message << ":\n"; for (typename std::set::iterator I = Ts.begin(), E = Ts.end(); I != E; ++I) { - llvm_cerr << "\t"; + cerr << "\t"; PrinterTrait::print(*I); - llvm_cerr << "\n"; + cerr << "\n"; } - llvm_cerr << '\n'; + cerr << '\n'; return true; } @@ -123,8 +122,8 @@ // use non-short-circuit version so that both checks are performed if (getObjects().hasGarbage(Message) | getLLVMObjects().hasGarbage(Message)) - llvm_cerr << "\nThis is probably because you removed an object, but didn't " - << "delete it. Please check your code for memory leaks.\n"; + cerr << "\nThis is probably because you removed an object, but didn't " + << "delete it. Please check your code for memory leaks.\n"; // Clear out results so we don't get duplicate warnings on // next call... Index: llvm/lib/VMCore/PassManager.cpp diff -u llvm/lib/VMCore/PassManager.cpp:1.33 llvm/lib/VMCore/PassManager.cpp:1.34 --- llvm/lib/VMCore/PassManager.cpp:1.33 Mon Nov 27 20:09:03 2006 +++ llvm/lib/VMCore/PassManager.cpp Wed Dec 6 19:30:31 2006 @@ -442,7 +442,7 @@ bool FunctionPassManager_New::run(Function &F) { std::string errstr; if (MP->materializeFunction(&F, &errstr)) { - llvm_cerr << "Error reading bytecode file: " << errstr << "\n"; + cerr << "Error reading bytecode file: " << errstr << "\n"; abort(); } return FPM->runOnFunction(F); Index: llvm/lib/VMCore/TypeSymbolTable.cpp diff -u llvm/lib/VMCore/TypeSymbolTable.cpp:1.4 llvm/lib/VMCore/TypeSymbolTable.cpp:1.5 --- llvm/lib/VMCore/TypeSymbolTable.cpp:1.4 Mon Nov 27 20:09:03 2006 +++ llvm/lib/VMCore/TypeSymbolTable.cpp Wed Dec 6 19:30:31 2006 @@ -66,7 +66,7 @@ #if DEBUG_SYMBOL_TABLE dump(); - llvm_cerr << " Removing Value: " << Result->getName() << "\n"; + cerr << " Removing Value: " << Result->getName() << "\n"; #endif tmap.erase(Entry); @@ -75,7 +75,7 @@ // list... if (Result->isAbstract()) { #if DEBUG_ABSTYPE - llvm_cerr << "Removing abstract type from symtab" << Result->getDescription()<<"\n"; + cerr << "Removing abstract type from symtab" << Result->getDescription()<<"\n"; #endif cast(Result)->removeAbstractTypeUser(this); } @@ -95,8 +95,8 @@ #if DEBUG_SYMBOL_TABLE dump(); - llvm_cerr << " Inserting type: " << UniqueName << ": " - << T->getDescription() << "\n"; + cerr << " Inserting type: " << UniqueName << ": " + << T->getDescription() << "\n"; #endif // Insert the tmap entry @@ -106,7 +106,7 @@ if (T->isAbstract()) { cast(T)->addAbstractTypeUser(this); #if DEBUG_ABSTYPE - llvm_cerr << "Added abstract type to ST: " << T->getDescription() << "\n"; + cerr << "Added abstract type to ST: " << T->getDescription() << "\n"; #endif } } @@ -152,14 +152,14 @@ for (iterator I = begin(), E = end(); I != E; ++I) { if (I->second == (Type*)OldType) { // FIXME when Types aren't const. #if DEBUG_ABSTYPE - llvm_cerr << "Removing type " << OldType->getDescription() << "\n"; + cerr << "Removing type " << OldType->getDescription() << "\n"; #endif OldType->removeAbstractTypeUser(this); I->second = (Type*)NewType; // TODO FIXME when types aren't const if (NewType->isAbstract()) { #if DEBUG_ABSTYPE - llvm_cerr << "Added type " << NewType->getDescription() << "\n"; + cerr << "Added type " << NewType->getDescription() << "\n"; #endif cast(NewType)->addAbstractTypeUser(this); } @@ -179,13 +179,13 @@ } static void DumpTypes(const std::pair& T ) { - llvm_cerr << " '" << T.first << "' = "; + cerr << " '" << T.first << "' = "; T.second->dump(); - llvm_cerr << "\n"; + cerr << "\n"; } void TypeSymbolTable::dump() const { - llvm_cerr << "TypeSymbolPlane: "; + cerr << "TypeSymbolPlane: "; for_each(tmap.begin(), tmap.end(), DumpTypes); } Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.169 llvm/lib/VMCore/Verifier.cpp:1.170 --- llvm/lib/VMCore/Verifier.cpp:1.169 Wed Dec 6 00:16:21 2006 +++ llvm/lib/VMCore/Verifier.cpp Wed Dec 6 19:30:31 2006 @@ -60,7 +60,6 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/Support/Compiler.h" #include -#include #include using namespace llvm; @@ -156,11 +155,11 @@ switch (action) { case AbortProcessAction: msgs << "compilation aborted!\n"; - llvm_cerr << msgs.str(); + cerr << msgs.str(); abort(); case PrintMessageAction: msgs << "verification continues.\n"; - llvm_cerr << msgs.str(); + cerr << msgs.str(); return false; case ReturnStatusAction: msgs << "compilation terminated.\n"; From isanbard at gmail.com Wed Dec 6 19:32:01 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:01 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Analysis/AliasSetTracker.h CallGraph.h LoopInfo.h ScalarEvolution.h Trace.h Message-ID: <200612070132.kB71W0bv006317@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Analysis: AliasSetTracker.h updated: 1.28 -> 1.29 CallGraph.h updated: 1.51 -> 1.52 LoopInfo.h updated: 1.61 -> 1.62 ScalarEvolution.h updated: 1.12 -> 1.13 Trace.h updated: 1.5 -> 1.6 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+14 -14) AliasSetTracker.h | 8 ++++---- CallGraph.h | 4 ++-- LoopInfo.h | 4 ++-- ScalarEvolution.h | 8 ++++---- Trace.h | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) Index: llvm/include/llvm/Analysis/AliasSetTracker.h diff -u llvm/include/llvm/Analysis/AliasSetTracker.h:1.28 llvm/include/llvm/Analysis/AliasSetTracker.h:1.29 --- llvm/include/llvm/Analysis/AliasSetTracker.h:1.28 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Analysis/AliasSetTracker.h Wed Dec 6 19:30:30 2006 @@ -156,7 +156,7 @@ iterator end() const { return iterator(); } bool empty() const { return PtrList == 0; } - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; @@ -248,7 +248,7 @@ bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const; }; -inline llvm_ostream& operator<<(llvm_ostream &OS, const AliasSet &AS) { +inline OStream& operator<<(OStream &OS, const AliasSet &AS) { AS.print(OS); return OS; } @@ -361,7 +361,7 @@ iterator begin() { return AliasSets.begin(); } iterator end() { return AliasSets.end(); } - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; @@ -390,7 +390,7 @@ AliasSet *findAliasSetForCallSite(CallSite CS); }; -inline llvm_ostream& operator<<(llvm_ostream &OS, const AliasSetTracker &AST) { +inline OStream& operator<<(OStream &OS, const AliasSetTracker &AST) { AST.print(OS); return OS; } Index: llvm/include/llvm/Analysis/CallGraph.h diff -u llvm/include/llvm/Analysis/CallGraph.h:1.51 llvm/include/llvm/Analysis/CallGraph.h:1.52 --- llvm/include/llvm/Analysis/CallGraph.h:1.51 Tue Nov 28 18:19:40 2006 +++ llvm/include/llvm/Analysis/CallGraph.h Wed Dec 6 19:30:30 2006 @@ -152,7 +152,7 @@ /// void initialize(Module &M); - void print(llvm_ostream &o, const Module *M) const { + void print(OStream &o, const Module *M) const { if (o.stream()) print(*o.stream(), M); } virtual void print(std::ostream &o, const Module *M) const; @@ -201,7 +201,7 @@ /// dump - Print out this call graph node. /// void dump() const; - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; Index: llvm/include/llvm/Analysis/LoopInfo.h diff -u llvm/include/llvm/Analysis/LoopInfo.h:1.61 llvm/include/llvm/Analysis/LoopInfo.h:1.62 --- llvm/include/llvm/Analysis/LoopInfo.h:1.61 Tue Nov 28 16:45:17 2006 +++ llvm/include/llvm/Analysis/LoopInfo.h Wed Dec 6 19:30:30 2006 @@ -217,7 +217,7 @@ /// the mapping in the LoopInfo class. void removeBlockFromLoop(BasicBlock *BB); - void print(llvm_ostream &O, unsigned Depth = 0) const { + void print(OStream &O, unsigned Depth = 0) const { if (O.stream()) print(*O.stream(), Depth); } void print(std::ostream &O, unsigned Depth = 0) const; @@ -283,7 +283,7 @@ virtual bool runOnFunction(Function &F); virtual void releaseMemory(); - void print(llvm_ostream &O, const Module* = 0) const { + void print(OStream &O, const Module* = 0) const { if (O.stream()) print(*O.stream()); } void print(std::ostream &O, const Module* = 0) const; Index: llvm/include/llvm/Analysis/ScalarEvolution.h diff -u llvm/include/llvm/Analysis/ScalarEvolution.h:1.12 llvm/include/llvm/Analysis/ScalarEvolution.h:1.13 --- llvm/include/llvm/Analysis/ScalarEvolution.h:1.12 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Analysis/ScalarEvolution.h Wed Dec 6 19:30:30 2006 @@ -97,7 +97,7 @@ /// print - Print out the internal representation of this scalar to the /// specified stream. This should really only be used for debugging /// purposes. - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } virtual void print(std::ostream &OS) const = 0; @@ -107,7 +107,7 @@ void dump() const; }; - inline llvm_ostream &operator<<(llvm_ostream &OS, const SCEV &S) { + inline OStream &operator<<(OStream &OS, const SCEV &S) { S.print(OS); return OS; } @@ -128,7 +128,7 @@ virtual bool isLoopInvariant(const Loop *L) const; virtual const Type *getType() const; virtual bool hasComputableLoopEvolution(const Loop *L) const; - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } virtual void print(std::ostream &OS) const; @@ -242,7 +242,7 @@ virtual bool runOnFunction(Function &F); virtual void releaseMemory(); virtual void getAnalysisUsage(AnalysisUsage &AU) const; - void print(llvm_ostream &OS, const Module* = 0) const { + void print(OStream &OS, const Module* = 0) const { if (OS.stream()) print(*OS.stream()); } virtual void print(std::ostream &OS, const Module* = 0) const; Index: llvm/include/llvm/Analysis/Trace.h diff -u llvm/include/llvm/Analysis/Trace.h:1.5 llvm/include/llvm/Analysis/Trace.h:1.6 --- llvm/include/llvm/Analysis/Trace.h:1.5 Tue Nov 28 16:45:17 2006 +++ llvm/include/llvm/Analysis/Trace.h Wed Dec 6 19:30:30 2006 @@ -18,11 +18,11 @@ #ifndef LLVM_ANALYSIS_TRACE_H #define LLVM_ANALYSIS_TRACE_H +#include "llvm/Support/Streams.h" #include #include namespace llvm { - class llvm_ostream; class BasicBlock; class Function; class Module; @@ -106,7 +106,7 @@ /// print - Write trace to output stream. /// - void print (llvm_ostream &O) const; + void print (OStream &O) const; /// dump - Debugger convenience method; writes trace to standard error /// output stream. From isanbard at gmail.com Wed Dec 6 19:31:57 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:57 -0600 Subject: [llvm-commits] CVS: llvm/tools/opt/opt.cpp Message-ID: <200612070131.kB71VvCg006258@zion.cs.uiuc.edu> Changes in directory llvm/tools/opt: opt.cpp updated: 1.124 -> 1.125 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+21 -23) opt.cpp | 44 +++++++++++++++++++++----------------------- 1 files changed, 21 insertions(+), 23 deletions(-) Index: llvm/tools/opt/opt.cpp diff -u llvm/tools/opt/opt.cpp:1.124 llvm/tools/opt/opt.cpp:1.125 --- llvm/tools/opt/opt.cpp:1.124 Tue Dec 5 19:18:01 2006 +++ llvm/tools/opt/opt.cpp Wed Dec 6 19:30:32 2006 @@ -87,9 +87,8 @@ virtual bool runOnModule(Module &M) { if (!Quiet) { - llvm_cout << "Printing analysis '" << PassToPrint->getPassName() - << "':\n"; - getAnalysisID(PassToPrint).print(llvm_cout, &M); + cout << "Printing analysis '" << PassToPrint->getPassName() << "':\n"; + getAnalysisID(PassToPrint).print(cout, &M); } // Get and print pass... @@ -110,11 +109,11 @@ virtual bool runOnFunction(Function &F) { if (!Quiet) { - llvm_cout << "Printing analysis '" << PassToPrint->getPassName() - << "' for function '" << F.getName() << "':\n"; + cout << "Printing analysis '" << PassToPrint->getPassName() + << "' for function '" << F.getName() << "':\n"; } // Get and print pass... - getAnalysisID(PassToPrint).print(llvm_cout, F.getParent()); + getAnalysisID(PassToPrint).print(cout, F.getParent()); return false; } @@ -132,13 +131,12 @@ virtual bool runOnBasicBlock(BasicBlock &BB) { if (!Quiet) { - llvm_cout << "Printing Analysis info for BasicBlock '" << BB.getName() - << "': Pass " << PassToPrint->getPassName() << ":\n"; + cout << "Printing Analysis info for BasicBlock '" << BB.getName() + << "': Pass " << PassToPrint->getPassName() << ":\n"; } // Get and print pass... - getAnalysisID(PassToPrint).print( - llvm_cout, BB.getParent()->getParent()); + getAnalysisID(PassToPrint).print(cout, BB.getParent()->getParent()); return false; } @@ -172,11 +170,11 @@ // Load the input module... std::auto_ptr M(ParseBytecodeFile(InputFilename, &ErrorMessage)); if (M.get() == 0) { - llvm_cerr << argv[0] << ": "; + cerr << argv[0] << ": "; if (ErrorMessage.size()) - llvm_cerr << ErrorMessage << "\n"; + cerr << ErrorMessage << "\n"; else - llvm_cerr << "bytecode didn't read correctly.\n"; + cerr << "bytecode didn't read correctly.\n"; return 1; } @@ -186,9 +184,9 @@ if (OutputFilename != "-") { if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } std::ios::openmode io_mode = std::ios::out | std::ios::trunc | @@ -196,7 +194,7 @@ Out = new std::ofstream(OutputFilename.c_str(), io_mode); if (!Out->good()) { - llvm_cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; + cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; return 1; } @@ -227,8 +225,8 @@ if (PassInf->getNormalCtor()) P = PassInf->getNormalCtor()(); else - llvm_cerr << argv[0] << ": cannot create pass: " - << PassInf->getPassName() << "\n"; + cerr << argv[0] << ": cannot create pass: " + << PassInf->getPassName() << "\n"; if (P) { Passes.add(P); @@ -243,7 +241,7 @@ } if (PrintEachXForm) - Passes.add(new PrintModulePass(&llvm_cerr)); + Passes.add(new PrintModulePass(&cerr)); } // Check that the module is well formed on completion of optimization @@ -251,7 +249,7 @@ Passes.add(createVerifierPass()); // Write bytecode out to disk or cout as the last step... - llvm_ostream L(*Out); + OStream L(*Out); if (!NoOutput && !AnalyzeOnly) Passes.add(new WriteBytecodePass(&L, false, !NoCompress)); @@ -261,9 +259,9 @@ return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; } From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/projects/Stacker/tools/stkrc/stkrc.cpp Message-ID: <200612070132.kB71W273006428@zion.cs.uiuc.edu> Changes in directory llvm/projects/Stacker/tools/stkrc: stkrc.cpp updated: 1.12 -> 1.13 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+4 -4) stkrc.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/projects/Stacker/tools/stkrc/stkrc.cpp diff -u llvm/projects/Stacker/tools/stkrc/stkrc.cpp:1.12 llvm/projects/Stacker/tools/stkrc/stkrc.cpp:1.13 --- llvm/projects/Stacker/tools/stkrc/stkrc.cpp:1.12 Tue Nov 28 18:19:40 2006 +++ llvm/projects/Stacker/tools/stkrc/stkrc.cpp Wed Dec 6 19:30:31 2006 @@ -115,7 +115,7 @@ } if (DumpAsm) - llvm_cerr << "Here's the assembly:" << M.get(); + cerr << "Here's the assembly:" << M.get(); if (OutputFilename != "") { // Specified an output filename? if (OutputFilename != "-") { // Not stdout? @@ -163,15 +163,15 @@ throw std::string("error opening ") + OutputFilename + "!"; } - llvm_ostream L(*Out); + OStream L(*Out); WriteBytecodeToFile(M.get(), L); } catch (const ParseError &E) { - llvm_cerr << argv[0] << ": " << E.getMessage() << "\n"; + cerr << argv[0] << ": " << E.getMessage() << "\n"; return 1; } } catch (const std::string& msg ) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; return 1; } From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/ExprTypeConvert.cpp Message-ID: <200612070132.kB71W2Wr006413@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms: ExprTypeConvert.cpp updated: 1.114 -> 1.115 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+2 -2) ExprTypeConvert.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/ExprTypeConvert.cpp diff -u llvm/lib/Transforms/ExprTypeConvert.cpp:1.114 llvm/lib/Transforms/ExprTypeConvert.cpp:1.115 --- llvm/lib/Transforms/ExprTypeConvert.cpp:1.114 Sun Nov 26 19:05:10 2006 +++ llvm/lib/Transforms/ExprTypeConvert.cpp Wed Dec 6 19:30:31 2006 @@ -693,8 +693,8 @@ I->setName(""); Instruction *Res; // Result of conversion - //llvm_cerr << endl << endl << "Type:\t" << Ty << "\nInst: " << I - // << "BB Before: " << BB << endl; + //cerr << endl << endl << "Type:\t" << Ty << "\nInst: " << I + // << "BB Before: " << BB << endl; // Prevent I from being removed... ValueHandle IHandle(VMC, I); From isanbard at gmail.com Wed Dec 6 19:32:00 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:00 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Analysis/DataStructure/DSGraph.h DSNode.h Message-ID: <200612070132.kB71W0dD006298@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Analysis/DataStructure: DSGraph.h updated: 1.111 -> 1.112 DSNode.h updated: 1.59 -> 1.60 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+3 -3) DSGraph.h | 4 ++-- DSNode.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/include/llvm/Analysis/DataStructure/DSGraph.h diff -u llvm/include/llvm/Analysis/DataStructure/DSGraph.h:1.111 llvm/include/llvm/Analysis/DataStructure/DSGraph.h:1.112 --- llvm/include/llvm/Analysis/DataStructure/DSGraph.h:1.111 Tue Nov 28 17:31:42 2006 +++ llvm/include/llvm/Analysis/DataStructure/DSGraph.h Wed Dec 6 19:30:30 2006 @@ -378,12 +378,12 @@ /// print - Print a dot graph to the specified ostream... /// - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } void print(std::ostream &O) const; - /// dump - call print(llvm_cerr), for use from the debugger... + /// dump - call print(cerr), for use from the debugger... /// void dump() const; Index: llvm/include/llvm/Analysis/DataStructure/DSNode.h diff -u llvm/include/llvm/Analysis/DataStructure/DSNode.h:1.59 llvm/include/llvm/Analysis/DataStructure/DSNode.h:1.60 --- llvm/include/llvm/Analysis/DataStructure/DSNode.h:1.59 Tue Nov 28 17:31:42 2006 +++ llvm/include/llvm/Analysis/DataStructure/DSNode.h Wed Dec 6 19:30:30 2006 @@ -362,7 +362,7 @@ /// void forwardNode(DSNode *To, unsigned Offset); - void print(llvm_ostream &O, const DSGraph *G) const { + void print(OStream &O, const DSGraph *G) const { if (O.stream()) print(*O.stream(), G); } void print(std::ostream &O, const DSGraph *G) const; From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp EdgeProfiling.cpp TraceBasicBlocks.cpp Message-ID: <200612070132.kB71W3nk006473@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Instrumentation: BlockProfiling.cpp updated: 1.17 -> 1.18 EdgeProfiling.cpp updated: 1.8 -> 1.9 TraceBasicBlocks.cpp updated: 1.18 -> 1.19 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+10 -10) BlockProfiling.cpp | 8 ++++---- EdgeProfiling.cpp | 6 +++--- TraceBasicBlocks.cpp | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) Index: llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp diff -u llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp:1.17 llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp:1.18 --- llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp:1.17 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Instrumentation/BlockProfiling.cpp Wed Dec 6 19:30:31 2006 @@ -47,8 +47,8 @@ bool FunctionProfiler::runOnModule(Module &M) { Function *Main = M.getMainFunction(); if (Main == 0) { - llvm_cerr << "WARNING: cannot insert function profiling into a module" - << " with no main function!\n"; + cerr << "WARNING: cannot insert function profiling into a module" + << " with no main function!\n"; return false; // No main, no instrumentation! } @@ -90,8 +90,8 @@ bool BlockProfiler::runOnModule(Module &M) { Function *Main = M.getMainFunction(); if (Main == 0) { - llvm_cerr << "WARNING: cannot insert block profiling into a module" - << " with no main function!\n"; + cerr << "WARNING: cannot insert block profiling into a module" + << " with no main function!\n"; return false; // No main, no instrumentation! } Index: llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp diff -u llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp:1.8 llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp:1.9 --- llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp:1.8 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp Wed Dec 6 19:30:31 2006 @@ -17,6 +17,7 @@ // //===----------------------------------------------------------------------===// +#include "ProfilingUtils.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" @@ -24,7 +25,6 @@ #include "llvm/Support/Streams.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Instrumentation.h" -#include "ProfilingUtils.h" #include using namespace llvm; @@ -42,8 +42,8 @@ bool EdgeProfiler::runOnModule(Module &M) { Function *Main = M.getMainFunction(); if (Main == 0) { - llvm_cerr << "WARNING: cannot insert edge profiling into a module" - << " with no main function!\n"; + cerr << "WARNING: cannot insert edge profiling into a module" + << " with no main function!\n"; return false; // No main, no instrumentation! } Index: llvm/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp diff -u llvm/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp:1.18 llvm/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp:1.19 --- llvm/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp:1.18 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp Wed Dec 6 19:30:31 2006 @@ -13,6 +13,7 @@ // //===----------------------------------------------------------------------===// +#include "ProfilingUtils.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" @@ -20,7 +21,6 @@ #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Instrumentation.h" #include "llvm/Instructions.h" -#include "ProfilingUtils.h" #include "llvm/Support/Debug.h" #include using namespace llvm; @@ -61,8 +61,8 @@ bool TraceBasicBlocks::runOnModule(Module &M) { Function *Main = M.getMainFunction(); if (Main == 0) { - llvm_cerr << "WARNING: cannot insert basic-block trace instrumentation" - << " into a module with no main function!\n"; + cerr << "WARNING: cannot insert basic-block trace instrumentation" + << " into a module with no main function!\n"; return false; // No main, no instrumentation! } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-dis/llvm-dis.cpp Message-ID: <200612070132.kB71W37s006501@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-dis: llvm-dis.cpp updated: 1.53 -> 1.54 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+12 -12) llvm-dis.cpp | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) Index: llvm/tools/llvm-dis/llvm-dis.cpp diff -u llvm/tools/llvm-dis/llvm-dis.cpp:1.53 llvm/tools/llvm-dis/llvm-dis.cpp:1.54 --- llvm/tools/llvm-dis/llvm-dis.cpp:1.53 Tue Dec 5 19:18:01 2006 +++ llvm/tools/llvm-dis/llvm-dis.cpp Wed Dec 6 19:30:31 2006 @@ -50,11 +50,11 @@ std::auto_ptr M(ParseBytecodeFile(InputFilename, &ErrorMessage)); if (M.get() == 0) { - llvm_cerr << argv[0] << ": "; + cerr << argv[0] << ": "; if (ErrorMessage.size()) - llvm_cerr << ErrorMessage << "\n"; + cerr << ErrorMessage << "\n"; else - llvm_cerr << "bytecode didn't read correctly.\n"; + cerr << "bytecode didn't read correctly.\n"; return 1; } @@ -62,8 +62,8 @@ if (OutputFilename != "-") { // Not stdout? if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists! Sending to standard output.\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists! Sending to standard output.\n"; } else { Out = new std::ofstream(OutputFilename.c_str()); } @@ -83,8 +83,8 @@ if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists! Sending to standard output.\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists! Sending to standard output.\n"; } else { Out = new std::ofstream(OutputFilename.c_str()); @@ -96,14 +96,14 @@ } if (!Out->good()) { - llvm_cerr << argv[0] << ": error opening " << OutputFilename - << ": sending to stdout instead!\n"; + cerr << argv[0] << ": error opening " << OutputFilename + << ": sending to stdout instead!\n"; Out = &std::cout; } // All that llvm-dis does is write the assembly to a file. PassManager Passes; - llvm_ostream L(*Out); + OStream L(*Out); Passes.add(new PrintModulePass(&L)); Passes.run(*M.get()); @@ -113,9 +113,9 @@ } return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; From isanbard at gmail.com Wed Dec 6 19:32:04 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:04 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Bytecode/WriteBytecodePass.h Writer.h Message-ID: <200612070132.kB71W4R2006538@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Bytecode: WriteBytecodePass.h updated: 1.17 -> 1.18 Writer.h updated: 1.12 -> 1.13 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+7 -7) WriteBytecodePass.h | 9 ++++----- Writer.h | 5 +++-- 2 files changed, 7 insertions(+), 7 deletions(-) Index: llvm/include/llvm/Bytecode/WriteBytecodePass.h diff -u llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.17 llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.18 --- llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.17 Tue Nov 28 18:19:40 2006 +++ llvm/include/llvm/Bytecode/WriteBytecodePass.h Wed Dec 6 19:30:30 2006 @@ -17,19 +17,18 @@ #include "llvm/Pass.h" #include "llvm/Bytecode/Writer.h" +#include "llvm/Support/Streams.h" namespace llvm { -class llvm_ostream; - class WriteBytecodePass : public ModulePass { - llvm_ostream *Out; // ostream to print on + OStream *Out; // ostream to print on bool DeleteStream; bool CompressFile; public: WriteBytecodePass() - : Out(&llvm_cout), DeleteStream(false), CompressFile(true) {} - WriteBytecodePass(llvm_ostream *o, bool DS = false, bool CF = true) + : Out(&cout), DeleteStream(false), CompressFile(true) {} + WriteBytecodePass(OStream *o, bool DS = false, bool CF = true) : Out(o), DeleteStream(DS), CompressFile(CF) {} inline ~WriteBytecodePass() { Index: llvm/include/llvm/Bytecode/Writer.h diff -u llvm/include/llvm/Bytecode/Writer.h:1.12 llvm/include/llvm/Bytecode/Writer.h:1.13 --- llvm/include/llvm/Bytecode/Writer.h:1.12 Tue Nov 28 18:19:40 2006 +++ llvm/include/llvm/Bytecode/Writer.h Wed Dec 6 19:30:30 2006 @@ -15,13 +15,14 @@ #ifndef LLVM_BYTECODE_WRITER_H #define LLVM_BYTECODE_WRITER_H +#include "llvm/Support/Streams.h" + namespace llvm { - class llvm_ostream; class Module; /// WriteBytecodeToFile - Write the specified module to the specified output /// stream. If compress is set to true, try to use compression when writing /// out the file. This can never fail if M is a well-formed module. - void WriteBytecodeToFile(const Module *M, llvm_ostream &Out, + void WriteBytecodeToFile(const Module *M, OStream &Out, bool compress = true); } // End llvm namespace From isanbard at gmail.com Wed Dec 6 19:32:01 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:01 -0600 Subject: [llvm-commits] CVS: llvm/tools/bugpoint/OptimizerDriver.cpp Message-ID: <200612070132.kB71W1oV006352@zion.cs.uiuc.edu> Changes in directory llvm/tools/bugpoint: OptimizerDriver.cpp updated: 1.47 -> 1.48 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+25 -26) OptimizerDriver.cpp | 51 +++++++++++++++++++++++++-------------------------- 1 files changed, 25 insertions(+), 26 deletions(-) Index: llvm/tools/bugpoint/OptimizerDriver.cpp diff -u llvm/tools/bugpoint/OptimizerDriver.cpp:1.47 llvm/tools/bugpoint/OptimizerDriver.cpp:1.48 --- llvm/tools/bugpoint/OptimizerDriver.cpp:1.47 Tue Nov 28 18:19:40 2006 +++ llvm/tools/bugpoint/OptimizerDriver.cpp Wed Dec 6 19:30:31 2006 @@ -56,7 +56,7 @@ std::ofstream Out(Filename.c_str(), io_mode); if (!Out.good()) return true; try { - llvm_ostream L(Out); + OStream L(Out); WriteBytecodeToFile(M ? M : Program, L, /*compression=*/true); } catch (...) { return true; @@ -74,15 +74,15 @@ // std::string Filename = "bugpoint-" + ID + ".bc"; if (writeProgramToFile(Filename)) { - llvm_cerr << "Error opening file '" << Filename << "' for writing!\n"; + cerr << "Error opening file '" << Filename << "' for writing!\n"; return; } - llvm_cout << "Emitted bytecode to '" << Filename << "'\n"; + cout << "Emitted bytecode to '" << Filename << "'\n"; if (NoFlyer || PassesToRun.empty()) return; - llvm_cout << "\n*** You can reproduce the problem with: "; - llvm_cout << "opt " << Filename << " "; - llvm_cout << getPassesString(PassesToRun) << "\n"; + cout << "\n*** You can reproduce the problem with: "; + cout << "opt " << Filename << " "; + cout << getPassesString(PassesToRun) << "\n"; } int BugDriver::runPassesAsChild(const std::vector &Passes) { @@ -91,7 +91,7 @@ std::ios::binary; std::ofstream OutFile(ChildOutput.c_str(), io_mode); if (!OutFile.good()) { - llvm_cerr << "Error opening bytecode file: " << ChildOutput << "\n"; + cerr << "Error opening bytecode file: " << ChildOutput << "\n"; return 1; } @@ -103,14 +103,13 @@ if (Passes[i]->getNormalCtor()) PM.add(Passes[i]->getNormalCtor()()); else - llvm_cerr << "Cannot create pass yet: " << Passes[i]->getPassName() - << "\n"; + cerr << "Cannot create pass yet: " << Passes[i]->getPassName() << "\n"; } // Check that the module is well formed on completion of optimization PM.add(createVerifierPass()); // Write bytecode out to disk as the last step... - llvm_ostream L(OutFile); + OStream L(OutFile); PM.add(new WriteBytecodePass(&L)); // Run all queued passes. @@ -131,12 +130,12 @@ std::string &OutputFilename, bool DeleteOutput, bool Quiet) const { // setup the output file name - llvm_cout << std::flush; + cout << std::flush; sys::Path uniqueFilename("bugpoint-output.bc"); std::string ErrMsg; if (uniqueFilename.makeUnique(true, &ErrMsg)) { - llvm_cerr << getToolName() << ": Error making unique filename: " - << ErrMsg << "\n"; + cerr << getToolName() << ": Error making unique filename: " + << ErrMsg << "\n"; return(1); } OutputFilename = uniqueFilename.toString(); @@ -144,18 +143,18 @@ // set up the input file name sys::Path inputFilename("bugpoint-input.bc"); if (inputFilename.makeUnique(true, &ErrMsg)) { - llvm_cerr << getToolName() << ": Error making unique filename: " - << ErrMsg << "\n"; + cerr << getToolName() << ": Error making unique filename: " + << ErrMsg << "\n"; return(1); } std::ios::openmode io_mode = std::ios::out | std::ios::trunc | std::ios::binary; std::ofstream InFile(inputFilename.c_str(), io_mode); if (!InFile.good()) { - llvm_cerr << "Error opening bytecode file: " << inputFilename << "\n"; + cerr << "Error opening bytecode file: " << inputFilename << "\n"; return(1); } - llvm_ostream L(InFile); + OStream L(InFile); WriteBytecodeToFile(Program,L,false); InFile.close(); @@ -207,17 +206,17 @@ if (!Quiet) { if (result == 0) - llvm_cout << "Success!\n"; + cout << "Success!\n"; else if (result > 0) - llvm_cout << "Exited with error code '" << result << "'\n"; + cout << "Exited with error code '" << result << "'\n"; else if (result < 0) { if (result == -1) - llvm_cout << "Execute failed: " << ErrMsg << "\n"; + cout << "Execute failed: " << ErrMsg << "\n"; else - llvm_cout << "Crashed with signal #" << abs(result) << "\n"; + cout << "Crashed with signal #" << abs(result) << "\n"; } if (result & 0x01000000) - llvm_cout << "Dumped core\n"; + cout << "Dumped core\n"; } // Was the child successful? @@ -235,8 +234,8 @@ std::string BytecodeResult; if (runPasses(Passes, BytecodeResult, false/*delete*/, true/*quiet*/)) { if (AutoDebugCrashes) { - llvm_cerr << " Error running this sequence of passes" - << " on the input program!\n"; + cerr << " Error running this sequence of passes" + << " on the input program!\n"; delete OldProgram; EmitProgressBytecode("pass-error", false); exit(debugOptimizerCrash()); @@ -250,8 +249,8 @@ Module *Ret = ParseInputFile(BytecodeResult); if (Ret == 0) { - llvm_cerr << getToolName() << ": Error reading bytecode file '" - << BytecodeResult << "'!\n"; + cerr << getToolName() << ": Error reading bytecode file '" + << BytecodeResult << "'!\n"; exit(1); } sys::Path(BytecodeResult).eraseFromDisk(); // No longer need the file on disk From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-as/llvm-as.cpp Message-ID: <200612070132.kB71W3ad006438@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-as: llvm-as.cpp updated: 1.49 -> 1.50 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+15 -15) llvm-as.cpp | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) Index: llvm/tools/llvm-as/llvm-as.cpp diff -u llvm/tools/llvm-as/llvm-as.cpp:1.49 llvm/tools/llvm-as/llvm-as.cpp:1.50 --- llvm/tools/llvm-as/llvm-as.cpp:1.49 Tue Dec 5 19:18:00 2006 +++ llvm/tools/llvm-as/llvm-as.cpp Wed Dec 6 19:30:31 2006 @@ -62,29 +62,29 @@ ParseError Err; std::auto_ptr M(ParseAssemblyFile(InputFilename,&Err)); if (M.get() == 0) { - llvm_cerr << argv[0] << ": " << Err.getMessage() << "\n"; + cerr << argv[0] << ": " << Err.getMessage() << "\n"; return 1; } if (!DisableVerify) { std::string Err; if (verifyModule(*M.get(), ReturnStatusAction, &Err)) { - llvm_cerr << argv[0] - << ": assembly parsed, but does not verify as correct!\n"; - llvm_cerr << Err; + cerr << argv[0] + << ": assembly parsed, but does not verify as correct!\n"; + cerr << Err; return 1; } } - if (DumpAsm) llvm_cerr << "Here's the assembly:\n" << *M.get(); + if (DumpAsm) cerr << "Here's the assembly:\n" << *M.get(); if (OutputFilename != "") { // Specified an output filename? if (OutputFilename != "-") { // Not stdout? if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } Out = new std::ofstream(OutputFilename.c_str(), std::ios::out | @@ -110,9 +110,9 @@ if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } @@ -125,19 +125,19 @@ } if (!Out->good()) { - llvm_cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; + cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; return 1; } if (Force || !CheckBytecodeOutputToConsole(Out,true)) { - llvm_ostream L(*Out); + OStream L(*Out); WriteBytecodeToFile(M.get(), L, !NoCompress); } } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; exitCode = 1; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; exitCode = 1; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Module.h Pass.h Type.h Value.h Message-ID: <200612070132.kB71W3IT006477@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Module.h updated: 1.75 -> 1.76 Pass.h updated: 1.55 -> 1.56 Type.h updated: 1.93 -> 1.94 Value.h updated: 1.86 -> 1.87 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+5 -5) Module.h | 4 ++-- Pass.h | 2 +- Type.h | 2 +- Value.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/include/llvm/Module.h diff -u llvm/include/llvm/Module.h:1.75 llvm/include/llvm/Module.h:1.76 --- llvm/include/llvm/Module.h:1.75 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Module.h Wed Dec 6 19:30:30 2006 @@ -295,12 +295,12 @@ /// @{ public: /// Print the module to an output stream - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream(), 0); } void print(std::ostream &OS) const { print(OS, 0); } /// Print the module to an output stream with AssemblyAnnotationWriter. - void print(llvm_ostream &OS, AssemblyAnnotationWriter *AAW) const { + void print(OStream &OS, AssemblyAnnotationWriter *AAW) const { if (OS.stream()) print(*OS.stream(), AAW); } void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const; Index: llvm/include/llvm/Pass.h diff -u llvm/include/llvm/Pass.h:1.55 llvm/include/llvm/Pass.h:1.56 --- llvm/include/llvm/Pass.h:1.55 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Pass.h Wed Dec 6 19:30:30 2006 @@ -101,7 +101,7 @@ /// provide the Module* in case the analysis doesn't need it it can just be /// ignored. /// - void print(llvm_ostream &O, const Module *M) const { + void print(OStream &O, const Module *M) const { if (O.stream()) print(*O.stream(), M); } virtual void print(std::ostream &O, const Module *M) const; Index: llvm/include/llvm/Type.h diff -u llvm/include/llvm/Type.h:1.93 llvm/include/llvm/Type.h:1.94 --- llvm/include/llvm/Type.h:1.93 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Type.h Wed Dec 6 19:30:30 2006 @@ -136,7 +136,7 @@ /// mutable std::vector AbstractTypeUsers; public: - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } void print(std::ostream &O) const; Index: llvm/include/llvm/Value.h diff -u llvm/include/llvm/Value.h:1.86 llvm/include/llvm/Value.h:1.87 --- llvm/include/llvm/Value.h:1.86 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Value.h Wed Dec 6 19:30:30 2006 @@ -75,7 +75,7 @@ /// print - Implement operator<< on Value... /// - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } virtual void print(std::ostream &O) const = 0; From isanbard at gmail.com Wed Dec 6 19:31:57 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:31:57 -0600 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Writer/SlotCalculator.cpp Writer.cpp Message-ID: <200612070131.kB71VvHc006243@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Writer: SlotCalculator.cpp updated: 1.75 -> 1.76 Writer.cpp updated: 1.135 -> 1.136 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+7 -7) SlotCalculator.cpp | 2 +- Writer.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) Index: llvm/lib/Bytecode/Writer/SlotCalculator.cpp diff -u llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.75 llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.76 --- llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.75 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Bytecode/Writer/SlotCalculator.cpp Wed Dec 6 19:30:31 2006 @@ -32,7 +32,7 @@ #if 0 #include "llvm/Support/Streams.h" -#define SC_DEBUG(X) llvm_cerr << X +#define SC_DEBUG(X) cerr << X #else #define SC_DEBUG(X) #endif Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.135 llvm/lib/Bytecode/Writer/Writer.cpp:1.136 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.135 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Bytecode/Writer/Writer.cpp Wed Dec 6 19:30:31 2006 @@ -276,8 +276,8 @@ break; default: - llvm_cerr << __FILE__ << ":" << __LINE__ << ": Don't know how to serialize" - << " Type '" << T->getDescription() << "'\n"; + cerr << __FILE__ << ":" << __LINE__ << ": Don't know how to serialize" + << " Type '" << T->getDescription() << "'\n"; break; } } @@ -387,8 +387,8 @@ case Type::VoidTyID: case Type::LabelTyID: default: - llvm_cerr << __FILE__ << ":" << __LINE__ << ": Don't know how to serialize" - << " type '" << *CPV->getType() << "'\n"; + cerr << __FILE__ << ":" << __LINE__ << ": Don't know how to serialize" + << " type '" << *CPV->getType() << "'\n"; break; } return; @@ -1239,13 +1239,13 @@ } } -void llvm::WriteBytecodeToFile(const Module *M, llvm_ostream &Out, +void llvm::WriteBytecodeToFile(const Module *M, OStream &Out, bool compress) { assert(M && "You can't write a null module!!"); // Make sure that std::cout is put into binary mode for systems // that care. - if (Out == llvm_cout) + if (Out == cout) sys::Program::ChangeStdoutToBinary(); // Create a vector of unsigned char for the bytecode output. We From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/ADT/BitSetVector.h EquivalenceClasses.h Message-ID: <200612070132.kB71W3rc006445@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/ADT: BitSetVector.h updated: 1.17 -> 1.18 EquivalenceClasses.h updated: 1.18 -> 1.19 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+8 -6) BitSetVector.h | 10 ++++++---- EquivalenceClasses.h | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) Index: llvm/include/llvm/ADT/BitSetVector.h diff -u llvm/include/llvm/ADT/BitSetVector.h:1.17 llvm/include/llvm/ADT/BitSetVector.h:1.18 --- llvm/include/llvm/ADT/BitSetVector.h:1.17 Tue Nov 28 17:31:42 2006 +++ llvm/include/llvm/ADT/BitSetVector.h Wed Dec 6 19:30:30 2006 @@ -29,7 +29,6 @@ #include #include #include -#include namespace llvm { @@ -174,11 +173,11 @@ /// /// Printing and debugging support /// - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } void print(std::ostream &O) const; - void dump() const { print(llvm_cerr); } + void dump() const { print(cerr); } public: // @@ -235,6 +234,9 @@ return (I.bitvec == bitvec && I.currentWord == currentWord && I.currentBit == currentBit); } + bool operator!=(const iterator& I) { + return !(*this == I); + } protected: static iterator begin(BitSetVector& _bitvec) { return iterator(_bitvec); } @@ -252,7 +254,7 @@ O << "<" << (*I) << ">" << (I+1 == E? "\n" : ", "); } -inline llvm_ostream& operator<< (llvm_ostream& O, const BitSetVector& bset) { +inline OStream& operator<< (OStream& O, const BitSetVector& bset) { bset.print(O); return O; } Index: llvm/include/llvm/ADT/EquivalenceClasses.h diff -u llvm/include/llvm/ADT/EquivalenceClasses.h:1.18 llvm/include/llvm/ADT/EquivalenceClasses.h:1.19 --- llvm/include/llvm/ADT/EquivalenceClasses.h:1.18 Tue Nov 28 17:31:42 2006 +++ llvm/include/llvm/ADT/EquivalenceClasses.h Wed Dec 6 19:30:30 2006 @@ -43,8 +43,8 @@ /// if (!I->isLeader()) continue; // Ignore non-leader sets. /// for (EquivalenceClasses::member_iterator MI = EC.member_begin(I); /// MI != EC.member_end(); ++MI) // Loop over members in this set. -/// llvm_cerr << *MI << " "; // Print member. -/// llvm_cerr << "\n"; // Finish set. +/// cerr << *MI << " "; // Print member. +/// cerr << "\n"; // Finish set. /// } /// /// This example prints: From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/lto/lto.cpp Message-ID: <200612070132.kB71W3S2006482@zion.cs.uiuc.edu> Changes in directory llvm/tools/lto: lto.cpp updated: 1.26 -> 1.27 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+6 -6) lto.cpp | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/tools/lto/lto.cpp diff -u llvm/tools/lto/lto.cpp:1.26 llvm/tools/lto/lto.cpp:1.27 --- llvm/tools/lto/lto.cpp:1.26 Tue Nov 28 18:19:40 2006 +++ llvm/tools/lto/lto.cpp Wed Dec 6 19:30:32 2006 @@ -361,7 +361,7 @@ std::string tempFileName(FinalOutputPath.c_str()); tempFileName += "0.bc"; std::ofstream Out(tempFileName.c_str(), io_mode); - llvm_ostream L(Out); + OStream L(Out); WriteBytecodeToFile(bigOne, L, true); } @@ -378,17 +378,17 @@ std::string ErrMsg; sys::Path TempDir = sys::Path::GetTemporaryDirectory(&ErrMsg); if (TempDir.isEmpty()) { - llvm_cerr << "lto: " << ErrMsg << "\n"; + cerr << "lto: " << ErrMsg << "\n"; return LTO_WRITE_FAILURE; } sys::Path tmpAsmFilePath(TempDir); if (!tmpAsmFilePath.appendComponent("lto")) { - llvm_cerr << "lto: " << ErrMsg << "\n"; + cerr << "lto: " << ErrMsg << "\n"; TempDir.eraseFromDisk(true); return LTO_WRITE_FAILURE; } if (tmpAsmFilePath.createTemporaryFileOnDisk(&ErrMsg)) { - llvm_cerr << "lto: " << ErrMsg << "\n"; + cerr << "lto: " << ErrMsg << "\n"; TempDir.eraseFromDisk(true); return LTO_WRITE_FAILURE; } @@ -415,7 +415,7 @@ std::string tempFileName(FinalOutputPath.c_str()); tempFileName += "1.bc"; std::ofstream Out(tempFileName.c_str(), io_mode); - llvm_ostream L(Out); + OStream L(Out); WriteBytecodeToFile(bigOne, L, true); } @@ -445,7 +445,7 @@ args.push_back(0); if (sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 1, &ErrMsg)) { - llvm_cerr << "lto: " << ErrMsg << "\n"; + cerr << "lto: " << ErrMsg << "\n"; return LTO_ASM_FAILURE; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/Andersens.cpp CallGraph.cpp Message-ID: <200612070132.kB71W3xg006451@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: Andersens.cpp updated: 1.39 -> 1.40 CallGraph.cpp updated: 1.61 -> 1.62 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+28 -28) Andersens.cpp | 48 ++++++++++++++++++++++++------------------------ CallGraph.cpp | 8 ++++---- 2 files changed, 28 insertions(+), 28 deletions(-) Index: llvm/lib/Analysis/IPA/Andersens.cpp diff -u llvm/lib/Analysis/IPA/Andersens.cpp:1.39 llvm/lib/Analysis/IPA/Andersens.cpp:1.40 --- llvm/lib/Analysis/IPA/Andersens.cpp:1.39 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/IPA/Andersens.cpp Wed Dec 6 19:30:31 2006 @@ -533,7 +533,7 @@ case Instruction::BitCast: return getNodeForConstantPointer(CE->getOperand(0)); default: - llvm_cerr << "Constant Expr not yet handled: " << *CE << "\n"; + cerr << "Constant Expr not yet handled: " << *CE << "\n"; assert(0); } } else { @@ -560,7 +560,7 @@ case Instruction::BitCast: return getNodeForConstantPointerTarget(CE->getOperand(0)); default: - llvm_cerr << "Constant Expr not yet handled: " << *CE << "\n"; + cerr << "Constant Expr not yet handled: " << *CE << "\n"; assert(0); } } else { @@ -786,7 +786,7 @@ return; default: // Is this something we aren't handling yet? - llvm_cerr << "Unknown instruction: " << I; + cerr << "Unknown instruction: " << I; abort(); } } @@ -1104,13 +1104,13 @@ void Andersens::PrintNode(Node *N) { if (N == &GraphNodes[UniversalSet]) { - llvm_cerr << ""; + cerr << ""; return; } else if (N == &GraphNodes[NullPtr]) { - llvm_cerr << ""; + cerr << ""; return; } else if (N == &GraphNodes[NullObject]) { - llvm_cerr << ""; + cerr << ""; return; } @@ -1119,56 +1119,56 @@ if (Function *F = dyn_cast(V)) { if (isa(F->getFunctionType()->getReturnType()) && N == getReturnNode(F)) { - llvm_cerr << F->getName() << ":retval"; + cerr << F->getName() << ":retval"; return; } else if (F->getFunctionType()->isVarArg() && N == getVarargNode(F)) { - llvm_cerr << F->getName() << ":vararg"; + cerr << F->getName() << ":vararg"; return; } } if (Instruction *I = dyn_cast(V)) - llvm_cerr << I->getParent()->getParent()->getName() << ":"; + cerr << I->getParent()->getParent()->getName() << ":"; else if (Argument *Arg = dyn_cast(V)) - llvm_cerr << Arg->getParent()->getName() << ":"; + cerr << Arg->getParent()->getName() << ":"; if (V->hasName()) - llvm_cerr << V->getName(); + cerr << V->getName(); else - llvm_cerr << "(unnamed)"; + cerr << "(unnamed)"; if (isa(V) || isa(V)) if (N == getObject(V)) - llvm_cerr << ""; + cerr << ""; } void Andersens::PrintConstraints() { - llvm_cerr << "Constraints:\n"; + cerr << "Constraints:\n"; for (unsigned i = 0, e = Constraints.size(); i != e; ++i) { - llvm_cerr << " #" << i << ": "; + cerr << " #" << i << ": "; Constraint &C = Constraints[i]; if (C.Type == Constraint::Store) - llvm_cerr << "*"; + cerr << "*"; PrintNode(C.Dest); - llvm_cerr << " = "; + cerr << " = "; if (C.Type == Constraint::Load) - llvm_cerr << "*"; + cerr << "*"; PrintNode(C.Src); - llvm_cerr << "\n"; + cerr << "\n"; } } void Andersens::PrintPointsToGraph() { - llvm_cerr << "Points-to graph:\n"; + cerr << "Points-to graph:\n"; for (unsigned i = 0, e = GraphNodes.size(); i != e; ++i) { Node *N = &GraphNodes[i]; - llvm_cerr << "[" << (N->end() - N->begin()) << "] "; + cerr << "[" << (N->end() - N->begin()) << "] "; PrintNode(N); - llvm_cerr << "\t--> "; + cerr << "\t--> "; for (Node::iterator I = N->begin(), E = N->end(); I != E; ++I) { - if (I != N->begin()) llvm_cerr << ", "; + if (I != N->begin()) cerr << ", "; PrintNode(*I); } - llvm_cerr << "\n"; + cerr << "\n"; } } Index: llvm/lib/Analysis/IPA/CallGraph.cpp diff -u llvm/lib/Analysis/IPA/CallGraph.cpp:1.61 llvm/lib/Analysis/IPA/CallGraph.cpp:1.62 --- llvm/lib/Analysis/IPA/CallGraph.cpp:1.61 Tue Dec 5 13:46:12 2006 +++ llvm/lib/Analysis/IPA/CallGraph.cpp Wed Dec 6 19:30:31 2006 @@ -74,7 +74,7 @@ AU.setPreservesAll(); } - void print(llvm_ostream &o, const Module *M) const { + void print(OStream &o, const Module *M) const { if (o.stream()) print(*o.stream(), M); } @@ -95,7 +95,7 @@ /// dump - Print out this call graph. /// inline void dump() const { - print(llvm_cerr, Mod); + print(cerr, Mod); } CallGraphNode* getExternalCallingNode() const { return ExternalCallingNode; } @@ -212,7 +212,7 @@ } void CallGraph::dump() const { - print(llvm_cerr, 0); + print(cerr, 0); } //===----------------------------------------------------------------------===// @@ -275,7 +275,7 @@ OS << "\n"; } -void CallGraphNode::dump() const { print(llvm_cerr); } +void CallGraphNode::dump() const { print(cerr); } void CallGraphNode::removeCallEdgeTo(CallGraphNode *Callee) { for (unsigned i = CalledFunctions.size(); ; --i) { From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-ld/llvm-ld.cpp Message-ID: <200612070132.kB71W2Yn006405@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-ld: llvm-ld.cpp updated: 1.44 -> 1.45 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+19 -19) llvm-ld.cpp | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-) Index: llvm/tools/llvm-ld/llvm-ld.cpp diff -u llvm/tools/llvm-ld/llvm-ld.cpp:1.44 llvm/tools/llvm-ld/llvm-ld.cpp:1.45 --- llvm/tools/llvm-ld/llvm-ld.cpp:1.44 Tue Dec 5 19:18:01 2006 +++ llvm/tools/llvm-ld/llvm-ld.cpp Wed Dec 6 19:30:31 2006 @@ -109,7 +109,7 @@ /// Message - The message to print to standard error. /// static int PrintAndReturn(const std::string &Message) { - llvm_cerr << progname << ": " << Message << "\n"; + cerr << progname << ": " << Message << "\n"; return 1; } @@ -208,7 +208,7 @@ sys::RemoveFileOnSignal(sys::Path(FileName)); // Write it out - llvm_ostream L(Out); + OStream L(Out); WriteBytecodeToFile(M, L, !DisableCompression); // Close the bytecode file. @@ -352,12 +352,12 @@ std::string ErrMsg; sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0]); if (llvmstub.isEmpty()) { - llvm_cerr << "Could not find llvm-stub.exe executable!\n"; + cerr << "Could not find llvm-stub.exe executable!\n"; exit(1); } if (0 != sys::CopyFile(sys::Path(OutputFilename), llvmstub, &ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; exit(1); } @@ -520,14 +520,14 @@ sys::Path target(RealBytecodeOutput); target.eraseFromDisk(); if (tmp_output.renamePathOnDisk(target, &ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } } else return PrintAndReturn( "Post-link optimization output is not bytecode"); } else { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 2; } } @@ -556,18 +556,18 @@ return PrintAndReturn("Failed to find gcc"); // Generate an assembly language file for the bytecode. - if (Verbose) llvm_cout << "Generating Assembly Code\n"; + if (Verbose) cout << "Generating Assembly Code\n"; std::string ErrMsg; if (0 != GenerateAssembly(AssemblyFile.toString(), RealBytecodeOutput, llc, ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } - if (Verbose) llvm_cout << "Generating Native Code\n"; + if (Verbose) cout << "Generating Native Code\n"; if (0 != GenerateNative(OutputFilename, AssemblyFile.toString(), LinkItems,gcc,envp,ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } @@ -591,18 +591,18 @@ return PrintAndReturn("Failed to find gcc"); // Generate an assembly language file for the bytecode. - if (Verbose) llvm_cout << "Generating Assembly Code\n"; + if (Verbose) cout << "Generating Assembly Code\n"; std::string ErrMsg; if (0 != GenerateCFile( CFile.toString(), RealBytecodeOutput, llc, ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } - if (Verbose) llvm_cout << "Generating Native Code\n"; + if (Verbose) cout << "Generating Native Code\n"; if (0 != GenerateNative(OutputFilename, CFile.toString(), LinkItems, gcc, envp, ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } @@ -616,26 +616,26 @@ // Make the script executable... std::string ErrMsg; if (sys::Path(OutputFilename).makeExecutableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } // Make the bytecode file readable and directly executable in LLEE as well if (sys::Path(RealBytecodeOutput).makeExecutableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } if (sys::Path(RealBytecodeOutput).makeReadableOnDisk(&ErrMsg)) { - llvm_cerr << argv[0] << ": " << ErrMsg << "\n"; + cerr << argv[0] << ": " << ErrMsg << "\n"; return 1; } } return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-upgrade/llvm-upgrade.cpp Message-ID: <200612070132.kB71W32k006460@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-upgrade: llvm-upgrade.cpp updated: 1.4 -> 1.5 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+10 -10) llvm-upgrade.cpp | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) Index: llvm/tools/llvm-upgrade/llvm-upgrade.cpp diff -u llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.4 llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.5 --- llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.4 Tue Dec 5 19:18:01 2006 +++ llvm/tools/llvm-upgrade/llvm-upgrade.cpp Wed Dec 6 19:30:32 2006 @@ -57,9 +57,9 @@ if (OutputFilename != "-") { // Not stdout? if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } Out = new std::ofstream(OutputFilename.c_str(), std::ios::out | @@ -84,9 +84,9 @@ if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } @@ -106,22 +106,22 @@ } if (!Out->good()) { - llvm_cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; + cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; return 1; } if (!In->good()) { - llvm_cerr << argv[0] << ": error opening " << InputFilename << "!\n"; + cerr << argv[0] << ": error opening " << InputFilename << "!\n"; return 1; } UpgradeAssembly(InputFilename, *In, *Out, Debug); } catch (const std::string& caught_message) { - llvm_cerr << argv[0] << ": " << caught_message << "\n"; + cerr << argv[0] << ": " << caught_message << "\n"; exitCode = 1; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; exitCode = 1; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/IPO/GlobalOpt.cpp Internalize.cpp Message-ID: <200612070132.kB71W3q9006504@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/IPO: GlobalOpt.cpp updated: 1.77 -> 1.78 Internalize.cpp updated: 1.38 -> 1.39 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+19 -20) GlobalOpt.cpp | 36 ++++++++++++++++++------------------ Internalize.cpp | 3 +-- 2 files changed, 19 insertions(+), 20 deletions(-) Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.77 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.78 --- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.77 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Transforms/IPO/GlobalOpt.cpp Wed Dec 6 19:30:31 2006 @@ -494,17 +494,17 @@ // Will trap. } else if (StoreInst *SI = dyn_cast(*UI)) { if (SI->getOperand(0) == V) { - //llvm_cerr << "NONTRAPPING USE: " << **UI; + //cerr << "NONTRAPPING USE: " << **UI; return false; // Storing the value. } } else if (CallInst *CI = dyn_cast(*UI)) { if (CI->getOperand(0) != V) { - //llvm_cerr << "NONTRAPPING USE: " << **UI; + //cerr << "NONTRAPPING USE: " << **UI; return false; // Not calling the ptr } } else if (InvokeInst *II = dyn_cast(*UI)) { if (II->getOperand(0) != V) { - //llvm_cerr << "NONTRAPPING USE: " << **UI; + //cerr << "NONTRAPPING USE: " << **UI; return false; // Not calling the ptr } } else if (CastInst *CI = dyn_cast(*UI)) { @@ -515,7 +515,7 @@ isa(UI->getOperand(1))) { // Ignore setcc X, null } else { - //llvm_cerr << "NONTRAPPING USE: " << **UI; + //cerr << "NONTRAPPING USE: " << **UI; return false; } return true; @@ -533,7 +533,7 @@ // Ignore stores to the global. } else { // We don't know or understand this user, bail out. - //llvm_cerr << "UNKNOWN USER OF GLOBAL!: " << **UI; + //cerr << "UNKNOWN USER OF GLOBAL!: " << **UI; return false; } @@ -1206,25 +1206,25 @@ if (!AnalyzeGlobal(GV, GS, PHIUsers)) { #if 0 - llvm_cerr << "Global: " << *GV; - llvm_cerr << " isLoaded = " << GS.isLoaded << "\n"; - llvm_cerr << " StoredType = "; + cerr << "Global: " << *GV; + cerr << " isLoaded = " << GS.isLoaded << "\n"; + cerr << " StoredType = "; switch (GS.StoredType) { - case GlobalStatus::NotStored: llvm_cerr << "NEVER STORED\n"; break; - case GlobalStatus::isInitializerStored: llvm_cerr << "INIT STORED\n"; break; - case GlobalStatus::isStoredOnce: llvm_cerr << "STORED ONCE\n"; break; - case GlobalStatus::isStored: llvm_cerr << "stored\n"; break; + case GlobalStatus::NotStored: cerr << "NEVER STORED\n"; break; + case GlobalStatus::isInitializerStored: cerr << "INIT STORED\n"; break; + case GlobalStatus::isStoredOnce: cerr << "STORED ONCE\n"; break; + case GlobalStatus::isStored: cerr << "stored\n"; break; } if (GS.StoredType == GlobalStatus::isStoredOnce && GS.StoredOnceValue) - llvm_cerr << " StoredOnceValue = " << *GS.StoredOnceValue << "\n"; + cerr << " StoredOnceValue = " << *GS.StoredOnceValue << "\n"; if (GS.AccessingFunction && !GS.HasMultipleAccessingFunctions) - llvm_cerr << " AccessingFunction = " << GS.AccessingFunction->getName() + cerr << " AccessingFunction = " << GS.AccessingFunction->getName() << "\n"; - llvm_cerr << " HasMultipleAccessingFunctions = " + cerr << " HasMultipleAccessingFunctions = " << GS.HasMultipleAccessingFunctions << "\n"; - llvm_cerr << " HasNonInstructionUser = " << GS.HasNonInstructionUser<<"\n"; - llvm_cerr << " isNotSuitableForSRA = " << GS.isNotSuitableForSRA << "\n"; - llvm_cerr << "\n"; + cerr << " HasNonInstructionUser = " << GS.HasNonInstructionUser<<"\n"; + cerr << " isNotSuitableForSRA = " << GS.isNotSuitableForSRA << "\n"; + cerr << "\n"; #endif // If this is a first class global and has only one accessing function Index: llvm/lib/Transforms/IPO/Internalize.cpp diff -u llvm/lib/Transforms/IPO/Internalize.cpp:1.38 llvm/lib/Transforms/IPO/Internalize.cpp:1.39 --- llvm/lib/Transforms/IPO/Internalize.cpp:1.38 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Transforms/IPO/Internalize.cpp Wed Dec 6 19:30:31 2006 @@ -74,8 +74,7 @@ // Load the APIFile... std::ifstream In(Filename); if (!In.good()) { - llvm_cerr << "WARNING: Internalize couldn't load file '" << Filename - << "'!\n"; + cerr << "WARNING: Internalize couldn't load file '" << Filename << "'!\n"; return; // Do not internalize anything... } while (In) { From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/lib/Support/Allocator.cpp CommandLine.cpp Debug.cpp GraphWriter.cpp PluginLoader.cpp SlowOperationInformer.cpp Streams.cpp SystemUtils.cpp Message-ID: <200612070132.kB71W1MG006403@zion.cs.uiuc.edu> Changes in directory llvm/lib/Support: Allocator.cpp updated: 1.3 -> 1.4 CommandLine.cpp updated: 1.79 -> 1.80 Debug.cpp updated: 1.9 -> 1.10 GraphWriter.cpp updated: 1.6 -> 1.7 PluginLoader.cpp updated: 1.19 -> 1.20 SlowOperationInformer.cpp updated: 1.11 -> 1.12 Streams.cpp updated: 1.1 -> 1.2 SystemUtils.cpp updated: 1.46 -> 1.47 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+74 -73) Allocator.cpp | 4 - CommandLine.cpp | 94 +++++++++++++++++++++++----------------------- Debug.cpp | 6 +- GraphWriter.cpp | 16 +++---- PluginLoader.cpp | 4 - SlowOperationInformer.cpp | 8 +-- Streams.cpp | 7 +-- SystemUtils.cpp | 8 +-- 8 files changed, 74 insertions(+), 73 deletions(-) Index: llvm/lib/Support/Allocator.cpp diff -u llvm/lib/Support/Allocator.cpp:1.3 llvm/lib/Support/Allocator.cpp:1.4 --- llvm/lib/Support/Allocator.cpp:1.3 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/Allocator.cpp Wed Dec 6 19:30:31 2006 @@ -102,6 +102,6 @@ for (; R; R = R->getNext(), ++NumRegions) BytesUsed += R->getNumBytesAllocated(); - llvm_cerr << "\nNumber of memory regions: " << NumRegions << "\n"; - llvm_cerr << "Bytes allocated: " << BytesUsed << "\n"; + cerr << "\nNumber of memory regions: " << NumRegions << "\n"; + cerr << "Bytes allocated: " << BytesUsed << "\n"; } Index: llvm/lib/Support/CommandLine.cpp diff -u llvm/lib/Support/CommandLine.cpp:1.79 llvm/lib/Support/CommandLine.cpp:1.80 --- llvm/lib/Support/CommandLine.cpp:1.79 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/CommandLine.cpp Wed Dec 6 19:30:31 2006 @@ -84,8 +84,8 @@ static void AddArgument(const char *ArgName, Option *Opt) { if (getOption(ArgName)) { - llvm_cerr << ProgramName << ": CommandLine Error: Argument '" - << ArgName << "' defined more than once!\n"; + cerr << ProgramName << ": CommandLine Error: Argument '" + << ArgName << "' defined more than once!\n"; } else { // Add argument to the argument map! (*Options)[ArgName] = Opt; @@ -129,9 +129,9 @@ case ValueOptional: break; default: - llvm_cerr << ProgramName - << ": Bad ValueMask flag! CommandLine usage error:" - << Handler->getValueExpectedFlag() << "\n"; + cerr << ProgramName + << ": Bad ValueMask flag! CommandLine usage error:" + << Handler->getValueExpectedFlag() << "\n"; abort(); break; } @@ -468,8 +468,8 @@ } if (Handler == 0) { - llvm_cerr << ProgramName << ": Unknown command line argument '" - << argv[i] << "'. Try: '" << argv[0] << " --help'\n"; + cerr << ProgramName << ": Unknown command line argument '" + << argv[i] << "'. Try: '" << argv[0] << " --help'\n"; ErrorParsing = true; continue; } @@ -505,18 +505,18 @@ // Check and handle positional arguments now... if (NumPositionalRequired > PositionalVals.size()) { - llvm_cerr << ProgramName - << ": Not enough positional command line arguments specified!\n" - << "Must specify at least " << NumPositionalRequired - << " positional arguments: See: " << argv[0] << " --help\n"; + cerr << ProgramName + << ": Not enough positional command line arguments specified!\n" + << "Must specify at least " << NumPositionalRequired + << " positional arguments: See: " << argv[0] << " --help\n"; ErrorParsing = true; } else if (!HasUnlimitedPositionals && PositionalVals.size() > PositionalOpts.size()) { - llvm_cerr << ProgramName - << ": Too many positional arguments specified!\n" - << "Can specify at most " << PositionalOpts.size() - << " positional arguments: See: " << argv[0] << " --help\n"; + cerr << ProgramName + << ": Too many positional arguments specified!\n" + << "Can specify at most " << PositionalOpts.size() + << " positional arguments: See: " << argv[0] << " --help\n"; ErrorParsing = true; } else if (ConsumeAfterOpt == 0) { @@ -617,11 +617,11 @@ bool Option::error(std::string Message, const char *ArgName) { if (ArgName == 0) ArgName = ArgStr; if (ArgName[0] == 0) - llvm_cerr << HelpStr; // Be nice for positional arguments + cerr << HelpStr; // Be nice for positional arguments else - llvm_cerr << ProgramName << ": for the -" << ArgName; + cerr << ProgramName << ": for the -" << ArgName; - llvm_cerr << " option: " << Message << "\n"; + cerr << " option: " << Message << "\n"; return true; } @@ -701,8 +701,8 @@ // Print out the option for the alias. void alias::printOptionInfo(unsigned GlobalWidth) const { unsigned L = std::strlen(ArgStr); - llvm_cout << " -" << ArgStr << std::string(GlobalWidth-L-6, ' ') << " - " - << HelpStr << "\n"; + cout << " -" << ArgStr << std::string(GlobalWidth-L-6, ' ') << " - " + << HelpStr << "\n"; } @@ -728,13 +728,13 @@ // void basic_parser_impl::printOptionInfo(const Option &O, unsigned GlobalWidth) const { - llvm_cout << " -" << O.ArgStr; + cout << " -" << O.ArgStr; if (const char *ValName = getValueName()) - llvm_cout << "=<" << getValueStr(O, ValName) << ">"; + cout << "=<" << getValueStr(O, ValName) << ">"; - llvm_cout << std::string(GlobalWidth-getOptionWidth(O), ' ') << " - " - << O.HelpStr << "\n"; + cout << std::string(GlobalWidth-getOptionWidth(O), ' ') << " - " + << O.HelpStr << "\n"; } @@ -850,21 +850,21 @@ unsigned GlobalWidth) const { if (O.hasArgStr()) { unsigned L = std::strlen(O.ArgStr); - llvm_cout << " -" << O.ArgStr << std::string(GlobalWidth-L-6, ' ') - << " - " << O.HelpStr << "\n"; + cout << " -" << O.ArgStr << std::string(GlobalWidth-L-6, ' ') + << " - " << O.HelpStr << "\n"; for (unsigned i = 0, e = getNumOptions(); i != e; ++i) { unsigned NumSpaces = GlobalWidth-strlen(getOption(i))-8; - llvm_cout << " =" << getOption(i) << std::string(NumSpaces, ' ') - << " - " << getDescription(i) << "\n"; + cout << " =" << getOption(i) << std::string(NumSpaces, ' ') + << " - " << getDescription(i) << "\n"; } } else { if (O.HelpStr[0]) - llvm_cout << " " << O.HelpStr << "\n"; + cout << " " << O.HelpStr << "\n"; for (unsigned i = 0, e = getNumOptions(); i != e; ++i) { unsigned L = std::strlen(getOption(i)); - llvm_cout << " -" << getOption(i) << std::string(GlobalWidth-L-8, ' ') - << " - " << getDescription(i) << "\n"; + cout << " -" << getOption(i) << std::string(GlobalWidth-L-8, ' ') + << " - " << getDescription(i) << "\n"; } } } @@ -917,9 +917,9 @@ } if (ProgramOverview) - llvm_cout << "OVERVIEW:" << ProgramOverview << "\n"; + cout << "OVERVIEW:" << ProgramOverview << "\n"; - llvm_cout << "USAGE: " << ProgramName << " [options]"; + cout << "USAGE: " << ProgramName << " [options]"; // Print out the positional options. std::vector &PosOpts = *PositionalOptions; @@ -929,28 +929,28 @@ for (unsigned i = CAOpt != 0, e = PosOpts.size(); i != e; ++i) { if (PosOpts[i]->ArgStr[0]) - llvm_cout << " --" << PosOpts[i]->ArgStr; - llvm_cout << " " << PosOpts[i]->HelpStr; + cout << " --" << PosOpts[i]->ArgStr; + cout << " " << PosOpts[i]->HelpStr; } // Print the consume after option info if it exists... - if (CAOpt) llvm_cout << " " << CAOpt->HelpStr; + if (CAOpt) cout << " " << CAOpt->HelpStr; - llvm_cout << "\n\n"; + cout << "\n\n"; // Compute the maximum argument length... MaxArgLen = 0; for (unsigned i = 0, e = Opts.size(); i != e; ++i) MaxArgLen = std::max(MaxArgLen, Opts[i].second->getOptionWidth()); - llvm_cout << "OPTIONS:\n"; + cout << "OPTIONS:\n"; for (unsigned i = 0, e = Opts.size(); i != e; ++i) Opts[i].second->printOptionInfo(MaxArgLen); // Print any extra help the user has declared. for (std::vector::iterator I = MoreHelp->begin(), E = MoreHelp->end(); I != E; ++I) - llvm_cout << *I; + cout << *I; MoreHelp->clear(); // Halt the program since help information was printed @@ -982,21 +982,21 @@ void operator=(bool OptionWasSpecified) { if (OptionWasSpecified) { if (OverrideVersionPrinter == 0) { - llvm_cout << "Low Level Virtual Machine (http://llvm.org/):\n"; - llvm_cout << " " << PACKAGE_NAME << " version " << PACKAGE_VERSION; + cout << "Low Level Virtual Machine (http://llvm.org/):\n"; + cout << " " << PACKAGE_NAME << " version " << PACKAGE_VERSION; #ifdef LLVM_VERSION_INFO - llvm_cout << LLVM_VERSION_INFO; + cout << LLVM_VERSION_INFO; #endif - llvm_cout << "\n "; + cout << "\n "; #ifndef __OPTIMIZE__ - llvm_cout << "DEBUG build"; + cout << "DEBUG build"; #else - llvm_cout << "Optimized build"; + cout << "Optimized build"; #endif #ifndef NDEBUG - llvm_cout << " with assertions"; + cout << " with assertions"; #endif - llvm_cout << ".\n"; + cout << ".\n"; Options->clear(); // Don't bother making option dtors remove from map. exit(1); } else { Index: llvm/lib/Support/Debug.cpp diff -u llvm/lib/Support/Debug.cpp:1.9 llvm/lib/Support/Debug.cpp:1.10 --- llvm/lib/Support/Debug.cpp:1.9 Fri Nov 17 03:54:47 2006 +++ llvm/lib/Support/Debug.cpp Wed Dec 6 19:30:31 2006 @@ -68,9 +68,9 @@ // places the std::c* I/O streams into one .cpp file and relieves the whole // program from having to have hundreds of static c'tor/d'tors for them. // -llvm_ostream llvm::getErrorOutputStream(const char *DebugType) { +OStream llvm::getErrorOutputStream(const char *DebugType) { if (DebugFlag && isCurrentDebugType(DebugType)) - return llvm_cerr; + return cerr; else - return llvm_null; + return NullStream; } Index: llvm/lib/Support/GraphWriter.cpp diff -u llvm/lib/Support/GraphWriter.cpp:1.6 llvm/lib/Support/GraphWriter.cpp:1.7 --- llvm/lib/Support/GraphWriter.cpp:1.6 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/GraphWriter.cpp Wed Dec 6 19:30:31 2006 @@ -28,9 +28,9 @@ args.push_back(Filename.c_str()); args.push_back(0); - llvm_cerr << "Running 'Graphviz' program... " << std::flush; + cerr << "Running 'Graphviz' program... " << std::flush; if (sys::Program::ExecuteAndWait(Graphviz, &args[0],0,0,0,&ErrMsg)) { - llvm_cerr << "Error viewing graph: " << ErrMsg << "\n"; + cerr << "Error viewing graph: " << ErrMsg << "\n"; } #elif (HAVE_GV && HAVE_DOT) sys::Path PSFilename = Filename; @@ -48,11 +48,11 @@ args.push_back(PSFilename.c_str()); args.push_back(0); - llvm_cerr << "Running 'dot' program... " << std::flush; + cerr << "Running 'dot' program... " << std::flush; if (sys::Program::ExecuteAndWait(dot, &args[0],0,0,0,&ErrMsg)) { - llvm_cerr << "Error viewing graph: '" << ErrMsg << "\n"; + cerr << "Error viewing graph: '" << ErrMsg << "\n"; } else { - llvm_cerr << " done. \n"; + cerr << " done. \n"; sys::Path gv(LLVM_PATH_GV); args.clear(); @@ -62,7 +62,7 @@ ErrMsg.clear(); if (sys::Program::ExecuteAndWait(gv, &args[0],0,0,0,&ErrMsg)) { - llvm_cerr << "Error viewing graph: " << ErrMsg << "\n"; + cerr << "Error viewing graph: " << ErrMsg << "\n"; } } PSFilename.eraseFromDisk(); @@ -73,9 +73,9 @@ args.push_back(Filename.c_str()); args.push_back(0); - llvm_cerr << "Running 'dotty' program... " << std::flush; + cerr << "Running 'dotty' program... " << std::flush; if (sys::Program::ExecuteAndWait(dotty, &args[0],0,0,0,&ErrMsg)) { - llvm_cerr << "Error viewing graph: " << ErrMsg << "\n"; + cerr << "Error viewing graph: " << ErrMsg << "\n"; } else { #ifdef __MINGW32__ // Dotty spawns another app and doesn't wait until it returns return; Index: llvm/lib/Support/PluginLoader.cpp diff -u llvm/lib/Support/PluginLoader.cpp:1.19 llvm/lib/Support/PluginLoader.cpp:1.20 --- llvm/lib/Support/PluginLoader.cpp:1.19 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/PluginLoader.cpp Wed Dec 6 19:30:31 2006 @@ -26,8 +26,8 @@ std::string Error; if (sys::DynamicLibrary::LoadLibraryPermanently(Filename.c_str(), &Error)) { - llvm_cerr << "Error opening '" << Filename << "': " << Error - << "\n -load request ignored.\n"; + cerr << "Error opening '" << Filename << "': " << Error + << "\n -load request ignored.\n"; } else { Plugins->push_back(Filename); } Index: llvm/lib/Support/SlowOperationInformer.cpp diff -u llvm/lib/Support/SlowOperationInformer.cpp:1.11 llvm/lib/Support/SlowOperationInformer.cpp:1.12 --- llvm/lib/Support/SlowOperationInformer.cpp:1.11 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/SlowOperationInformer.cpp Wed Dec 6 19:30:31 2006 @@ -28,8 +28,8 @@ if (LastPrintAmount) { // If we have printed something, make _sure_ we print the 100% amount, and // also print a newline. - llvm_cout << std::string(LastPrintAmount, '\b') << "Progress " - << OperationName << ": 100% \n"; + cout << std::string(LastPrintAmount, '\b') << "Progress " + << OperationName << ": 100% \n"; } } @@ -40,7 +40,7 @@ bool SlowOperationInformer::progress(unsigned Amount) { int status = sys::AlarmStatus(); if (status == -1) { - llvm_cout << "\n"; + cout << "\n"; LastPrintAmount = 0; return true; } @@ -61,6 +61,6 @@ OS << "% "; LastPrintAmount = OS.str().size(); - llvm_cout << ToPrint+OS.str() << std::flush; + cout << ToPrint+OS.str() << std::flush; return false; } Index: llvm/lib/Support/Streams.cpp diff -u llvm/lib/Support/Streams.cpp:1.1 llvm/lib/Support/Streams.cpp:1.2 --- llvm/lib/Support/Streams.cpp:1.1 Fri Nov 17 03:51:22 2006 +++ llvm/lib/Support/Streams.cpp Wed Dec 6 19:30:31 2006 @@ -16,6 +16,7 @@ #include using namespace llvm; -llvm_ostream llvm::llvm_null; -llvm_ostream llvm::llvm_cout(std::cout); -llvm_ostream llvm::llvm_cerr(std::cerr); +OStream llvm::NullStream; +OStream llvm::cout(std::cout); +OStream llvm::cerr(std::cerr); +IStream llvm::cin(std::cin); Index: llvm/lib/Support/SystemUtils.cpp diff -u llvm/lib/Support/SystemUtils.cpp:1.46 llvm/lib/Support/SystemUtils.cpp:1.47 --- llvm/lib/Support/SystemUtils.cpp:1.46 Sun Nov 26 04:52:51 2006 +++ llvm/lib/Support/SystemUtils.cpp Wed Dec 6 19:30:31 2006 @@ -23,10 +23,10 @@ bool print_warning) { if (stream_to_check == &std::cout && sys::Process::StandardOutIsDisplayed()) { if (print_warning) { - llvm_cerr << "WARNING: You're attempting to print out a bytecode file.\n" - << "This is inadvisable as it may cause display problems. If\n" - << "you REALLY want to taste LLVM bytecode first-hand, you\n" - << "can force output with the `-f' option.\n\n"; + cerr << "WARNING: You're attempting to print out a bytecode file.\n" + << "This is inadvisable as it may cause display problems. If\n" + << "you REALLY want to taste LLVM bytecode first-hand, you\n" + << "can force output with the `-f' option.\n\n"; } return true; } From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/ExecutionEngine.cpp Message-ID: <200612070132.kB71W2W2006384@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine: ExecutionEngine.cpp updated: 1.91 -> 1.92 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+9 -9) ExecutionEngine.cpp | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) Index: llvm/lib/ExecutionEngine/ExecutionEngine.cpp diff -u llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.91 llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.92 --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.91 Wed Dec 6 11:46:32 2006 +++ llvm/lib/ExecutionEngine/ExecutionEngine.cpp Wed Dec 6 19:30:31 2006 @@ -402,7 +402,7 @@ default: break; } - llvm_cerr << "ConstantExpr not handled as global var init: " << *CE << "\n"; + cerr << "ConstantExpr not handled as global var init: " << *CE << "\n"; abort(); } @@ -432,7 +432,7 @@ assert(0 && "Unknown constant pointer type!"); break; default: - llvm_cerr << "ERROR: Constant unimp for type: " << *C->getType() << "\n"; + cerr << "ERROR: Constant unimp for type: " << *C->getType() << "\n"; abort(); } return Result; @@ -477,7 +477,7 @@ Ptr->Untyped[7] = (unsigned char)(Val.ULongVal >> 56); break; default: - llvm_cerr << "Cannot store value of type " << *Ty << "!\n"; + cerr << "Cannot store value of type " << *Ty << "!\n"; } } else { switch (Ty->getTypeID()) { @@ -511,7 +511,7 @@ Ptr->Untyped[0] = (unsigned char)(Val.ULongVal >> 56); break; default: - llvm_cerr << "Cannot store value of type " << *Ty << "!\n"; + cerr << "Cannot store value of type " << *Ty << "!\n"; } } } @@ -552,7 +552,7 @@ ((uint64_t)Ptr->Untyped[7] << 56); break; default: - llvm_cerr << "Cannot load value of type " << *Ty << "!\n"; + cerr << "Cannot load value of type " << *Ty << "!\n"; abort(); } } else { @@ -586,7 +586,7 @@ ((uint64_t)Ptr->Untyped[0] << 56); break; default: - llvm_cerr << "Cannot load value of type " << *Ty << "!\n"; + cerr << "Cannot load value of type " << *Ty << "!\n"; abort(); } } @@ -634,7 +634,7 @@ } default: - llvm_cerr << "Bad Type: " << *Init->getType() << "\n"; + cerr << "Bad Type: " << *Init->getType() << "\n"; assert(0 && "Unknown constant type to initialize memory with!"); } } @@ -718,8 +718,8 @@ sys::DynamicLibrary::SearchForAddressOfSymbol(I->getName().c_str())) addGlobalMapping(I, SymAddr); else { - llvm_cerr << "Could not resolve external global address: " - << I->getName() << "\n"; + cerr << "Could not resolve external global address: " + << I->getName() << "\n"; abort(); } } From isanbard at gmail.com Wed Dec 6 19:32:01 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:01 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/AliasAnalysisCounter.cpp AliasAnalysisEvaluator.cpp AliasSetTracker.cpp BasicAliasAnalysis.cpp CFGPrinter.cpp ConstantRange.cpp InstCount.cpp LoopInfo.cpp ProfileInfoLoader.cpp ProfileInfoLoaderPass.cpp ScalarEvolution.cpp ScalarEvolutionExpander.cpp Trace.cpp Message-ID: <200612070132.kB71W13a006383@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis: AliasAnalysisCounter.cpp updated: 1.17 -> 1.18 AliasAnalysisEvaluator.cpp updated: 1.30 -> 1.31 AliasSetTracker.cpp updated: 1.44 -> 1.45 BasicAliasAnalysis.cpp updated: 1.92 -> 1.93 CFGPrinter.cpp updated: 1.20 -> 1.21 ConstantRange.cpp updated: 1.20 -> 1.21 InstCount.cpp updated: 1.17 -> 1.18 LoopInfo.cpp updated: 1.80 -> 1.81 ProfileInfoLoader.cpp updated: 1.9 -> 1.10 ProfileInfoLoaderPass.cpp updated: 1.16 -> 1.17 ScalarEvolution.cpp updated: 1.66 -> 1.67 ScalarEvolutionExpander.cpp updated: 1.7 -> 1.8 Trace.cpp updated: 1.4 -> 1.5 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+91 -98) AliasAnalysisCounter.cpp | 38 ++++++++++++++------------------ AliasAnalysisEvaluator.cpp | 52 ++++++++++++++++++++++---------------------- AliasSetTracker.cpp | 6 ++--- BasicAliasAnalysis.cpp | 4 +-- CFGPrinter.cpp | 6 ++--- ConstantRange.cpp | 2 - InstCount.cpp | 2 - LoopInfo.cpp | 2 - ProfileInfoLoader.cpp | 29 +++++++++++------------- ProfileInfoLoaderPass.cpp | 4 +-- ScalarEvolution.cpp | 34 ++++++++++++++-------------- ScalarEvolutionExpander.cpp | 5 +--- Trace.cpp | 5 +--- 13 files changed, 91 insertions(+), 98 deletions(-) Index: llvm/lib/Analysis/AliasAnalysisCounter.cpp diff -u llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.17 llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.18 --- llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.17 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Analysis/AliasAnalysisCounter.cpp Wed Dec 6 19:30:31 2006 @@ -39,37 +39,33 @@ } void printLine(const char *Desc, unsigned Val, unsigned Sum) { - llvm_cerr << " " << Val << " " << Desc << " responses (" - << Val*100/Sum << "%)\n"; + cerr << " " << Val << " " << Desc << " responses (" + << Val*100/Sum << "%)\n"; } ~AliasAnalysisCounter() { unsigned AASum = No+May+Must; unsigned MRSum = NoMR+JustRef+JustMod+MR; if (AASum + MRSum) { // Print a report if any counted queries occurred... - llvm_cerr - << "\n===== Alias Analysis Counter Report =====\n" - << " Analysis counted: " << Name << "\n" - << " " << AASum << " Total Alias Queries Performed\n"; + cerr << "\n===== Alias Analysis Counter Report =====\n" + << " Analysis counted: " << Name << "\n" + << " " << AASum << " Total Alias Queries Performed\n"; if (AASum) { printLine("no alias", No, AASum); printLine("may alias", May, AASum); printLine("must alias", Must, AASum); - llvm_cerr - << " Alias Analysis Counter Summary: " << No*100/AASum << "%/" - << May*100/AASum << "%/" << Must*100/AASum<<"%\n\n"; + cerr << " Alias Analysis Counter Summary: " << No*100/AASum << "%/" + << May*100/AASum << "%/" << Must*100/AASum<<"%\n\n"; } - llvm_cerr - << " " << MRSum << " Total Mod/Ref Queries Performed\n"; + cerr << " " << MRSum << " Total Mod/Ref Queries Performed\n"; if (MRSum) { printLine("no mod/ref", NoMR, MRSum); printLine("ref", JustRef, MRSum); printLine("mod", JustMod, MRSum); printLine("mod/ref", MR, MRSum); - llvm_cerr - << " Mod/Ref Analysis Counter Summary: " << NoMR*100/MRSum<< "%/" - << JustRef*100/MRSum << "%/" << JustMod*100/MRSum << "%/" - << MR*100/MRSum <<"%\n\n"; + cerr << " Mod/Ref Analysis Counter Summary: " <" << *CS.getInstruction(); + cerr << "\t<->" << *CS.getInstruction(); } return R; } Index: llvm/lib/Analysis/AliasAnalysisEvaluator.cpp diff -u llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.30 llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.31 --- llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.30 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Analysis/AliasAnalysisEvaluator.cpp Wed Dec 6 19:30:31 2006 @@ -79,7 +79,7 @@ static inline void PrintResults(const char *Msg, bool P, Value *V1, Value *V2, Module *M) { if (P) { - llvm_cerr << " " << Msg << ":\t"; + cerr << " " << Msg << ":\t"; WriteAsOperand(std::cerr, V1, true, M) << ", "; WriteAsOperand(std::cerr, V2, true, M) << "\n"; } @@ -89,9 +89,9 @@ PrintModRefResults(const char *Msg, bool P, Instruction *I, Value *Ptr, Module *M) { if (P) { - llvm_cerr << " " << Msg << ": Ptr: "; + cerr << " " << Msg << ": Ptr: "; WriteAsOperand(std::cerr, Ptr, true, M); - llvm_cerr << "\t<->" << *I; + cerr << "\t<->" << *I; } } @@ -125,8 +125,8 @@ if (PrintNoAlias || PrintMayAlias || PrintMustAlias || PrintNoModRef || PrintMod || PrintRef || PrintModRef) - llvm_cerr << "Function: " << F.getName() << ": " << Pointers.size() - << " pointers, " << CallSites.size() << " call sites\n"; + cerr << "Function: " << F.getName() << ": " << Pointers.size() + << " pointers, " << CallSites.size() << " call sites\n"; // iterate over the worklist, and run the full (n^2)/2 disambiguations for (std::set::iterator I1 = Pointers.begin(), E = Pointers.end(); @@ -151,7 +151,7 @@ PrintResults("MustAlias", PrintMustAlias, *I1, *I2, F.getParent()); ++MustAlias; break; default: - llvm_cerr << "Unknown alias query result!\n"; + cerr << "Unknown alias query result!\n"; } } } @@ -181,7 +181,7 @@ PrintModRefResults(" ModRef", PrintModRef, I, *V, F.getParent()); ++ModRef; break; default: - llvm_cerr << "Unknown alias query result!\n"; + cerr << "Unknown alias query result!\n"; } } } @@ -190,45 +190,45 @@ } static void PrintPercent(unsigned Num, unsigned Sum) { - llvm_cerr << "(" << Num*100ULL/Sum << "." + cerr << "(" << Num*100ULL/Sum << "." << ((Num*1000ULL/Sum) % 10) << "%)\n"; } bool AAEval::doFinalization(Module &M) { unsigned AliasSum = NoAlias + MayAlias + MustAlias; - llvm_cerr << "===== Alias Analysis Evaluator Report =====\n"; + cerr << "===== Alias Analysis Evaluator Report =====\n"; if (AliasSum == 0) { - llvm_cerr << " Alias Analysis Evaluator Summary: No pointers!\n"; + cerr << " Alias Analysis Evaluator Summary: No pointers!\n"; } else { - llvm_cerr << " " << AliasSum << " Total Alias Queries Performed\n"; - llvm_cerr << " " << NoAlias << " no alias responses "; + cerr << " " << AliasSum << " Total Alias Queries Performed\n"; + cerr << " " << NoAlias << " no alias responses "; PrintPercent(NoAlias, AliasSum); - llvm_cerr << " " << MayAlias << " may alias responses "; + cerr << " " << MayAlias << " may alias responses "; PrintPercent(MayAlias, AliasSum); - llvm_cerr << " " << MustAlias << " must alias responses "; + cerr << " " << MustAlias << " must alias responses "; PrintPercent(MustAlias, AliasSum); - llvm_cerr << " Alias Analysis Evaluator Pointer Alias Summary: " - << NoAlias*100/AliasSum << "%/" << MayAlias*100/AliasSum << "%/" - << MustAlias*100/AliasSum << "%\n"; + cerr << " Alias Analysis Evaluator Pointer Alias Summary: " + << NoAlias*100/AliasSum << "%/" << MayAlias*100/AliasSum << "%/" + << MustAlias*100/AliasSum << "%\n"; } // Display the summary for mod/ref analysis unsigned ModRefSum = NoModRef + Mod + Ref + ModRef; if (ModRefSum == 0) { - llvm_cerr << " Alias Analysis Mod/Ref Evaluator Summary: no mod/ref!\n"; + cerr << " Alias Analysis Mod/Ref Evaluator Summary: no mod/ref!\n"; } else { - llvm_cerr << " " << ModRefSum << " Total ModRef Queries Performed\n"; - llvm_cerr << " " << NoModRef << " no mod/ref responses "; + cerr << " " << ModRefSum << " Total ModRef Queries Performed\n"; + cerr << " " << NoModRef << " no mod/ref responses "; PrintPercent(NoModRef, ModRefSum); - llvm_cerr << " " << Mod << " mod responses "; + cerr << " " << Mod << " mod responses "; PrintPercent(Mod, ModRefSum); - llvm_cerr << " " << Ref << " ref responses "; + cerr << " " << Ref << " ref responses "; PrintPercent(Ref, ModRefSum); - llvm_cerr << " " << ModRef << " mod & ref responses "; + cerr << " " << ModRef << " mod & ref responses "; PrintPercent(ModRef, ModRefSum); - llvm_cerr << " Alias Analysis Evaluator Mod/Ref Summary: " - << NoModRef*100/ModRefSum << "%/" << Mod*100/ModRefSum << "%/" - << Ref*100/ModRefSum << "%/" << ModRef*100/ModRefSum << "%\n"; + cerr << " Alias Analysis Evaluator Mod/Ref Summary: " + << NoModRef*100/ModRefSum << "%/" << Mod*100/ModRefSum << "%/" + << Ref*100/ModRefSum << "%/" << ModRef*100/ModRefSum << "%\n"; } return false; Index: llvm/lib/Analysis/AliasSetTracker.cpp diff -u llvm/lib/Analysis/AliasSetTracker.cpp:1.44 llvm/lib/Analysis/AliasSetTracker.cpp:1.45 --- llvm/lib/Analysis/AliasSetTracker.cpp:1.44 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/AliasSetTracker.cpp Wed Dec 6 19:30:31 2006 @@ -543,8 +543,8 @@ OS << "\n"; } -void AliasSet::dump() const { print (llvm_cerr); } -void AliasSetTracker::dump() const { print(llvm_cerr); } +void AliasSet::dump() const { print (cerr); } +void AliasSetTracker::dump() const { print(cerr); } //===----------------------------------------------------------------------===// // AliasSetPrinter Pass @@ -564,7 +564,7 @@ for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) Tracker->add(&*I); - Tracker->print(llvm_cerr); + Tracker->print(cerr); delete Tracker; return false; } Index: llvm/lib/Analysis/BasicAliasAnalysis.cpp diff -u llvm/lib/Analysis/BasicAliasAnalysis.cpp:1.92 llvm/lib/Analysis/BasicAliasAnalysis.cpp:1.93 --- llvm/lib/Analysis/BasicAliasAnalysis.cpp:1.92 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/BasicAliasAnalysis.cpp Wed Dec 6 19:30:31 2006 @@ -745,8 +745,8 @@ assert(Offset1= SizeMax) { - //llvm_cerr << "Determined that these two GEP's don't alias [" - // << SizeMax << " bytes]: \n" << *GEP1 << *GEP2; + //cerr << "Determined that these two GEP's don't alias [" + // << SizeMax << " bytes]: \n" << *GEP1 << *GEP2; return NoAlias; } } Index: llvm/lib/Analysis/CFGPrinter.cpp diff -u llvm/lib/Analysis/CFGPrinter.cpp:1.20 llvm/lib/Analysis/CFGPrinter.cpp:1.21 --- llvm/lib/Analysis/CFGPrinter.cpp:1.20 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Analysis/CFGPrinter.cpp Wed Dec 6 19:30:31 2006 @@ -92,14 +92,14 @@ struct CFGPrinter : public FunctionPass { virtual bool runOnFunction(Function &F) { std::string Filename = "cfg." + F.getName() + ".dot"; - llvm_cerr << "Writing '" << Filename << "'..."; + cerr << "Writing '" << Filename << "'..."; std::ofstream File(Filename.c_str()); if (File.good()) WriteGraph(File, (const Function*)&F); else - llvm_cerr << " error opening file for writing!"; - llvm_cerr << "\n"; + cerr << " error opening file for writing!"; + cerr << "\n"; return false; } Index: llvm/lib/Analysis/ConstantRange.cpp diff -u llvm/lib/Analysis/ConstantRange.cpp:1.20 llvm/lib/Analysis/ConstantRange.cpp:1.21 --- llvm/lib/Analysis/ConstantRange.cpp:1.20 Wed Dec 6 14:45:15 2006 +++ llvm/lib/Analysis/ConstantRange.cpp Wed Dec 6 19:30:31 2006 @@ -370,5 +370,5 @@ /// dump - Allow printing from a debugger easily... /// void ConstantRange::dump() const { - print(llvm_cerr); + print(cerr); } Index: llvm/lib/Analysis/InstCount.cpp diff -u llvm/lib/Analysis/InstCount.cpp:1.17 llvm/lib/Analysis/InstCount.cpp:1.18 --- llvm/lib/Analysis/InstCount.cpp:1.17 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/InstCount.cpp Wed Dec 6 19:30:31 2006 @@ -43,7 +43,7 @@ #include "llvm/Instruction.def" void visitInstruction(Instruction &I) { - llvm_cerr << "Instruction Count does not know about " << I; + cerr << "Instruction Count does not know about " << I; abort(); } public: Index: llvm/lib/Analysis/LoopInfo.cpp diff -u llvm/lib/Analysis/LoopInfo.cpp:1.80 llvm/lib/Analysis/LoopInfo.cpp:1.81 --- llvm/lib/Analysis/LoopInfo.cpp:1.80 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/LoopInfo.cpp Wed Dec 6 19:30:31 2006 @@ -80,7 +80,7 @@ } void Loop::dump() const { - print(llvm_cerr); + print(cerr); } Index: llvm/lib/Analysis/ProfileInfoLoader.cpp diff -u llvm/lib/Analysis/ProfileInfoLoader.cpp:1.9 llvm/lib/Analysis/ProfileInfoLoader.cpp:1.10 --- llvm/lib/Analysis/ProfileInfoLoader.cpp:1.9 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/ProfileInfoLoader.cpp Wed Dec 6 19:30:31 2006 @@ -37,7 +37,7 @@ // Read the number of entries... unsigned NumEntries; if (fread(&NumEntries, sizeof(unsigned), 1, F) != 1) { - llvm_cerr << ToolName << ": data packet truncated!\n"; + cerr << ToolName << ": data packet truncated!\n"; perror(0); exit(1); } @@ -48,7 +48,7 @@ // Read in the block of data... if (fread(&TempSpace[0], sizeof(unsigned)*NumEntries, 1, F) != 1) { - llvm_cerr << ToolName << ": data packet truncated!\n"; + cerr << ToolName << ": data packet truncated!\n"; perror(0); exit(1); } @@ -75,7 +75,7 @@ Module &TheModule) : M(TheModule) { FILE *F = fopen(Filename.c_str(), "r"); if (F == 0) { - llvm_cerr << ToolName << ": Error opening '" << Filename << "': "; + cerr << ToolName << ": Error opening '" << Filename << "': "; perror(0); exit(1); } @@ -93,7 +93,7 @@ case ArgumentInfo: { unsigned ArgLength; if (fread(&ArgLength, sizeof(unsigned), 1, F) != 1) { - llvm_cerr << ToolName << ": arguments packet truncated!\n"; + cerr << ToolName << ": arguments packet truncated!\n"; perror(0); exit(1); } @@ -104,7 +104,7 @@ if (ArgLength) if (fread(&Chars[0], (ArgLength+3) & ~3, 1, F) != 1) { - llvm_cerr << ToolName << ": arguments packet truncated!\n"; + cerr << ToolName << ": arguments packet truncated!\n"; perror(0); exit(1); } @@ -129,7 +129,7 @@ break; default: - llvm_cerr << ToolName << ": Unknown packet type #" << PacketType << "!\n"; + cerr << ToolName << ": Unknown packet type #" << PacketType << "!\n"; exit(1); } } @@ -156,7 +156,7 @@ Counts.push_back(std::make_pair(BlockCounts[i].first->getParent(), BlockCounts[i].second)); } else { - llvm_cerr << "Function counts are not available!\n"; + cerr << "Function counts are not available!\n"; } return; } @@ -200,8 +200,8 @@ if (SuccNum >= TI->getNumSuccessors()) { static bool Warned = false; if (!Warned) { - llvm_cerr << "WARNING: profile info doesn't seem to match" - << " the program!\n"; + cerr << "WARNING: profile info doesn't seem to match" + << " the program!\n"; Warned = true; } } else { @@ -226,7 +226,7 @@ } } else { - llvm_cerr << "Block counts are not available!\n"; + cerr << "Block counts are not available!\n"; } return; } @@ -247,8 +247,8 @@ void ProfileInfoLoader::getEdgeCounts(std::vector > &Counts) { if (EdgeCounts.empty()) { - llvm_cerr << "Edge counts not available, and no synthesis " - << "is implemented yet!\n"; + cerr << "Edge counts not available, and no synthesis " + << "is implemented yet!\n"; return; } @@ -268,9 +268,8 @@ // void ProfileInfoLoader::getBBTrace(std::vector &Trace) { if (BBTrace.empty ()) { - llvm_cerr << "Basic block trace is not available!\n"; + cerr << "Basic block trace is not available!\n"; return; } - llvm_cerr << "Basic block trace loading is not implemented yet!\n"; + cerr << "Basic block trace loading is not implemented yet!\n"; } - Index: llvm/lib/Analysis/ProfileInfoLoaderPass.cpp diff -u llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.16 llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.17 --- llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.16 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/ProfileInfoLoaderPass.cpp Wed Dec 6 19:30:31 2006 @@ -76,8 +76,8 @@ TerminatorInst *TI = BB->getTerminator(); if (SuccNum >= TI->getNumSuccessors()) { if (!PrintedWarning) { - llvm_cerr << "WARNING: profile information is inconsistent with " - << "the current program!\n"; + cerr << "WARNING: profile information is inconsistent with " + << "the current program!\n"; PrintedWarning = true; } } else { Index: llvm/lib/Analysis/ScalarEvolution.cpp diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.66 llvm/lib/Analysis/ScalarEvolution.cpp:1.67 --- llvm/lib/Analysis/ScalarEvolution.cpp:1.66 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/ScalarEvolution.cpp Wed Dec 6 19:30:31 2006 @@ -118,7 +118,7 @@ // SCEV::~SCEV() {} void SCEV::dump() const { - print(llvm_cerr); + print(cerr); } /// getValueRange - Return the tightest constant bounds that this value is @@ -1558,11 +1558,11 @@ break; default: #if 0 - llvm_cerr << "ComputeIterationCount "; + cerr << "ComputeIterationCount "; if (ExitCond->getOperand(0)->getType()->isUnsigned()) - llvm_cerr << "[unsigned] "; - llvm_cerr << *LHS << " " - << Instruction::getOpcodeName(Cond) << " " << *RHS << "\n"; + cerr << "[unsigned] "; + cerr << *LHS << " " + << Instruction::getOpcodeName(Cond) << " " << *RHS << "\n"; #endif break; } @@ -1678,9 +1678,9 @@ if (!isa(Result)) break; // Couldn't decide for sure if (cast(Result)->getValue() == false) { #if 0 - llvm_cerr << "\n***\n*** Computed loop count " << *ItCst - << "\n*** From global " << *GV << "*** BB: " << *L->getHeader() - << "***\n"; + cerr << "\n***\n*** Computed loop count " << *ItCst + << "\n*** From global " << *GV << "*** BB: " << *L->getHeader() + << "***\n"; #endif ++NumArrayLenItCounts; return SCEVConstant::get(ItCst); // Found terminating iteration! @@ -2147,8 +2147,8 @@ SCEVConstant *R2 = dyn_cast(Roots.second); if (R1) { #if 0 - llvm_cerr << "HFTZ: " << *V << " - sol#1: " << *R1 - << " sol#2: " << *R2 << "\n"; + cerr << "HFTZ: " << *V << " - sol#1: " << *R1 + << " sol#2: " << *R2 << "\n"; #endif // Pick the smallest positive root value. assert(R1->getType()->isUnsigned()&&"Didn't canonicalize to unsigned?"); @@ -2276,8 +2276,8 @@ default: break; } - //llvm_cerr << "Computed Loop Trip Count as: " << - // *SCEV::getMinusSCEV(RHS, AddRec->getOperand(0)) << "\n"; + //cerr << "Computed Loop Trip Count as: " + // << *SCEV::getMinusSCEV(RHS, AddRec->getOperand(0)) << "\n"; return SCEV::getMinusSCEV(RHS, AddRec->getOperand(0)); } @@ -2492,20 +2492,20 @@ for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I) PrintLoopInfo(OS, SE, *I); - llvm_cerr << "Loop " << L->getHeader()->getName() << ": "; + cerr << "Loop " << L->getHeader()->getName() << ": "; std::vector ExitBlocks; L->getExitBlocks(ExitBlocks); if (ExitBlocks.size() != 1) - llvm_cerr << " "; + cerr << " "; if (SE->hasLoopInvariantIterationCount(L)) { - llvm_cerr << *SE->getIterationCount(L) << " iterations! "; + cerr << *SE->getIterationCount(L) << " iterations! "; } else { - llvm_cerr << "Unpredictable iteration count. "; + cerr << "Unpredictable iteration count. "; } - llvm_cerr << "\n"; + cerr << "\n"; } void ScalarEvolution::print(std::ostream &OS, const Module* ) const { Index: llvm/lib/Analysis/ScalarEvolutionExpander.cpp diff -u llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.7 llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.8 --- llvm/lib/Analysis/ScalarEvolutionExpander.cpp:1.7 Mon Dec 4 11:04:44 2006 +++ llvm/lib/Analysis/ScalarEvolutionExpander.cpp Wed Dec 6 19:30:31 2006 @@ -13,9 +13,8 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Analysis/LoopInfo.h" #include "llvm/Analysis/ScalarEvolutionExpander.h" - +#include "llvm/Analysis/LoopInfo.h" using namespace llvm; /// InsertCastOfTo - Insert a cast of V to the specified type, doing what @@ -175,7 +174,7 @@ SCEVHandle IH = SCEVUnknown::get(I); // Get I as a "symbolic" SCEV. SCEVHandle V = S->evaluateAtIteration(IH); - //llvm_cerr << "Evaluated: " << *this << "\n to: " << *V << "\n"; + //cerr << "Evaluated: " << *this << "\n to: " << *V << "\n"; return expandInTy(V, Ty); } Index: llvm/lib/Analysis/Trace.cpp diff -u llvm/lib/Analysis/Trace.cpp:1.4 llvm/lib/Analysis/Trace.cpp:1.5 --- llvm/lib/Analysis/Trace.cpp:1.4 Wed Dec 6 00:16:21 2006 +++ llvm/lib/Analysis/Trace.cpp Wed Dec 6 19:30:31 2006 @@ -25,14 +25,13 @@ return getEntryBasicBlock()->getParent(); } - Module *Trace::getModule() const { return getFunction()->getParent(); } /// print - Write trace to output stream. /// -void Trace::print(llvm_ostream &O) const { +void Trace::print(OStream &O) const { Function *F = getFunction (); O << "; Trace from function " << F->getName() << ", blocks:\n"; for (const_iterator i = begin(), e = end(); i != e; ++i) { @@ -48,5 +47,5 @@ /// output stream. /// void Trace::dump() const { - print(llvm_cerr); + print(cerr); } From isanbard at gmail.com Wed Dec 6 19:32:01 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:01 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/Casting.h ConstantRange.h Debug.h GraphWriter.h PassNameParser.h Streams.h Message-ID: <200612070132.kB71W1xD006372@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: Casting.h updated: 1.16 -> 1.17 ConstantRange.h updated: 1.10 -> 1.11 Debug.h updated: 1.11 -> 1.12 GraphWriter.h updated: 1.31 -> 1.32 PassNameParser.h updated: 1.15 -> 1.16 Streams.h updated: 1.4 -> 1.5 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+47 -31) Casting.h | 4 ++-- ConstantRange.h | 2 +- Debug.h | 4 ++-- GraphWriter.h | 10 +++++----- PassNameParser.h | 4 ++-- Streams.h | 54 +++++++++++++++++++++++++++++++++++------------------- 6 files changed, 47 insertions(+), 31 deletions(-) Index: llvm/include/llvm/Support/Casting.h diff -u llvm/include/llvm/Support/Casting.h:1.16 llvm/include/llvm/Support/Casting.h:1.17 --- llvm/include/llvm/Support/Casting.h:1.16 Fri Nov 17 03:52:49 2006 +++ llvm/include/llvm/Support/Casting.h Wed Dec 6 19:30:31 2006 @@ -245,13 +245,13 @@ struct foo { void ext() const; /* static bool classof(const bar *X) { - llvm_cerr << "Classof: " << X << "\n"; + cerr << "Classof: " << X << "\n"; return true; }*/ }; template <> inline bool isa_impl(const bar &Val) { - llvm_cerr << "Classof: " << &Val << "\n"; + cerr << "Classof: " << &Val << "\n"; return true; } Index: llvm/include/llvm/Support/ConstantRange.h diff -u llvm/include/llvm/Support/ConstantRange.h:1.10 llvm/include/llvm/Support/ConstantRange.h:1.11 --- llvm/include/llvm/Support/ConstantRange.h:1.10 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/Support/ConstantRange.h Wed Dec 6 19:30:31 2006 @@ -141,7 +141,7 @@ /// print - Print out the bounds to a stream... /// - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; Index: llvm/include/llvm/Support/Debug.h diff -u llvm/include/llvm/Support/Debug.h:1.11 llvm/include/llvm/Support/Debug.h:1.12 --- llvm/include/llvm/Support/Debug.h:1.11 Fri Nov 17 03:52:49 2006 +++ llvm/include/llvm/Support/Debug.h Wed Dec 6 19:30:31 2006 @@ -65,10 +65,10 @@ /// places the std::c* I/O streams into one .cpp file and relieves the whole /// program from having to have hundreds of static c'tor/d'tors for them. /// -llvm_ostream getErrorOutputStream(const char *DebugType); +OStream getErrorOutputStream(const char *DebugType); #ifdef NDEBUG -#define DOUT llvm_ostream() +#define DOUT NullStream #else #define DOUT getErrorOutputStream(DEBUG_TYPE) #endif Index: llvm/include/llvm/Support/GraphWriter.h diff -u llvm/include/llvm/Support/GraphWriter.h:1.31 llvm/include/llvm/Support/GraphWriter.h:1.32 --- llvm/include/llvm/Support/GraphWriter.h:1.31 Fri Nov 17 03:52:49 2006 +++ llvm/include/llvm/Support/GraphWriter.h Wed Dec 6 19:30:31 2006 @@ -247,16 +247,16 @@ std::string ErrMsg; sys::Path Filename = sys::Path::GetTemporaryDirectory(&ErrMsg); if (Filename.isEmpty()) { - llvm_cerr << "Error: " << ErrMsg << "\n"; + cerr << "Error: " << ErrMsg << "\n"; return Filename; } Filename.appendComponent(Name + ".dot"); if (Filename.makeUnique(true,&ErrMsg)) { - llvm_cerr << "Error: " << ErrMsg << "\n"; + cerr << "Error: " << ErrMsg << "\n"; return sys::Path(); } - llvm_cerr << "Writing '" << Filename << "'... "; + cerr << "Writing '" << Filename << "'... "; std::ofstream O(Filename.c_str()); @@ -275,12 +275,12 @@ // Output the end of the graph W.writeFooter(); - llvm_cerr << " done. \n"; + cerr << " done. \n"; O.close(); } else { - llvm_cerr << "error opening file for writing!\n"; + cerr << "error opening file for writing!\n"; Filename.clear(); } Index: llvm/include/llvm/Support/PassNameParser.h diff -u llvm/include/llvm/Support/PassNameParser.h:1.15 llvm/include/llvm/Support/PassNameParser.h:1.16 --- llvm/include/llvm/Support/PassNameParser.h:1.15 Fri Dec 1 17:27:45 2006 +++ llvm/include/llvm/Support/PassNameParser.h Wed Dec 6 19:30:31 2006 @@ -65,8 +65,8 @@ virtual void passRegistered(const PassInfo *P) { if (ignorablePass(P) || !Opt) return; if (findOption(P->getPassArgument()) != getNumOptions()) { - llvm_cerr << "Two passes with the same argument (-" - << P->getPassArgument() << ") attempted to be registered!\n"; + cerr << "Two passes with the same argument (-" + << P->getPassArgument() << ") attempted to be registered!\n"; abort(); } addLiteralOption(P->getPassArgument(), P, P->getPassName()); Index: llvm/include/llvm/Support/Streams.h diff -u llvm/include/llvm/Support/Streams.h:1.4 llvm/include/llvm/Support/Streams.h:1.5 --- llvm/include/llvm/Support/Streams.h:1.4 Tue Nov 28 18:19:40 2006 +++ llvm/include/llvm/Support/Streams.h Wed Dec 6 19:30:31 2006 @@ -7,48 +7,64 @@ // //===----------------------------------------------------------------------===// // -// This file implements a wrapper for the std::cout and std::cerr I/O streams. -// It prevents the need to include to each file just to get I/O. +// This file implements a wrapper for the STL I/O streams. It prevents the need +// to include in a file just to get I/O. // //===----------------------------------------------------------------------===// #ifndef LLVM_SUPPORT_STREAMS_H #define LLVM_SUPPORT_STREAMS_H -#include // Doesn't have static d'tors!! +#include namespace llvm { - /// llvm_ostream - Acts like an ostream. It's a wrapper for the std::cerr and - /// std::cout ostreams. However, it doesn't require #including in - /// every file, which increases static c'tors & d'tors in the object code. + /// BaseStream - Acts like the STL streams. It's a wrapper for the std::cerr, + /// std::cout, std::cin, etc. streams. However, it doesn't require #including + /// in every file (doing so increases static c'tors & d'tors in the + /// object code). /// - class llvm_ostream { - std::ostream* Stream; + template + class BaseStream { + StreamTy *Stream; public: - llvm_ostream() : Stream(0) {} - llvm_ostream(std::ostream &OStream) : Stream(&OStream) {} + BaseStream() : Stream(0) {} + BaseStream(StreamTy &S) : Stream(&S) {} + BaseStream(StreamTy *S) : Stream(S) {} - std::ostream* stream() const { return Stream; } + StreamTy *stream() const { return Stream; } - inline llvm_ostream &operator << (std::ostream& (*Func)(std::ostream&)) { + inline BaseStream &operator << (StreamTy &(*Func)(StreamTy&)) { if (Stream) *Stream << Func; return *this; } - + template - llvm_ostream &operator << (const Ty &Thing) { + BaseStream &operator << (const Ty &Thing) { if (Stream) *Stream << Thing; return *this; } - bool operator == (const std::ostream &OS) { return &OS == Stream; } - bool operator == (const llvm_ostream &OS) { return OS.Stream == Stream; } + template + BaseStream &operator >> (const Ty &Thing) { + if (Stream) *Stream >> Thing; + return *this; + } + + bool operator == (const StreamTy &S) { return &S == Stream; } + bool operator != (const StreamTy &S) { return !(*this == S); } + bool operator == (const BaseStream &S) { return S.Stream == Stream; } + bool operator != (const BaseStream &S) { return !(*this == S); } }; - extern llvm_ostream llvm_null; - extern llvm_ostream llvm_cout; - extern llvm_ostream llvm_cerr; + typedef BaseStream OStream; + typedef BaseStream IStream; + typedef BaseStream StringStream; + + extern OStream NullStream; + extern OStream cout; + extern OStream cerr; + extern IStream cin; } // End llvm namespace From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveInterval.h MachineBasicBlock.h MachineConstantPool.h MachineInstr.h SchedGraphCommon.h Message-ID: <200612070132.kB71W3Op006529@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/CodeGen: LiveInterval.h updated: 1.29 -> 1.30 MachineBasicBlock.h updated: 1.50 -> 1.51 MachineConstantPool.h updated: 1.23 -> 1.24 MachineInstr.h updated: 1.204 -> 1.205 SchedGraphCommon.h updated: 1.15 -> 1.16 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+18 -18) LiveInterval.h | 8 ++++---- MachineBasicBlock.h | 4 ++-- MachineConstantPool.h | 8 ++++---- MachineInstr.h | 6 +++--- SchedGraphCommon.h | 10 +++++----- 5 files changed, 18 insertions(+), 18 deletions(-) Index: llvm/include/llvm/CodeGen/LiveInterval.h diff -u llvm/include/llvm/CodeGen/LiveInterval.h:1.29 llvm/include/llvm/CodeGen/LiveInterval.h:1.30 --- llvm/include/llvm/CodeGen/LiveInterval.h:1.29 Tue Nov 28 18:39:47 2006 +++ llvm/include/llvm/CodeGen/LiveInterval.h Wed Dec 6 19:30:31 2006 @@ -62,7 +62,7 @@ }; std::ostream& operator<<(std::ostream& os, const LiveRange &LR); - inline llvm_ostream& operator<<(llvm_ostream& os, const LiveRange &LR) { + inline OStream& operator<<(OStream& os, const LiveRange &LR) { if (os.stream()) *os.stream() << LR; return os; } @@ -258,9 +258,9 @@ return beginNumber() < other.beginNumber(); } - void print(llvm_ostream OS, const MRegisterInfo *MRI = 0) const; + void print(OStream OS, const MRegisterInfo *MRI = 0) const; void print(std::ostream &OS, const MRegisterInfo *MRI = 0) const { - print(llvm_ostream(OS), MRI); + print(OStream(OS), MRI); } void dump() const; @@ -271,7 +271,7 @@ LiveInterval& operator=(const LiveInterval& rhs); // DO NOT IMPLEMENT }; - inline llvm_ostream &operator<<(llvm_ostream &OS, const LiveInterval &LI) { + inline OStream &operator<<(OStream &OS, const LiveInterval &LI) { LI.print(OS); return OS; } Index: llvm/include/llvm/CodeGen/MachineBasicBlock.h diff -u llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.50 llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.51 --- llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.50 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/CodeGen/MachineBasicBlock.h Wed Dec 6 19:30:31 2006 @@ -189,7 +189,7 @@ // Debugging methods. void dump() const; - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; @@ -226,7 +226,7 @@ }; std::ostream& operator<<(std::ostream &OS, const MachineBasicBlock &MBB); -inline llvm_ostream& operator<<(llvm_ostream &OS, const MachineBasicBlock &MBB){ +inline OStream& operator<<(OStream &OS, const MachineBasicBlock &MBB){ if (OS.stream()) *OS.stream() << MBB; return OS; } Index: llvm/include/llvm/CodeGen/MachineConstantPool.h diff -u llvm/include/llvm/CodeGen/MachineConstantPool.h:1.23 llvm/include/llvm/CodeGen/MachineConstantPool.h:1.24 --- llvm/include/llvm/CodeGen/MachineConstantPool.h:1.23 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/CodeGen/MachineConstantPool.h Wed Dec 6 19:30:31 2006 @@ -49,14 +49,14 @@ /// print - Implement operator<<... /// - void print(llvm_ostream &O) const { + void print(OStream &O) const { if (O.stream()) print(*O.stream()); } virtual void print(std::ostream &O) const = 0; }; -inline llvm_ostream &operator<<(llvm_ostream &OS, - const MachineConstantPoolValue &V) { +inline OStream &operator<<(OStream &OS, + const MachineConstantPoolValue &V) { V.print(OS); return OS; } @@ -143,7 +143,7 @@ /// print - Used by the MachineFunction printer to print information about /// constant pool objects. Implemented in MachineFunction.cpp /// - void print(llvm_ostream &OS) const { + void print(OStream &OS) const { if (OS.stream()) print(*OS.stream()); } void print(std::ostream &OS) const; Index: llvm/include/llvm/CodeGen/MachineInstr.h diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.204 llvm/include/llvm/CodeGen/MachineInstr.h:1.205 --- llvm/include/llvm/CodeGen/MachineInstr.h:1.204 Wed Dec 6 02:27:17 2006 +++ llvm/include/llvm/CodeGen/MachineInstr.h Wed Dec 6 19:30:31 2006 @@ -285,7 +285,7 @@ IsDead = false; } - friend llvm_ostream& operator<<(llvm_ostream& os, const MachineOperand& mop) { + friend OStream& operator<<(OStream& os, const MachineOperand& mop) { if (os.stream()) *os.stream() << mop; return os; } @@ -397,12 +397,12 @@ // // Debugging support // - void print(llvm_ostream &OS, const TargetMachine *TM) const { + void print(OStream &OS, const TargetMachine *TM) const { if (OS.stream()) print(*OS.stream(), TM); } void print(std::ostream &OS, const TargetMachine *TM) const; void dump() const; - friend llvm_ostream& operator<<(llvm_ostream& os, const MachineInstr& minstr){ + friend OStream& operator<<(OStream& os, const MachineInstr& minstr){ if (os.stream()) *os.stream() << minstr; return os; } Index: llvm/include/llvm/CodeGen/SchedGraphCommon.h diff -u llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.15 llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.16 --- llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.15 Tue Nov 28 16:21:29 2006 +++ llvm/include/llvm/CodeGen/SchedGraphCommon.h Wed Dec 6 19:30:31 2006 @@ -70,7 +70,7 @@ void dump(int indent=0) const; // Debugging support - void print(llvm_ostream &os) const { + void print(OStream &os) const { if (os.stream()) print(*os.stream()); } virtual void print(std::ostream &os) const = 0; @@ -96,8 +96,8 @@ }; // ostream << operator for SchedGraphNode class -inline llvm_ostream &operator<<(llvm_ostream &os, - const SchedGraphNodeCommon &node) { +inline OStream &operator<<(OStream &os, + const SchedGraphNodeCommon &node) { node.print(os); return os; } @@ -188,7 +188,7 @@ public: // Debugging support - void print(llvm_ostream &os) const { + void print(OStream &os) const { if (os.stream()) print(*os.stream()); } void print(std::ostream &os) const; @@ -200,7 +200,7 @@ }; // ostream << operator for SchedGraphNode class -inline llvm_ostream &operator<<(llvm_ostream &os, const SchedGraphEdge &edge) { +inline OStream &operator<<(OStream &os, const SchedGraphEdge &edge) { edge.print(os); return os; } From isanbard at gmail.com Wed Dec 6 19:32:02 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:02 -0600 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Hello/Hello.cpp Message-ID: <200612070132.kB71W2NW006421@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Hello: Hello.cpp updated: 1.11 -> 1.12 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+2 -2) Hello.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Hello/Hello.cpp diff -u llvm/lib/Transforms/Hello/Hello.cpp:1.11 llvm/lib/Transforms/Hello/Hello.cpp:1.12 --- llvm/lib/Transforms/Hello/Hello.cpp:1.11 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Transforms/Hello/Hello.cpp Wed Dec 6 19:30:31 2006 @@ -30,7 +30,7 @@ HelloCounter++; std::string fname = F.getName(); EscapeString(fname); - llvm_cerr << "Hello: " << fname << "\n"; + cerr << "Hello: " << fname << "\n"; return false; } }; @@ -43,7 +43,7 @@ HelloCounter++; std::string fname = F.getName(); EscapeString(fname); - llvm_cerr << "Hello: " << fname << "\n"; + cerr << "Hello: " << fname << "\n"; return false; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp CallTargets.cpp DataStructure.cpp DataStructureStats.cpp EquivClassGraphs.cpp GraphChecker.cpp Local.cpp Printer.cpp Steensgaard.cpp Message-ID: <200612070132.kB71W3gR006499@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/DataStructure: BottomUpClosure.cpp updated: 1.126 -> 1.127 CallTargets.cpp updated: 1.6 -> 1.7 DataStructure.cpp updated: 1.253 -> 1.254 DataStructureStats.cpp updated: 1.23 -> 1.24 EquivClassGraphs.cpp updated: 1.52 -> 1.53 GraphChecker.cpp updated: 1.22 -> 1.23 Local.cpp updated: 1.162 -> 1.163 Printer.cpp updated: 1.90 -> 1.91 Steensgaard.cpp updated: 1.66 -> 1.67 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+47 -48) BottomUpClosure.cpp | 24 ++++++++++++------------ CallTargets.cpp | 14 +++++++------- DataStructure.cpp | 3 +-- DataStructureStats.cpp | 12 ++++++------ EquivClassGraphs.cpp | 2 +- GraphChecker.cpp | 32 ++++++++++++++++---------------- Local.cpp | 4 ++-- Printer.cpp | 2 +- Steensgaard.cpp | 2 +- 9 files changed, 47 insertions(+), 48 deletions(-) Index: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp diff -u llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.126 llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.127 --- llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.126 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp Wed Dec 6 19:30:31 2006 @@ -501,7 +501,7 @@ DSG->getNodeForValue(F->arg_begin()).mergeWith(N); } else { - llvm_cerr << "Unrecognized external function: " << F->getName() << "\n"; + cerr << "Unrecognized external function: " << F->getName() << "\n"; abort(); } @@ -588,21 +588,21 @@ ++NumBUInlines; } else { if (!Printed) - llvm_cerr << "In Fns: " << Graph.getFunctionNames() << "\n"; - llvm_cerr << " calls " << CalledFuncs.size() - << " fns from site: " << CS.getCallSite().getInstruction() - << " " << *CS.getCallSite().getInstruction(); - llvm_cerr << " Fns ="; + cerr << "In Fns: " << Graph.getFunctionNames() << "\n"; + cerr << " calls " << CalledFuncs.size() + << " fns from site: " << CS.getCallSite().getInstruction() + << " " << *CS.getCallSite().getInstruction(); + cerr << " Fns ="; unsigned NumPrinted = 0; for (std::vector::iterator I = CalledFuncs.begin(), E = CalledFuncs.end(); I != E; ++I) { - if (NumPrinted++ < 8) llvm_cerr << " " << (*I)->getName(); + if (NumPrinted++ < 8) cerr << " " << (*I)->getName(); // Add the call edges to the call graph. ActualCallees.insert(std::make_pair(TheCall, *I)); } - llvm_cerr << "\n"; + cerr << "\n"; // See if we already computed a graph for this set of callees. std::sort(CalledFuncs.begin(), CalledFuncs.end()); @@ -645,7 +645,7 @@ // Clean up the final graph! GI->removeDeadNodes(DSGraph::KeepUnreachableGlobals); } else { - llvm_cerr << "***\n*** RECYCLED GRAPH ***\n***\n"; + cerr << "***\n*** RECYCLED GRAPH ***\n***\n"; } GI = IndCallGraph.first; @@ -685,7 +685,7 @@ E = MainSM.global_end(); I != E; ++I) RC.getClonedNH(MainSM[*I]); - //Graph.writeGraphToFile(llvm_cerr, "bu_" + F.getName()); + //Graph.writeGraphToFile(cerr, "bu_" + F.getName()); } static const Function *getFnForValue(const Value *V) { @@ -746,8 +746,8 @@ return; } - llvm_cerr << *From; - llvm_cerr << *To; + cerr << *From; + cerr << *To; assert(0 && "Do not know how to copy this yet!"); abort(); } Index: llvm/lib/Analysis/DataStructure/CallTargets.cpp diff -u llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.6 llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.7 --- llvm/lib/Analysis/DataStructure/CallTargets.cpp:1.6 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/CallTargets.cpp Wed Dec 6 19:30:31 2006 @@ -17,15 +17,15 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Analysis/DataStructure/CallTargets.h" #include "llvm/Module.h" #include "llvm/Instructions.h" #include "llvm/Analysis/DataStructure/DataStructure.h" #include "llvm/Analysis/DataStructure/DSGraph.h" -#include "llvm/Analysis/DataStructure/CallTargets.h" #include "llvm/ADT/Statistic.h" #include "llvm/Support/Streams.h" -#include #include "llvm/Constants.h" +#include using namespace llvm; namespace { @@ -58,11 +58,11 @@ } if (N->isComplete() && !IndMap[cs].size()) { ++CompleteEmpty; - llvm_cerr << "Call site empty: '" - << cs.getInstruction()->getName() - << "' In '" - << cs.getInstruction()->getParent()->getParent()->getName() - << "'\n"; + cerr << "Call site empty: '" + << cs.getInstruction()->getName() + << "' In '" + << cs.getInstruction()->getParent()->getParent()->getName() + << "'\n"; } } else { ++DirCall; Index: llvm/lib/Analysis/DataStructure/DataStructure.cpp diff -u llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.253 llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.254 --- llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.253 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/DataStructure.cpp Wed Dec 6 19:30:31 2006 @@ -25,7 +25,6 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SCCIterator.h" #include "llvm/ADT/Statistic.h" -#include "llvm/Support/Streams.h" #include "llvm/Support/Timer.h" #include #include @@ -1263,7 +1262,7 @@ } // dump - Allow inspection of graph in a debugger. -void DSGraph::dump() const { print(llvm_cerr); } +void DSGraph::dump() const { print(cerr); } /// remapLinks - Change all of the Links in the current node according to the Index: llvm/lib/Analysis/DataStructure/DataStructureStats.cpp diff -u llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.23 llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.24 --- llvm/lib/Analysis/DataStructure/DataStructureStats.cpp:1.23 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/DataStructureStats.cpp Wed Dec 6 19:30:31 2006 @@ -92,18 +92,18 @@ totalNumCallees += Callees.size(); ++numIndirectCalls; } else - llvm_cerr << "WARNING: No callee in Function '" << F.getName() - << "' at call: \n" - << *I->getCallSite().getInstruction(); + cerr << "WARNING: No callee in Function '" << F.getName() + << "' at call: \n" + << *I->getCallSite().getInstruction(); } TotalNumCallees += totalNumCallees; NumIndirectCalls += numIndirectCalls; if (numIndirectCalls) - llvm_cout << " In function " << F.getName() << ": " - << (totalNumCallees / (double) numIndirectCalls) - << " average callees per indirect call\n"; + cout << " In function " << F.getName() << ": " + << (totalNumCallees / (double) numIndirectCalls) + << " average callees per indirect call\n"; } DSNode *DSGraphStats::getNodeForValue(Value *V) { Index: llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp diff -u llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.52 llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.53 --- llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp:1.52 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp Wed Dec 6 19:30:31 2006 @@ -90,7 +90,7 @@ if (MainFunc && !MainFunc->isExternal()) { processSCC(getOrCreateGraph(*MainFunc), Stack, NextID, ValMap); } else { - llvm_cerr << "Fold Graphs: No 'main' function found!\n"; + cerr << "Fold Graphs: No 'main' function found!\n"; } for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) Index: llvm/lib/Analysis/DataStructure/GraphChecker.cpp diff -u llvm/lib/Analysis/DataStructure/GraphChecker.cpp:1.22 llvm/lib/Analysis/DataStructure/GraphChecker.cpp:1.23 --- llvm/lib/Analysis/DataStructure/GraphChecker.cpp:1.22 Tue Nov 28 17:33:06 2006 +++ llvm/lib/Analysis/DataStructure/GraphChecker.cpp Wed Dec 6 19:30:31 2006 @@ -84,8 +84,8 @@ DSGC::DSGC() { if (!AbortIfAnyCollapsed && AbortIfCollapsed.empty() && CheckFlags.empty() && AbortIfMerged.empty()) { - llvm_cerr << "The -datastructure-gc is useless if you don't specify any" - " -dsgc-* options. See the -help-hidden output for a list.\n"; + cerr << "The -datastructure-gc is useless if you don't specify any" + << " -dsgc-* options. See the -help-hidden output for a list.\n"; abort(); } } @@ -123,8 +123,8 @@ for (DSGraph::node_const_iterator I = G.node_begin(), E = G.node_end(); I != E; ++I) if (I->isNodeCompletelyFolded()) { - llvm_cerr << "Node is collapsed: "; - I->print(llvm_cerr, &G); + cerr << "Node is collapsed: "; + I->print(cerr, &G); abort(); } } @@ -142,8 +142,8 @@ E = CheckFlags.end(); I != E; ++I) { std::string::size_type ColonPos = I->rfind(':'); if (ColonPos == std::string::npos) { - llvm_cerr << "Error: '" << *I - << "' is an invalid value for the --dsgc-check-flags option!\n"; + cerr << "Error: '" << *I + << "' is an invalid value for the --dsgc-check-flags option!\n"; abort(); } @@ -158,7 +158,7 @@ case 'M': Flags |= DSNode::Modified; break; case 'R': Flags |= DSNode::Read; break; case 'A': Flags |= DSNode::Array; break; - default: llvm_cerr << "Invalid DSNode flag!\n"; abort(); + default: cerr << "Invalid DSNode flag!\n"; abort(); } CheckFlagsM[std::string(I->begin(), I->begin()+ColonPos)] = Flags; } @@ -176,25 +176,25 @@ // Verify it is not collapsed if it is not supposed to be... if (N->isNodeCompletelyFolded() && AbortIfCollapsedS.count(Name)) { - llvm_cerr << "Node for value '%" << Name << "' is collapsed: "; - N->print(llvm_cerr, &G); + cerr << "Node for value '%" << Name << "' is collapsed: "; + N->print(cerr, &G); abort(); } if (CheckFlagsM.count(Name) && CheckFlagsM[Name] != N->getNodeFlags()) { - llvm_cerr << "Node flags are not as expected for node: " << Name - << " (" << CheckFlagsM[Name] << ":" <getNodeFlags() - << ")\n"; - N->print(llvm_cerr, &G); + cerr << "Node flags are not as expected for node: " << Name + << " (" << CheckFlagsM[Name] << ":" <getNodeFlags() + << ")\n"; + N->print(cerr, &G); abort(); } // Verify that it is not merged if it is not supposed to be... if (AbortIfMergedS.count(Name)) { if (AbortIfMergedNodes.count(N)) { - llvm_cerr << "Nodes for values '%" << Name << "' and '%" - << AbortIfMergedNodes[N] << "' is merged: "; - N->print(llvm_cerr, &G); + cerr << "Nodes for values '%" << Name << "' and '%" + << AbortIfMergedNodes[N] << "' is merged: "; + N->print(cerr, &G); abort(); } AbortIfMergedNodes[N] = Name; Index: llvm/lib/Analysis/DataStructure/Local.cpp diff -u llvm/lib/Analysis/DataStructure/Local.cpp:1.162 llvm/lib/Analysis/DataStructure/Local.cpp:1.163 --- llvm/lib/Analysis/DataStructure/Local.cpp:1.162 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/DataStructure/Local.cpp Wed Dec 6 19:30:31 2006 @@ -434,7 +434,7 @@ // Variable index into a node. We must merge all of the elements of the // sequential type here. if (isa(STy)) - llvm_cerr << "Pointer indexing not handled yet!\n"; + cerr << "Pointer indexing not handled yet!\n"; else { const ArrayType *ATy = cast(STy); unsigned ElSize = TD.getTypeSize(CurTy); @@ -1061,7 +1061,7 @@ if (DisableDirectCallOpt || !isa(Callee)) { CalleeNode = getValueDest(*Callee).getNode(); if (CalleeNode == 0) { - llvm_cerr << "WARNING: Program is calling through a null pointer?\n"<< *I; + cerr << "WARNING: Program is calling through a null pointer?\n"<< *I; return; // Calling a null pointer? } } Index: llvm/lib/Analysis/DataStructure/Printer.cpp diff -u llvm/lib/Analysis/DataStructure/Printer.cpp:1.90 llvm/lib/Analysis/DataStructure/Printer.cpp:1.91 --- llvm/lib/Analysis/DataStructure/Printer.cpp:1.90 Wed Dec 6 11:46:31 2006 +++ llvm/lib/Analysis/DataStructure/Printer.cpp Wed Dec 6 19:30:31 2006 @@ -37,7 +37,7 @@ Statistic NumFoldedNodes ("dsa", "Number of folded nodes (in final graph)"); } -void DSNode::dump() const { print(llvm_cerr, 0); } +void DSNode::dump() const { print(cerr, 0); } static std::string getCaption(const DSNode *N, const DSGraph *G) { std::stringstream OS; Index: llvm/lib/Analysis/DataStructure/Steensgaard.cpp diff -u llvm/lib/Analysis/DataStructure/Steensgaard.cpp:1.66 llvm/lib/Analysis/DataStructure/Steensgaard.cpp:1.67 --- llvm/lib/Analysis/DataStructure/Steensgaard.cpp:1.66 Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/DataStructure/Steensgaard.cpp Wed Dec 6 19:30:31 2006 @@ -53,7 +53,7 @@ } // print - Implement the Pass::print method... - void print(llvm_ostream O, const Module *M) const { + void print(OStream O, const Module *M) const { if (O.stream()) print(*O.stream(), M); } void print(std::ostream &O, const Module *M) const { From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-extract/llvm-extract.cpp Message-ID: <200612070132.kB71W3Gv006520@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-extract: llvm-extract.cpp updated: 1.32 -> 1.33 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+9 -9) llvm-extract.cpp | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) Index: llvm/tools/llvm-extract/llvm-extract.cpp diff -u llvm/tools/llvm-extract/llvm-extract.cpp:1.32 llvm/tools/llvm-extract/llvm-extract.cpp:1.33 --- llvm/tools/llvm-extract/llvm-extract.cpp:1.32 Tue Dec 5 19:18:01 2006 +++ llvm/tools/llvm-extract/llvm-extract.cpp Wed Dec 6 19:30:31 2006 @@ -55,15 +55,15 @@ std::auto_ptr M(ParseBytecodeFile(InputFilename)); if (M.get() == 0) { - llvm_cerr << argv[0] << ": bytecode didn't read correctly.\n"; + cerr << argv[0] << ": bytecode didn't read correctly.\n"; return 1; } // Figure out which function we should extract Function *F = M.get()->getNamedFunction(ExtractFunc); if (F == 0) { - llvm_cerr << argv[0] << ": program doesn't contain function named '" - << ExtractFunc << "'!\n"; + cerr << argv[0] << ": program doesn't contain function named '" + << ExtractFunc << "'!\n"; return 1; } @@ -82,9 +82,9 @@ if (OutputFilename != "-") { // Not stdout? if (!Force && std::ifstream(OutputFilename.c_str())) { // If force is not specified, make sure not to overwrite a file! - llvm_cerr << argv[0] << ": error opening '" << OutputFilename - << "': file exists!\n" - << "Use -f command line argument to force output\n"; + cerr << argv[0] << ": error opening '" << OutputFilename + << "': file exists!\n" + << "Use -f command line argument to force output\n"; return 1; } std::ios::openmode io_mode = std::ios::out | std::ios::trunc | @@ -95,7 +95,7 @@ Out = &std::cout; } - llvm_ostream L(*Out); + OStream L(*Out); Passes.add(new WriteBytecodePass(&L)); // Write bytecode to file... Passes.run(*M.get()); @@ -103,9 +103,9 @@ delete Out; return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; } From isanbard at gmail.com Wed Dec 6 19:32:05 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:05 -0600 Subject: [llvm-commits] CVS: llvm/tools/gccas/gccas.cpp Message-ID: <200612070132.kB71W5T2006543@zion.cs.uiuc.edu> Changes in directory llvm/tools/gccas: gccas.cpp updated: 1.122 -> 1.123 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+5 -5) gccas.cpp | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/tools/gccas/gccas.cpp diff -u llvm/tools/gccas/gccas.cpp:1.122 llvm/tools/gccas/gccas.cpp:1.123 --- llvm/tools/gccas/gccas.cpp:1.122 Tue Dec 5 19:18:00 2006 +++ llvm/tools/gccas/gccas.cpp Wed Dec 6 19:30:31 2006 @@ -143,7 +143,7 @@ ParseError Err; std::auto_ptr M(ParseAssemblyFile(InputFilename,&Err)); if (M.get() == 0) { - llvm_cerr << argv[0] << ": " << Err.getMessage() << "\n"; + cerr << argv[0] << ": " << Err.getMessage() << "\n"; return 1; } @@ -178,7 +178,7 @@ if (!Out->good()) { - llvm_cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; + cerr << argv[0] << ": error opening " << OutputFilename << "!\n"; return 1; } @@ -197,7 +197,7 @@ Passes.add(createVerifierPass()); // Write bytecode to file... - llvm_ostream L(*Out); + OStream L(*Out); Passes.add(new WriteBytecodePass(&L,false,!NoCompress)); // Run our queue of passes all at once now, efficiently. @@ -206,9 +206,9 @@ if (Out != &std::cout) delete Out; return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; } From isanbard at gmail.com Wed Dec 6 19:32:03 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:03 -0600 Subject: [llvm-commits] CVS: llvm/tools/llvm-link/llvm-link.cpp Message-ID: <200612070132.kB71W3VY006415@zion.cs.uiuc.edu> Changes in directory llvm/tools/llvm-link: llvm-link.cpp updated: 1.60 -> 1.61 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+22 -24) llvm-link.cpp | 46 ++++++++++++++++++++++------------------------ 1 files changed, 22 insertions(+), 24 deletions(-) Index: llvm/tools/llvm-link/llvm-link.cpp diff -u llvm/tools/llvm-link/llvm-link.cpp:1.60 llvm/tools/llvm-link/llvm-link.cpp:1.61 --- llvm/tools/llvm-link/llvm-link.cpp:1.60 Tue Dec 5 19:18:01 2006 +++ llvm/tools/llvm-link/llvm-link.cpp Wed Dec 6 19:30:31 2006 @@ -52,24 +52,23 @@ static inline std::auto_ptr LoadFile(const std::string &FN) { sys::Path Filename; if (!Filename.set(FN)) { - llvm_cerr << "Invalid file name: '" << FN << "'\n"; + cerr << "Invalid file name: '" << FN << "'\n"; return std::auto_ptr(); } std::string ErrorMessage; if (Filename.exists()) { - if (Verbose) llvm_cerr << "Loading '" << Filename.c_str() << "'\n"; + if (Verbose) cerr << "Loading '" << Filename.c_str() << "'\n"; Module* Result = ParseBytecodeFile(Filename.toString(), &ErrorMessage); if (Result) return std::auto_ptr(Result); // Load successful! if (Verbose) { - llvm_cerr << "Error opening bytecode file: '" << Filename.c_str() << "'"; - if (ErrorMessage.size()) llvm_cerr << ": " << ErrorMessage; - llvm_cerr << "\n"; + cerr << "Error opening bytecode file: '" << Filename.c_str() << "'"; + if (ErrorMessage.size()) cerr << ": " << ErrorMessage; + cerr << "\n"; } } else { - llvm_cerr << "Bytecode file: '" << Filename.c_str() - << "' does not exist.\n"; + cerr << "Bytecode file: '" << Filename.c_str() << "' does not exist.\n"; } return std::auto_ptr(); @@ -87,24 +86,23 @@ std::auto_ptr Composite(LoadFile(InputFilenames[BaseArg])); if (Composite.get() == 0) { - llvm_cerr << argv[0] << ": error loading file '" - << InputFilenames[BaseArg] << "'\n"; + cerr << argv[0] << ": error loading file '" + << InputFilenames[BaseArg] << "'\n"; return 1; } for (unsigned i = BaseArg+1; i < InputFilenames.size(); ++i) { std::auto_ptr M(LoadFile(InputFilenames[i])); if (M.get() == 0) { - llvm_cerr << argv[0] << ": error loading file '" - << InputFilenames[i] << "'\n"; + cerr << argv[0] << ": error loading file '" <good()) { - llvm_cerr << argv[0] << ": error opening '" << OutputFilename << "'!\n"; + cerr << argv[0] << ": error opening '" << OutputFilename << "'!\n"; return 1; } @@ -138,20 +136,20 @@ } if (verifyModule(*Composite.get())) { - llvm_cerr << argv[0] << ": linked module is broken!\n"; + cerr << argv[0] << ": linked module is broken!\n"; return 1; } - if (Verbose) llvm_cerr << "Writing bytecode...\n"; - llvm_ostream L(*Out); + if (Verbose) cerr << "Writing bytecode...\n"; + OStream L(*Out); WriteBytecodeToFile(Composite.get(), L, !NoCompress); if (Out != &std::cout) delete Out; return 0; } catch (const std::string& msg) { - llvm_cerr << argv[0] << ": " << msg << "\n"; + cerr << argv[0] << ": " << msg << "\n"; } catch (...) { - llvm_cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; + cerr << argv[0] << ": Unexpected unknown exception occurred.\n"; } return 1; } From isanbard at gmail.com Wed Dec 6 19:32:05 2006 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 6 Dec 2006 19:32:05 -0600 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y llvmAsmParser.y.cvs Message-ID: <200612070132.kB71W5JA006554@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.cpp.cvs updated: 1.35 -> 1.36 llvmAsmParser.h.cvs updated: 1.28 -> 1.29 llvmAsmParser.y updated: 1.287 -> 1.288 llvmAsmParser.y.cvs updated: 1.36 -> 1.37 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+1136 -962) llvmAsmParser.cpp.cvs | 2046 +++++++++++++++++++++++++++----------------------- llvmAsmParser.h.cvs | 40 llvmAsmParser.y | 6 llvmAsmParser.y.cvs | 6 4 files changed, 1136 insertions(+), 962 deletions(-) Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.35 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.36 --- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.35 Tue Dec 5 17:50:48 2006 +++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Wed Dec 6 19:30:31 2006 @@ -1,7 +1,9 @@ -/* A Bison parser, made by GNU Bison 2.1. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. 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 @@ -18,13 +20,21 @@ 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. */ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ -/* Written by Richard Stallman by simplifying the original so called - ``semantic'' parser. */ +/* C LALR(1) parser skeleton 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 @@ -37,7 +47,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.1" +#define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -356,7 +366,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 14 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" #include "ParserInternals.h" #include "llvm/CallingConv.h" @@ -403,7 +413,7 @@ // //#define DEBUG_UPREFS 1 #ifdef DEBUG_UPREFS -#define UR_OUT(X) llvm_cerr << X +#define UR_OUT(X) cerr << X #else #define UR_OUT(X) #endif @@ -1216,9 +1226,10 @@ # define YYTOKEN_TABLE 0 #endif -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 855 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" -typedef union YYSTYPE { +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 855 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +{ llvm::Module *ModuleVal; llvm::Function *FunctionVal; std::pair *ArgVal; @@ -1259,9 +1270,10 @@ llvm::Module::Endianness Endianness; llvm::ICmpInst::Predicate IPredicate; llvm::FCmpInst::Predicate FPredicate; -} YYSTYPE; -/* Line 196 of yacc.c. */ -#line 1265 "llvmAsmParser.tab.c" +} +/* Line 193 of yacc.c. */ +#line 1276 "llvmAsmParser.tab.c" + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1272,23 +1284,56 @@ /* Copy the second part of user declarations. */ -/* Line 219 of yacc.c. */ -#line 1277 "llvmAsmParser.tab.c" +/* Line 216 of yacc.c. */ +#line 1289 "llvmAsmParser.tab.c" -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ +#ifdef short +# undef short #endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; #endif -#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; #endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif #endif +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS @@ -1301,7 +1346,32 @@ # endif #endif -#if ! defined (yyoverflow) || YYERROR_VERBOSE +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1309,64 +1379,76 @@ # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if defined (__STDC__) || defined (__cplusplus) +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ -# define YYINCLUDED_STDLIB_H +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# ifdef __cplusplus -extern "C" { +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif -# ifdef __cplusplus -} -# endif # endif -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short int yyss; + yytype_int16 yyss; YYSTYPE yyvs; }; @@ -1376,13 +1458,13 @@ /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if defined (__GNUC__) && 1 < __GNUC__ +# if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else @@ -1393,7 +1475,7 @@ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif @@ -1411,28 +1493,22 @@ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ - while (0) + while (YYID (0)) #endif -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short int yysigned_char; -#endif - -/* YYFINAL -- State number of the termination state. */ +/* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 1509 -/* YYNTOKENS -- Number of terminals. */ +/* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 159 -/* YYNNTS -- Number of nonterminals. */ +/* YYNNTS -- Number of nonterminals. */ #define YYNNTS 78 -/* YYNRULES -- Number of rules. */ +/* YYNRULES -- Number of rules. */ #define YYNRULES 297 -/* YYNRULES -- Number of states. */ +/* YYNRULES -- Number of states. */ #define YYNSTATES 578 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ @@ -1443,7 +1519,7 @@ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const unsigned char yytranslate[] = +static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1490,7 +1566,7 @@ #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const unsigned short int yyprhs[] = +static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, @@ -1524,8 +1600,8 @@ 884, 888, 895, 899, 906, 909, 914, 921 }; -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const short int yyrhs[] = +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = { 193, 0, -1, 5, -1, 6, -1, 3, -1, 4, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, @@ -1623,7 +1699,7 @@ }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short int yyrline[] = +static const yytype_uint16 yyrline[] = { 0, 990, 990, 991, 999, 1000, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1011, 1012, 1012, @@ -1660,7 +1736,7 @@ #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL", @@ -1708,7 +1784,7 @@ # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const unsigned short int yytoknum[] = +static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1730,7 +1806,7 @@ # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned char yyr1[] = +static const yytype_uint8 yyr1[] = { 0, 159, 160, 160, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, @@ -1765,7 +1841,7 @@ }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const unsigned char yyr2[] = +static const yytype_uint8 yyr2[] = { 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1802,7 +1878,7 @@ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const unsigned short int yydefact[] = +static const yytype_uint16 yydefact[] = { 191, 0, 86, 177, 1, 176, 224, 79, 80, 81, 82, 83, 84, 85, 0, 87, 248, 173, 174, 248, @@ -1864,8 +1940,8 @@ 0, 0, 0, 260, 0, 0, 259, 256 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const short int yydefgoto[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { -1, 86, 299, 316, 317, 318, 319, 320, 253, 270, 211, 212, 241, 213, 25, 15, 37, 497, 355, 436, @@ -1880,7 +1956,7 @@ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -517 -static const short int yypact[] = +static const yytype_int16 yypact[] = { -517, 40, 69, 528, -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, 16, 90, 76, -517, -517, 5, @@ -1943,7 +2019,7 @@ }; /* YYPGOTO[NTERM-NUM]. */ -static const short int yypgoto[] = +static const yytype_int16 yypgoto[] = { -517, -517, -517, 286, 288, 291, 317, 320, 134, 80, -127, -125, -502, -517, 340, 391, -114, -517, -265, 14, @@ -1960,7 +2036,7 @@ number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -173 -static const short int yytable[] = +static const yytype_int16 yytable[] = { 89, 225, 106, 239, 228, 240, 26, 357, 414, 377, 378, 94, 400, 416, 434, 123, 89, 242, 215, 119, @@ -2115,7 +2191,7 @@ 0, 82, 0, 0, 83, 0, 0, 84, 0, 85 }; -static const short int yycheck[] = +static const yytype_int16 yycheck[] = { 37, 125, 53, 130, 128, 130, 3, 272, 15, 293, 294, 29, 154, 15, 34, 157, 53, 131, 112, 85, @@ -2272,7 +2348,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const unsigned char yystos[] = +static const yytype_uint8 yystos[] = { 0, 193, 194, 195, 0, 25, 31, 41, 42, 43, 44, 45, 46, 47, 62, 174, 212, 214, 216, 223, @@ -2359,7 +2435,7 @@ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ @@ -2367,7 +2443,7 @@ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ -while (0) +while (YYID (0)) #define YYTERROR 1 @@ -2382,7 +2458,7 @@ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ - if (N) \ + if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ @@ -2396,7 +2472,7 @@ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ - while (0) + while (YYID (0)) #endif @@ -2408,8 +2484,8 @@ # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif @@ -2436,36 +2512,96 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ -} while (0) +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yysymprint (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (short int *bottom, short int *top) +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) - short int *bottom; - short int *top; + yytype_int16 *bottom; + yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); - for (/* Nothing. */; bottom <= top; ++bottom) + for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } @@ -2474,37 +2610,45 @@ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ -} while (0) +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (int yyrule) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void -yy_reduce_print (yyrule) +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; int yyrule; #endif { + int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", - yyrule - 1, yylno); - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ - yy_reduce_print (Rule); \ -} while (0) + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2538,42 +2682,44 @@ #if YYERROR_VERBOSE # ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) +# if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) -# else +#else +static YYSIZE_T yystrlen (yystr) - const char *yystr; -# endif + const char *yystr; +#endif { - const char *yys = yystr; - - while (*yys++ != '\0') + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) continue; - - return yys - yystr - 1; + return yylen; } # endif # endif # ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * -# if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) -# else +#else +static char * yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif + char *yydest; + const char *yysrc; +#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2599,7 +2745,7 @@ { if (*yystr == '"') { - size_t yyn = 0; + YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) @@ -2634,53 +2780,123 @@ } # endif -#endif /* YYERROR_VERBOSE */ +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; - + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; -#if YYDEBUG -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); -#if defined (__STDC__) || defined (__cplusplus) -static void -yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) -#else -static void -yysymprint (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + if (yysize_overflow) + return YYSIZE_MAXIMUM; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - switch (yytype) - { - default: - break; + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; } - YYFPRINTF (yyoutput, ")"); } +#endif /* YYERROR_VERBOSE */ + -#endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else @@ -2691,8 +2907,7 @@ YYSTYPE *yyvaluep; #endif { - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; + YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; @@ -2702,7 +2917,7 @@ { default: - break; + break; } } @@ -2710,13 +2925,13 @@ /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) +#if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); -# else +#else int yyparse (); -# endif +#endif #else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) +#if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); @@ -2741,14 +2956,18 @@ `----------*/ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -int yyparse (void *YYPARSE_PARAM) -# else -int yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -# endif +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif #else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else @@ -2766,6 +2985,12 @@ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif /* Three stacks and their tools: `yyss': related to states, @@ -2776,9 +3001,9 @@ to reallocate them elsewhere. */ /* The state stack. */ - short int yyssa[YYINITDEPTH]; - short int *yyss = yyssa; - short int *yyssp; + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; @@ -2787,7 +3012,7 @@ -#define YYPOPSTACK (yyvsp--, yyssp--) +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; @@ -2796,9 +3021,9 @@ YYSTYPE yyval; - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ - int yylen; + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); @@ -2822,8 +3047,7 @@ `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ + have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: @@ -2836,11 +3060,11 @@ #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of + /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short int *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the @@ -2868,7 +3092,7 @@ yystacksize = YYMAXDEPTH; { - short int *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) @@ -2903,12 +3127,10 @@ `-----------*/ yybackup: -/* Do appropriate processing given the current state. */ -/* Read a look-ahead token if we need one and don't already have one. */ -/* yyresume: */ + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ - yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; @@ -2950,22 +3172,21 @@ if (yyn == YYFINAL) YYACCEPT; + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the token being shifted unless it is eof. */ + /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; + yystate = yyn; *++yyvsp = yylval; - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - yystate = yyn; goto yynewstate; @@ -3001,165 +3222,165 @@ switch (yyn) { case 3: -#line 991 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 991 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! + if ((yyvsp[(1) - (1)].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); - (yyval.SIntVal) = (int32_t)(yyvsp[0].UIntVal); + (yyval.SIntVal) = (int32_t)(yyvsp[(1) - (1)].UIntVal); CHECK_FOR_ERROR ;} break; case 5: -#line 1000 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1000 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! + if ((yyvsp[(1) - (1)].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); - (yyval.SInt64Val) = (int64_t)(yyvsp[0].UInt64Val); + (yyval.SInt64Val) = (int64_t)(yyvsp[(1) - (1)].UInt64Val); CHECK_FOR_ERROR ;} break; case 39: -#line 1017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1017 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;} break; case 40: -#line 1017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1017 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;} break; case 41: -#line 1018 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1018 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;} break; case 42: -#line 1018 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1018 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;} break; case 43: -#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;} break; case 44: -#line 1019 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1019 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;} break; case 45: -#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;} break; case 46: -#line 1020 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1020 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;} break; case 47: -#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;} break; case 48: -#line 1021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1021 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;} break; case 49: -#line 1025 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1025 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;} break; case 50: -#line 1025 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1025 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;} break; case 51: -#line 1026 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1026 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;} break; case 52: -#line 1026 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1026 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;} break; case 53: -#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;} break; case 54: -#line 1027 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1027 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;} break; case 55: -#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;} break; case 56: -#line 1028 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1028 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;} break; case 57: -#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;} break; case 58: -#line 1029 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1029 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;} break; case 59: -#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;} break; case 60: -#line 1030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1030 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;} break; case 61: -#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;} break; case 62: -#line 1031 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1031 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;} break; case 63: -#line 1032 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1032 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;} break; case 64: -#line 1033 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1033 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;} break; case 77: -#line 1044 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1044 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.StrVal) = (yyvsp[-1].StrVal); + (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal); CHECK_FOR_ERROR ;} break; case 78: -#line 1048 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1048 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; CHECK_FOR_ERROR @@ -3167,99 +3388,99 @@ break; case 79: -#line 1053 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1053 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 80: -#line 1054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1054 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 81: -#line 1055 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1055 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 82: -#line 1056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1056 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 83: -#line 1057 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1057 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 84: -#line 1058 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1058 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 85: -#line 1059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1059 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 86: -#line 1060 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1060 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 87: -#line 1062 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1062 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 88: -#line 1063 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1063 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::C; ;} break; case 89: -#line 1064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1064 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::CSRet; ;} break; case 90: -#line 1065 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1065 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Fast; ;} break; case 91: -#line 1066 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1066 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::Cold; ;} break; case 92: -#line 1067 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1067 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} break; case 93: -#line 1068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1068 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} break; case 94: -#line 1069 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1069 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) + if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val)) GEN_ERROR("Calling conv too large!"); - (yyval.UIntVal) = (yyvsp[0].UInt64Val); + (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val); CHECK_FOR_ERROR ;} break; case 95: -#line 1078 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1078 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 96: -#line 1079 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1079 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.UIntVal) = (yyvsp[0].UInt64Val); + (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) GEN_ERROR("Alignment must be a power of two!"); CHECK_FOR_ERROR @@ -3267,14 +3488,14 @@ break; case 97: -#line 1085 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1085 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.UIntVal) = 0; ;} break; case 98: -#line 1086 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1086 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.UIntVal) = (yyvsp[0].UInt64Val); + (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) GEN_ERROR("Alignment must be a power of two!"); CHECK_FOR_ERROR @@ -3282,77 +3503,77 @@ break; case 99: -#line 1094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1094 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) - if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') + for (unsigned i = 0, e = strlen((yyvsp[(2) - (2)].StrVal)); i != e; ++i) + if ((yyvsp[(2) - (2)].StrVal)[i] == '"' || (yyvsp[(2) - (2)].StrVal)[i] == '\\') GEN_ERROR("Invalid character in section name!"); - (yyval.StrVal) = (yyvsp[0].StrVal); + (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal); CHECK_FOR_ERROR ;} break; case 100: -#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1102 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 101: -#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" - { (yyval.StrVal) = (yyvsp[0].StrVal); ;} +#line 1103 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;} break; case 102: -#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1108 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" {;} break; case 103: -#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1109 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" {;} break; case 104: -#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1110 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurGV->setSection((yyvsp[0].StrVal)); - free((yyvsp[0].StrVal)); + CurGV->setSection((yyvsp[(1) - (1)].StrVal)); + free((yyvsp[(1) - (1)].StrVal)); CHECK_FOR_ERROR ;} break; case 105: -#line 1115 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1115 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) + if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val))) GEN_ERROR("Alignment must be a power of two!"); - CurGV->setAlignment((yyvsp[0].UInt64Val)); + CurGV->setAlignment((yyvsp[(2) - (2)].UInt64Val)); CHECK_FOR_ERROR ;} break; case 107: -#line 1129 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" - { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} +#line 1129 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + { (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); ;} break; case 109: -#line 1130 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" - { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;} +#line 1130 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + { (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); ;} break; case 110: -#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) - GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription()); - (yyval.TypeVal) = (yyvsp[0].TypeVal); + GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription()); + (yyval.TypeVal) = (yyvsp[(1) - (1)].TypeVal); CHECK_FOR_ERROR ;} break; case 124: -#line 1144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1144 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeVal) = new PATypeHolder(OpaqueType::get()); CHECK_FOR_ERROR @@ -3360,28 +3581,28 @@ break; case 125: -#line 1148 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1148 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); + (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); CHECK_FOR_ERROR ;} break; case 126: -#line 1152 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1152 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... - const Type* tmp = getTypeVal((yyvsp[0].ValIDVal)); + const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal)); CHECK_FOR_ERROR (yyval.TypeVal) = new PATypeHolder(tmp); ;} break; case 127: -#line 1160 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1160 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Type UpReference - if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); + if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder - UpRefs.push_back(UpRefRecord((unsigned)(yyvsp[0].UInt64Val), OT)); // Add to vector... + UpRefs.push_back(UpRefRecord((unsigned)(yyvsp[(2) - (2)].UInt64Val), OT)); // Add to vector... (yyval.TypeVal) = new PATypeHolder(OT); UR_OUT("New Upreference!\n"); CHECK_FOR_ERROR @@ -3389,63 +3610,63 @@ break; case 128: -#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1168 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector Params; - for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), - E = (yyvsp[-1].TypeList)->end(); I != E; ++I) + for (std::list::iterator I = (yyvsp[(3) - (4)].TypeList)->begin(), + E = (yyvsp[(3) - (4)].TypeList)->end(); I != E; ++I) Params.push_back(*I); bool isVarArg = Params.size() && Params.back() == Type::VoidTy; if (isVarArg) Params.pop_back(); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FunctionType::get(*(yyvsp[-3].TypeVal),Params,isVarArg))); - delete (yyvsp[-1].TypeList); // Delete the argument list - delete (yyvsp[-3].TypeVal); // Delete the return type handle + (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FunctionType::get(*(yyvsp[(1) - (4)].TypeVal),Params,isVarArg))); + delete (yyvsp[(3) - (4)].TypeList); // Delete the argument list + delete (yyvsp[(1) - (4)].TypeVal); // Delete the return type handle CHECK_FOR_ERROR ;} break; case 129: -#line 1181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1181 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Sized array type? - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val)))); - delete (yyvsp[-1].TypeVal); + (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val)))); + delete (yyvsp[(4) - (5)].TypeVal); CHECK_FOR_ERROR ;} break; case 130: -#line 1186 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1186 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Packed array type? - const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get(); - if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) + const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get(); + if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val)) GEN_ERROR("Unsigned result not equal to signed result"); if (!ElemTy->isPrimitiveType()) GEN_ERROR("Elemental type of a PackedType must be primitive"); - if (!isPowerOf2_32((yyvsp[-3].UInt64Val))) + if (!isPowerOf2_32((yyvsp[(2) - (5)].UInt64Val))) GEN_ERROR("Vector length should be a power of 2!"); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PackedType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val)))); - delete (yyvsp[-1].TypeVal); + (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PackedType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val)))); + delete (yyvsp[(4) - (5)].TypeVal); CHECK_FOR_ERROR ;} break; case 131: -#line 1198 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1198 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector Elements; - for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), - E = (yyvsp[-1].TypeList)->end(); I != E; ++I) + for (std::list::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(), + E = (yyvsp[(2) - (3)].TypeList)->end(); I != E; ++I) Elements.push_back(*I); (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements))); - delete (yyvsp[-1].TypeList); + delete (yyvsp[(2) - (3)].TypeList); CHECK_FOR_ERROR ;} break; case 132: -#line 1208 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1208 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector())); CHECK_FOR_ERROR @@ -3453,43 +3674,43 @@ break; case 133: -#line 1212 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1212 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Pointer type? - if (*(yyvsp[-1].TypeVal) == Type::LabelTy) + if (*(yyvsp[(1) - (2)].TypeVal) == Type::LabelTy) GEN_ERROR("Cannot form a pointer to a basic block"); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PointerType::get(*(yyvsp[-1].TypeVal)))); - delete (yyvsp[-1].TypeVal); + (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PointerType::get(*(yyvsp[(1) - (2)].TypeVal)))); + delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 134: -#line 1223 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1223 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); - (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); + (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal)); delete (yyvsp[(1) - (1)].TypeVal); CHECK_FOR_ERROR ;} break; case 135: -#line 1228 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1228 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal); + ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal)); delete (yyvsp[(3) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 137: -#line 1235 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1235 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(Type::VoidTy); + ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(Type::VoidTy); CHECK_FOR_ERROR ;} break; case 138: -#line 1239 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1239 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { ((yyval.TypeList) = new std::list())->push_back(Type::VoidTy); CHECK_FOR_ERROR @@ -3497,7 +3718,7 @@ break; case 139: -#line 1243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1243 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList) = new std::list(); CHECK_FOR_ERROR @@ -3505,186 +3726,186 @@ break; case 140: -#line 1254 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1254 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr - const ArrayType *ATy = dyn_cast((yyvsp[-3].TypeVal)->get()); + const ArrayType *ATy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); if (ATy == 0) GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[-3].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); const Type *ETy = ATy->getElementType(); int NumElements = ATy->getNumElements(); // Verify that we have the correct size... - if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size()) + if (NumElements != -1 && NumElements != (int)(yyvsp[(3) - (4)].ConstVector)->size()) GEN_ERROR("Type mismatch: constant sized array initialized with " + - utostr((yyvsp[-1].ConstVector)->size()) + " arguments, but has size of " + + utostr((yyvsp[(3) - (4)].ConstVector)->size()) + " arguments, but has size of " + itostr(NumElements) + "!"); // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType()) + for (unsigned i = 0; i < (yyvsp[(3) - (4)].ConstVector)->size(); i++) { + if (ETy != (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()) GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'."); + (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()->getDescription() + "'."); } - (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[-1].ConstVector)); - delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector); + (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[(3) - (4)].ConstVector)); + delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); CHECK_FOR_ERROR ;} break; case 141: -#line 1280 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1280 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); + const ArrayType *ATy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); if (ATy == 0) GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[-2].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); int NumElements = ATy->getNumElements(); if (NumElements != -1 && NumElements != 0) GEN_ERROR("Type mismatch: constant sized array initialized with 0" " arguments, but has size of " + itostr(NumElements) +"!"); (yyval.ConstVal) = ConstantArray::get(ATy, std::vector()); - delete (yyvsp[-2].TypeVal); + delete (yyvsp[(1) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 142: -#line 1294 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1294 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal)->get()); + const ArrayType *ATy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); if (ATy == 0) GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[-2].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); int NumElements = ATy->getNumElements(); const Type *ETy = ATy->getElementType(); - char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); - if (NumElements != -1 && NumElements != (EndStr-(yyvsp[0].StrVal))) + char *EndStr = UnEscapeLexed((yyvsp[(3) - (3)].StrVal), true); + if (NumElements != -1 && NumElements != (EndStr-(yyvsp[(3) - (3)].StrVal))) GEN_ERROR("Can't build string constant of size " + - itostr((int)(EndStr-(yyvsp[0].StrVal))) + + itostr((int)(EndStr-(yyvsp[(3) - (3)].StrVal))) + " when array has size " + itostr(NumElements) + "!"); std::vector Vals; if (ETy == Type::SByteTy) { - for (signed char *C = (signed char *)(yyvsp[0].StrVal); C != (signed char *)EndStr; ++C) + for (signed char *C = (signed char *)(yyvsp[(3) - (3)].StrVal); C != (signed char *)EndStr; ++C) Vals.push_back(ConstantInt::get(ETy, *C)); } else if (ETy == Type::UByteTy) { - for (unsigned char *C = (unsigned char *)(yyvsp[0].StrVal); + for (unsigned char *C = (unsigned char *)(yyvsp[(3) - (3)].StrVal); C != (unsigned char*)EndStr; ++C) Vals.push_back(ConstantInt::get(ETy, *C)); } else { - free((yyvsp[0].StrVal)); + free((yyvsp[(3) - (3)].StrVal)); GEN_ERROR("Cannot build string arrays of non byte sized elements!"); } - free((yyvsp[0].StrVal)); + free((yyvsp[(3) - (3)].StrVal)); (yyval.ConstVal) = ConstantArray::get(ATy, Vals); - delete (yyvsp[-2].TypeVal); + delete (yyvsp[(1) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 143: -#line 1324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1324 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr - const PackedType *PTy = dyn_cast((yyvsp[-3].TypeVal)->get()); + const PackedType *PTy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); if (PTy == 0) GEN_ERROR("Cannot make packed constant with type: '" + - (*(yyvsp[-3].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); const Type *ETy = PTy->getElementType(); int NumElements = PTy->getNumElements(); // Verify that we have the correct size... - if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size()) + if (NumElements != -1 && NumElements != (int)(yyvsp[(3) - (4)].ConstVector)->size()) GEN_ERROR("Type mismatch: constant sized packed initialized with " + - utostr((yyvsp[-1].ConstVector)->size()) + " arguments, but has size of " + + utostr((yyvsp[(3) - (4)].ConstVector)->size()) + " arguments, but has size of " + itostr(NumElements) + "!"); // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType()) + for (unsigned i = 0; i < (yyvsp[(3) - (4)].ConstVector)->size(); i++) { + if (ETy != (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()) GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'."); + (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()->getDescription() + "'."); } - (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[-1].ConstVector)); - delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector); + (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[(3) - (4)].ConstVector)); + delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); CHECK_FOR_ERROR ;} break; case 144: -#line 1350 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1350 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const StructType *STy = dyn_cast((yyvsp[-3].TypeVal)->get()); + const StructType *STy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); if (STy == 0) GEN_ERROR("Cannot make struct constant with type: '" + - (*(yyvsp[-3].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); - if ((yyvsp[-1].ConstVector)->size() != STy->getNumContainedTypes()) + if ((yyvsp[(3) - (4)].ConstVector)->size() != STy->getNumContainedTypes()) GEN_ERROR("Illegal number of initializers for structure type!"); // Check to ensure that constants are compatible with the type initializer! - for (unsigned i = 0, e = (yyvsp[-1].ConstVector)->size(); i != e; ++i) - if ((*(yyvsp[-1].ConstVector))[i]->getType() != STy->getElementType(i)) + for (unsigned i = 0, e = (yyvsp[(3) - (4)].ConstVector)->size(); i != e; ++i) + if ((*(yyvsp[(3) - (4)].ConstVector))[i]->getType() != STy->getElementType(i)) GEN_ERROR("Expected type '" + STy->getElementType(i)->getDescription() + "' for element #" + utostr(i) + " of structure initializer!"); - (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[-1].ConstVector)); - delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector); + (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[(3) - (4)].ConstVector)); + delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); CHECK_FOR_ERROR ;} break; case 145: -#line 1371 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1371 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const StructType *STy = dyn_cast((yyvsp[-2].TypeVal)->get()); + const StructType *STy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); if (STy == 0) GEN_ERROR("Cannot make struct constant with type: '" + - (*(yyvsp[-2].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); if (STy->getNumContainedTypes() != 0) GEN_ERROR("Illegal number of initializers for structure type!"); (yyval.ConstVal) = ConstantStruct::get(STy, std::vector()); - delete (yyvsp[-2].TypeVal); + delete (yyvsp[(1) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 146: -#line 1384 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1384 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const PointerType *PTy = dyn_cast((yyvsp[-1].TypeVal)->get()); + const PointerType *PTy = dyn_cast((yyvsp[(1) - (2)].TypeVal)->get()); if (PTy == 0) GEN_ERROR("Cannot make null pointer constant with type: '" + - (*(yyvsp[-1].TypeVal))->getDescription() + "'!"); + (*(yyvsp[(1) - (2)].TypeVal))->getDescription() + "'!"); (yyval.ConstVal) = ConstantPointerNull::get(PTy); - delete (yyvsp[-1].TypeVal); + delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 147: -#line 1394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1394 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get()); - delete (yyvsp[-1].TypeVal); + (yyval.ConstVal) = UndefValue::get((yyvsp[(1) - (2)].TypeVal)->get()); + delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 148: -#line 1399 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1399 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const PointerType *Ty = dyn_cast((yyvsp[-1].TypeVal)->get()); + const PointerType *Ty = dyn_cast((yyvsp[(1) - (2)].TypeVal)->get()); if (Ty == 0) GEN_ERROR("Global const reference must be a pointer type!"); @@ -3698,7 +3919,7 @@ Function *SavedCurFn = CurFun.CurrentFunction; CurFun.CurrentFunction = 0; - Value *V = getValNonImprovising(Ty, (yyvsp[0].ValIDVal)); + Value *V = getValNonImprovising(Ty, (yyvsp[(2) - (2)].ValIDVal)); CHECK_FOR_ERROR CurFun.CurrentFunction = SavedCurFn; @@ -3713,14 +3934,14 @@ // First check to see if the forward references value is already created! PerModuleInfo::GlobalRefsType::iterator I = - CurModule.GlobalRefs.find(std::make_pair(PT, (yyvsp[0].ValIDVal))); + CurModule.GlobalRefs.find(std::make_pair(PT, (yyvsp[(2) - (2)].ValIDVal))); if (I != CurModule.GlobalRefs.end()) { V = I->second; // Placeholder already exists, use it... - (yyvsp[0].ValIDVal).destroy(); + (yyvsp[(2) - (2)].ValIDVal).destroy(); } else { std::string Name; - if ((yyvsp[0].ValIDVal).Type == ValID::NameVal) Name = (yyvsp[0].ValIDVal).Name; + if ((yyvsp[(2) - (2)].ValIDVal).Type == ValID::NameVal) Name = (yyvsp[(2) - (2)].ValIDVal).Name; // Create the forward referenced global. GlobalValue *GV; @@ -3735,62 +3956,62 @@ } // Keep track of the fact that we have a forward ref to recycle it - CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, (yyvsp[0].ValIDVal)), GV)); + CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, (yyvsp[(2) - (2)].ValIDVal)), GV)); V = GV; } } (yyval.ConstVal) = cast(V); - delete (yyvsp[-1].TypeVal); // Free the type handle + delete (yyvsp[(1) - (2)].TypeVal); // Free the type handle CHECK_FOR_ERROR ;} break; case 149: -#line 1460 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1460 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType()) + if ((yyvsp[(1) - (2)].TypeVal)->get() != (yyvsp[(2) - (2)].ConstVal)->getType()) GEN_ERROR("Mismatched types for constant expression!"); - (yyval.ConstVal) = (yyvsp[0].ConstVal); - delete (yyvsp[-1].TypeVal); + (yyval.ConstVal) = (yyvsp[(2) - (2)].ConstVal); + delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 150: -#line 1467 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1467 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const Type *Ty = (yyvsp[-1].TypeVal)->get(); + const Type *Ty = (yyvsp[(1) - (2)].TypeVal)->get(); if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) GEN_ERROR("Cannot create a null initialized value of this type!"); (yyval.ConstVal) = Constant::getNullValue(Ty); - delete (yyvsp[-1].TypeVal); + delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 151: -#line 1475 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1475 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // integral constants - if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val))) + if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)); + (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)); CHECK_FOR_ERROR ;} break; case 152: -#line 1481 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1481 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // integral constants - if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val))) + if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val))) GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)); + (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)); CHECK_FOR_ERROR ;} break; case 153: -#line 1487 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1487 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getTrue(); CHECK_FOR_ERROR @@ -3798,7 +4019,7 @@ break; case 154: -#line 1491 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1491 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Boolean constants (yyval.ConstVal) = ConstantBool::getFalse(); CHECK_FOR_ERROR @@ -3806,235 +4027,235 @@ break; case 155: -#line 1495 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1495 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Float & Double constants - if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal))) + if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].FPVal))) GEN_ERROR("Floating point constant invalid for type!!"); - (yyval.ConstVal) = ConstantFP::get((yyvsp[-1].PrimType), (yyvsp[0].FPVal)); + (yyval.ConstVal) = ConstantFP::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].FPVal)); CHECK_FOR_ERROR ;} break; case 156: -#line 1503 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1503 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Constant *Val = (yyvsp[-3].ConstVal); - const Type *Ty = (yyvsp[-1].TypeVal)->get(); + Constant *Val = (yyvsp[(3) - (6)].ConstVal); + const Type *Ty = (yyvsp[(5) - (6)].TypeVal)->get(); if (!Val->getType()->isFirstClassType()) GEN_ERROR("cast constant expression from a non-primitive type: '" + Val->getType()->getDescription() + "'!"); if (!Ty->isFirstClassType()) GEN_ERROR("cast constant expression to a non-primitive type: '" + Ty->getDescription() + "'!"); - (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[-5].CastOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].TypeVal)->get()); - delete (yyvsp[-1].TypeVal); + (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[(1) - (6)].CastOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].TypeVal)->get()); + delete (yyvsp[(5) - (6)].TypeVal); ;} break; case 157: -#line 1515 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1515 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[-2].ConstVal)->getType())) + if (!isa((yyvsp[(3) - (5)].ConstVal)->getType())) GEN_ERROR("GetElementPtr requires a pointer operand!"); const Type *IdxTy = - GetElementPtrInst::getIndexedType((yyvsp[-2].ConstVal)->getType(), *(yyvsp[-1].ValueList), true); + GetElementPtrInst::getIndexedType((yyvsp[(3) - (5)].ConstVal)->getType(), *(yyvsp[(4) - (5)].ValueList), true); if (!IdxTy) GEN_ERROR("Index list invalid for constant getelementptr!"); std::vector IdxVec; - for (unsigned i = 0, e = (yyvsp[-1].ValueList)->size(); i != e; ++i) - if (Constant *C = dyn_cast((*(yyvsp[-1].ValueList))[i])) + for (unsigned i = 0, e = (yyvsp[(4) - (5)].ValueList)->size(); i != e; ++i) + if (Constant *C = dyn_cast((*(yyvsp[(4) - (5)].ValueList))[i])) IdxVec.push_back(C); else GEN_ERROR("Indices to constant getelementptr must be constants!"); - delete (yyvsp[-1].ValueList); + delete (yyvsp[(4) - (5)].ValueList); - (yyval.ConstVal) = ConstantExpr::getGetElementPtr((yyvsp[-2].ConstVal), IdxVec); + (yyval.ConstVal) = ConstantExpr::getGetElementPtr((yyvsp[(3) - (5)].ConstVal), IdxVec); CHECK_FOR_ERROR ;} break; case 158: -#line 1536 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1536 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy) + if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::BoolTy) GEN_ERROR("Select condition must be of boolean type!"); - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(5) - (8)].ConstVal)->getType() != (yyvsp[(7) - (8)].ConstVal)->getType()) GEN_ERROR("Select operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getSelect((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getSelect((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); CHECK_FOR_ERROR ;} break; case 159: -#line 1544 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1544 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) GEN_ERROR("Binary operator types must match!"); CHECK_FOR_ERROR; - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); ;} break; case 160: -#line 1550 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1550 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) GEN_ERROR("Logical operator types must match!"); - if (!(yyvsp[-3].ConstVal)->getType()->isIntegral()) { - if (!isa((yyvsp[-3].ConstVal)->getType()) || - !cast((yyvsp[-3].ConstVal)->getType())->getElementType()->isIntegral()) + if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isIntegral()) { + if (!isa((yyvsp[(3) - (6)].ConstVal)->getType()) || + !cast((yyvsp[(3) - (6)].ConstVal)->getType())->getElementType()->isIntegral()) GEN_ERROR("Logical operator requires integral operands!"); } - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); CHECK_FOR_ERROR ;} break; case 161: -#line 1561 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1561 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) GEN_ERROR("setcc operand types must match!"); - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); CHECK_FOR_ERROR ;} break; case 162: -#line 1567 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1567 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType()) GEN_ERROR("icmp operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getICmp((yyvsp[-5].IPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getICmp((yyvsp[(2) - (7)].IPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) - (7)].ConstVal)); ;} break; case 163: -#line 1572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1572 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType()) + if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType()) GEN_ERROR("fcmp operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getFCmp((yyvsp[-5].FPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getFCmp((yyvsp[(2) - (7)].FPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) - (7)].ConstVal)); ;} break; case 164: -#line 1577 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1577 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy) + if ((yyvsp[(5) - (6)].ConstVal)->getType() != Type::UByteTy) GEN_ERROR("Shift count for shift constant must be unsigned byte!"); - if (!(yyvsp[-3].ConstVal)->getType()->isInteger()) + if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isInteger()) GEN_ERROR("Shift constant expression requires integer operand!"); CHECK_FOR_ERROR; - (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].OtherOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); CHECK_FOR_ERROR ;} break; case 165: -#line 1586 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1586 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) + if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal))) GEN_ERROR("Invalid extractelement operands!"); - (yyval.ConstVal) = ConstantExpr::getExtractElement((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getExtractElement((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); CHECK_FOR_ERROR ;} break; case 166: -#line 1592 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1592 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) + if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal))) GEN_ERROR("Invalid insertelement operands!"); - (yyval.ConstVal) = ConstantExpr::getInsertElement((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getInsertElement((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); CHECK_FOR_ERROR ;} break; case 167: -#line 1598 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1598 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal))) + if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal))) GEN_ERROR("Invalid shufflevector operands!"); - (yyval.ConstVal) = ConstantExpr::getShuffleVector((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)); + (yyval.ConstVal) = ConstantExpr::getShuffleVector((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); CHECK_FOR_ERROR ;} break; case 168: -#line 1607 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1607 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); + ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal)); CHECK_FOR_ERROR ;} break; case 169: -#line 1611 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1611 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector) = new std::vector(); - (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); + (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal)); CHECK_FOR_ERROR ;} break; case 170: -#line 1619 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1619 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; ;} break; case 171: -#line 1619 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1619 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; ;} break; case 172: -#line 1629 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1629 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal); + (yyval.ModuleVal) = ParserResult = (yyvsp[(1) - (1)].ModuleVal); CurModule.ModuleDone(); CHECK_FOR_ERROR; ;} break; case 173: -#line 1637 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1637 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); + (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); CurFun.FunctionDone(); CHECK_FOR_ERROR ;} break; case 174: -#line 1642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1642 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); + (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); CHECK_FOR_ERROR ;} break; case 175: -#line 1646 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1646 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); + (yyval.ModuleVal) = (yyvsp[(1) - (4)].ModuleVal); CHECK_FOR_ERROR ;} break; case 176: -#line 1650 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1650 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); + (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); CHECK_FOR_ERROR ;} break; case 177: -#line 1654 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1654 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ModuleVal) = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -4051,7 +4272,7 @@ break; case 178: -#line 1669 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1669 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -4062,62 +4283,62 @@ // If types are not resolved eagerly, then the two types will not be // determined to be the same type! // - ResolveTypeTo((yyvsp[-2].StrVal), *(yyvsp[0].TypeVal)); + ResolveTypeTo((yyvsp[(2) - (4)].StrVal), *(yyvsp[(4) - (4)].TypeVal)); - if (!setTypeName(*(yyvsp[0].TypeVal), (yyvsp[-2].StrVal)) && !(yyvsp[-2].StrVal)) { + if (!setTypeName(*(yyvsp[(4) - (4)].TypeVal), (yyvsp[(2) - (4)].StrVal)) && !(yyvsp[(2) - (4)].StrVal)) { CHECK_FOR_ERROR // If this is a named type that is not a redefinition, add it to the slot // table. - CurModule.Types.push_back(*(yyvsp[0].TypeVal)); + CurModule.Types.push_back(*(yyvsp[(4) - (4)].TypeVal)); } - delete (yyvsp[0].TypeVal); + delete (yyvsp[(4) - (4)].TypeVal); CHECK_FOR_ERROR ;} break; case 179: -#line 1691 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1691 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool CHECK_FOR_ERROR ;} break; case 180: -#line 1694 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1694 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Asm blocks can be in the const pool CHECK_FOR_ERROR ;} break; case 181: -#line 1697 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1697 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].ConstVal) == 0) + if ((yyvsp[(5) - (5)].ConstVal) == 0) GEN_ERROR("Global value initializer is not a constant!"); - CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), (yyvsp[-2].Linkage), (yyvsp[-1].BoolVal), (yyvsp[0].ConstVal)->getType(), (yyvsp[0].ConstVal)); + CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), (yyvsp[(3) - (5)].Linkage), (yyvsp[(4) - (5)].BoolVal), (yyvsp[(5) - (5)].ConstVal)->getType(), (yyvsp[(5) - (5)].ConstVal)); CHECK_FOR_ERROR ;} break; case 182: -#line 1702 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1702 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; ;} break; case 183: -#line 1705 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1705 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); + CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::ExternalLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); CHECK_FOR_ERROR - delete (yyvsp[0].TypeVal); + delete (yyvsp[(5) - (5)].TypeVal); ;} break; case 184: -#line 1709 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1709 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4125,16 +4346,16 @@ break; case 185: -#line 1713 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1713 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); + CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); CHECK_FOR_ERROR - delete (yyvsp[0].TypeVal); + delete (yyvsp[(5) - (5)].TypeVal); ;} break; case 186: -#line 1717 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1717 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4142,17 +4363,17 @@ break; case 187: -#line 1721 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1721 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurGV = - ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0); + ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); CHECK_FOR_ERROR - delete (yyvsp[0].TypeVal); + delete (yyvsp[(5) - (5)].TypeVal); ;} break; case 188: -#line 1726 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1726 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4160,32 +4381,32 @@ break; case 189: -#line 1730 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1730 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 190: -#line 1733 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1733 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 191: -#line 1736 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1736 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { ;} break; case 192: -#line 1740 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1740 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); - char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); - std::string NewAsm((yyvsp[0].StrVal), EndStr); - free((yyvsp[0].StrVal)); + char *EndStr = UnEscapeLexed((yyvsp[(1) - (1)].StrVal), true); + std::string NewAsm((yyvsp[(1) - (1)].StrVal), EndStr); + free((yyvsp[(1) - (1)].StrVal)); if (AsmSoFar.empty()) CurModule.CurrentModule->setModuleInlineAsm(NewAsm); @@ -4196,124 +4417,124 @@ break; case 193: -#line 1753 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1753 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::BigEndian; ;} break; case 194: -#line 1754 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1754 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.Endianness) = Module::LittleEndian; ;} break; case 195: -#line 1756 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1756 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness)); + CurModule.CurrentModule->setEndianness((yyvsp[(3) - (3)].Endianness)); CHECK_FOR_ERROR ;} break; case 196: -#line 1760 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1760 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].UInt64Val) == 32) + if ((yyvsp[(3) - (3)].UInt64Val) == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); - else if ((yyvsp[0].UInt64Val) == 64) + else if ((yyvsp[(3) - (3)].UInt64Val) == 64) CurModule.CurrentModule->setPointerSize(Module::Pointer64); else - GEN_ERROR("Invalid pointer size: '" + utostr((yyvsp[0].UInt64Val)) + "'!"); + GEN_ERROR("Invalid pointer size: '" + utostr((yyvsp[(3) - (3)].UInt64Val)) + "'!"); CHECK_FOR_ERROR ;} break; case 197: -#line 1769 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1769 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal)); - free((yyvsp[0].StrVal)); + CurModule.CurrentModule->setTargetTriple((yyvsp[(3) - (3)].StrVal)); + free((yyvsp[(3) - (3)].StrVal)); ;} break; case 198: -#line 1773 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1773 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal)); - free((yyvsp[0].StrVal)); + CurModule.CurrentModule->setDataLayout((yyvsp[(3) - (3)].StrVal)); + free((yyvsp[(3) - (3)].StrVal)); ;} break; case 200: -#line 1780 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1780 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); - free((yyvsp[0].StrVal)); + CurModule.CurrentModule->addLibrary((yyvsp[(3) - (3)].StrVal)); + free((yyvsp[(3) - (3)].StrVal)); CHECK_FOR_ERROR ;} break; case 201: -#line 1785 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1785 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); - free((yyvsp[0].StrVal)); + CurModule.CurrentModule->addLibrary((yyvsp[(1) - (1)].StrVal)); + free((yyvsp[(1) - (1)].StrVal)); CHECK_FOR_ERROR ;} break; case 202: -#line 1790 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1790 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; case 206: -#line 1800 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1800 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.StrVal) = 0; ;} break; case 207: -#line 1802 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1802 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (*(yyvsp[-1].TypeVal) == Type::VoidTy) + if (*(yyvsp[(1) - (2)].TypeVal) == Type::VoidTy) GEN_ERROR("void typed arguments are invalid!"); - (yyval.ArgVal) = new std::pair((yyvsp[-1].TypeVal), (yyvsp[0].StrVal)); + (yyval.ArgVal) = new std::pair((yyvsp[(1) - (2)].TypeVal), (yyvsp[(2) - (2)].StrVal)); CHECK_FOR_ERROR ;} break; case 208: -#line 1809 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1809 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = (yyvsp[-2].ArgList); - (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal)); - delete (yyvsp[0].ArgVal); + (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList); + (yyvsp[(1) - (3)].ArgList)->push_back(*(yyvsp[(3) - (3)].ArgVal)); + delete (yyvsp[(3) - (3)].ArgVal); CHECK_FOR_ERROR ;} break; case 209: -#line 1815 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1815 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = new std::vector >(); - (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); - delete (yyvsp[0].ArgVal); + (yyval.ArgList)->push_back(*(yyvsp[(1) - (1)].ArgVal)); + delete (yyvsp[(1) - (1)].ArgVal); CHECK_FOR_ERROR ;} break; case 210: -#line 1822 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1822 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = (yyvsp[0].ArgList); + (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList); CHECK_FOR_ERROR ;} break; case 211: -#line 1826 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1826 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = (yyvsp[-2].ArgList); + (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList); (yyval.ArgList)->push_back(std::pair(new PATypeHolder(Type::VoidTy), 0)); CHECK_FOR_ERROR @@ -4321,7 +4542,7 @@ break; case 212: -#line 1832 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1832 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = new std::vector >(); (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); @@ -4330,7 +4551,7 @@ break; case 213: -#line 1837 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1837 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ArgList) = 0; CHECK_FOR_ERROR @@ -4338,28 +4559,28 @@ break; case 214: -#line 1843 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1843 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - UnEscapeLexed((yyvsp[-5].StrVal)); - std::string FunctionName((yyvsp[-5].StrVal)); - free((yyvsp[-5].StrVal)); // Free strdup'd memory! + UnEscapeLexed((yyvsp[(3) - (8)].StrVal)); + std::string FunctionName((yyvsp[(3) - (8)].StrVal)); + free((yyvsp[(3) - (8)].StrVal)); // Free strdup'd memory! - if (!(*(yyvsp[-6].TypeVal))->isFirstClassType() && *(yyvsp[-6].TypeVal) != Type::VoidTy) + if (!(*(yyvsp[(2) - (8)].TypeVal))->isFirstClassType() && *(yyvsp[(2) - (8)].TypeVal) != Type::VoidTy) GEN_ERROR("LLVM functions cannot return aggregate types!"); std::vector ParamTypeList; - if ((yyvsp[-3].ArgList)) { // If there are arguments... - for (std::vector >::iterator I = (yyvsp[-3].ArgList)->begin(); - I != (yyvsp[-3].ArgList)->end(); ++I) + if ((yyvsp[(5) - (8)].ArgList)) { // If there are arguments... + for (std::vector >::iterator I = (yyvsp[(5) - (8)].ArgList)->begin(); + I != (yyvsp[(5) - (8)].ArgList)->end(); ++I) ParamTypeList.push_back(I->first->get()); } bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy; if (isVarArg) ParamTypeList.pop_back(); - const FunctionType *FT = FunctionType::get(*(yyvsp[-6].TypeVal), ParamTypeList, isVarArg); + const FunctionType *FT = FunctionType::get(*(yyvsp[(2) - (8)].TypeVal), ParamTypeList, isVarArg); const PointerType *PFT = PointerType::get(FT); - delete (yyvsp[-6].TypeVal); + delete (yyvsp[(2) - (8)].TypeVal); ValID ID; if (!FunctionName.empty()) { @@ -4403,24 +4624,24 @@ // another function. Fn->setLinkage(CurFun.Linkage); } - Fn->setCallingConv((yyvsp[-7].UIntVal)); - Fn->setAlignment((yyvsp[0].UIntVal)); - if ((yyvsp[-1].StrVal)) { - Fn->setSection((yyvsp[-1].StrVal)); - free((yyvsp[-1].StrVal)); + Fn->setCallingConv((yyvsp[(1) - (8)].UIntVal)); + Fn->setAlignment((yyvsp[(8) - (8)].UIntVal)); + if ((yyvsp[(7) - (8)].StrVal)) { + Fn->setSection((yyvsp[(7) - (8)].StrVal)); + free((yyvsp[(7) - (8)].StrVal)); } // Add all of the arguments we parsed to the function... - if ((yyvsp[-3].ArgList)) { // Is null if empty... + if ((yyvsp[(5) - (8)].ArgList)) { // Is null if empty... if (isVarArg) { // Nuke the last entry - assert((yyvsp[-3].ArgList)->back().first->get() == Type::VoidTy && (yyvsp[-3].ArgList)->back().second == 0&& + assert((yyvsp[(5) - (8)].ArgList)->back().first->get() == Type::VoidTy && (yyvsp[(5) - (8)].ArgList)->back().second == 0&& "Not a varargs marker!"); - delete (yyvsp[-3].ArgList)->back().first; - (yyvsp[-3].ArgList)->pop_back(); // Delete the last entry + delete (yyvsp[(5) - (8)].ArgList)->back().first; + (yyvsp[(5) - (8)].ArgList)->pop_back(); // Delete the last entry } Function::arg_iterator ArgIt = Fn->arg_begin(); - for (std::vector >::iterator I = (yyvsp[-3].ArgList)->begin(); - I != (yyvsp[-3].ArgList)->end(); ++I, ++ArgIt) { + for (std::vector >::iterator I = (yyvsp[(5) - (8)].ArgList)->begin(); + I != (yyvsp[(5) - (8)].ArgList)->end(); ++I, ++ArgIt) { delete I->first; // Delete the typeholder... setValueName(ArgIt, I->second); // Insert arg into symtab... @@ -4428,48 +4649,48 @@ InsertValue(ArgIt); } - delete (yyvsp[-3].ArgList); // We're now done with the argument list + delete (yyvsp[(5) - (8)].ArgList); // We're now done with the argument list } CHECK_FOR_ERROR ;} break; case 217: -#line 1939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1939 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; // Make sure that we keep track of the linkage type even if there was a // previous "declare". - (yyval.FunctionVal)->setLinkage((yyvsp[-2].Linkage)); + (yyval.FunctionVal)->setLinkage((yyvsp[(1) - (3)].Linkage)); ;} break; case 220: -#line 1949 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1949 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); + (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); CHECK_FOR_ERROR ;} break; case 222: -#line 1955 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1955 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 223: -#line 1956 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1956 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} break; case 224: -#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1958 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ;} break; case 225: -#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1958 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; CurFun.FunctionDone(); @@ -4478,7 +4699,7 @@ break; case 226: -#line 1968 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1968 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4486,7 +4707,7 @@ break; case 227: -#line 1972 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1972 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4494,31 +4715,31 @@ break; case 228: -#line 1977 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1977 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant - (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val)); CHECK_FOR_ERROR ;} break; case 229: -#line 1981 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1981 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val)); CHECK_FOR_ERROR ;} break; case 230: -#line 1985 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1985 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? - (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal)); CHECK_FOR_ERROR ;} break; case 231: -#line 1989 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1989 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue()); CHECK_FOR_ERROR @@ -4526,7 +4747,7 @@ break; case 232: -#line 1993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1993 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse()); CHECK_FOR_ERROR @@ -4534,7 +4755,7 @@ break; case 233: -#line 1997 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 1997 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createNull(); CHECK_FOR_ERROR @@ -4542,7 +4763,7 @@ break; case 234: -#line 2001 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2001 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValIDVal) = ValID::createUndef(); CHECK_FOR_ERROR @@ -4550,7 +4771,7 @@ break; case 235: -#line 2005 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2005 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // A vector zero constant. (yyval.ValIDVal) = ValID::createZeroInit(); CHECK_FOR_ERROR @@ -4558,10 +4779,10 @@ break; case 236: -#line 2009 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2009 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector - const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType(); - int NumElements = (yyvsp[-1].ConstVector)->size(); + const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType(); + int NumElements = (yyvsp[(2) - (3)].ConstVector)->size(); PackedType* pt = PackedType::get(ETy, NumElements); PATypeHolder* PTy = new PATypeHolder( @@ -4573,110 +4794,110 @@ ); // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType()) + for (unsigned i = 0; i < (yyvsp[(2) - (3)].ConstVector)->size(); i++) { + if (ETy != (*(yyvsp[(2) - (3)].ConstVector))[i]->getType()) GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '" + - (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'."); + (*(yyvsp[(2) - (3)].ConstVector))[i]->getType()->getDescription() + "'."); } - (yyval.ValIDVal) = ValID::create(ConstantPacked::get(pt, *(yyvsp[-1].ConstVector))); - delete PTy; delete (yyvsp[-1].ConstVector); + (yyval.ValIDVal) = ValID::create(ConstantPacked::get(pt, *(yyvsp[(2) - (3)].ConstVector))); + delete PTy; delete (yyvsp[(2) - (3)].ConstVector); CHECK_FOR_ERROR ;} break; case 237: -#line 2034 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2034 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal)); CHECK_FOR_ERROR ;} break; case 238: -#line 2038 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2038 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - char *End = UnEscapeLexed((yyvsp[-2].StrVal), true); - std::string AsmStr = std::string((yyvsp[-2].StrVal), End); - End = UnEscapeLexed((yyvsp[0].StrVal), true); - std::string Constraints = std::string((yyvsp[0].StrVal), End); - (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[-3].BoolVal)); - free((yyvsp[-2].StrVal)); - free((yyvsp[0].StrVal)); + char *End = UnEscapeLexed((yyvsp[(3) - (5)].StrVal), true); + std::string AsmStr = std::string((yyvsp[(3) - (5)].StrVal), End); + End = UnEscapeLexed((yyvsp[(5) - (5)].StrVal), true); + std::string Constraints = std::string((yyvsp[(5) - (5)].StrVal), End); + (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[(2) - (5)].BoolVal)); + free((yyvsp[(3) - (5)].StrVal)); + free((yyvsp[(5) - (5)].StrVal)); CHECK_FOR_ERROR ;} break; case 239: -#line 2052 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2052 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? - (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SIntVal)); CHECK_FOR_ERROR ;} break; case 240: -#line 2056 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2056 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? - (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); + (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].StrVal)); CHECK_FOR_ERROR ;} break; case 243: -#line 2068 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2068 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal); + (yyval.ValueVal) = getVal(*(yyvsp[(1) - (2)].TypeVal), (yyvsp[(2) - (2)].ValIDVal)); delete (yyvsp[(1) - (2)].TypeVal); CHECK_FOR_ERROR ;} break; case 244: -#line 2073 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2073 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); + (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); CHECK_FOR_ERROR ;} break; case 245: -#line 2077 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2077 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks - (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); + (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); CHECK_FOR_ERROR ;} break; case 246: -#line 2086 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2086 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal)); + setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) - (3)].StrVal)); CHECK_FOR_ERROR - InsertValue((yyvsp[0].TermInstVal)); + InsertValue((yyvsp[(3) - (3)].TermInstVal)); - (yyvsp[-2].BasicBlockVal)->getInstList().push_back((yyvsp[0].TermInstVal)); - InsertValue((yyvsp[-2].BasicBlockVal)); - (yyval.BasicBlockVal) = (yyvsp[-2].BasicBlockVal); + (yyvsp[(1) - (3)].BasicBlockVal)->getInstList().push_back((yyvsp[(3) - (3)].TermInstVal)); + InsertValue((yyvsp[(1) - (3)].BasicBlockVal)); + (yyval.BasicBlockVal) = (yyvsp[(1) - (3)].BasicBlockVal); CHECK_FOR_ERROR ;} break; case 247: -#line 2097 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2097 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (CastInst *CI1 = dyn_cast((yyvsp[0].InstVal))) + if (CastInst *CI1 = dyn_cast((yyvsp[(2) - (2)].InstVal))) if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) if (CI2->getParent() == 0) - (yyvsp[-1].BasicBlockVal)->getInstList().push_back(CI2); - (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal)); - (yyval.BasicBlockVal) = (yyvsp[-1].BasicBlockVal); + (yyvsp[(1) - (2)].BasicBlockVal)->getInstList().push_back(CI2); + (yyvsp[(1) - (2)].BasicBlockVal)->getInstList().push_back((yyvsp[(2) - (2)].InstVal)); + (yyval.BasicBlockVal) = (yyvsp[(1) - (2)].BasicBlockVal); CHECK_FOR_ERROR ;} break; case 248: -#line 2106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2106 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR @@ -4692,9 +4913,9 @@ break; case 249: -#line 2118 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2118 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[0].StrVal)), true); + (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[(1) - (1)].StrVal)), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -4708,15 +4929,15 @@ break; case 250: -#line 2131 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2131 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Return with a result... - (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal)); + (yyval.TermInstVal) = new ReturnInst((yyvsp[(2) - (2)].ValueVal)); CHECK_FOR_ERROR ;} break; case 251: -#line 2135 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2135 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Return with no result... (yyval.TermInstVal) = new ReturnInst(); CHECK_FOR_ERROR @@ -4724,56 +4945,56 @@ break; case 252: -#line 2139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2139 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... - BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal)); CHECK_FOR_ERROR (yyval.TermInstVal) = new BranchInst(tmpBB); ;} break; case 253: -#line 2144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2144 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal)); + BasicBlock* tmpBBA = getBBVal((yyvsp[(6) - (9)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal)); + BasicBlock* tmpBBB = getBBVal((yyvsp[(9) - (9)].ValIDVal)); CHECK_FOR_ERROR - Value* tmpVal = getVal(Type::BoolTy, (yyvsp[-6].ValIDVal)); + Value* tmpVal = getVal(Type::BoolTy, (yyvsp[(3) - (9)].ValIDVal)); CHECK_FOR_ERROR (yyval.TermInstVal) = new BranchInst(tmpBBA, tmpBBB, tmpVal); ;} break; case 254: -#line 2153 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2153 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal)); + Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) - (9)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (9)].ValIDVal)); CHECK_FOR_ERROR - SwitchInst *S = new SwitchInst(tmpVal, tmpBB, (yyvsp[-1].JumpTable)->size()); + SwitchInst *S = new SwitchInst(tmpVal, tmpBB, (yyvsp[(8) - (9)].JumpTable)->size()); (yyval.TermInstVal) = S; - std::vector >::iterator I = (yyvsp[-1].JumpTable)->begin(), - E = (yyvsp[-1].JumpTable)->end(); + std::vector >::iterator I = (yyvsp[(8) - (9)].JumpTable)->begin(), + E = (yyvsp[(8) - (9)].JumpTable)->end(); for (; I != E; ++I) { if (ConstantInt *CI = dyn_cast(I->first)) S->addCase(CI, I->second); else GEN_ERROR("Switch case is constant, but not a simple integer!"); } - delete (yyvsp[-1].JumpTable); + delete (yyvsp[(8) - (9)].JumpTable); CHECK_FOR_ERROR ;} break; case 255: -#line 2172 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2172 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal)); + Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) - (8)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (8)].ValIDVal)); CHECK_FOR_ERROR SwitchInst *S = new SwitchInst(tmpVal, tmpBB, 0); (yyval.TermInstVal) = S; @@ -4782,17 +5003,17 @@ break; case 256: -#line 2182 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2182 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; - if (!(PFTy = dyn_cast((yyvsp[-10].TypeVal)->get())) || + if (!(PFTy = dyn_cast((yyvsp[(3) - (13)].TypeVal)->get())) || !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector ParamTypes; - if ((yyvsp[-7].ValueList)) { - for (std::vector::iterator I = (yyvsp[-7].ValueList)->begin(), E = (yyvsp[-7].ValueList)->end(); + if ((yyvsp[(6) - (13)].ValueList)) { + for (std::vector::iterator I = (yyvsp[(6) - (13)].ValueList)->begin(), E = (yyvsp[(6) - (13)].ValueList)->end(); I != E; ++I) ParamTypes.push_back((*I)->getType()); } @@ -4800,19 +5021,19 @@ bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); - Ty = FunctionType::get((yyvsp[-10].TypeVal)->get(), ParamTypes, isVarArg); + Ty = FunctionType::get((yyvsp[(3) - (13)].TypeVal)->get(), ParamTypes, isVarArg); PFTy = PointerType::get(Ty); } - Value *V = getVal(PFTy, (yyvsp[-9].ValIDVal)); // Get the function we're calling... + Value *V = getVal(PFTy, (yyvsp[(4) - (13)].ValIDVal)); // Get the function we're calling... CHECK_FOR_ERROR - BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal)); + BasicBlock *Normal = getBBVal((yyvsp[(10) - (13)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock *Except = getBBVal((yyvsp[0].ValIDVal)); + BasicBlock *Except = getBBVal((yyvsp[(13) - (13)].ValIDVal)); CHECK_FOR_ERROR // Create the call node... - if (!(yyvsp[-7].ValueList)) { // Has no arguments? + if (!(yyvsp[(6) - (13)].ValueList)) { // Has no arguments? (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, std::vector()); } else { // Has arguments? // Loop through FunctionType's arguments and ensure they are specified @@ -4820,7 +5041,7 @@ // FunctionType::param_iterator I = Ty->param_begin(); FunctionType::param_iterator E = Ty->param_end(); - std::vector::iterator ArgI = (yyvsp[-7].ValueList)->begin(), ArgE = (yyvsp[-7].ValueList)->end(); + std::vector::iterator ArgI = (yyvsp[(6) - (13)].ValueList)->begin(), ArgE = (yyvsp[(6) - (13)].ValueList)->end(); for (; ArgI != ArgE && I != E; ++ArgI, ++I) if ((*ArgI)->getType() != *I) @@ -4830,18 +5051,18 @@ if (I != E || (ArgI != ArgE && !Ty->isVarArg())) GEN_ERROR("Invalid number of parameters detected!"); - (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, *(yyvsp[-7].ValueList)); + (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, *(yyvsp[(6) - (13)].ValueList)); } - cast((yyval.TermInstVal))->setCallingConv((yyvsp[-11].UIntVal)); + cast((yyval.TermInstVal))->setCallingConv((yyvsp[(2) - (13)].UIntVal)); - delete (yyvsp[-10].TypeVal); - delete (yyvsp[-7].ValueList); + delete (yyvsp[(3) - (13)].TypeVal); + delete (yyvsp[(6) - (13)].ValueList); CHECK_FOR_ERROR ;} break; case 257: -#line 2237 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2237 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnwindInst(); CHECK_FOR_ERROR @@ -4849,7 +5070,7 @@ break; case 258: -#line 2241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2241 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.TermInstVal) = new UnreachableInst(); CHECK_FOR_ERROR @@ -4857,97 +5078,97 @@ break; case 259: -#line 2248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2248 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.JumpTable) = (yyvsp[-5].JumpTable); - Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); + (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable); + Constant *V = cast(getValNonImprovising((yyvsp[(2) - (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal))); CHECK_FOR_ERROR if (V == 0) GEN_ERROR("May only switch on a constant pool value!"); - BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (6)].ValIDVal)); CHECK_FOR_ERROR (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); ;} break; case 260: -#line 2259 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2259 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.JumpTable) = new std::vector >(); - Constant *V = cast(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); + Constant *V = cast(getValNonImprovising((yyvsp[(1) - (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal))); CHECK_FOR_ERROR if (V == 0) GEN_ERROR("May only switch on a constant pool value!"); - BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(5) - (5)].ValIDVal)); CHECK_FOR_ERROR (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); ;} break; case 261: -#line 2272 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2272 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... - setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal)); + setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) - (2)].StrVal)); CHECK_FOR_ERROR - InsertValue((yyvsp[0].InstVal)); - (yyval.InstVal) = (yyvsp[0].InstVal); + InsertValue((yyvsp[(2) - (2)].InstVal)); + (yyval.InstVal) = (yyvsp[(2) - (2)].InstVal); CHECK_FOR_ERROR ;} break; case 262: -#line 2281 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2281 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes (yyval.PHIList) = new std::list >(); - Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal)); + Value* tmpVal = getVal(*(yyvsp[(1) - (6)].TypeVal), (yyvsp[(3) - (6)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(5) - (6)].ValIDVal)); CHECK_FOR_ERROR (yyval.PHIList)->push_back(std::make_pair(tmpVal, tmpBB)); - delete (yyvsp[-5].TypeVal); + delete (yyvsp[(1) - (6)].TypeVal); ;} break; case 263: -#line 2290 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2290 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.PHIList) = (yyvsp[-6].PHIList); - Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal)); + (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList); + Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first->getType(), (yyvsp[(4) - (7)].ValIDVal)); CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal)); + BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (7)].ValIDVal)); CHECK_FOR_ERROR - (yyvsp[-6].PHIList)->push_back(std::make_pair(tmpVal, tmpBB)); + (yyvsp[(1) - (7)].PHIList)->push_back(std::make_pair(tmpVal, tmpBB)); ;} break; case 264: -#line 2300 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2300 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... (yyval.ValueList) = new std::vector(); - (yyval.ValueList)->push_back((yyvsp[0].ValueVal)); + (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal)); ;} break; case 265: -#line 2304 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2304 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValueList) = (yyvsp[-2].ValueList); - (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal)); + (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList); + (yyvsp[(1) - (3)].ValueList)->push_back((yyvsp[(3) - (3)].ValueVal)); CHECK_FOR_ERROR ;} break; case 267: -#line 2311 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2311 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = 0; ;} break; case 268: -#line 2313 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2313 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -4955,7 +5176,7 @@ break; case 269: -#line 2317 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2317 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -4963,106 +5184,106 @@ break; case 270: -#line 2322 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2322 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && - !isa((*(yyvsp[-3].TypeVal)).get())) + if (!(*(yyvsp[(2) - (5)].TypeVal))->isInteger() && !(*(yyvsp[(2) - (5)].TypeVal))->isFloatingPoint() && + !isa((*(yyvsp[(2) - (5)].TypeVal)).get())) GEN_ERROR( "Arithmetic operator requires integer, FP, or packed operands!"); - if (isa((*(yyvsp[-3].TypeVal)).get()) && - ((yyvsp[-4].BinaryOpVal) == Instruction::URem || - (yyvsp[-4].BinaryOpVal) == Instruction::SRem || - (yyvsp[-4].BinaryOpVal) == Instruction::FRem)) + if (isa((*(yyvsp[(2) - (5)].TypeVal)).get()) && + ((yyvsp[(1) - (5)].BinaryOpVal) == Instruction::URem || + (yyvsp[(1) - (5)].BinaryOpVal) == Instruction::SRem || + (yyvsp[(1) - (5)].BinaryOpVal) == Instruction::FRem)) GEN_ERROR("U/S/FRem not supported on packed types!"); - Value* val1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); + Value* val1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); CHECK_FOR_ERROR - Value* val2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal)); + Value* val2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), val1, val2); + (yyval.InstVal) = BinaryOperator::create((yyvsp[(1) - (5)].BinaryOpVal), val1, val2); if ((yyval.InstVal) == 0) GEN_ERROR("binary operator returned null!"); - delete (yyvsp[-3].TypeVal); + delete (yyvsp[(2) - (5)].TypeVal); ;} break; case 271: -#line 2341 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2341 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!(*(yyvsp[-3].TypeVal))->isIntegral()) { - if (!isa((yyvsp[-3].TypeVal)->get()) || - !cast((yyvsp[-3].TypeVal)->get())->getElementType()->isIntegral()) + if (!(*(yyvsp[(2) - (5)].TypeVal))->isIntegral()) { + if (!isa((yyvsp[(2) - (5)].TypeVal)->get()) || + !cast((yyvsp[(2) - (5)].TypeVal)->get())->getElementType()->isIntegral()) GEN_ERROR("Logical operator requires integral operands!"); } - Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); + Value* tmpVal1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal)); + Value* tmpVal2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), tmpVal1, tmpVal2); + (yyval.InstVal) = BinaryOperator::create((yyvsp[(1) - (5)].BinaryOpVal), tmpVal1, tmpVal2); if ((yyval.InstVal) == 0) GEN_ERROR("binary operator returned null!"); - delete (yyvsp[-3].TypeVal); + delete (yyvsp[(2) - (5)].TypeVal); ;} break; case 272: -#line 2356 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2356 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if(isa((*(yyvsp[-3].TypeVal)).get())) { + if(isa((*(yyvsp[(2) - (5)].TypeVal)).get())) { GEN_ERROR( "PackedTypes currently not supported in setcc instructions!"); } - Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); + Value* tmpVal1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal)); + Value* tmpVal2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new SetCondInst((yyvsp[-4].BinaryOpVal), tmpVal1, tmpVal2); + (yyval.InstVal) = new SetCondInst((yyvsp[(1) - (5)].BinaryOpVal), tmpVal1, tmpVal2); if ((yyval.InstVal) == 0) GEN_ERROR("binary operator returned null!"); - delete (yyvsp[-3].TypeVal); + delete (yyvsp[(2) - (5)].TypeVal); ;} break; case 273: -#line 2370 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2370 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (isa((*(yyvsp[-3].TypeVal)).get())) + if (isa((*(yyvsp[(3) - (6)].TypeVal)).get())) GEN_ERROR("Packed types not supported by icmp instruction"); - Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); + Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4) - (6)].ValIDVal)); CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal)); + Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].IPredicate), tmpVal1, tmpVal2); + (yyval.InstVal) = CmpInst::create((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(2) - (6)].IPredicate), tmpVal1, tmpVal2); if ((yyval.InstVal) == 0) GEN_ERROR("icmp operator returned null!"); ;} break; case 274: -#line 2381 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2381 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (isa((*(yyvsp[-3].TypeVal)).get())) + if (isa((*(yyvsp[(3) - (6)].TypeVal)).get())) GEN_ERROR("Packed types not supported by fcmp instruction"); - Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); + Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4) - (6)].ValIDVal)); CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal)); + Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].FPredicate), tmpVal1, tmpVal2); + (yyval.InstVal) = CmpInst::create((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(2) - (6)].FPredicate), tmpVal1, tmpVal2); if ((yyval.InstVal) == 0) GEN_ERROR("fcmp operator returned null!"); ;} break; case 275: -#line 2392 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2392 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - llvm_cerr << "WARNING: Use of eliminated 'not' instruction:" - << " Replacing with 'xor'.\n"; + cerr << "WARNING: Use of eliminated 'not' instruction:" + << " Replacing with 'xor'.\n"; - Value *Ones = ConstantIntegral::getAllOnesValue((yyvsp[0].ValueVal)->getType()); + Value *Ones = ConstantIntegral::getAllOnesValue((yyvsp[(2) - (2)].ValueVal)->getType()); if (Ones == 0) GEN_ERROR("Expected integral type for not instruction!"); - (yyval.InstVal) = BinaryOperator::create(Instruction::Xor, (yyvsp[0].ValueVal), Ones); + (yyval.InstVal) = BinaryOperator::create(Instruction::Xor, (yyvsp[(2) - (2)].ValueVal), Ones); if ((yyval.InstVal) == 0) GEN_ERROR("Could not create a xor instruction!"); CHECK_FOR_ERROR @@ -5070,115 +5291,115 @@ break; case 276: -#line 2405 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2405 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy) + if ((yyvsp[(4) - (4)].ValueVal)->getType() != Type::UByteTy) GEN_ERROR("Shift amount must be ubyte!"); - if (!(yyvsp[-2].ValueVal)->getType()->isInteger()) + if (!(yyvsp[(2) - (4)].ValueVal)->getType()->isInteger()) GEN_ERROR("Shift constant expression requires integer operand!"); CHECK_FOR_ERROR; - (yyval.InstVal) = new ShiftInst((yyvsp[-3].OtherOpVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)); + (yyval.InstVal) = new ShiftInst((yyvsp[(1) - (4)].OtherOpVal), (yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)); CHECK_FOR_ERROR ;} break; case 277: -#line 2414 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2414 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Value* Val = (yyvsp[-2].ValueVal); - const Type* Ty = (yyvsp[0].TypeVal)->get(); + Value* Val = (yyvsp[(2) - (4)].ValueVal); + const Type* Ty = (yyvsp[(4) - (4)].TypeVal)->get(); if (!Val->getType()->isFirstClassType()) GEN_ERROR("cast from a non-primitive type: '" + Val->getType()->getDescription() + "'!"); if (!Ty->isFirstClassType()) GEN_ERROR("cast to a non-primitive type: '" + Ty->getDescription() +"'!"); - (yyval.InstVal) = CastInst::create((yyvsp[-3].CastOpVal), (yyvsp[-2].ValueVal), (yyvsp[0].TypeVal)->get()); - delete (yyvsp[0].TypeVal); + (yyval.InstVal) = CastInst::create((yyvsp[(1) - (4)].CastOpVal), (yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].TypeVal)->get()); + delete (yyvsp[(4) - (4)].TypeVal); ;} break; case 278: -#line 2425 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2425 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy) + if ((yyvsp[(2) - (6)].ValueVal)->getType() != Type::BoolTy) GEN_ERROR("select condition must be boolean!"); - if ((yyvsp[-2].ValueVal)->getType() != (yyvsp[0].ValueVal)->getType()) + if ((yyvsp[(4) - (6)].ValueVal)->getType() != (yyvsp[(6) - (6)].ValueVal)->getType()) GEN_ERROR("select value types should match!"); - (yyval.InstVal) = new SelectInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)); + (yyval.InstVal) = new SelectInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); CHECK_FOR_ERROR ;} break; case 279: -#line 2433 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2433 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal)); - delete (yyvsp[0].TypeVal); + (yyval.InstVal) = new VAArgInst((yyvsp[(2) - (4)].ValueVal), *(yyvsp[(4) - (4)].TypeVal)); + delete (yyvsp[(4) - (4)].TypeVal); CHECK_FOR_ERROR ;} break; case 280: -#line 2438 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2438 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) + if (!ExtractElementInst::isValidOperands((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal))) GEN_ERROR("Invalid extractelement operands!"); - (yyval.InstVal) = new ExtractElementInst((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)); + (yyval.InstVal) = new ExtractElementInst((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)); CHECK_FOR_ERROR ;} break; case 281: -#line 2444 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2444 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) + if (!InsertElementInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal))) GEN_ERROR("Invalid insertelement operands!"); - (yyval.InstVal) = new InsertElementInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)); + (yyval.InstVal) = new InsertElementInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); CHECK_FOR_ERROR ;} break; case 282: -#line 2450 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2450 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal))) + if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal))) GEN_ERROR("Invalid shufflevector operands!"); - (yyval.InstVal) = new ShuffleVectorInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)); + (yyval.InstVal) = new ShuffleVectorInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); CHECK_FOR_ERROR ;} break; case 283: -#line 2456 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2456 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const Type *Ty = (yyvsp[0].PHIList)->front().first->getType(); + const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first->getType(); if (!Ty->isFirstClassType()) GEN_ERROR("PHI node operands must be of first class type!"); (yyval.InstVal) = new PHINode(Ty); - ((PHINode*)(yyval.InstVal))->reserveOperandSpace((yyvsp[0].PHIList)->size()); - while ((yyvsp[0].PHIList)->begin() != (yyvsp[0].PHIList)->end()) { - if ((yyvsp[0].PHIList)->front().first->getType() != Ty) + ((PHINode*)(yyval.InstVal))->reserveOperandSpace((yyvsp[(2) - (2)].PHIList)->size()); + while ((yyvsp[(2) - (2)].PHIList)->begin() != (yyvsp[(2) - (2)].PHIList)->end()) { + if ((yyvsp[(2) - (2)].PHIList)->front().first->getType() != Ty) GEN_ERROR("All elements of a PHI node must be of the same type!"); - cast((yyval.InstVal))->addIncoming((yyvsp[0].PHIList)->front().first, (yyvsp[0].PHIList)->front().second); - (yyvsp[0].PHIList)->pop_front(); + cast((yyval.InstVal))->addIncoming((yyvsp[(2) - (2)].PHIList)->front().first, (yyvsp[(2) - (2)].PHIList)->front().second); + (yyvsp[(2) - (2)].PHIList)->pop_front(); } - delete (yyvsp[0].PHIList); // Free the list... + delete (yyvsp[(2) - (2)].PHIList); // Free the list... CHECK_FOR_ERROR ;} break; case 284: -#line 2471 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2471 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy = 0; const FunctionType *Ty = 0; - if (!(PFTy = dyn_cast((yyvsp[-4].TypeVal)->get())) || + if (!(PFTy = dyn_cast((yyvsp[(3) - (7)].TypeVal)->get())) || !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector ParamTypes; - if ((yyvsp[-1].ValueList)) { - for (std::vector::iterator I = (yyvsp[-1].ValueList)->begin(), E = (yyvsp[-1].ValueList)->end(); + if ((yyvsp[(6) - (7)].ValueList)) { + for (std::vector::iterator I = (yyvsp[(6) - (7)].ValueList)->begin(), E = (yyvsp[(6) - (7)].ValueList)->end(); I != E; ++I) ParamTypes.push_back((*I)->getType()); } @@ -5186,18 +5407,18 @@ bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); - if (!(*(yyvsp[-4].TypeVal))->isFirstClassType() && *(yyvsp[-4].TypeVal) != Type::VoidTy) + if (!(*(yyvsp[(3) - (7)].TypeVal))->isFirstClassType() && *(yyvsp[(3) - (7)].TypeVal) != Type::VoidTy) GEN_ERROR("LLVM functions cannot return aggregate types!"); - Ty = FunctionType::get((yyvsp[-4].TypeVal)->get(), ParamTypes, isVarArg); + Ty = FunctionType::get((yyvsp[(3) - (7)].TypeVal)->get(), ParamTypes, isVarArg); PFTy = PointerType::get(Ty); } - Value *V = getVal(PFTy, (yyvsp[-3].ValIDVal)); // Get the function we're calling... + Value *V = getVal(PFTy, (yyvsp[(4) - (7)].ValIDVal)); // Get the function we're calling... CHECK_FOR_ERROR // Create the call node... - if (!(yyvsp[-1].ValueList)) { // Has no arguments? + if (!(yyvsp[(6) - (7)].ValueList)) { // Has no arguments? // Make sure no arguments is a good thing! if (Ty->getNumParams() != 0) GEN_ERROR("No arguments passed to a function that " @@ -5210,7 +5431,7 @@ // FunctionType::param_iterator I = Ty->param_begin(); FunctionType::param_iterator E = Ty->param_end(); - std::vector::iterator ArgI = (yyvsp[-1].ValueList)->begin(), ArgE = (yyvsp[-1].ValueList)->end(); + std::vector::iterator ArgI = (yyvsp[(6) - (7)].ValueList)->begin(), ArgE = (yyvsp[(6) - (7)].ValueList)->end(); for (; ArgI != ArgE && I != E; ++ArgI, ++I) if ((*ArgI)->getType() != *I) @@ -5220,34 +5441,34 @@ if (I != E || (ArgI != ArgE && !Ty->isVarArg())) GEN_ERROR("Invalid number of parameters detected!"); - (yyval.InstVal) = new CallInst(V, *(yyvsp[-1].ValueList)); + (yyval.InstVal) = new CallInst(V, *(yyvsp[(6) - (7)].ValueList)); } - cast((yyval.InstVal))->setTailCall((yyvsp[-6].BoolVal)); - cast((yyval.InstVal))->setCallingConv((yyvsp[-5].UIntVal)); - delete (yyvsp[-4].TypeVal); - delete (yyvsp[-1].ValueList); + cast((yyval.InstVal))->setTailCall((yyvsp[(1) - (7)].BoolVal)); + cast((yyval.InstVal))->setCallingConv((yyvsp[(2) - (7)].UIntVal)); + delete (yyvsp[(3) - (7)].TypeVal); + delete (yyvsp[(6) - (7)].ValueList); CHECK_FOR_ERROR ;} break; case 285: -#line 2530 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2530 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = (yyvsp[0].InstVal); + (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal); CHECK_FOR_ERROR ;} break; case 286: -#line 2537 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2537 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValueList) = (yyvsp[0].ValueList); + (yyval.ValueList) = (yyvsp[(2) - (2)].ValueList); CHECK_FOR_ERROR ;} break; case 287: -#line 2540 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2540 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.ValueList) = new std::vector(); CHECK_FOR_ERROR @@ -5255,7 +5476,7 @@ break; case 288: -#line 2545 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2545 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = true; CHECK_FOR_ERROR @@ -5263,7 +5484,7 @@ break; case 289: -#line 2549 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2549 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { (yyval.BoolVal) = false; CHECK_FOR_ERROR @@ -5271,117 +5492,115 @@ break; case 290: -#line 2556 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2556 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); - delete (yyvsp[-1].TypeVal); + (yyval.InstVal) = new MallocInst(*(yyvsp[(2) - (3)].TypeVal), 0, (yyvsp[(3) - (3)].UIntVal)); + delete (yyvsp[(2) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 291: -#line 2561 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2561 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); + Value* tmpVal = getVal((yyvsp[(4) - (6)].PrimType), (yyvsp[(5) - (6)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new MallocInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal)); - delete (yyvsp[-4].TypeVal); + (yyval.InstVal) = new MallocInst(*(yyvsp[(2) - (6)].TypeVal), tmpVal, (yyvsp[(6) - (6)].UIntVal)); + delete (yyvsp[(2) - (6)].TypeVal); ;} break; case 292: -#line 2567 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2567 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal)); - delete (yyvsp[-1].TypeVal); + (yyval.InstVal) = new AllocaInst(*(yyvsp[(2) - (3)].TypeVal), 0, (yyvsp[(3) - (3)].UIntVal)); + delete (yyvsp[(2) - (3)].TypeVal); CHECK_FOR_ERROR ;} break; case 293: -#line 2572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2572 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal)); + Value* tmpVal = getVal((yyvsp[(4) - (6)].PrimType), (yyvsp[(5) - (6)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new AllocaInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal)); - delete (yyvsp[-4].TypeVal); + (yyval.InstVal) = new AllocaInst(*(yyvsp[(2) - (6)].TypeVal), tmpVal, (yyvsp[(6) - (6)].UIntVal)); + delete (yyvsp[(2) - (6)].TypeVal); ;} break; case 294: -#line 2578 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2578 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[0].ValueVal)->getType())) + if (!isa((yyvsp[(2) - (2)].ValueVal)->getType())) GEN_ERROR("Trying to free nonpointer type " + - (yyvsp[0].ValueVal)->getType()->getDescription() + "!"); - (yyval.InstVal) = new FreeInst((yyvsp[0].ValueVal)); + (yyvsp[(2) - (2)].ValueVal)->getType()->getDescription() + "!"); + (yyval.InstVal) = new FreeInst((yyvsp[(2) - (2)].ValueVal)); CHECK_FOR_ERROR ;} break; case 295: -#line 2586 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2586 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[-1].TypeVal)->get())) + if (!isa((yyvsp[(3) - (4)].TypeVal)->get())) GEN_ERROR("Can't load from nonpointer type: " + - (*(yyvsp[-1].TypeVal))->getDescription()); - if (!cast((yyvsp[-1].TypeVal)->get())->getElementType()->isFirstClassType()) + (*(yyvsp[(3) - (4)].TypeVal))->getDescription()); + if (!cast((yyvsp[(3) - (4)].TypeVal)->get())->getElementType()->isFirstClassType()) GEN_ERROR("Can't load from pointer of non-first-class type: " + - (*(yyvsp[-1].TypeVal))->getDescription()); - Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); + (*(yyvsp[(3) - (4)].TypeVal))->getDescription()); + Value* tmpVal = getVal(*(yyvsp[(3) - (4)].TypeVal), (yyvsp[(4) - (4)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new LoadInst(tmpVal, "", (yyvsp[-3].BoolVal)); - delete (yyvsp[-1].TypeVal); + (yyval.InstVal) = new LoadInst(tmpVal, "", (yyvsp[(1) - (4)].BoolVal)); + delete (yyvsp[(3) - (4)].TypeVal); ;} break; case 296: -#line 2598 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2598 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - const PointerType *PT = dyn_cast((yyvsp[-1].TypeVal)->get()); + const PointerType *PT = dyn_cast((yyvsp[(5) - (6)].TypeVal)->get()); if (!PT) GEN_ERROR("Can't store to a nonpointer type: " + - (*(yyvsp[-1].TypeVal))->getDescription()); + (*(yyvsp[(5) - (6)].TypeVal))->getDescription()); const Type *ElTy = PT->getElementType(); - if (ElTy != (yyvsp[-3].ValueVal)->getType()) - GEN_ERROR("Can't store '" + (yyvsp[-3].ValueVal)->getType()->getDescription() + + if (ElTy != (yyvsp[(3) - (6)].ValueVal)->getType()) + GEN_ERROR("Can't store '" + (yyvsp[(3) - (6)].ValueVal)->getType()->getDescription() + "' into space of type '" + ElTy->getDescription() + "'!"); - Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); + Value* tmpVal = getVal(*(yyvsp[(5) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new StoreInst((yyvsp[-3].ValueVal), tmpVal, (yyvsp[-5].BoolVal)); - delete (yyvsp[-1].TypeVal); + (yyval.InstVal) = new StoreInst((yyvsp[(3) - (6)].ValueVal), tmpVal, (yyvsp[(1) - (6)].BoolVal)); + delete (yyvsp[(5) - (6)].TypeVal); ;} break; case 297: -#line 2613 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y" +#line 2613 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[-2].TypeVal)->get())) + if (!isa((yyvsp[(2) - (4)].TypeVal)->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); - if (!GetElementPtrInst::getIndexedType(*(yyvsp[-2].TypeVal), *(yyvsp[0].ValueList), true)) + if (!GetElementPtrInst::getIndexedType(*(yyvsp[(2) - (4)].TypeVal), *(yyvsp[(4) - (4)].ValueList), true)) GEN_ERROR("Invalid getelementptr indices for type '" + - (*(yyvsp[-2].TypeVal))->getDescription()+ "'!"); - Value* tmpVal = getVal(*(yyvsp[-2].TypeVal), (yyvsp[-1].ValIDVal)); + (*(yyvsp[(2) - (4)].TypeVal))->getDescription()+ "'!"); + Value* tmpVal = getVal(*(yyvsp[(2) - (4)].TypeVal), (yyvsp[(3) - (4)].ValIDVal)); CHECK_FOR_ERROR - (yyval.InstVal) = new GetElementPtrInst(tmpVal, *(yyvsp[0].ValueList)); - delete (yyvsp[-2].TypeVal); - delete (yyvsp[0].ValueList); + (yyval.InstVal) = new GetElementPtrInst(tmpVal, *(yyvsp[(4) - (4)].ValueList)); + delete (yyvsp[(2) - (4)].TypeVal); + delete (yyvsp[(4) - (4)].ValueList); ;} break; +/* Line 1267 of yacc.c. */ +#line 5598 "llvmAsmParser.tab.c" default: break; } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); -/* Line 1126 of yacc.c. */ -#line 5380 "llvmAsmParser.tab.c" - - yyvsp -= yylen; - yyssp -= yylen; - - + YYPOPSTACK (yylen); + yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -5410,110 +5629,41 @@ if (!yyerrstatus) { ++yynerrs; -#if YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (YYPACT_NINF < yyn && yyn < YYLAST) - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - char *yymsg = 0; -# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -#if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -#endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC