Use toplevel function pass manager as OnTheFly manager.
[oota-llvm.git] / tools / llvm-upgrade / UpgradeParser.cpp.cvs
index 2eebb7108b332d81c5e5c5bdb487eec0429c4c96..29a733a252061eece25a696964dcfe3e5e8ab578 100644 (file)
 
 
 /* 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 "UpgradeInternals.h"
 #include "llvm/CallingConv.h"
@@ -748,7 +748,7 @@ static bool FuncTysDifferOnlyBySRet(const FunctionType *F1,
     PAL2 = *F2->getParamAttrs();
   if (PAL1.getParamAttrs(0) != PAL2.getParamAttrs(0))
     return false;
-  unsigned SRetMask = ~unsigned(StructRetAttribute);
+  unsigned SRetMask = ~unsigned(ParamAttr::StructRet);
   for (unsigned i = 0; i < F1->getNumParams(); ++i) {
     if (F1->getParamType(i) != F2->getParamType(i) ||
         unsigned(PAL1.getParamAttrs(i+1)) & SRetMask !=
@@ -793,7 +793,7 @@ static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) {
     const FunctionType *FT2 = dyn_cast<FunctionType>(PF2->getElementType());
     if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) {
       const ParamAttrsList *PAL2 = FT2->getParamAttrs();
-      if (PAL2 && PAL2->paramHasAttr(1, StructRetAttribute))
+      if (PAL2 && PAL2->paramHasAttr(1, ParamAttr::StructRet))
         return V;
       else if (Constant *C = dyn_cast<Constant>(V))
         return ConstantExpr::getBitCast(C, PF1);
@@ -1134,7 +1134,8 @@ static void ResolveTypeTo(char *Name, const Type *ToTy, const Signedness& Sign){
     D = ValID::create((int)CurModule.Types.size());
   D.S.copy(Sign);
 
-  CurModule.NamedTypeSigns[Name] = Sign;
+  if (Name)
+    CurModule.NamedTypeSigns[Name] = Sign;
 
   std::map<ValID, PATypeHolder>::iterator I =
     CurModule.LateResolveTypes.find(D);
@@ -1293,8 +1294,9 @@ ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
   // of this global in the module and emit warnings if there are conflicts.
   if (!Name.empty()) {
     // The global has a name. See if there's an existing one of the same name.
-    if (CurModule.CurrentModule->getNamedGlobal(Name)) {
-      // We found an existing global ov the same name. This isn't allowed 
+    if (CurModule.CurrentModule->getNamedGlobal(Name) ||
+        CurModule.CurrentModule->getFunction(Name)) {
+      // We found an existing global of the same name. This isn't allowed 
       // in LLVM 2.0. Consequently, we must alter the name of the global so it
       // can at least compile. This can happen because of type planes 
       // There is alread a global of the same name which means there is a
@@ -1888,56 +1890,84 @@ upgradeIntrinsicCall(const Type* RetTy, const ValID &ID,
   return 0;
 }
 
-const Type* upgradeGEPIndices(const Type* PTy, 
-                       std::vector<ValueInfo> *Indices, 
-                       std::vector<Value*>    &VIndices, 
-                       std::vector<Constant*> *CIndices = 0) {
-  // Traverse the indices with a gep_type_iterator so we can build the list
-  // of constant and value indices for use later. Also perform upgrades
-  VIndices.clear();
-  if (CIndices) CIndices->clear();
-  for (unsigned i = 0, e = Indices->size(); i != e; ++i)
-    VIndices.push_back((*Indices)[i].V);
-  generic_gep_type_iterator<std::vector<Value*>::iterator>
-    GTI = gep_type_begin(PTy, VIndices.begin(),  VIndices.end()),
-    GTE = gep_type_end(PTy,  VIndices.begin(),  VIndices.end());
-  for (unsigned i = 0, e = Indices->size(); i != e && GTI != GTE; ++i, ++GTI) {
-    Value *Index = VIndices[i];
-    if (CIndices && !isa<Constant>(Index))
-      error("Indices to constant getelementptr must be constants");
-    // LLVM 1.2 and earlier used ubyte struct indices.  Convert any ubyte 
-    // struct indices to i32 struct indices with ZExt for compatibility.
-    else if (isa<StructType>(*GTI)) {        // Only change struct indices
-      if (ConstantInt *CUI = dyn_cast<ConstantInt>(Index))
-        if (CUI->getType()->getBitWidth() == 8)
-          Index = 
-            ConstantExpr::getCast(Instruction::ZExt, CUI, Type::Int32Ty);
+const Type* upgradeGEPCEIndices(const Type* PTy, 
+                                std::vector<ValueInfo> *Indices, 
+                                std::vector<Constant*> &Result) {
+  const Type *Ty = PTy;
+  Result.clear();
+  for (unsigned i = 0, e = Indices->size(); i != e ; ++i) {
+    Constant *Index = cast<Constant>((*Indices)[i].V);
+
+    if (ConstantInt *CI = dyn_cast<ConstantInt>(Index)) {
+      // LLVM 1.2 and earlier used ubyte struct indices.  Convert any ubyte 
+      // struct indices to i32 struct indices with ZExt for compatibility.
+      if (CI->getBitWidth() < 32)
+        Index = ConstantExpr::getCast(Instruction::ZExt, CI, Type::Int32Ty);
+    }
+    
+    if (isa<SequentialType>(Ty)) {
+      // Make sure that unsigned SequentialType indices are zext'd to 
+      // 64-bits if they were smaller than that because LLVM 2.0 will sext 
+      // all indices for SequentialType elements. We must retain the same 
+      // semantic (zext) for unsigned types.
+      if (const IntegerType *Ity = dyn_cast<IntegerType>(Index->getType())) {
+        if (Ity->getBitWidth() < 64 && (*Indices)[i].S.isUnsigned()) {
+          Index = ConstantExpr::getCast(Instruction::ZExt, Index,Type::Int64Ty);
+        }
+      }
+    }
+    Result.push_back(Index);
+    Ty = GetElementPtrInst::getIndexedType(PTy, (Value**)&Result[0], 
+                                           Result.size(),true);
+    if (!Ty)
+      error("Index list invalid for constant getelementptr");
+  }
+  return Ty;
+}
+
+const Type* upgradeGEPInstIndices(const Type* PTy, 
+                                  std::vector<ValueInfo> *Indices, 
+                                  std::vector<Value*>    &Result) {
+  const Type *Ty = PTy;
+  Result.clear();
+  for (unsigned i = 0, e = Indices->size(); i != e ; ++i) {
+    Value *Index = (*Indices)[i].V;
+
+    if (ConstantInt *CI = dyn_cast<ConstantInt>(Index)) {
+      // LLVM 1.2 and earlier used ubyte struct indices.  Convert any ubyte 
+      // struct indices to i32 struct indices with ZExt for compatibility.
+      if (CI->getBitWidth() < 32)
+        Index = ConstantExpr::getCast(Instruction::ZExt, CI, Type::Int32Ty);
+    }
+    
+
+    if (isa<StructType>(Ty)) {        // Only change struct indices
+      if (!isa<Constant>(Index)) {
+        error("Invalid non-constant structure index");
+        return 0;
+      }
     } else {
       // Make sure that unsigned SequentialType indices are zext'd to 
       // 64-bits if they were smaller than that because LLVM 2.0 will sext 
       // all indices for SequentialType elements. We must retain the same 
       // semantic (zext) for unsigned types.
-      if (const IntegerType *Ity = dyn_cast<IntegerType>(Index->getType()))
+      if (const IntegerType *Ity = dyn_cast<IntegerType>(Index->getType())) {
         if (Ity->getBitWidth() < 64 && (*Indices)[i].S.isUnsigned()) {
-          if (CIndices)
+          if (isa<Constant>(Index))
             Index = ConstantExpr::getCast(Instruction::ZExt, 
               cast<Constant>(Index), Type::Int64Ty);
           else
             Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
               makeNameUnique("gep"), CurBB);
-          VIndices[i] = Index;
         }
+      }
     }
-    // Add to the CIndices list, if requested.
-    if (CIndices)
-      CIndices->push_back(cast<Constant>(Index));
-  }
-
-  const Type *IdxTy =
-    GetElementPtrInst::getIndexedType(PTy, &VIndices[0], VIndices.size(), true);
-    if (!IdxTy)
+    Result.push_back(Index);
+    Ty = GetElementPtrInst::getIndexedType(PTy, &Result[0], Result.size(),true);
+    if (!Ty)
       error("Index list invalid for constant getelementptr");
-  return IdxTy;
+  }
+  return Ty;
 }
 
 unsigned upgradeCallingConv(unsigned CC) {
@@ -2117,7 +2147,7 @@ using namespace llvm;
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1771 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -2160,7 +2190,7 @@ typedef union YYSTYPE {
   llvm::Module::Endianness          Endianness;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 2164 "UpgradeParser.tab.c"
+#line 2194 "UpgradeParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -2172,7 +2202,7 @@ typedef union YYSTYPE {
 
 
 /* Line 219 of yacc.c.  */
-#line 2176 "UpgradeParser.tab.c"
+#line 2206 "UpgradeParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -2532,38 +2562,38 @@ static const short int yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1881,  1881,  1882,  1890,  1891,  1901,  1901,  1901,  1901,
-    1901,  1901,  1901,  1901,  1901,  1901,  1901,  1905,  1905,  1905,
-    1909,  1909,  1909,  1909,  1909,  1909,  1913,  1913,  1914,  1914,
-    1915,  1915,  1916,  1916,  1917,  1917,  1921,  1921,  1922,  1922,
-    1923,  1923,  1924,  1924,  1925,  1925,  1926,  1926,  1927,  1927,
-    1928,  1929,  1932,  1932,  1932,  1932,  1936,  1936,  1936,  1936,
-    1936,  1936,  1936,  1937,  1937,  1937,  1937,  1937,  1937,  1943,
-    1943,  1943,  1943,  1947,  1947,  1947,  1947,  1951,  1951,  1955,
-    1955,  1960,  1963,  1968,  1969,  1970,  1971,  1972,  1973,  1974,
-    1975,  1979,  1980,  1981,  1982,  1983,  1984,  1985,  1986,  1996,
-    1997,  2005,  2006,  2014,  2023,  2024,  2031,  2032,  2036,  2040,
-    2056,  2057,  2064,  2065,  2072,  2080,  2080,  2080,  2080,  2080,
-    2080,  2080,  2081,  2081,  2081,  2081,  2081,  2086,  2090,  2094,
-    2099,  2108,  2126,  2132,  2145,  2156,  2160,  2173,  2177,  2191,
-    2195,  2202,  2203,  2209,  2216,  2228,  2258,  2271,  2294,  2322,
-    2344,  2355,  2377,  2388,  2397,  2402,  2461,  2468,  2476,  2483,
-    2490,  2494,  2498,  2507,  2522,  2535,  2544,  2572,  2585,  2594,
-    2600,  2606,  2617,  2623,  2629,  2640,  2641,  2650,  2651,  2663,
-    2672,  2673,  2674,  2675,  2676,  2692,  2712,  2714,  2716,  2716,
-    2723,  2723,  2731,  2731,  2739,  2739,  2748,  2750,  2752,  2757,
-    2771,  2772,  2776,  2779,  2787,  2791,  2798,  2802,  2806,  2810,
-    2818,  2818,  2822,  2823,  2827,  2835,  2840,  2848,  2849,  2856,
-    2863,  2867,  3049,  3049,  3053,  3053,  3063,  3063,  3067,  3072,
-    3073,  3074,  3078,  3079,  3078,  3091,  3092,  3097,  3098,  3099,
-    3100,  3104,  3108,  3109,  3110,  3111,  3132,  3136,  3150,  3151,
-    3156,  3156,  3164,  3174,  3177,  3186,  3197,  3202,  3211,  3222,
-    3222,  3225,  3229,  3233,  3238,  3248,  3266,  3275,  3345,  3349,
-    3356,  3368,  3383,  3413,  3423,  3433,  3437,  3444,  3445,  3449,
-    3452,  3458,  3477,  3495,  3511,  3525,  3539,  3550,  3568,  3577,
-    3586,  3593,  3614,  3638,  3644,  3650,  3656,  3672,  3762,  3770,
-    3771,  3775,  3776,  3780,  3786,  3793,  3799,  3806,  3813,  3826,
-    3852
+       0,  1911,  1911,  1912,  1920,  1921,  1931,  1931,  1931,  1931,
+    1931,  1931,  1931,  1931,  1931,  1931,  1931,  1935,  1935,  1935,
+    1939,  1939,  1939,  1939,  1939,  1939,  1943,  1943,  1944,  1944,
+    1945,  1945,  1946,  1946,  1947,  1947,  1951,  1951,  1952,  1952,
+    1953,  1953,  1954,  1954,  1955,  1955,  1956,  1956,  1957,  1957,
+    1958,  1959,  1962,  1962,  1962,  1962,  1966,  1966,  1966,  1966,
+    1966,  1966,  1966,  1967,  1967,  1967,  1967,  1967,  1967,  1973,
+    1973,  1973,  1973,  1977,  1977,  1977,  1977,  1981,  1981,  1985,
+    1985,  1990,  1993,  1998,  1999,  2000,  2001,  2002,  2003,  2004,
+    2005,  2009,  2010,  2011,  2012,  2013,  2014,  2015,  2016,  2026,
+    2027,  2035,  2036,  2044,  2053,  2054,  2061,  2062,  2066,  2070,
+    2086,  2087,  2094,  2095,  2102,  2110,  2110,  2110,  2110,  2110,
+    2110,  2110,  2111,  2111,  2111,  2111,  2111,  2116,  2120,  2124,
+    2129,  2138,  2156,  2162,  2175,  2186,  2190,  2203,  2207,  2221,
+    2225,  2232,  2233,  2239,  2246,  2258,  2288,  2301,  2324,  2352,
+    2374,  2385,  2407,  2418,  2427,  2432,  2491,  2498,  2506,  2513,
+    2520,  2524,  2528,  2537,  2552,  2564,  2573,  2601,  2614,  2623,
+    2629,  2635,  2646,  2652,  2658,  2669,  2670,  2679,  2680,  2692,
+    2701,  2702,  2703,  2704,  2705,  2721,  2741,  2743,  2745,  2745,
+    2752,  2752,  2760,  2760,  2768,  2768,  2777,  2779,  2781,  2786,
+    2800,  2801,  2805,  2808,  2816,  2820,  2827,  2831,  2835,  2839,
+    2847,  2847,  2851,  2852,  2856,  2864,  2869,  2877,  2878,  2885,
+    2892,  2896,  3083,  3083,  3087,  3087,  3097,  3097,  3101,  3106,
+    3107,  3108,  3112,  3113,  3112,  3125,  3126,  3131,  3132,  3133,
+    3134,  3138,  3142,  3143,  3144,  3145,  3166,  3170,  3184,  3185,
+    3190,  3190,  3198,  3208,  3211,  3220,  3231,  3236,  3245,  3256,
+    3256,  3259,  3263,  3267,  3272,  3282,  3300,  3309,  3379,  3383,
+    3390,  3402,  3417,  3447,  3457,  3467,  3471,  3478,  3479,  3483,
+    3486,  3492,  3511,  3529,  3545,  3559,  3573,  3584,  3602,  3611,
+    3620,  3627,  3648,  3672,  3678,  3684,  3690,  3706,  3796,  3804,
+    3805,  3809,  3810,  3814,  3820,  3827,  3833,  3840,  3847,  3860,
+    3886
 };
 #endif
 
@@ -3953,7 +3983,7 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 1882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1912 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3962,7 +3992,7 @@ yyreduce:
     break;
 
   case 5:
-#line 1891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1921 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3971,226 +4001,226 @@ yyreduce:
     break;
 
   case 26:
-#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1943 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 27:
-#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1943 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 28:
-#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 29:
-#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1944 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 30:
-#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 31:
-#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1945 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 32:
-#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1946 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 33:
-#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1946 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 34:
-#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 35:
-#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1947 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 36:
-#line 1921 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1951 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 37:
-#line 1921 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1951 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 38:
-#line 1922 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1952 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 39:
-#line 1922 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1952 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 40:
-#line 1923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1953 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 41:
-#line 1923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1953 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 42:
-#line 1924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1954 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 43:
-#line 1924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1954 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 44:
-#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 45:
-#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1955 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 46:
-#line 1926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1956 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 47:
-#line 1926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1956 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 48:
-#line 1927 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1957 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 49:
-#line 1927 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1957 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 50:
-#line 1928 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1958 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 51:
-#line 1929 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1959 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 81:
-#line 1960 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1990 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
   ;}
     break;
 
   case 82:
-#line 1963 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1993 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = 0;
   ;}
     break;
 
   case 83:
-#line 1968 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1998 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 84:
-#line 1969 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1999 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 85:
-#line 1970 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2000 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 86:
-#line 1971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2001 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 87:
-#line 1972 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2002 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 88:
-#line 1973 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2003 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 89:
-#line 1974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2004 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 90:
-#line 1975 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2005 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 91:
-#line 1979 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2009 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 92:
-#line 1980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2010 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 93:
-#line 1981 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2011 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::CSRet; ;}
     break;
 
   case 94:
-#line 1982 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2012 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::Fast; ;}
     break;
 
   case 95:
-#line 1983 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2013 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::Cold; ;}
     break;
 
   case 96:
-#line 1984 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2014 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::X86_StdCall; ;}
     break;
 
   case 97:
-#line 1985 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2015 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = OldCallingConv::X86_FastCall; ;}
     break;
 
   case 98:
-#line 1986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2016 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
       error("Calling conv too large");
@@ -4199,12 +4229,12 @@ yyreduce:
     break;
 
   case 99:
-#line 1996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2026 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 100:
-#line 1997 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2027 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4213,12 +4243,12 @@ yyreduce:
     break;
 
   case 101:
-#line 2005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2035 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 102:
-#line 2006 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2036 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4227,7 +4257,7 @@ yyreduce:
     break;
 
   case 103:
-#line 2014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2044 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
       if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -4237,27 +4267,27 @@ yyreduce:
     break;
 
   case 104:
-#line 2023 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2053 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 105:
-#line 2024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2054 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
   case 106:
-#line 2031 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2061 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 107:
-#line 2032 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2062 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 108:
-#line 2036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2066 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4265,7 +4295,7 @@ yyreduce:
     break;
 
   case 109:
-#line 2040 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2070 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       error("Alignment must be a power of two");
@@ -4275,7 +4305,7 @@ yyreduce:
     break;
 
   case 111:
-#line 2057 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2087 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S.makeSignless();
@@ -4283,7 +4313,7 @@ yyreduce:
     break;
 
   case 113:
-#line 2065 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2095 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S.makeSignless();
@@ -4291,7 +4321,7 @@ yyreduce:
     break;
 
   case 114:
-#line 2072 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2102 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!UpRefs.empty())
       error("Invalid upreference in type: " + (*(yyvsp[0].TypeVal).PAT)->getDescription());
@@ -4300,7 +4330,7 @@ yyreduce:
     break;
 
   case 127:
-#line 2086 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2116 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T);
     (yyval.TypeVal).S.copy((yyvsp[0].PrimType).S);
@@ -4308,7 +4338,7 @@ yyreduce:
     break;
 
   case 128:
-#line 2090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2120 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeVal).PAT = new PATypeHolder(OpaqueType::get());
     (yyval.TypeVal).S.makeSignless();
@@ -4316,7 +4346,7 @@ yyreduce:
     break;
 
   case 129:
-#line 2094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2124 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {            // Named types are also simple types...
     (yyval.TypeVal).S.copy(getTypeSign((yyvsp[0].ValIDVal)));
     const Type* tmp = getType((yyvsp[0].ValIDVal));
@@ -4325,7 +4355,7 @@ yyreduce:
     break;
 
   case 130:
-#line 2099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2129 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) 
       error("Value out of range");
@@ -4338,7 +4368,7 @@ yyreduce:
     break;
 
   case 131:
-#line 2108 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2138 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {           // Function derived type?
     (yyval.TypeVal).S.makeComposite((yyvsp[-3].TypeVal).S);
     std::vector<const Type*> Params;
@@ -4360,7 +4390,7 @@ yyreduce:
     break;
 
   case 132:
-#line 2126 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2156 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {          // Sized array type?
     (yyval.TypeVal).S.makeComposite((yyvsp[-1].TypeVal).S);
     (yyval.TypeVal).PAT = new PATypeHolder(HandleUpRefs(ArrayType::get((yyvsp[-1].TypeVal).PAT->get(), 
@@ -4370,7 +4400,7 @@ yyreduce:
     break;
 
   case 133:
-#line 2132 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2162 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {          // Vector type?
     const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).PAT->get();
     if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -4387,7 +4417,7 @@ yyreduce:
     break;
 
   case 134:
-#line 2145 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2175 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     (yyval.TypeVal).S.makeComposite();
@@ -4402,7 +4432,7 @@ yyreduce:
     break;
 
   case 135:
-#line 2156 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2186 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal).PAT = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     (yyval.TypeVal).S.makeComposite();
@@ -4410,7 +4440,7 @@ yyreduce:
     break;
 
   case 136:
-#line 2160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2190 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                // Packed Structure type?
     (yyval.TypeVal).S.makeComposite();
     std::vector<const Type*> Elements;
@@ -4427,7 +4457,7 @@ yyreduce:
     break;
 
   case 137:
-#line 2173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2203 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                          // Empty packed structure type?
     (yyval.TypeVal).PAT = new PATypeHolder(StructType::get(std::vector<const Type*>(),true));
     (yyval.TypeVal).S.makeComposite();
@@ -4435,7 +4465,7 @@ yyreduce:
     break;
 
   case 138:
-#line 2177 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2207 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                             // Pointer type?
     if ((yyvsp[-1].TypeVal).PAT->get() == Type::LabelTy)
       error("Cannot form a pointer to a basic block");
@@ -4447,7 +4477,7 @@ yyreduce:
     break;
 
   case 139:
-#line 2191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2221 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); 
@@ -4455,14 +4485,14 @@ yyreduce:
     break;
 
   case 140:
-#line 2195 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2225 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal));
   ;}
     break;
 
   case 142:
-#line 2203 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2233 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     PATypeInfo VoidTI;
     VoidTI.PAT = new PATypeHolder(Type::VoidTy);
@@ -4472,7 +4502,7 @@ yyreduce:
     break;
 
   case 143:
-#line 2209 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2239 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     PATypeInfo VoidTI;
@@ -4483,14 +4513,14 @@ yyreduce:
     break;
 
   case 144:
-#line 2216 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2246 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
   ;}
     break;
 
   case 145:
-#line 2228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2258 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal).PAT->get());
     if (ATy == 0)
@@ -4524,7 +4554,7 @@ yyreduce:
     break;
 
   case 146:
-#line 2258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2288 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).PAT->get());
     if (ATy == 0)
@@ -4541,7 +4571,7 @@ yyreduce:
     break;
 
   case 147:
-#line 2271 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2301 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).PAT->get());
     if (ATy == 0)
@@ -4568,7 +4598,7 @@ yyreduce:
     break;
 
   case 148:
-#line 2294 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2324 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const VectorType *PTy = dyn_cast<VectorType>((yyvsp[-3].TypeVal).PAT->get());
     if (PTy == 0)
@@ -4600,7 +4630,7 @@ yyreduce:
     break;
 
   case 149:
-#line 2322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2352 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal).PAT->get());
     if (STy == 0)
@@ -4626,7 +4656,7 @@ yyreduce:
     break;
 
   case 150:
-#line 2344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2374 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal).PAT->get());
     if (STy == 0)
@@ -4641,7 +4671,7 @@ yyreduce:
     break;
 
   case 151:
-#line 2355 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2385 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal).PAT->get());
     if (STy == 0)
@@ -4667,7 +4697,7 @@ yyreduce:
     break;
 
   case 152:
-#line 2377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2407 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-4].TypeVal).PAT->get());
     if (STy == 0)
@@ -4682,7 +4712,7 @@ yyreduce:
     break;
 
   case 153:
-#line 2388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2418 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).PAT->get());
     if (PTy == 0)
@@ -4695,7 +4725,7 @@ yyreduce:
     break;
 
   case 154:
-#line 2397 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2427 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVal).C = UndefValue::get((yyvsp[-1].TypeVal).PAT->get());
     (yyval.ConstVal).S.copy((yyvsp[-1].TypeVal).S);
@@ -4704,7 +4734,7 @@ yyreduce:
     break;
 
   case 155:
-#line 2402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2432 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal).PAT->get());
     if (Ty == 0)
@@ -4767,7 +4797,7 @@ yyreduce:
     break;
 
   case 156:
-#line 2461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2491 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).PAT->get() != (yyvsp[0].ConstVal).C->getType())
       error("Mismatched types for constant expression");
@@ -4778,7 +4808,7 @@ yyreduce:
     break;
 
   case 157:
-#line 2468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2498 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).PAT->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
@@ -4790,7 +4820,7 @@ yyreduce:
     break;
 
   case 158:
-#line 2476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2506 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {      // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].SInt64Val)))
@@ -4801,7 +4831,7 @@ yyreduce:
     break;
 
   case 159:
-#line 2483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2513 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {            // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].UInt64Val)))
@@ -4812,7 +4842,7 @@ yyreduce:
     break;
 
   case 160:
-#line 2490 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2520 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                      // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, true);
     (yyval.ConstVal).S.makeUnsigned();
@@ -4820,7 +4850,7 @@ yyreduce:
     break;
 
   case 161:
-#line 2494 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2524 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                     // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, false);
     (yyval.ConstVal).S.makeUnsigned();
@@ -4828,7 +4858,7 @@ yyreduce:
     break;
 
   case 162:
-#line 2498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2528 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType).T, (yyvsp[0].FPVal)))
       error("Floating point constant invalid for type");
@@ -4838,7 +4868,7 @@ yyreduce:
     break;
 
   case 163:
-#line 2507 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2537 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* SrcTy = (yyvsp[-3].ConstVal).C->getType();
     const Type* DstTy = (yyvsp[-1].TypeVal).PAT->get();
@@ -4857,15 +4887,14 @@ yyreduce:
     break;
 
   case 164:
-#line 2522 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2552 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-2].ConstVal).C->getType();
     if (!isa<PointerType>(Ty))
       error("GetElementPtr requires a pointer operand");
 
-    std::vector<Value*> VIndices;
     std::vector<Constant*> CIndices;
-    upgradeGEPIndices((yyvsp[-2].ConstVal).C->getType(), (yyvsp[-1].ValueList), VIndices, &CIndices);
+    upgradeGEPCEIndices((yyvsp[-2].ConstVal).C->getType(), (yyvsp[-1].ValueList), CIndices);
 
     delete (yyvsp[-1].ValueList);
     (yyval.ConstVal).C = ConstantExpr::getGetElementPtr((yyvsp[-2].ConstVal).C, &CIndices[0], CIndices.size());
@@ -4874,7 +4903,7 @@ yyreduce:
     break;
 
   case 165:
-#line 2535 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2564 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-5].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-5].ConstVal).C->getType())->getBitWidth() != 1)
@@ -4887,7 +4916,7 @@ yyreduce:
     break;
 
   case 166:
-#line 2544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2573 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4919,7 +4948,7 @@ yyreduce:
     break;
 
   case 167:
-#line 2572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2601 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4936,7 +4965,7 @@ yyreduce:
     break;
 
   case 168:
-#line 2585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2614 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4949,7 +4978,7 @@ yyreduce:
     break;
 
   case 169:
-#line 2594 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2623 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("icmp operand types must match");
@@ -4959,7 +4988,7 @@ yyreduce:
     break;
 
   case 170:
-#line 2600 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2629 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("fcmp operand types must match");
@@ -4969,7 +4998,7 @@ yyreduce:
     break;
 
   case 171:
-#line 2606 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2635 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-1].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-1].ConstVal).C->getType())->getBitWidth() != 8)
@@ -4984,7 +5013,7 @@ yyreduce:
     break;
 
   case 172:
-#line 2617 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2646 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid extractelement operands");
@@ -4994,7 +5023,7 @@ yyreduce:
     break;
 
   case 173:
-#line 2623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2652 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid insertelement operands");
@@ -5004,7 +5033,7 @@ yyreduce:
     break;
 
   case 174:
-#line 2629 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2658 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid shufflevector operands");
@@ -5014,12 +5043,12 @@ yyreduce:
     break;
 
   case 175:
-#line 2640 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2669 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); ;}
     break;
 
   case 176:
-#line 2641 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2670 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVector) = new std::vector<ConstInfo>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -5027,17 +5056,17 @@ yyreduce:
     break;
 
   case 177:
-#line 2650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2679 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 178:
-#line 2651 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2680 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 179:
-#line 2663 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2692 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
     CurModule.ModuleDone();
@@ -5045,27 +5074,27 @@ yyreduce:
     break;
 
   case 180:
-#line 2672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2701 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); ;}
     break;
 
   case 181:
-#line 2673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2702 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 182:
-#line 2674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2703 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); ;}
     break;
 
   case 183:
-#line 2675 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2704 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 184:
-#line 2676 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2705 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
@@ -5081,7 +5110,7 @@ yyreduce:
     break;
 
   case 185:
-#line 2692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2721 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     // Eagerly resolve types.  This is not an optimization, this is a
     // requirement that is due to the fact that we could have this:
@@ -5105,19 +5134,19 @@ yyreduce:
     break;
 
   case 186:
-#line 2712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2741 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {       // Function prototypes can be in const pool
   ;}
     break;
 
   case 187:
-#line 2714 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2743 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {  // Asm blocks can be in the const pool
   ;}
     break;
 
   case 188:
-#line 2716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2745 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].ConstVal).C == 0) 
       error("Global value initializer is not a constant");
@@ -5126,14 +5155,14 @@ yyreduce:
     break;
 
   case 189:
-#line 2720 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2749 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 190:
-#line 2723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2752 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).PAT->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), Ty, 0,
@@ -5143,14 +5172,14 @@ yyreduce:
     break;
 
   case 191:
-#line 2728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2757 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 192:
-#line 2731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2760 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).PAT->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), Ty, 0,
@@ -5160,14 +5189,14 @@ yyreduce:
     break;
 
   case 193:
-#line 2736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2765 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 194:
-#line 2739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2768 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).PAT->get();
     CurGV = 
@@ -5178,32 +5207,32 @@ yyreduce:
     break;
 
   case 195:
-#line 2745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2774 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 196:
-#line 2748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2777 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 197:
-#line 2750 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2779 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
   ;}
     break;
 
   case 198:
-#line 2752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2781 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 199:
-#line 2757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2786 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
     char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -5218,24 +5247,24 @@ yyreduce:
     break;
 
   case 200:
-#line 2771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2800 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::BigEndian; ;}
     break;
 
   case 201:
-#line 2772 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2801 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::LittleEndian; ;}
     break;
 
   case 202:
-#line 2776 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2805 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.setEndianness((yyvsp[0].Endianness));
   ;}
     break;
 
   case 203:
-#line 2779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2808 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) == 32)
       CurModule.setPointerSize(Module::Pointer32);
@@ -5247,7 +5276,7 @@ yyreduce:
     break;
 
   case 204:
-#line 2787 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2816 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -5255,7 +5284,7 @@ yyreduce:
     break;
 
   case 205:
-#line 2791 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2820 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -5263,7 +5292,7 @@ yyreduce:
     break;
 
   case 207:
-#line 2802 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2831 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
       CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
       free((yyvsp[0].StrVal));
@@ -5271,7 +5300,7 @@ yyreduce:
     break;
 
   case 208:
-#line 2806 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2835 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -5279,17 +5308,17 @@ yyreduce:
     break;
 
   case 209:
-#line 2810 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2839 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { ;}
     break;
 
   case 213:
-#line 2823 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2852 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 214:
-#line 2827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2856 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).PAT->get() == Type::VoidTy)
       error("void typed arguments are invalid");
@@ -5298,7 +5327,7 @@ yyreduce:
     break;
 
   case 215:
-#line 2835 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2864 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5307,7 +5336,7 @@ yyreduce:
     break;
 
   case 216:
-#line 2840 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2869 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5316,12 +5345,12 @@ yyreduce:
     break;
 
   case 217:
-#line 2848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2877 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = (yyvsp[0].ArgList); ;}
     break;
 
   case 218:
-#line 2849 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2878 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     PATypeInfo VoidTI;
@@ -5332,7 +5361,7 @@ yyreduce:
     break;
 
   case 219:
-#line 2856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2885 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     PATypeInfo VoidTI;
@@ -5343,12 +5372,12 @@ yyreduce:
     break;
 
   case 220:
-#line 2863 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2892 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = 0; ;}
     break;
 
   case 221:
-#line 2867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2896 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     UnEscapeLexed((yyvsp[-5].StrVal));
     std::string FunctionName((yyvsp[-5].StrVal));
@@ -5389,8 +5418,8 @@ yyreduce:
     ParamAttrsList *ParamAttrs = 0;
     if ((yyvsp[-7].UIntVal) == OldCallingConv::CSRet) {
       ParamAttrs = new ParamAttrsList();
-      ParamAttrs->addAttributes(0, NoAttributeSet);     // result
-      ParamAttrs->addAttributes(1, StructRetAttribute); // first arg
+      ParamAttrs->addAttributes(0, ParamAttr::None);     // result
+      ParamAttrs->addAttributes(1, ParamAttr::StructRet); // first arg
     }
 
     const FunctionType *FT = 
@@ -5456,7 +5485,7 @@ yyreduce:
               AI->setName("");
         }
       } else if (Conflict) {
-        // We have two globals with the same name and  different types. 
+        // We have two globals with the same name and different types. 
         // Previously, this was permitted because the symbol table had 
         // "type planes" and names only needed to be distinct within a 
         // type plane. After PR411 was fixed, this is no loner the case. 
@@ -5490,8 +5519,13 @@ yyreduce:
         Fn = new Function(FT, CurFun.Linkage, FunctionName, M);
         InsertValue(Fn, CurModule.Values);
       }
+    } else {
+      // There's no conflict, just define the function
+      Fn = new Function(FT, CurFun.Linkage, FunctionName, M);
+      InsertValue(Fn, CurModule.Values);
     }
 
+
     CurFun.FunctionStart(Fn);
 
     if (CurFun.isDeclare) {
@@ -5531,12 +5565,12 @@ yyreduce:
     break;
 
   case 224:
-#line 3053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3087 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = (yyvsp[0].Linkage); ;}
     break;
 
   case 225:
-#line 3053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3087 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -5547,39 +5581,39 @@ yyreduce:
     break;
 
   case 228:
-#line 3067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3101 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 229:
-#line 3072 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3106 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 230:
-#line 3073 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3107 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 231:
-#line 3074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3108 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 232:
-#line 3078 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3112 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 233:
-#line 3079 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3113 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = (yyvsp[0].Linkage); ;}
     break;
 
   case 234:
-#line 3079 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3113 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
@@ -5588,32 +5622,32 @@ yyreduce:
     break;
 
   case 235:
-#line 3091 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3125 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 236:
-#line 3092 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3126 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 237:
-#line 3097 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3131 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); ;}
     break;
 
   case 238:
-#line 3098 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3132 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); ;}
     break;
 
   case 239:
-#line 3099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3133 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); ;}
     break;
 
   case 240:
-#line 3100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3134 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, true));
     (yyval.ValIDVal).S.makeUnsigned();
@@ -5621,7 +5655,7 @@ yyreduce:
     break;
 
   case 241:
-#line 3104 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3138 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, false)); 
     (yyval.ValIDVal).S.makeUnsigned();
@@ -5629,22 +5663,22 @@ yyreduce:
     break;
 
   case 242:
-#line 3108 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3142 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createNull(); ;}
     break;
 
   case 243:
-#line 3109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3143 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createUndef(); ;}
     break;
 
   case 244:
-#line 3110 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3144 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createZeroInit(); ;}
     break;
 
   case 245:
-#line 3111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3145 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0].C->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -5669,7 +5703,7 @@ yyreduce:
     break;
 
   case 246:
-#line 3132 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3166 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal).C);
     (yyval.ValIDVal).S.copy((yyvsp[0].ConstVal).S);
@@ -5677,7 +5711,7 @@ yyreduce:
     break;
 
   case 247:
-#line 3136 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3170 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -5690,17 +5724,17 @@ yyreduce:
     break;
 
   case 248:
-#line 3150 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3184 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); (yyval.ValIDVal).S.makeSignless(); ;}
     break;
 
   case 249:
-#line 3151 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3185 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); (yyval.ValIDVal).S.makeSignless(); ;}
     break;
 
   case 252:
-#line 3164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3198 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { 
     const Type *Ty = (yyvsp[-1].TypeVal).PAT->get();
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S);
@@ -5711,21 +5745,21 @@ yyreduce:
     break;
 
   case 253:
-#line 3174 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3208 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 254:
-#line 3177 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3211 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 255:
-#line 3186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3220 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     ValueInfo VI; VI.V = (yyvsp[0].TermInstVal).TI; VI.S.copy((yyvsp[0].TermInstVal).S);
     setValueName(VI, (yyvsp[-1].StrVal));
@@ -5737,7 +5771,7 @@ yyreduce:
     break;
 
   case 256:
-#line 3197 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3231 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].InstVal).I)
       (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal).I);
@@ -5746,7 +5780,7 @@ yyreduce:
     break;
 
   case 257:
-#line 3202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3236 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++),true);
     // Make sure to move the basic block to the correct location in the
@@ -5759,7 +5793,7 @@ yyreduce:
     break;
 
   case 258:
-#line 3211 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3245 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
     // Make sure to move the basic block to the correct location in the
@@ -5772,7 +5806,7 @@ yyreduce:
     break;
 
   case 261:
-#line 3225 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3259 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {              // Return with a result...
     (yyval.TermInstVal).TI = new ReturnInst((yyvsp[0].ValueVal).V);
     (yyval.TermInstVal).S.makeSignless();
@@ -5780,7 +5814,7 @@ yyreduce:
     break;
 
   case 262:
-#line 3229 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3263 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                                       // Return with no result...
     (yyval.TermInstVal).TI = new ReturnInst();
     (yyval.TermInstVal).S.makeSignless();
@@ -5788,7 +5822,7 @@ yyreduce:
     break;
 
   case 263:
-#line 3233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3267 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {                         // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     (yyval.TermInstVal).TI = new BranchInst(tmpBB);
@@ -5797,7 +5831,7 @@ yyreduce:
     break;
 
   case 264:
-#line 3238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3272 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {  
     (yyvsp[-3].ValIDVal).S.makeSignless();
     (yyvsp[0].ValIDVal).S.makeSignless();
@@ -5811,7 +5845,7 @@ yyreduce:
     break;
 
   case 265:
-#line 3248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3282 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-6].ValIDVal).S.copy((yyvsp[-7].PrimType).S);
     Value* tmpVal = getVal((yyvsp[-7].PrimType).T, (yyvsp[-6].ValIDVal));
@@ -5833,7 +5867,7 @@ yyreduce:
     break;
 
   case 266:
-#line 3266 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3300 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-5].ValIDVal).S.copy((yyvsp[-6].PrimType).S);
     Value* tmpVal = getVal((yyvsp[-6].PrimType).T, (yyvsp[-5].ValIDVal));
@@ -5846,7 +5880,7 @@ yyreduce:
     break;
 
   case 267:
-#line 3276 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3310 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -5867,8 +5901,8 @@ yyreduce:
       ParamAttrsList *ParamAttrs = 0;
       if ((yyvsp[-11].UIntVal) == OldCallingConv::CSRet) {
         ParamAttrs = new ParamAttrsList();
-        ParamAttrs->addAttributes(0, NoAttributeSet);      // Function result
-        ParamAttrs->addAttributes(1, StructRetAttribute);  // first param
+        ParamAttrs->addAttributes(0, ParamAttr::None);      // Function result
+        ParamAttrs->addAttributes(1, ParamAttr::StructRet);  // first param
       }
       bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy;
       if (isVarArg) ParamTypes.pop_back();
@@ -5919,7 +5953,7 @@ yyreduce:
     break;
 
   case 268:
-#line 3345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3379 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal).TI = new UnwindInst();
     (yyval.TermInstVal).S.makeSignless();
@@ -5927,7 +5961,7 @@ yyreduce:
     break;
 
   case 269:
-#line 3349 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3383 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal).TI = new UnreachableInst();
     (yyval.TermInstVal).S.makeSignless();
@@ -5935,7 +5969,7 @@ yyreduce:
     break;
 
   case 270:
-#line 3356 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3390 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     (yyvsp[-3].ValIDVal).S.copy((yyvsp[-4].PrimType).S);
@@ -5951,7 +5985,7 @@ yyreduce:
     break;
 
   case 271:
-#line 3368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3402 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     (yyvsp[-3].ValIDVal).S.copy((yyvsp[-4].PrimType).S);
@@ -5967,7 +6001,7 @@ yyreduce:
     break;
 
   case 272:
-#line 3383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3417 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     bool omit = false;
     if ((yyvsp[-1].StrVal))
@@ -6000,7 +6034,7 @@ yyreduce:
     break;
 
   case 273:
-#line 3413 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3447 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for PHI nodes
     (yyval.PHIList).P = new std::list<std::pair<Value*, BasicBlock*> >();
     (yyval.PHIList).S.copy((yyvsp[-5].TypeVal).S);
@@ -6014,7 +6048,7 @@ yyreduce:
     break;
 
   case 274:
-#line 3423 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3457 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     (yyvsp[-3].ValIDVal).S.copy((yyvsp[-6].PHIList).S);
@@ -6026,7 +6060,7 @@ yyreduce:
     break;
 
   case 275:
-#line 3433 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3467 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for call statements, and memory insts...
     (yyval.ValueList) = new std::vector<ValueInfo>();
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -6034,7 +6068,7 @@ yyreduce:
     break;
 
   case 276:
-#line 3437 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3471 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
@@ -6042,26 +6076,26 @@ yyreduce:
     break;
 
   case 278:
-#line 3445 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3479 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = 0; ;}
     break;
 
   case 279:
-#line 3449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3483 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = true;
   ;}
     break;
 
   case 280:
-#line 3452 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3486 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = false;
   ;}
     break;
 
   case 281:
-#line 3458 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3492 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
@@ -6084,7 +6118,7 @@ yyreduce:
     break;
 
   case 282:
-#line 3477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3511 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
@@ -6106,7 +6140,7 @@ yyreduce:
     break;
 
   case 283:
-#line 3495 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3529 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
@@ -6126,7 +6160,7 @@ yyreduce:
     break;
 
   case 284:
-#line 3511 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3545 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
@@ -6144,7 +6178,7 @@ yyreduce:
     break;
 
   case 285:
-#line 3525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3559 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S);
@@ -6162,7 +6196,7 @@ yyreduce:
     break;
 
   case 286:
-#line 3539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3573 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     warning("Use of obsolete 'not' instruction: Replacing with 'xor");
     const Type *Ty = (yyvsp[0].ValueVal).V->getType();
@@ -6177,7 +6211,7 @@ yyreduce:
     break;
 
   case 287:
-#line 3550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3584 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[0].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[0].ValueVal).V->getType())->getBitWidth() != 8)
@@ -6199,7 +6233,7 @@ yyreduce:
     break;
 
   case 288:
-#line 3568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3602 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *DstTy = (yyvsp[0].TypeVal).PAT->get();
     if (!DstTy->isFirstClassType())
@@ -6212,7 +6246,7 @@ yyreduce:
     break;
 
   case 289:
-#line 3577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3611 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-4].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-4].ValueVal).V->getType())->getBitWidth() != 1)
@@ -6225,7 +6259,7 @@ yyreduce:
     break;
 
   case 290:
-#line 3586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3620 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).PAT->get();
     NewVarArgs = true;
@@ -6236,7 +6270,7 @@ yyreduce:
     break;
 
   case 291:
-#line 3593 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3627 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).PAT->get();
@@ -6261,7 +6295,7 @@ yyreduce:
     break;
 
   case 292:
-#line 3614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3648 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).PAT->get();
@@ -6289,7 +6323,7 @@ yyreduce:
     break;
 
   case 293:
-#line 3638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3672 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid extractelement operands");
@@ -6299,7 +6333,7 @@ yyreduce:
     break;
 
   case 294:
-#line 3644 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3678 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid insertelement operands");
@@ -6309,7 +6343,7 @@ yyreduce:
     break;
 
   case 295:
-#line 3650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3684 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid shufflevector operands");
@@ -6319,7 +6353,7 @@ yyreduce:
     break;
 
   case 296:
-#line 3656 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3690 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList).P->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -6339,7 +6373,7 @@ yyreduce:
     break;
 
   case 297:
-#line 3672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3706 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     // Handle the short call syntax
     const PointerType *PFTy;
@@ -6369,8 +6403,8 @@ yyreduce:
       ParamAttrsList *ParamAttrs = 0;
       if ((yyvsp[-5].UIntVal) == OldCallingConv::CSRet) {
         ParamAttrs = new ParamAttrsList();
-        ParamAttrs->addAttributes(0, NoAttributeSet);     // function result
-        ParamAttrs->addAttributes(1, StructRetAttribute); // first parameter
+        ParamAttrs->addAttributes(0, ParamAttr::None);     // function result
+        ParamAttrs->addAttributes(1, ParamAttr::StructRet); // first parameter
       }
 
       FTy = FunctionType::get(RetTy, ParamTypes, isVarArg, ParamAttrs);
@@ -6433,34 +6467,34 @@ yyreduce:
     break;
 
   case 298:
-#line 3762 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3796 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
   ;}
     break;
 
   case 299:
-#line 3770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3804 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = (yyvsp[0].ValueList); ;}
     break;
 
   case 300:
-#line 3771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3805 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = new std::vector<ValueInfo>(); ;}
     break;
 
   case 301:
-#line 3775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3809 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 302:
-#line 3776 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3810 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 303:
-#line 3780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3814 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).PAT->get();
     (yyval.InstVal).S.makeComposite((yyvsp[-1].TypeVal).S);
@@ -6470,7 +6504,7 @@ yyreduce:
     break;
 
   case 304:
-#line 3786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3820 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).PAT->get();
     (yyvsp[-1].ValIDVal).S.makeUnsigned();
@@ -6481,7 +6515,7 @@ yyreduce:
     break;
 
   case 305:
-#line 3793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3827 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).PAT->get();
     (yyval.InstVal).S.makeComposite((yyvsp[-1].TypeVal).S);
@@ -6491,7 +6525,7 @@ yyreduce:
     break;
 
   case 306:
-#line 3799 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3833 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).PAT->get();
     (yyvsp[-1].ValIDVal).S.makeUnsigned();
@@ -6502,7 +6536,7 @@ yyreduce:
     break;
 
   case 307:
-#line 3806 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3840 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *PTy = (yyvsp[0].ValueVal).V->getType();
     if (!isa<PointerType>(PTy))
@@ -6513,7 +6547,7 @@ yyreduce:
     break;
 
   case 308:
-#line 3813 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3847 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-1].TypeVal).PAT->get();
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S);
@@ -6530,7 +6564,7 @@ yyreduce:
     break;
 
   case 309:
-#line 3826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3860 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S);
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).PAT->get());
@@ -6560,7 +6594,7 @@ yyreduce:
     break;
 
   case 310:
-#line 3852 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3886 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyvsp[-1].ValIDVal).S.copy((yyvsp[-2].TypeVal).S);
     const Type* Ty = (yyvsp[-2].TypeVal).PAT->get();
@@ -6568,7 +6602,7 @@ yyreduce:
       error("getelementptr insn requires pointer operand");
 
     std::vector<Value*> VIndices;
-    upgradeGEPIndices(Ty, (yyvsp[0].ValueList), VIndices);
+    upgradeGEPInstIndices(Ty, (yyvsp[0].ValueList), VIndices);
 
     Value* tmpVal = getVal(Ty, (yyvsp[-1].ValIDVal));
     (yyval.InstVal).I = new GetElementPtrInst(tmpVal, &VIndices[0], VIndices.size());
@@ -6584,7 +6618,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 6588 "UpgradeParser.tab.c"
+#line 6622 "UpgradeParser.tab.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -6852,7 +6886,7 @@ yyreturn:
 }
 
 
-#line 3870 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3904 "/proj/llvm/llvm-2/tools/llvm-upgrade/UpgradeParser.y"
 
 
 int yyerror(const char *ErrorMsg) {