diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 8d4cbdb..d974729 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -399,7 +399,7 @@
   }
 
   if (V1Size != ~0U && V2Size != ~0U)
-    if (const User *GEP = isGEP(V1)) {
+    if (isGEP(V1)) {
       std::vector<Value*> GEPOperands;
       const Value *BasePtr = GetGEPOperands(V1, GEPOperands);
 
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 8acbe8e..169cd65 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -512,7 +512,6 @@
       // try merge with NewTy: struct {t1, t2, stuff...} if offset lands exactly on a field in Ty
       if (isa<StructType>(NewTy) && isa<StructType>(Ty)) {
         DEBUG(std::cerr << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n");
-        unsigned O = 0;
         const StructType *STy = cast<StructType>(Ty);
         const StructLayout &SL = *TD.getStructLayout(STy);
         unsigned i = SL.getElementContainingOffset(Offset);
@@ -537,7 +536,6 @@
       //try merge with NewTy: struct : {t1, t2, T} if offset lands on a field in Ty
       if (isa<StructType>(Ty)) {
         DEBUG(std::cerr << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n");
-        unsigned O = 0;
         const StructType *STy = cast<StructType>(Ty);
         const StructLayout &SL = *TD.getStructLayout(STy);
         unsigned i = SL.getElementContainingOffset(Offset);
@@ -1280,9 +1278,9 @@
 
   if (GlobalValue *GV = dyn_cast<GlobalValue>(Ptr)) {
     N->addGlobal(GV);
-  } else if (MallocInst *MI = dyn_cast<MallocInst>(Ptr)) {
+  } else if (isa<MallocInst>(Ptr)) {
     N->setHeapNodeMarker();
-  } else if (AllocaInst *AI = dyn_cast<AllocaInst>(Ptr)) {
+  } else if (isa<AllocaInst>(Ptr)) {
     N->setAllocaNodeMarker();
   } else {
     assert(0 && "Illegal memory object input!");
@@ -1777,8 +1775,10 @@
 
   // Scan the call list cleaning it up as necessary...
   DSNodeHandle LastCalleeNode;
+#if 0
   Function *LastCalleeFunc = 0;
   unsigned NumDuplicateCalls = 0;
+#endif
   bool LastCalleeContainsExternalFunction = false;
 
   unsigned NumDeleted = 0;
@@ -2187,7 +2187,6 @@
   } while (Iterate);
 
   // Move dead aux function calls to the end of the list
-  unsigned CurIdx = 0;
   for (std::list<DSCallSite>::iterator CI = AuxFunctionCalls.begin(),
          E = AuxFunctionCalls.end(); CI != E; )
     if (AuxFCallsAlive.count(&*CI))
diff --git a/lib/Analysis/DataStructure/EquivClassGraphs.cpp b/lib/Analysis/DataStructure/EquivClassGraphs.cpp
index 9126ef9..e28f421 100644
--- a/lib/Analysis/DataStructure/EquivClassGraphs.cpp
+++ b/lib/Analysis/DataStructure/EquivClassGraphs.cpp
@@ -256,8 +256,6 @@
 
     for (++SI; SI != FuncECs.member_end(); ++SI) {
       Function *F = *SI;
-      DSGraph *&FG = DSInfo[F];
-
       DSGraph &CBUGraph = CBU->getDSGraph(*F);
       if (GraphsMerged.insert(&CBUGraph).second) {
         // Record the "folded" graph for the function.
diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp
index f0bb22c..d9e171b 100644
--- a/lib/Analysis/DataStructure/Local.cpp
+++ b/lib/Analysis/DataStructure/Local.cpp
@@ -409,7 +409,7 @@
       unsigned FieldNo =
            (unsigned)cast<ConstantInt>(I.getOperand())->getZExtValue();
       Offset += (unsigned)TD.getStructLayout(STy)->MemberOffsets[FieldNo];
-    } else if (const PointerType *PTy = dyn_cast<PointerType>(*I)) {
+    } else if (isa<PointerType>(*I)) {
       if (!isa<Constant>(I.getOperand()) ||
           !cast<Constant>(I.getOperand())->isNullValue())
         Value.getNode()->setArrayMarker();
diff --git a/lib/Analysis/IPA/Andersens.cpp b/lib/Analysis/IPA/Andersens.cpp
index bb3f254..de6cb5a 100644
--- a/lib/Analysis/IPA/Andersens.cpp
+++ b/lib/Analysis/IPA/Andersens.cpp
@@ -374,7 +374,6 @@
   if (Function *F = CS.getCalledFunction())
     if (F->isExternal()) {
       Node *N1 = getNode(P);
-      bool PointsToUniversalSet = false;
 
       if (N1->begin() == N1->end())
         return NoModRef;  // P doesn't point to anything.
diff --git a/lib/AsmParser/Lexer.cpp.cvs b/lib/AsmParser/Lexer.cpp.cvs
index 5791e2b..d11bfa0 100644
--- a/lib/AsmParser/Lexer.cpp.cvs
+++ b/lib/AsmParser/Lexer.cpp.cvs
@@ -17,7 +17,7 @@
 #define yylineno llvmAsmlineno
 
 #line 20 "Lexer.cpp"
-/* A lexical scanner generated by flex */
+/* A lexical scanner generated by flex*/
 
 /* Scanner skeleton version:
  * $Header$
@@ -28,6 +28,7 @@
 #define YY_FLEX_MINOR_VERSION 5
 
 #include <stdio.h>
+#include <unistd.h>
 
 
 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -41,7 +42,6 @@
 #ifdef __cplusplus
 
 #include <stdlib.h>
-#include <unistd.h>
 
 /* Use prototypes in function declarations. */
 #define YY_USE_PROTOS
@@ -153,6 +153,15 @@
 
 #define unput(c) yyunput( c, yytext_ptr )
 
+/* Some routines like yy_flex_realloc() are emitted as static but are
+   not called by all lexers. This generates warnings in some compilers,
+   notably GCC. Arrange to suppress these. */
+#ifdef __GNUC__
+#define YY_MAY_BE_UNUSED __attribute__((unused))
+#else
+#define YY_MAY_BE_UNUSED
+#endif
+
 /* The following is because we cannot portably get our hands on size_t
  * (without autoconf's help, which isn't available because we want
  * flex-generated scanners to compile on their own).
@@ -259,7 +268,7 @@
 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
 
 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
 static void yy_flex_free YY_PROTO(( void * ));
 
 #define yy_new_buffer yy_create_buffer
@@ -308,35 +317,35 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 114
-#define YY_END_OF_BUFFER 115
-static yyconst short int yy_acclist[192] =
+#define YY_NUM_RULES 120
+#define YY_END_OF_BUFFER 121
+static yyconst short int yy_acclist[198] =
     {   0,
-      115,  113,  114,  112,  113,  114,  112,  114,  113,  114,
-      113,  114,  113,  114,  113,  114,  113,  114,  113,  114,
-      105,  113,  114,  105,  113,  114,    1,  113,  114,  113,
-      114,  113,  114,  113,  114,  113,  114,  113,  114,  113,
-      114,  113,  114,  113,  114,  113,  114,  113,  114,  113,
-      114,  113,  114,  113,  114,  113,  114,  113,  114,  113,
-      114,  113,  114,  113,  114,  113,  114,  113,  114,  113,
-      114,  104,  102,  101,  101,  108,  106,  110,  105,    1,
-       87,   41,   69,   23,  104,  101,  101,  109,  110,   20,
-      110,  111,   63,   68,   39,   34,   42,   66,    3,   54,
+      121,  119,  120,  118,  119,  120,  118,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+      111,  119,  120,  111,  119,  120,    1,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  110,  108,  107,  107,  114,  112,  116,  111,    1,
+       93,   41,   75,   23,  110,  107,  107,  115,  116,   20,
+      116,  117,   63,   74,   39,   34,   42,   66,    3,   54,
 
-       65,   25,   77,   67,   86,   81,   82,   64,   70,  103,
-      110,  110,   49,   78,   79,   94,   95,   56,   22,  107,
-       26,    4,   61,   55,   48,   11,  110,   36,    2,    5,
-       58,   60,   50,   72,   76,   74,   75,   73,   71,   52,
-       96,   51,   57,   21,   84,   93,   45,   59,   30,   24,
-       44,    7,   89,   33,   92,   38,   62,   80,   88,   27,
-       28,   90,   53,   85,   83,   43,    6,   29,   37,    8,
-       17,    9,   10,   35,   12,   14,   13,   32,   40,   15,
-       31,   91,   97,   99,  100,   16,   46,   98,   18,   47,
-       19
+       65,   25,   83,   70,   92,   87,   88,   64,   76,  109,
+      116,  116,   49,   84,   85,   69,  100,   73,  101,   56,
+       22,  113,   68,   72,   26,    4,   61,   67,   55,   71,
+       48,   11,  116,   36,    2,    5,   58,   60,   50,   78,
+       82,   80,   81,   79,   77,   52,  102,   51,   57,   21,
+       90,   99,   45,   59,   30,   24,   44,    7,   95,   33,
+       98,   38,   62,   86,   94,   27,   28,   96,   53,   91,
+       89,   43,    6,   29,   37,    8,   17,    9,   10,   35,
+       12,   14,   13,   32,   40,   15,   31,   97,  103,  105,
+      106,   16,   46,  104,   18,   47,   19
 
     } ;
 
-static yyconst short int yy_accept[511] =
+static yyconst short int yy_accept[527] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   11,   13,   15,
        17,   19,   21,   24,   27,   30,   32,   34,   36,   38,
@@ -346,54 +355,56 @@
        81,   81,   81,   81,   81,   81,   81,   81,   81,   82,
        82,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   84,   84,   84,
+       83,   83,   83,   83,   83,   83,   83,   83,   84,   84,
        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   86,   87,   89,   90,   91,   92,
-       92,   93,   94,   94,   94,   95,   95,   96,   96,   97,
-       97,   97,   97,   98,   98,   98,   98,   98,   98,   98,
-       99,   99,   99,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  101,  101,  101,  101,  101,  101,
-      101,  101,  101,  102,  103,  103,  103,  104,  104,  105,
-      106,  106,  106,  106,  106,  106,  107,  107,  108,  108,
-      108,  108,  109,  109,  109,  109,  109,  109,  109,  109,
+       84,   84,   84,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   86,
+       87,   89,   90,   91,   92,   92,   93,   94,   94,   94,
+       95,   95,   96,   96,   97,   97,   97,   97,   98,   98,
+       98,   98,   98,   98,   98,   99,   99,   99,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  102,
+      103,  103,  103,  104,  104,  105,  106,  106,  106,  106,
+      106,  106,  106,  107,  107,  108,  108,  108,  108,  108,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
 
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  110,  110,  111,  112,  112,  112,
       112,  113,  113,  113,  113,  113,  114,  115,  116,  116,
       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
-      116,  116,  116,  116,  116,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  118,  119,  119,  119,  120,
-      120,  120,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  122,  122,  122,  123,  124,
-      124,  125,  125,  125,  125,  125,  125,  125,  125,  125,
-      125,  126,  126,  127,  127,  127,  128,  129,  129,  129,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      116,  116,  116,  116,  117,  117,  118,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  120,  121,  121,
+      121,  122,  122,  122,  123,  123,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  125,  125,  125,  126,
+      126,  126,  127,  128,  128,  129,  130,  130,  130,  130,
+      130,  130,  131,  131,  131,  131,  131,  132,  132,  133,
 
-      130,  130,  130,  130,  131,  131,  132,  132,  132,  132,
-      132,  132,  132,  133,  133,  133,  133,  133,  133,  133,
-      134,  134,  134,  135,  136,  137,  138,  139,  140,  141,
-      141,  141,  142,  142,  142,  142,  143,  144,  145,  145,
-      145,  145,  145,  145,  146,  146,  146,  146,  146,  146,
-      147,  147,  148,  148,  148,  148,  148,  148,  148,  148,
-      149,  150,  151,  151,  151,  152,  152,  153,  153,  153,
-      153,  154,  154,  155,  156,  157,  158,  158,  158,  159,
-      159,  159,  160,  161,  162,  162,  162,  163,  164,  165,
-      166,  166,  166,  166,  166,  166,  166,  167,  167,  168,
+      133,  133,  134,  135,  135,  135,  136,  136,  136,  136,
+      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
+      137,  137,  138,  138,  138,  138,  138,  138,  138,  139,
+      139,  139,  139,  139,  139,  139,  140,  140,  140,  141,
+      142,  143,  144,  145,  146,  147,  147,  147,  148,  148,
+      148,  148,  149,  150,  151,  151,  151,  151,  151,  151,
+      152,  152,  152,  152,  152,  152,  153,  153,  154,  154,
+      154,  154,  154,  154,  154,  154,  155,  156,  157,  157,
+      157,  158,  158,  159,  159,  159,  159,  160,  160,  161,
+      162,  163,  164,  164,  164,  165,  165,  165,  166,  167,
 
-      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
-      169,  169,  170,  170,  170,  170,  170,  170,  170,  170,
-      170,  170,  171,  171,  171,  171,  171,  172,  172,  172,
-      172,  172,  173,  174,  174,  174,  174,  174,  174,  175,
-      175,  175,  175,  176,  176,  177,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      179,  179,  179,  179,  179,  179,  179,  179,  180,  180,
-      180,  180,  180,  180,  181,  181,  181,  181,  181,  182,
-      182,  182,  183,  183,  183,  183,  183,  183,  183,  183,
-      183,  183,  183,  183,  183,  183,  184,  184,  185,  186,
+      168,  168,  168,  169,  170,  171,  172,  172,  172,  172,
+      172,  172,  172,  173,  173,  174,  175,  175,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  175,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  177,  177,
+      177,  177,  177,  178,  178,  178,  178,  178,  179,  180,
+      180,  180,  180,  180,  180,  181,  181,  181,  181,  182,
+      182,  183,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  185,  185,  185,  185,
+      185,  185,  185,  185,  186,  186,  186,  186,  186,  186,
+      187,  187,  187,  187,  187,  188,  188,  188,  189,  189,
 
-      187,  187,  188,  188,  189,  190,  191,  191,  192,  192
+      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
+      189,  189,  190,  190,  191,  192,  193,  193,  194,  194,
+      195,  196,  197,  197,  198,  198
     } ;
 
 static yyconst int yy_ec[256] =
@@ -437,260 +448,265 @@
         3,    3,    3
     } ;
 
-static yyconst short int yy_base[515] =
+static yyconst short int yy_base[531] =
     {   0,
-        0,    0, 1108, 1109, 1109, 1109, 1103, 1092,   36,   40,
+        0,    0, 1140, 1141, 1141, 1141, 1135, 1124,   36,   40,
        44,   50,   56,   62,    0,   63,   66,   81,   89,   47,
-       90,   91,   76,   96,  108,   49,   97,  110,   68,  137,
-      120,  168,  112,  115,  135,  127, 1101, 1109, 1090, 1109,
-        0,  158,  173,  180,  196,   70,  201,  216,  221,    0,
-      121,  152,  123,  139,  166,  140,  162,  184, 1089,  222,
-      180,   31,  186,  119,  232,  208,  144,  225,  234,  236,
-      235,  188,  238,  240,  246,  241,  245,  203,  248,  256,
-      254,  258,  262,  252,  272,  274, 1088,  276,  278,  280,
-      255,  253,  283,  284,  285,  286,  288,  297,  300, 1087,
+      100,   97,   76,   96,  111,   49,  113,  110,   68,  140,
+      126,  171,  119,  118,  139,  133, 1133, 1141, 1122, 1141,
+        0,  176,  184,  199,  204,   70,  209,  224,  229,    0,
+      117,  130,  150,   72,  160,  151,  159,  123, 1121,  230,
+      178,   31,   69,  168,  240,   95,  233,  165,  241,  243,
+      242,  156,  244,  246,  187,  251,  253,  254,  211,  258,
+      256,  263,  260,  265,  190,  267,  283, 1120,  271,  274,
+      270,  285,  289,  290,  291,  292,  294,  295,  297,  299,
 
-      301,  292,  295,  307,  309,  318,  316,  315,  322,  312,
-      147,  329,  330, 1086,    0,  344,  349, 1085,  363,  380,
-        0, 1084,  338,  336, 1083,  355, 1082,  356, 1081,  353,
-      367,  334, 1080,  375,  365,  381,  384,  370,  371, 1079,
-      388,  392,  391,  393,  394,  395,  396,  400,  399,  407,
-      406,  409,  411,  413,  410,  414,  418,  421,  425,  426,
-      427,  429, 1078, 1077,  430,  431, 1076,  435, 1075, 1074,
-      458,  436,  439,  434,  469, 1073,  449, 1072,  438,  441,
-      458, 1071,  471,  472,  474,  473,  481,  482,  475,  476,
-      483,  488,  489,  493,  495,  496,  504,  501,  503,  505,
+      296,  308, 1119,  311,  300,  318,  320,  322,  323,  330,
+      325,  328,  327,  337,  342,  216,  336,  345, 1118,    0,
+      362,  366, 1117,  380,  397,    0, 1116,  370,  349, 1115,
+      373, 1114,  355, 1113,  371,  372,  384, 1112,  392,  326,
+      399,  398,  401,  402, 1111,  405,  404,  406,  411,  412,
+      409,  413,  415,  422,  423,  425,  424,  426,  428,  429,
+      435,  442,  374,  443,  444,  445,  446,  447, 1110, 1109,
+      448,  449, 1108,  450, 1107, 1106,  476,  454,  455,  464,
+      459,  488, 1105,  470, 1104,  490,  489,  460,  492, 1103,
+      493,  494,  495,  496,  501,  502,  504,  507,  508,  512,
 
-      510,  507,  516, 1070,  511, 1109,  527,  541,  545,  549,
-      554,  555,  440,  556,  557, 1069, 1068, 1067,  558,  559,
-      560,  517,  528,  518,  561,  189,  562,  563,  566,  569,
-      570,  567,  564,  578, 1066,  579,  581,  580,  584,  587,
-      592,  595,  591,  596, 1065, 1064,  597,  598, 1063,  593,
-      599,    0,  603,  607,  614,  604,  616,  618,  619,  600,
-      626,  629,  631,  630, 1062,  633,  632, 1061, 1060,  634,
-     1059,  635,  644,  645,  648,  649,  650,  651,  652,  655,
-     1058,  656, 1057,  659,  657,  677, 1056,  660,  519, 1055,
-      661,  662,  677,  678,  664,  680,  687,  688,  689,  691,
+      514,  517,  519,  520,  521,  518,  457,  522,  526,  530,
+      539,  540,  541, 1102,  524, 1141,  550,  564,  568,  572,
+      577,  578,  458,  579,  580, 1101, 1100, 1099,  581,  582,
+      583,  584,  550,  585,  525,  586,  589,  551,  590,  587,
+      607,  591,  594, 1098,  592, 1097, 1096,  603,  611,  610,
+      593,  613,  617,  620,  621,  622, 1095, 1094,  623,  625,
+     1093,  624,  626,    0,  627, 1092,  629,  638,  630,  643,
+      644,  646,  628,  647,  654, 1091,  656,  661, 1090,  660,
+      658, 1089, 1088,  662, 1087, 1086,  659,  664,  672,  675,
+      676, 1085,  677,  678,  679,  681, 1084,  682, 1083,  684,
 
-      690,  692,  693, 1054,  694, 1053,  695,  696,  699,  697,
-      702,  703, 1052,  705,  714,  710,  716,  718,  721, 1051,
-      724,  726, 1050, 1049, 1048, 1047, 1046, 1045, 1044,  728,
-      729, 1043,  732,  731,  736, 1042, 1041, 1040,  733,  734,
-      738,  735,  737, 1039,  740,  747,  750,  751,  752, 1038,
-      753, 1037,  759,  757,  761,  762,  765,  767,  768, 1036,
-     1035, 1034,  773,  770, 1033,  772, 1032,  775,  781,  791,
-     1031,  792, 1030, 1029, 1028, 1027,  779,  780, 1026,  794,
-      795, 1025, 1024, 1023,  798,  801, 1022, 1021, 1020, 1019,
-      802,  782,  806,  807,  808,  809, 1018,  810, 1017, 1016,
+      683,  690, 1082,  692,  695, 1081,  700,  704,  710,  711,
+      691,  713,  701,  702,  714,  715,  718,  722,  724, 1080,
+      726, 1079,  725,  727,  728,  729,  730,  736, 1078,  737,
+      740,  743,  746,  748,  751, 1077,  735,  738, 1076, 1075,
+     1074, 1073, 1072, 1071, 1070,  756,  758, 1069,  762,  759,
+      763, 1068, 1067, 1066,  764,  766,  767,  765,  769, 1065,
+      770,  776,  778,  777,  779, 1064,  781, 1063,  784,  785,
+      786,  790,  791,  797,  798, 1062, 1061, 1060,  802,  795,
+     1059,  803, 1058,  808,  811,  804, 1057,  805, 1056, 1055,
+     1054, 1053,  810,  821, 1052,  823,  824, 1051, 1050, 1049,
 
-      812,  815,  816,  819,  818,  821,  822,  823,  826,  831,
-      824, 1015,  829,  835,  843,  845,  847,  837,  851,  849,
-      852, 1014,  853,  855,  857,  859, 1013,  861,  862,  864,
-      865, 1012, 1011,  869,  866,  881,  870,  867, 1010,  883,
-      884,  886, 1007,  871,  998,  997,  891,  892,  893,  895,
-      897,  898,  902,  903,  904,  905,  906,  907,  910,  995,
-      914,  908,  912,  918,  921,  923,  919,  994,  925,  929,
-      933,  934,  935,  992,  936,  937,  939,  940,  990,  943,
-      944,  989,  947,  951,  946,  955,  956,  963,  964,  965,
-      966,  968,  969,  967,  970,  985,  971,  984,  983,  979,
+      822,  825, 1048, 1047, 1046, 1045,  826,  827,  828,  829,
+      830,  833, 1044,  839, 1043, 1042,  840,  843,  844,  845,
+      846,  850,  848,  851,  852,  853,  854, 1041,  858,  863,
+      868,  869,  871,  875,  877,  878,  879, 1040,  881,  885,
+      886,  882, 1037,  887,  889,  888,  894, 1028, 1026,  897,
+      895,  892,  900,  907, 1025,  912,  916,  914, 1024,  917,
+     1023, 1021,  918,  920,  922,  925,  926,  924,  928,  931,
+      933,  932,  934,  936,  938, 1020,  941,  944,  937,  948,
+      949,  950,  952, 1019,  957,  961,  962,  963,  964, 1018,
+      965,  966,  967,  968, 1013,  969,  972, 1010,  973,  976,
 
-      973,  783,  982,  602,  477,  446,  978,  333, 1109, 1013,
-     1015,   83, 1019,   80
+      982,  984,  990,  991,  992,  993,  994,  996,  997,  998,
+      999, 1006, 1000,  896,  893,  633, 1005,  632, 1007,  385,
+      354,  353, 1008,  301, 1141, 1043, 1045,  226, 1049,  166
     } ;
 
-static yyconst short int yy_def[515] =
+static yyconst short int yy_def[531] =
     {   0,
-      509,    1,  509,  509,  509,  509,  510,  511,  512,  509,
-      511,  511,  511,  511,  513,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  510,  509,  511,  509,
-      514,  514,  509,  509,  511,  511,  511,  511,  511,  513,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
+      525,    1,  525,  525,  525,  525,  526,  527,  528,  525,
+      527,  527,  527,  527,  529,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  526,  525,  527,  525,
+      530,  530,  525,  525,  527,  527,  527,  527,  527,  529,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
 
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  509,  514,  514,  509,  511,  511,  511,
-       49,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-       49,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  525,  530,
+      530,  525,  527,  527,  527,   49,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,   49,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
 
-      511,  511,  511,  511,  511,  509,  509,  509,  509,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  171,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  509,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  525,  525,  525,  525,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  177,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
 
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
+      527,  525,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
 
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
 
-      511,  511,  511,  511,  511,  511,  511,  511,    0,  509,
-      509,  509,  509,  509
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,    0,  525,  525,  525,  525,  525
     } ;
 
-static yyconst short int yy_nxt[1153] =
+static yyconst short int yy_nxt[1185] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   14,   14,    4,   15,    8,    8,    8,   16,   17,
        18,   19,   20,   21,   22,    8,   23,    8,   24,   25,
        26,   27,   28,    8,   29,   30,   31,   32,   33,   34,
        35,    8,   36,   42,   40,   43,   43,   43,   43,   44,
-       44,   44,   44,   45,   45,   45,   45,   40,   46,  134,
-       40,  135,   40,   40,   47,   48,   48,   48,   48,   40,
-       47,   48,   48,   48,   48,   40,   40,   69,  118,   40,
-       84,   40,  115,   40,   51,   41,   85,   70,   56,   40,
-       90,   52,   57,   53,   40,   54,   49,   58,   55,   60,
+       44,   44,   44,   45,   45,   45,   45,   40,   46,  139,
+       40,  140,   40,   40,   47,   48,   48,   48,   48,   40,
+       47,   48,   48,   48,   48,   40,   40,   69,  123,   40,
+       85,   40,   40,   40,   51,   40,   86,   70,   56,   40,
+       91,   52,   57,   53,   40,   54,   49,   58,   55,   60,
 
-       59,   61,   40,   40,   40,   76,   77,   64,   71,   40,
-       40,   65,   62,   74,   78,   66,   63,   67,   72,   75,
-       68,   40,   79,   40,   73,   40,   81,   80,   40,   86,
-      108,   87,   40,   40,   40,   88,   40,  110,   99,   82,
-       40,   89,  122,  109,  125,   83,   91,  111,   40,  113,
-       40,  100,   40,   40,  101,  137,   92,   40,  203,   93,
-       40,  102,   94,   95,  128,   40,  112,  116,  116,  116,
-      116,  126,  141,   96,   97,   40,   98,   91,  123,   40,
-      124,   40,   43,   43,   43,   43,  129,  103,  117,   44,
-       44,   44,   44,   40,  104,  127,  105,   40,  106,   40,
+       59,   61,   40,  141,  131,   77,   78,   64,   40,   40,
+       40,   65,   62,   40,   79,   66,   63,   67,   71,   75,
+       68,   72,   80,   40,   40,   76,   40,   81,   73,   82,
+       40,   40,   40,  145,   74,   89,   40,  113,  127,   40,
+      115,   90,   83,   40,  102,   87,   40,   88,   84,   92,
+      114,  116,   40,   40,  135,  118,  128,  103,  129,   93,
+      104,   94,   95,   40,   40,   96,   97,  105,  120,   40,
+      117,  130,   40,   40,   98,  133,   99,  100,   40,  101,
+       92,   40,  153,  134,   40,  121,  121,  121,  121,  132,
+      106,   40,  107,   43,   43,   43,   43,  108,  138,  109,
 
-      133,   40,   40,  107,   47,   45,   45,   45,   45,   40,
-      119,  119,  119,  119,   40,  130,   40,  120,  298,  148,
-      136,   40,  156,  120,   47,   48,   48,   48,   48,   40,
-      121,  121,  121,  121,   40,   40,  121,  121,   40,  121,
-      121,  121,  121,  121,  121,   40,  140,   40,   40,   40,
-      131,   40,  138,   40,   40,  143,  144,  132,   40,   40,
-      149,   40,  142,  146,  139,   40,   40,   40,   40,   40,
-      147,   40,  145,  152,  159,   40,  150,  151,  157,  162,
-      153,  154,  161,  155,  158,   40,  160,   40,  164,   40,
-      163,   40,  166,   40,  172,  171,   40,   40,   40,   40,
+       40,  110,  147,   40,  142,  111,  112,  122,   44,   44,
+       44,   44,   47,   45,   45,   45,   45,   40,  124,  124,
+      124,  124,   40,  156,   40,  125,  170,  213,   41,   40,
+      162,  125,   47,   48,   48,   48,   48,   40,  126,  126,
+      126,  126,   40,   40,  126,  126,   40,  126,  126,  126,
+      126,  126,  126,   40,   40,   40,   40,   40,  136,   40,
+      143,  146,  148,  149,   40,  137,   40,   40,  155,   40,
+      151,   40,  144,   40,  165,  154,   40,  152,   40,  150,
+       40,  168,  157,   40,   40,  158,  166,   40,  163,  159,
+      160,  167,  161,  169,  164,  171,   40,  173,   40,  175,
 
-      165,   40,  167,  173,  168,   40,  180,  182,   40,  169,
-       40,  174,  176,   40,   40,  177,  170,  181,  178,  175,
-       40,  179,   40,  183,  188,   40,  184,  186,   40,   40,
-      202,   40,  197,  198,  185,   40,  189,  190,  187,  192,
-      191,  196,   40,   40,  193,  199,   40,   40,  200,   40,
-      201,   40,  194,  116,  116,  116,  116,  195,  207,  207,
-      207,  207,  212,  204,  205,  208,   40,  213,   40,   40,
-      218,  208,  119,  119,  119,  119,   40,  214,   40,  120,
-       40,  216,  215,   40,   40,  120,  209,  210,   40,  211,
-      211,  211,  211,   40,   40,  217,  219,   40,  223,  224,
+      174,  172,   40,   40,   40,   40,  176,   40,   40,   40,
+       40,  180,   40,   40,   40,  187,  179,  188,  190,  181,
+      183,   40,  191,  184,   40,  177,  185,  182,  189,  186,
+      178,   40,  196,   40,  192,   40,   40,  194,   40,   40,
+       40,   40,  193,   40,  207,  208,  198,  205,  195,   40,
+       40,  201,  199,  206,  200,   40,  202,  209,   40,  197,
+      212,  230,   40,  210,  203,  211,   40,   40,   40,  204,
+      214,  121,  121,  121,  121,  217,  217,  217,  217,  215,
+      223,  225,  218,   40,   40,   40,   40,   40,  218,  124,
+      124,  124,  124,   40,  222,  224,  125,   40,   40,  226,
 
-      220,   40,  222,  221,   40,   40,   40,   40,   40,   40,
-      225,  227,   40,   40,  226,  229,  230,  228,  234,   40,
-       40,  235,   40,   40,   40,  237,   40,   40,  231,  236,
-      232,   40,  233,  239,   40,  240,  242,  238,   40,   40,
-       40,  241,   40,   40,   40,  243,  245,   40,   40,   40,
-      246,   40,   40,   40,   40,  247,  255,  244,  249,   40,
-      288,  261,   40,  262,  250,  251,  248,  252,  252,  252,
-      252,   40,  253,  252,  252,  254,  252,  252,  252,  252,
-      252,  252,   40,  260,   40,   40,   40,   40,   40,   40,
-       40,  256,  263,  257,   40,   40,   40,  258,  266,  259,
+      227,  255,  125,  219,  220,   40,  221,  221,  221,  221,
+       40,   40,   40,  229,   40,   40,  232,   40,   40,   40,
+      228,  231,   40,  237,   40,   40,   40,  235,   40,  233,
+      234,  236,  238,  239,  240,   40,   40,   40,   40,   40,
+      245,   40,   40,  249,  242,  246,  241,  248,   40,  243,
+      251,  252,  247,  244,  250,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,  254,  257,  253,   40,   40,  258,
+       40,   40,   40,   40,  259,  294,  261,   40,  304,  256,
+      263,  268,  262,   40,  260,  264,  264,  264,  264,  276,
+      265,  264,  264,  266,  264,  264,  264,  264,  264,  264,
 
-      265,   40,   40,  268,  269,  267,   40,  264,   40,   40,
-      273,  270,  271,  272,   40,  275,   40,   40,   40,  274,
-       40,  276,  278,   40,   40,  280,  281,  277,  282,   40,
-       40,   40,   40,  284,  283,  279,  207,  207,  207,  207,
-      351,   40,  285,  208,  296,  294,  295,  209,  209,  208,
-      286,  286,  286,  286,  286,  286,  286,  286,  211,  211,
-      211,  211,   40,  211,  211,  211,  211,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,  291,   40,
-       40,  300,   40,   40,  305,  287,  289,  290,  303,  304,
-      299,   40,   40,   40,   40,  292,  293,   40,  301,  308,
-
-       40,  297,  309,  302,   40,   40,   40,  307,   40,   40,
-       40,   40,   40,   40,  306,   40,   40,   40,  310,  312,
-       40,  311,  314,  313,  315,  320,  317,   40,  316,   40,
-      318,   40,   40,  321,  322,  319,  329,  323,  324,   40,
-      326,  328,   40,   40,   40,   40,   40,   40,   40,  330,
-      333,  331,  325,  332,  327,  334,  336,   40,   40,  337,
-      335,   40,   40,   40,   40,   40,  340,  338,   40,   40,
-       40,  339,   40,   40,   40,   40,  344,   40,  350,  341,
-      353,  352,  347,  349,  342,  343,  286,  286,  286,  286,
-       40,   40,  346,   40,  348,  345,  355,  354,  356,  357,
-
+      267,   40,   40,   40,  273,   40,   40,   40,   40,   40,
+      269,  275,  270,  274,   40,   40,  271,   40,  272,  280,
+       40,   40,  279,  282,  283,   40,  277,   40,  281,  278,
+       40,   40,   40,   40,   40,   40,  288,   40,   40,   40,
+      284,  290,  287,   40,  286,  285,  291,  289,  296,  293,
+      292,  297,   40,   40,   40,  301,  295,  298,  300,  217,
+      217,  217,  217,   40,   40,  313,  218,  299,  311,  316,
+      219,  219,  218,  302,  302,  302,  302,  302,  302,  302,
+      302,  221,  221,  221,  221,   40,  221,  221,  221,  221,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,  360,   40,  364,  365,   40,   40,  366,   40,  358,
-      359,  361,  363,   40,  367,  371,  362,   40,  368,   40,
-      374,   40,  370,  369,   40,  372,  373,   40,  375,   40,
-      376,   40,   40,  377,   40,   40,   40,   40,   40,   40,
-       40,   40,  381,   40,  386,  378,  380,  382,  384,  387,
-       40,  389,  379,   40,   40,   40,   40,  383,  392,  385,
-       40,  388,   40,  391,   40,   40,  390,  397,   40,  395,
-       40,   40,  394,   40,  399,   40,   40,  393,   40,  396,
-      403,  404,   40,   40,   40,   40,   40,  407,  401,  402,
 
-      400,  406,  398,  408,   40,   40,  405,   40,   40,  409,
-      412,   40,  410,  411,   40,   40,  413,  418,  414,   40,
-       40,   40,   40,   40,  415,   40,  416,  419,   40,   40,
-      417,   40,   40,  420,   40,   40,   40,   40,  421,   40,
-      428,  423,   40,  429,   40,  422,  424,  427,   40,  425,
-       40,  431,  430,  433,  432,  426,   40,  436,   40,  434,
-       40,  437,   40,  438,   40,   40,   40,  435,   40,  439,
-       40,  441,   40,  440,   40,   40,  443,   40,   40,   40,
-       40,  447,   40,   40,   40,  442,  456,  451,  453,  448,
-      444,  445,  449,  446,   40,  452,   40,   40,  455,   40,
+       40,  307,   40,   40,   40,   40,   40,   40,  303,  305,
+      306,  312,  310,  320,  321,  314,   40,  315,  308,  309,
+       40,  318,  317,   40,   40,  319,   40,  326,  322,  324,
+       40,  323,  325,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,  328,   40,   40,  327,  329,  336,
+      331,   40,  330,  333,  332,  337,   40,   40,  338,   40,
+       40,  334,  335,  339,  345,  340,  342,   40,  344,   40,
+      346,   40,   40,   40,   40,   40,  347,   40,  348,  341,
+      343,  349,  350,  353,  352,   40,  351,  354,   40,   40,
+       40,   40,   40,  356,   40,   40,   40,   40,  355,  302,
 
-      450,  454,  458,  457,   40,   40,   40,  460,   40,  461,
-       40,   40,  459,  464,  462,   40,   40,   40,   40,   40,
-       40,   40,  467,   40,  471,   40,  465,   40,  473,  463,
-      469,   40,   40,  470,   40,  472,   40,  475,   40,  468,
-      466,  474,   40,  478,  476,  479,   40,   40,   40,   40,
-       40,  482,   40,   40,  477,  480,   40,   40,  486,   40,
-       40,  483,  484,  485,   40,  488,  491,  481,   40,   40,
-      489,  493,  494,  487,  490,  492,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,  495,   40,  500,  501,  502,
-      496,   40,   40,  506,  497,   40,   40,   40,   40,  499,
+      302,  302,  302,  360,   40,   40,  357,  363,   40,  365,
+      366,  358,  359,   40,   40,   40,  367,   40,  362,  364,
+      368,  361,  369,   40,   40,  372,   40,   40,   40,  371,
+      370,   40,  373,  374,  375,   40,  376,   40,   40,   40,
+       40,   40,   40,   40,  380,  377,  381,  382,   40,   40,
+       40,   40,  379,   40,  378,  383,   40,  384,  387,   40,
+      386,   40,  389,  390,   40,  385,  394,  388,  391,   40,
+      392,   40,   40,  393,  395,   40,   40,   40,   40,   40,
+       40,  397,   40,   40,  396,  400,  402,  398,  403,   40,
+       40,   40,   40,  405,   40,  399,  408,   40,   40,   40,
 
-      498,  505,   40,   40,  507,   40,  504,   40,   40,  503,
-       40,   40,  508,   37,   37,   37,   37,   39,   39,   50,
+      401,  404,  407,   40,   40,  413,  406,  411,   40,  410,
+       40,   40,  415,  409,  412,   40,   40,   40,   40,  419,
+      420,   40,  425,   40,   40,  426,  416,  414,  417,  418,
+      423,  421,  422,  424,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,  427,  429,   40,  430,  431,  435,
+      432,  428,   40,   40,  433,  436,   40,   40,   40,   40,
+      437,   40,  434,   40,   40,   40,   40,   40,  444,  438,
+      439,   40,  445,  443,  440,  449,   40,  441,  446,  447,
+      448,   40,   40,  442,   40,  452,  453,  454,   40,  450,
+       40,   40,   40,  455,   40,   40,  451,  457,   40,   40,
+
+       40,   40,   40,  459,  463,   40,   40,   40,   40,   40,
+       40,  456,  470,   40,  458,  464,  467,  469,  460,  465,
+       40,  461,  462,  468,  466,   40,  472,   40,  471,   40,
+       40,   40,  473,   40,  474,   40,  477,   40,   40,   40,
+      475,   40,  478,  480,   40,   40,   40,   40,  483,   40,
+       40,   40,  487,  476,   40,  481,  489,   40,  479,  485,
+      486,   40,   40,   40,  488,   40,  482,  484,  490,  492,
+       40,  494,  495,  491,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,  498,  493,   40,   40,  502,  496,   40,
+      499,  500,  501,  504,  507,   40,  509,   40,  505,  497,
+
+      506,  508,  503,   40,   40,   40,   40,   40,  510,   40,
+       40,   40,   40,   40,  511,  516,  517,  518,   40,   40,
+       40,   40,  513,   40,  512,  522,   40,  515,  514,  523,
+      521,   40,   40,   40,   40,  520,   40,   40,   40,   40,
+      519,   40,  524,   37,   37,   37,   37,   39,   39,   50,
        40,   50,   50,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,  206,
 
-       40,   40,   40,   40,  114,   40,   38,  509,    3,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,  216,   40,   40,   40,   40,  119,   40,   38,  525,
+        3,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525
     } ;
 
-static yyconst short int yy_chk[1153] =
+static yyconst short int yy_chk[1185] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -700,125 +716,128 @@
        10,   10,   10,   11,   11,   11,   11,   11,   12,   62,
        20,   62,   26,   12,   13,   13,   13,   13,   13,   13,
        14,   14,   14,   14,   14,   14,   16,   20,   46,   17,
-       26,   29,  514,   46,   16,  512,   26,   20,   17,   23,
+       26,   29,   63,   46,   16,   54,   26,   20,   17,   23,
        29,   16,   17,   16,   18,   16,   13,   17,   16,   18,
 
-       17,   18,   19,   21,   22,   23,   23,   19,   21,   24,
-       27,   19,   18,   22,   24,   19,   18,   19,   21,   22,
-       19,   25,   24,   28,   21,   33,   25,   24,   34,   27,
-       33,   27,   64,   31,   51,   28,   53,   34,   31,   25,
-       36,   28,   51,   33,   53,   25,   30,   35,   35,   36,
-       30,   31,   54,   56,   31,   64,   30,   67,  111,   30,
-      111,   31,   30,   30,   56,   52,   35,   42,   42,   42,
-       42,   54,   67,   30,   30,   57,   30,   32,   52,   55,
-       52,   32,   43,   43,   43,   43,   57,   32,   44,   44,
-       44,   44,   44,   61,   32,   55,   32,   58,   32,   63,
+       17,   18,   19,   63,   54,   23,   23,   19,   66,   24,
+       22,   19,   18,   21,   24,   19,   18,   19,   21,   22,
+       19,   21,   24,   28,   25,   22,   27,   24,   21,   25,
+       51,   34,   33,   66,   21,   28,   58,   33,   51,   31,
+       34,   28,   25,   52,   31,   27,   36,   27,   25,   30,
+       33,   35,   35,   30,   58,   36,   52,   31,   52,   30,
+       31,   30,   30,   53,   56,   30,   30,   31,  530,   72,
+       35,   53,   57,   55,   30,   56,   30,   30,   68,   30,
+       32,   64,   72,   57,   32,   42,   42,   42,   42,   55,
+       32,   61,   32,   43,   43,   43,   43,   32,   61,   32,
 
-       61,   72,  226,   32,   45,   45,   45,   45,   45,   45,
-       47,   47,   47,   47,   47,   58,   78,   47,  226,   72,
-       63,   66,   78,   47,   48,   48,   48,   48,   48,   48,
-       49,   49,   49,   49,   49,   60,   49,   49,   68,   49,
-       49,   49,   49,   49,   49,   65,   66,   69,   71,   70,
-       60,   73,   65,   74,   76,   69,   70,   60,   77,   75,
-       73,   79,   68,   71,   65,   84,   92,   81,   91,   80,
-       71,   82,   70,   76,   80,   83,   74,   75,   79,   82,
-       77,   77,   81,   77,   79,   85,   80,   86,   84,   88,
-       83,   89,   86,   90,   92,   91,   93,   94,   95,   96,
+       75,   32,   68,   85,   64,   32,   32,   44,   44,   44,
+       44,   44,   45,   45,   45,   45,   45,   45,   47,   47,
+       47,   47,   47,   75,   79,   47,   85,  116,  528,  116,
+       79,   47,   48,   48,   48,   48,   48,   48,   49,   49,
+       49,   49,   49,   60,   49,   49,   67,   49,   49,   49,
+       49,   49,   49,   65,   69,   71,   70,   73,   60,   74,
+       65,   67,   69,   70,   76,   60,   77,   78,   74,   81,
+       71,   80,   65,   83,   81,   73,   82,   71,   84,   70,
+       86,   83,   76,   91,   89,   77,   81,   90,   80,   78,
+       78,   82,   78,   84,   80,   86,   87,   89,   92,   91,
 
-       85,   97,   88,   93,   89,  102,   95,   97,  103,   90,
-       98,   93,   94,   99,  101,   94,   90,   96,   94,   93,
-      104,   94,  105,   98,  102,  110,   99,  101,  108,  107,
-      110,  106,  108,  108,   99,  109,  103,  104,  101,  106,
-      105,  107,  112,  113,  106,  108,  508,  132,  109,  124,
-      109,  123,  106,  116,  116,  116,  116,  106,  117,  117,
-      117,  117,  123,  112,  113,  117,  130,  124,  126,  128,
-      132,  117,  119,  119,  119,  119,  119,  126,  135,  119,
-      131,  130,  128,  138,  139,  119,  120,  120,  134,  120,
-      120,  120,  120,  120,  136,  131,  134,  137,  138,  139,
+       90,   87,   93,   94,   95,   96,   91,   97,   98,  101,
+       99,   95,  100,  105,  524,   97,   94,   98,  100,   95,
+       96,  102,  101,   96,  104,   92,   96,   95,   99,   96,
+       93,  106,  105,  107,  102,  108,  109,  104,  111,  140,
+      113,  112,  102,  110,  113,  113,  107,  111,  104,  117,
+      114,  110,  108,  112,  109,  115,  110,  113,  118,  106,
+      115,  140,  129,  114,  110,  114,  522,  521,  133,  110,
+      117,  121,  121,  121,  121,  122,  122,  122,  122,  118,
+      129,  133,  122,  128,  135,  136,  131,  163,  122,  124,
+      124,  124,  124,  124,  128,  131,  124,  137,  520,  135,
 
-      135,  141,  137,  136,  143,  142,  144,  145,  146,  147,
-      141,  142,  149,  148,  141,  144,  145,  143,  148,  151,
-      150,  149,  152,  155,  153,  151,  154,  156,  145,  150,
-      146,  157,  147,  153,  158,  154,  156,  152,  159,  160,
-      161,  155,  162,  165,  166,  157,  159,  174,  168,  172,
-      160,  179,  173,  213,  180,  161,  174,  158,  165,  506,
-      213,  179,  177,  180,  166,  168,  162,  171,  171,  171,
-      171,  181,  172,  171,  171,  173,  171,  171,  171,  171,
-      171,  171,  175,  177,  183,  184,  186,  185,  189,  190,
-      505,  175,  181,  175,  187,  188,  191,  175,  185,  175,
+      136,  163,  124,  125,  125,  139,  125,  125,  125,  125,
+      125,  142,  141,  139,  143,  144,  142,  147,  146,  148,
+      137,  141,  151,  147,  149,  150,  152,  146,  153,  143,
+      144,  146,  148,  149,  150,  154,  155,  157,  156,  158,
+      154,  159,  160,  157,  151,  155,  150,  156,  161,  152,
+      159,  160,  155,  153,  158,  162,  164,  165,  166,  167,
+      168,  171,  172,  174,  162,  165,  161,  178,  179,  166,
+      207,  223,  181,  188,  167,  207,  171,  180,  223,  164,
+      174,  181,  172,  184,  168,  177,  177,  177,  177,  188,
+      178,  177,  177,  179,  177,  177,  177,  177,  177,  177,
 
-      184,  192,  193,  187,  188,  186,  194,  183,  195,  196,
-      192,  189,  190,  191,  198,  194,  199,  197,  200,  193,
-      202,  195,  197,  201,  205,  199,  200,  196,  201,  203,
-      222,  224,  289,  203,  202,  198,  207,  207,  207,  207,
-      289,  223,  205,  207,  224,  222,  223,  208,  208,  207,
-      208,  208,  208,  208,  209,  209,  209,  209,  210,  210,
-      210,  210,  210,  211,  211,  211,  211,  211,  212,  214,
-      215,  219,  220,  221,  225,  227,  228,  233,  219,  229,
-      232,  228,  230,  231,  233,  212,  214,  215,  231,  232,
-      227,  234,  236,  238,  237,  220,  221,  239,  229,  237,
+      180,  182,  187,  186,  184,  189,  191,  192,  193,  194,
+      182,  187,  182,  186,  195,  196,  182,  197,  182,  193,
+      198,  199,  192,  195,  196,  200,  189,  201,  194,  191,
+      202,  206,  203,  204,  205,  208,  201,  215,  235,  209,
+      197,  203,  200,  210,  199,  198,  204,  202,  209,  206,
+      205,  210,  211,  212,  213,  215,  208,  211,  213,  217,
+      217,  217,  217,  233,  238,  235,  217,  212,  233,  238,
+      218,  218,  217,  218,  218,  218,  218,  219,  219,  219,
+      219,  220,  220,  220,  220,  220,  221,  221,  221,  221,
+      221,  222,  224,  225,  229,  230,  231,  232,  234,  236,
 
-      240,  225,  238,  230,  243,  241,  250,  236,  242,  244,
-      247,  248,  251,  260,  234,  504,  253,  256,  239,  241,
-      254,  240,  243,  242,  244,  253,  248,  255,  247,  257,
-      250,  258,  259,  254,  255,  251,  260,  256,  257,  261,
-      258,  259,  262,  264,  263,  267,  266,  270,  272,  261,
-      264,  262,  257,  263,  258,  266,  270,  273,  274,  272,
-      267,  275,  276,  277,  278,  279,  275,  273,  280,  282,
-      285,  274,  284,  288,  291,  292,  279,  295,  288,  276,
-      292,  291,  284,  285,  277,  278,  286,  286,  286,  286,
-      293,  294,  282,  296,  284,  280,  294,  293,  295,  296,
+      240,  229,  237,  239,  242,  245,  251,  243,  222,  224,
+      225,  234,  232,  242,  243,  236,  248,  237,  230,  231,
+      241,  240,  239,  250,  249,  241,  252,  251,  245,  249,
+      253,  248,  250,  254,  255,  256,  259,  262,  260,  263,
+      265,  273,  267,  269,  253,  518,  516,  252,  254,  265,
+      256,  268,  255,  260,  259,  267,  270,  271,  268,  272,
+      274,  262,  263,  269,  273,  270,  271,  275,  272,  277,
+      274,  281,  287,  280,  278,  284,  275,  288,  277,  270,
+      271,  278,  280,  287,  284,  289,  281,  288,  290,  291,
+      293,  294,  295,  290,  296,  298,  301,  300,  289,  302,
 
-      297,  298,  299,  301,  300,  302,  303,  305,  307,  308,
-      310,  299,  309,  303,  305,  311,  312,  307,  314,  297,
-      298,  300,  302,  316,  308,  312,  301,  315,  309,  317,
-      316,  318,  311,  310,  319,  314,  315,  321,  317,  322,
-      318,  330,  331,  319,  334,  333,  339,  340,  342,  335,
-      343,  341,  331,  345,  340,  321,  330,  333,  335,  341,
-      346,  343,  322,  347,  348,  349,  351,  334,  347,  339,
-      354,  342,  353,  346,  355,  356,  345,  354,  357,  351,
-      358,  359,  349,  364,  356,  366,  363,  348,  368,  353,
-      363,  363,  377,  378,  369,  392,  502,  368,  358,  359,
+      302,  302,  302,  295,  311,  304,  291,  300,  305,  301,
+      304,  293,  294,  307,  313,  314,  305,  308,  298,  300,
+      307,  296,  308,  309,  310,  311,  312,  315,  316,  310,
+      309,  317,  312,  313,  314,  318,  315,  319,  323,  321,
+      324,  325,  326,  327,  319,  316,  321,  323,  337,  328,
+      330,  338,  318,  331,  317,  324,  332,  325,  328,  333,
+      327,  334,  331,  332,  335,  326,  337,  330,  333,  346,
+      334,  347,  350,  335,  338,  349,  351,  355,  358,  356,
+      357,  347,  359,  361,  346,  351,  356,  349,  357,  362,
+      364,  363,  365,  359,  367,  350,  363,  369,  370,  371,
 
-      357,  366,  355,  369,  370,  372,  364,  380,  381,  370,
-      378,  385,  372,  377,  386,  391,  380,  392,  381,  393,
-      394,  395,  396,  398,  385,  401,  386,  393,  402,  403,
-      391,  405,  404,  394,  406,  407,  408,  411,  395,  409,
-      405,  398,  413,  406,  410,  396,  401,  404,  414,  402,
-      418,  408,  407,  410,  409,  403,  415,  414,  416,  411,
-      417,  415,  420,  416,  419,  421,  423,  413,  424,  417,
-      425,  419,  426,  418,  428,  429,  421,  430,  431,  435,
-      438,  426,  434,  437,  444,  420,  438,  431,  435,  428,
-      423,  424,  429,  425,  436,  434,  440,  441,  437,  442,
+      355,  358,  362,  372,  373,  370,  361,  367,  380,  365,
+      374,  375,  372,  364,  369,  379,  382,  386,  388,  379,
+      379,  384,  386,  393,  385,  388,  373,  371,  374,  375,
+      384,  380,  382,  385,  394,  401,  396,  397,  402,  407,
+      408,  409,  410,  411,  393,  396,  412,  397,  401,  409,
+      402,  394,  414,  417,  407,  410,  418,  419,  420,  421,
+      411,  423,  408,  422,  424,  425,  426,  427,  421,  412,
+      414,  429,  422,  420,  417,  426,  430,  418,  423,  424,
+      425,  431,  432,  419,  433,  430,  431,  432,  434,  427,
+      435,  436,  437,  433,  439,  442,  429,  435,  440,  441,
 
-      430,  436,  441,  440,  447,  448,  449,  444,  450,  447,
-      451,  452,  442,  450,  448,  453,  454,  455,  456,  457,
-      458,  462,  453,  459,  457,  463,  451,  461,  459,  449,
-      455,  464,  467,  456,  465,  458,  466,  462,  469,  454,
-      452,  461,  470,  465,  463,  466,  471,  472,  473,  475,
-      476,  470,  477,  478,  464,  467,  480,  481,  475,  485,
-      483,  471,  472,  473,  484,  477,  481,  469,  486,  487,
-      478,  484,  485,  476,  480,  483,  488,  489,  490,  491,
-      494,  492,  493,  495,  497,  486,  501,  491,  492,  493,
-      487,  507,  500,  501,  488,  503,  499,  498,  496,  490,
+      444,  446,  445,  437,  442,  452,  515,  447,  451,  514,
+      450,  434,  452,  453,  436,  444,  447,  451,  439,  445,
+      454,  440,  441,  450,  446,  456,  454,  458,  453,  457,
+      460,  463,  456,  464,  457,  465,  463,  468,  466,  467,
+      458,  469,  464,  466,  470,  472,  471,  473,  469,  474,
+      479,  475,  473,  460,  477,  467,  475,  478,  465,  471,
+      472,  480,  481,  482,  474,  483,  468,  470,  477,  479,
+      485,  481,  482,  478,  486,  487,  488,  489,  491,  492,
+      493,  494,  496,  486,  480,  497,  499,  491,  483,  500,
+      487,  488,  489,  493,  497,  501,  500,  502,  494,  485,
 
-      489,  497,  482,  479,  503,  474,  495,  468,  460,  494,
-      446,  445,  507,  510,  510,  510,  510,  511,  511,  513,
-      443,  513,  513,  439,  433,  432,  427,  422,  412,  400,
-      399,  397,  390,  389,  388,  387,  384,  383,  382,  379,
-      376,  375,  374,  373,  371,  367,  365,  362,  361,  360,
-      352,  350,  344,  338,  337,  336,  332,  329,  328,  327,
-      326,  325,  324,  323,  320,  313,  306,  304,  290,  287,
-      283,  281,  271,  269,  268,  265,  249,  246,  245,  235,
-      218,  217,  216,  204,  182,  178,  176,  170,  169,  167,
-      164,  163,  140,  133,  129,  127,  125,  122,  118,  114,
+      496,  499,  492,  503,  504,  505,  506,  507,  501,  508,
+      509,  510,  511,  513,  502,  507,  508,  509,  517,  512,
+      519,  523,  504,  498,  503,  517,  495,  506,  505,  519,
+      513,  490,  484,  476,  462,  511,  461,  459,  455,  449,
+      510,  448,  523,  526,  526,  526,  526,  527,  527,  529,
+      443,  529,  529,  438,  428,  416,  415,  413,  406,  405,
+      404,  403,  400,  399,  398,  395,  392,  391,  390,  389,
+      387,  383,  381,  378,  377,  376,  368,  366,  360,  354,
+      353,  352,  348,  345,  344,  343,  342,  341,  340,  339,
+      336,  329,  322,  320,  306,  303,  299,  297,  292,  286,
 
-      100,   87,   59,   39,   37,    8,    7,    3,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
-      509,  509
+      285,  283,  282,  279,  276,  266,  261,  258,  257,  247,
+      246,  244,  228,  227,  226,  214,  190,  185,  183,  176,
+      175,  173,  170,  169,  145,  138,  134,  132,  130,  127,
+      123,  119,  103,   88,   59,   39,   37,    8,    7,    3,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
+      525,  525,  525,  525
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -835,7 +854,7 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 #define INITIAL 0
 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
 //
@@ -850,7 +869,7 @@
 //
 //===----------------------------------------------------------------------===*/
 #define YY_NEVER_INTERACTIVE 1
-#line 28 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 #include "ParserInternals.h"
 #include "llvm/Module.h"
 #include <list>
@@ -865,8 +884,18 @@
   yy_scan_string (str);
 }
 
+// Construct a token value for a non-obsolete token
 #define RET_TOK(type, Enum, sym) \
-  llvmAsmlval.type = Instruction::Enum; return sym
+  llvmAsmlval.type.opcode = Instruction::Enum; \
+  llvmAsmlval.type.obsolete = false; \
+  return sym
+
+// Construct a token value for an obsolete token
+#define RET_TOK_OBSOLETE(type, Enum, sym) \
+  llvmAsmlval.type.opcode = Instruction::Enum; \
+  llvmAsmlval.type.obsolete = true; \
+  return sym
+
 
 namespace llvm {
 
@@ -976,7 +1005,7 @@
 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
  * it to deal with 64 bit numbers.
  */
-#line 980 "Lexer.cpp"
+#line 1009 "Lexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1124,13 +1153,13 @@
 YY_DECL
 	{
 	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
+	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
 
-#line 179 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 189 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 
 
-#line 1134 "Lexer.cpp"
+#line 1163 "Lexer.cpp"
 
 	if ( yy_init )
 		{
@@ -1178,14 +1207,14 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 510 )
+				if ( yy_current_state >= 526 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_current_state != 509 );
+		while ( yy_current_state != 525 );
 
 yy_find_action:
 		yy_current_state = *--yy_state_ptr;
@@ -1223,516 +1252,546 @@
 	{ /* beginning of action switch */
 case 1:
 YY_RULE_SETUP
-#line 181 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { /* Ignore comments for now */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 183 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return BEGINTOK; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 184 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ENDTOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 185 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TRUETOK;  }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 186 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return FALSETOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 187 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DECLARE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 188 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return GLOBAL; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 189 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CONSTANT; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 190 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return INTERNAL; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 191 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return LINKONCE; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 192 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return WEAK; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 193 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return APPENDING; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 194 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DLLIMPORT; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 195 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DLLEXPORT; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 196 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return EXTERN_WEAK; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 197 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return EXTERNAL; }    /* Deprecated, turn into external */
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 198 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return EXTERNAL; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 199 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return IMPLEMENTATION; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 200 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ZEROINITIALIZER; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 201 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DOTDOTDOT; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 202 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return UNDEF; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 203 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return NULL_TOK; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 204 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TO; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 205 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Unwind, UNWIND); }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 206 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return NOT; }  /* Deprecated, turned into XOR */
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 207 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TAIL; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 208 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TARGET; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 209 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TRIPLE; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 210 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 220 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DEPLIBS; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 211 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ENDIAN; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 212 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return POINTERSIZE; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 213 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DATALAYOUT; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 214 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return LITTLE; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 215 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return BIG; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 216 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return VOLATILE; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 217 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 227 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ALIGN;  }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 218 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return SECTION; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 219 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return MODULE; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 220 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ASM_TOK; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 221 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return SIDEEFFECT; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 223 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CC_TOK; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 224 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 234 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CCC_TOK; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 225 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CSRETCC_TOK; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 226 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return FASTCC_TOK; }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 227 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 237 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return COLDCC_TOK; }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 228 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return X86_STDCALLCC_TOK; }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 229 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 239 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return X86_FASTCALLCC_TOK; }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 231 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::VoidTy  ; return VOID;   }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 232 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::BoolTy  ; return BOOL;   }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 233 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE;  }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 234 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE;  }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 235 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::ShortTy ; return SHORT;  }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 236 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 237 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 247 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::IntTy   ; return INT;    }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 238 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 248 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::UIntTy  ; return UINT;   }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 239 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 249 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::LongTy  ; return LONG;   }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 240 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 250 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::ULongTy ; return ULONG;  }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 241 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 251 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT;  }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 242 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 243 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.PrimType = Type::LabelTy ; return LABEL;  }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 244 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TYPE;   }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 245 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return OPAQUE; }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 247 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Add, ADD); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 248 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Sub, SUB); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 249 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Mul, MUL); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 250 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Div, DIV); }
+#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK_OBSOLETE(BinaryOpVal, UDiv, UDIV); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 251 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Rem, REM); }
+#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 252 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, And, AND); }
+#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 253 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Or , OR ); }
+#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 254 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Xor, XOR); }
+#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK_OBSOLETE(BinaryOpVal, URem, UREM); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 255 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
+#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, URem, UREM); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 256 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
+#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SRem, SREM); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 257 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
+#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, FRem, FREM); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 258 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
+#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, And, AND); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 259 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
+#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Or , OR ); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 260 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
+#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Xor, XOR); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 262 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
+#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 263 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Call, CALL); }
+#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 264 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Cast, CAST); }
+#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 265 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Select, SELECT); }
+#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 266 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shl, SHL); }
+#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 267 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shr, SHR); }
+#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 268 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ return VANEXT_old; }
+#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 269 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ return VAARG_old; }
+#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Call, CALL); }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 270 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, VAArg , VAARG); }
+#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Cast, CAST); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 271 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Ret, RET); }
+#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Select, SELECT); }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 272 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Br, BR); }
+#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Shl, SHL); }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 273 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Switch, SWITCH); }
+#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Shr, SHR); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 274 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Invoke, INVOKE); }
+#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return VANEXT_old; }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 275 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unwind, UNWIND); }
+#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return VAARG_old; }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 276 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
+#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, VAArg , VAARG); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 278 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Malloc, MALLOC); }
+#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Ret, RET); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 279 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
+#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Br, BR); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 280 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Free, FREE); }
+#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Switch, SWITCH); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 281 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Load, LOAD); }
+#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Invoke, INVOKE); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 282 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Store, STORE); }
+#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unwind, UNWIND); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 283 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
+#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 285 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
+#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Malloc, MALLOC); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 286 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
+#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 287 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
+#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Free, FREE); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 290 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Load, LOAD); }
+	YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Store, STORE); }
+	YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
+	YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
+	YY_BREAK
+case 106:
+YY_RULE_SETUP
+#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
+	YY_BREAK
+case 107:
+YY_RULE_SETUP
+#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   UnEscapeLexed(yytext+1);
                   llvmAsmlval.StrVal = strdup(yytext+1);             // Skip %
                   return VAR_ID;
                 }
 	YY_BREAK
-case 102:
+case 108:
 YY_RULE_SETUP
-#line 295 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-1] = 0;  // nuke colon
                   UnEscapeLexed(yytext);
@@ -1740,9 +1799,9 @@
                   return LABELSTR;
                 }
 	YY_BREAK
-case 103:
+case 109:
 YY_RULE_SETUP
-#line 301 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 317 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
                   UnEscapeLexed(yytext+1);
@@ -1750,9 +1809,9 @@
                   return LABELSTR;
                 }
 	YY_BREAK
-case 104:
+case 110:
 YY_RULE_SETUP
-#line 308 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 324 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { // Note that we cannot unescape a string constant here!  The
                    // string constant might contain a \00 which would not be
                    // understood by the string stuff.  It is valid to make a
@@ -1763,14 +1822,14 @@
                    return STRINGCONSTANT;
                  }
 	YY_BREAK
-case 105:
+case 111:
 YY_RULE_SETUP
-#line 319 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 335 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
 	YY_BREAK
-case 106:
+case 112:
 YY_RULE_SETUP
-#line 320 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 336 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   // +1:  we have bigger negative range
@@ -1780,17 +1839,17 @@
                   return ESINT64VAL;
                 }
 	YY_BREAK
-case 107:
+case 113:
 YY_RULE_SETUP
-#line 328 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 344 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                    llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
                    return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
                  }
 	YY_BREAK
-case 108:
+case 114:
 YY_RULE_SETUP
-#line 333 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 349 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
@@ -1799,9 +1858,9 @@
                   return UINTVAL;
                 }
 	YY_BREAK
-case 109:
+case 115:
 YY_RULE_SETUP
-#line 340 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 356 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+2);
                   // +1:  we have bigger negative range
@@ -1811,18 +1870,18 @@
                   return SINTVAL;
                 }
 	YY_BREAK
-case 110:
+case 116:
 YY_RULE_SETUP
-#line 349 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 365 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
 	YY_BREAK
-case 111:
+case 117:
 YY_RULE_SETUP
-#line 350 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 366 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 352 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 368 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
@@ -1831,22 +1890,22 @@
                   return EOF;
                 }
 	YY_BREAK
-case 112:
+case 118:
 YY_RULE_SETUP
-#line 360 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 376 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { /* Ignore whitespace */ }
 	YY_BREAK
-case 113:
+case 119:
 YY_RULE_SETUP
-#line 361 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 377 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return yytext[0]; }
 	YY_BREAK
-case 114:
+case 120:
 YY_RULE_SETUP
-#line 363 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 379 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 1850 "Lexer.cpp"
+#line 1909 "Lexer.cpp"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2133,7 +2192,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 510 )
+			if ( yy_current_state >= 526 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2163,11 +2222,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 510 )
+		if ( yy_current_state >= 526 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 509);
+	yy_is_jam = (yy_current_state == 525);
 	if ( ! yy_is_jam )
 		*yy_state_ptr++ = yy_current_state;
 
@@ -2222,6 +2281,7 @@
 #endif	/* ifndef YY_NO_UNPUT */
 
 
+#ifndef YY_NO_INPUT
 #ifdef __cplusplus
 static int yyinput()
 #else
@@ -2295,7 +2355,7 @@
 
 	return c;
 	}
-
+#endif /* YY_NO_INPUT */
 
 #ifdef YY_USE_PROTOS
 void yyrestart( FILE *input_file )
@@ -2406,11 +2466,6 @@
 	}
 
 
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
 
 #ifdef YY_USE_PROTOS
 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -2728,5 +2783,5 @@
 	return 0;
 	}
 #endif
-#line 363 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 379 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 
diff --git a/lib/AsmParser/Lexer.l.cvs b/lib/AsmParser/Lexer.l.cvs
index 08a70e0..4df84f6 100644
--- a/lib/AsmParser/Lexer.l.cvs
+++ b/lib/AsmParser/Lexer.l.cvs
@@ -39,8 +39,18 @@
   yy_scan_string (str);
 }
 
+// Construct a token value for a non-obsolete token
 #define RET_TOK(type, Enum, sym) \
-  llvmAsmlval.type = Instruction::Enum; return sym
+  llvmAsmlval.type.opcode = Instruction::Enum; \
+  llvmAsmlval.type.obsolete = false; \
+  return sym
+
+// Construct a token value for an obsolete token
+#define RET_TOK_OBSOLETE(type, Enum, sym) \
+  llvmAsmlval.type.opcode = Instruction::Enum; \
+  llvmAsmlval.type.obsolete = true; \
+  return sym
+
 
 namespace llvm {
 
@@ -247,8 +257,14 @@
 add             { RET_TOK(BinaryOpVal, Add, ADD); }
 sub             { RET_TOK(BinaryOpVal, Sub, SUB); }
 mul             { RET_TOK(BinaryOpVal, Mul, MUL); }
-div             { RET_TOK(BinaryOpVal, Div, DIV); }
-rem             { RET_TOK(BinaryOpVal, Rem, REM); }
+div             { RET_TOK_OBSOLETE(BinaryOpVal, UDiv, UDIV); }
+udiv            { RET_TOK(BinaryOpVal, UDiv, UDIV); }
+sdiv            { RET_TOK(BinaryOpVal, SDiv, SDIV); }
+fdiv            { RET_TOK(BinaryOpVal, FDiv, FDIV); }
+rem             { RET_TOK_OBSOLETE(BinaryOpVal, URem, UREM); }
+urem            { RET_TOK(BinaryOpVal, URem, UREM); }
+srem            { RET_TOK(BinaryOpVal, SRem, SREM); }
+frem            { RET_TOK(BinaryOpVal, FRem, FREM); }
 and             { RET_TOK(BinaryOpVal, And, AND); }
 or              { RET_TOK(BinaryOpVal, Or , OR ); }
 xor             { RET_TOK(BinaryOpVal, Xor, XOR); }
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs
index 6837528..f8dba72 100644
--- a/lib/AsmParser/llvmAsmParser.cpp.cvs
+++ b/lib/AsmParser/llvmAsmParser.cpp.cvs
@@ -145,33 +145,35 @@
      UDIV = 336,
      SDIV = 337,
      FDIV = 338,
-     REM = 339,
-     AND = 340,
-     OR = 341,
-     XOR = 342,
-     SETLE = 343,
-     SETGE = 344,
-     SETLT = 345,
-     SETGT = 346,
-     SETEQ = 347,
-     SETNE = 348,
-     MALLOC = 349,
-     ALLOCA = 350,
-     FREE = 351,
-     LOAD = 352,
-     STORE = 353,
-     GETELEMENTPTR = 354,
-     PHI_TOK = 355,
-     CAST = 356,
-     SELECT = 357,
-     SHL = 358,
-     SHR = 359,
-     VAARG = 360,
-     EXTRACTELEMENT = 361,
-     INSERTELEMENT = 362,
-     SHUFFLEVECTOR = 363,
-     VAARG_old = 364,
-     VANEXT_old = 365
+     UREM = 339,
+     SREM = 340,
+     FREM = 341,
+     AND = 342,
+     OR = 343,
+     XOR = 344,
+     SETLE = 345,
+     SETGE = 346,
+     SETLT = 347,
+     SETGT = 348,
+     SETEQ = 349,
+     SETNE = 350,
+     MALLOC = 351,
+     ALLOCA = 352,
+     FREE = 353,
+     LOAD = 354,
+     STORE = 355,
+     GETELEMENTPTR = 356,
+     PHI_TOK = 357,
+     CAST = 358,
+     SELECT = 359,
+     SHL = 360,
+     SHR = 361,
+     VAARG = 362,
+     EXTRACTELEMENT = 363,
+     INSERTELEMENT = 364,
+     SHUFFLEVECTOR = 365,
+     VAARG_old = 366,
+     VANEXT_old = 367
    };
 #endif
 /* Tokens.  */
@@ -256,39 +258,41 @@
 #define UDIV 336
 #define SDIV 337
 #define FDIV 338
-#define REM 339
-#define AND 340
-#define OR 341
-#define XOR 342
-#define SETLE 343
-#define SETGE 344
-#define SETLT 345
-#define SETGT 346
-#define SETEQ 347
-#define SETNE 348
-#define MALLOC 349
-#define ALLOCA 350
-#define FREE 351
-#define LOAD 352
-#define STORE 353
-#define GETELEMENTPTR 354
-#define PHI_TOK 355
-#define CAST 356
-#define SELECT 357
-#define SHL 358
-#define SHR 359
-#define VAARG 360
-#define EXTRACTELEMENT 361
-#define INSERTELEMENT 362
-#define SHUFFLEVECTOR 363
-#define VAARG_old 364
-#define VANEXT_old 365
+#define UREM 339
+#define SREM 340
+#define FREM 341
+#define AND 342
+#define OR 343
+#define XOR 344
+#define SETLE 345
+#define SETGE 346
+#define SETLT 347
+#define SETGT 348
+#define SETEQ 349
+#define SETNE 350
+#define MALLOC 351
+#define ALLOCA 352
+#define FREE 353
+#define LOAD 354
+#define STORE 355
+#define GETELEMENTPTR 356
+#define PHI_TOK 357
+#define CAST 358
+#define SELECT 359
+#define SHL 360
+#define SHR 361
+#define VAARG 362
+#define EXTRACTELEMENT 363
+#define INSERTELEMENT 364
+#define SHUFFLEVECTOR 365
+#define VAARG_old 366
+#define VANEXT_old 367
 
 
 
 
 /* Copy the first part of user declarations.  */
-#line 14 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 
 #include "ParserInternals.h"
 #include "llvm/CallingConv.h"
@@ -1114,7 +1118,7 @@
   // Depending on the opcode ..
   switch (OI.opcode) {
     default:
-      GenerateError("Invalid Obsolete OpCode");
+      GenerateError("Invalid obsolete opCode (check Lexer.l)");
       break;
     case Instruction::UDiv:
       // Handle cases where the opcode needs to change
@@ -1123,12 +1127,17 @@
       else if (Ty->isSigned())
         OI.opcode = Instruction::SDiv;
       break;
+    case Instruction::URem:
+      if (Ty->isFloatingPoint()) 
+        OI.opcode = Instruction::FRem;
+      else if (Ty->isSigned())
+        OI.opcode = Instruction::SRem;
+      break;
   }
   // Its not obsolete any more, we fixed it.
   OI.obsolete = false;
 }
-
-
+  
 // common code from the two 'RunVMAsmParser' functions
 static Module* RunParser(Module * M) {
 
@@ -1305,7 +1314,7 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1011 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1016 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1346,7 +1355,7 @@
   llvm::Module::Endianness          Endianness;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1350 "llvmAsmParser.tab.c"
+#line 1359 "llvmAsmParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1358,7 +1367,7 @@
 
 
 /* Line 219 of yacc.c.  */
-#line 1362 "llvmAsmParser.tab.c"
+#line 1371 "llvmAsmParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -1509,20 +1518,20 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1288
+#define YYLAST   1357
 
 /* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  125
+#define YYNTOKENS  127
 /* YYNNTS -- Number of nonterminals. */
 #define YYNNTS  75
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  254
+#define YYNRULES  256
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  519
+#define YYNSTATES  521
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   365
+#define YYMAXUTOK   367
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -1534,15 +1543,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,
-     114,   115,   123,     2,   112,     2,     2,     2,     2,     2,
+     116,   117,   125,     2,   114,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     119,   111,   120,     2,     2,     2,     2,     2,     2,     2,
+     121,   113,   122,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   116,   113,   118,     2,     2,     2,     2,     2,   124,
+       2,   118,   115,   120,     2,     2,     2,     2,     2,   126,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     117,     2,     2,   121,     2,   122,     2,     2,     2,     2,
+     119,     2,     2,   123,     2,   124,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1566,7 +1575,7 @@
       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
+     105,   106,   107,   108,   109,   110,   111,   112
 };
 
 #if YYDEBUG
@@ -1577,148 +1586,148 @@
        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,    74,    75,    77,
-      79,    81,    83,    85,    87,    89,    90,    91,    93,    95,
-      97,    99,   101,   103,   106,   107,   110,   111,   115,   118,
-     119,   121,   122,   126,   128,   131,   133,   135,   137,   139,
+      59,    61,    63,    65,    67,    69,    71,    73,    75,    78,
+      79,    81,    83,    85,    87,    89,    91,    93,    94,    95,
+      97,    99,   101,   103,   105,   107,   110,   111,   114,   115,
+     119,   122,   123,   125,   126,   130,   132,   135,   137,   139,
      141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
-     161,   163,   165,   167,   169,   171,   173,   176,   181,   187,
-     193,   197,   200,   203,   205,   209,   211,   215,   217,   218,
-     223,   227,   231,   236,   241,   245,   248,   251,   254,   257,
-     260,   263,   266,   269,   272,   275,   282,   288,   297,   304,
-     311,   318,   325,   332,   341,   350,   354,   356,   358,   360,
-     362,   365,   368,   373,   376,   378,   383,   386,   391,   392,
-     400,   401,   409,   410,   418,   419,   427,   431,   436,   437,
-     439,   441,   443,   447,   451,   455,   459,   463,   467,   469,
-     470,   472,   474,   476,   477,   480,   484,   486,   488,   492,
-     494,   495,   504,   506,   508,   512,   514,   516,   519,   520,
-     522,   524,   525,   530,   531,   533,   535,   537,   539,   541,
-     543,   545,   547,   549,   553,   555,   561,   563,   565,   567,
-     569,   572,   575,   578,   582,   585,   586,   588,   591,   594,
-     598,   608,   618,   627,   641,   643,   645,   652,   658,   661,
-     668,   676,   678,   682,   684,   685,   688,   690,   696,   702,
-     708,   711,   716,   721,   728,   733,   738,   743,   748,   755,
-     762,   765,   773,   775,   778,   779,   781,   782,   786,   793,
-     797,   804,   807,   812,   819
+     161,   163,   165,   167,   169,   171,   173,   175,   177,   180,
+     185,   191,   197,   201,   204,   207,   209,   213,   215,   219,
+     221,   222,   227,   231,   235,   240,   245,   249,   252,   255,
+     258,   261,   264,   267,   270,   273,   276,   279,   286,   292,
+     301,   308,   315,   322,   329,   336,   345,   354,   358,   360,
+     362,   364,   366,   369,   372,   377,   380,   382,   387,   390,
+     395,   396,   404,   405,   413,   414,   422,   423,   431,   435,
+     440,   441,   443,   445,   447,   451,   455,   459,   463,   467,
+     471,   473,   474,   476,   478,   480,   481,   484,   488,   490,
+     492,   496,   498,   499,   508,   510,   512,   516,   518,   520,
+     523,   524,   526,   528,   529,   534,   535,   537,   539,   541,
+     543,   545,   547,   549,   551,   553,   557,   559,   565,   567,
+     569,   571,   573,   576,   579,   582,   586,   589,   590,   592,
+     595,   598,   602,   612,   622,   631,   645,   647,   649,   656,
+     662,   665,   672,   680,   682,   686,   688,   689,   692,   694,
+     700,   706,   712,   715,   720,   725,   732,   737,   742,   747,
+     752,   759,   766,   769,   777,   779,   782,   783,   785,   786,
+     790,   797,   801,   808,   811,   816,   823
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short int yyrhs[] =
 {
-     156,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
+     158,     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,
-      -1,    93,    -1,   103,    -1,   104,    -1,    16,    -1,    14,
-      -1,    12,    -1,    10,    -1,    17,    -1,    15,    -1,    13,
-      -1,    11,    -1,   132,    -1,   133,    -1,    18,    -1,    19,
-      -1,   168,   111,    -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,   112,    57,     4,    -1,    34,    24,    -1,    -1,   141,
-      -1,    -1,   112,   144,   143,    -1,   141,    -1,    57,     4,
-      -1,   147,    -1,     8,    -1,   149,    -1,     8,    -1,   149,
-      -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,   148,
-      -1,   183,    -1,   113,     4,    -1,   146,   114,   151,   115,
-      -1,   116,     4,   117,   149,   118,    -1,   119,     4,   117,
-     149,   120,    -1,   121,   150,   122,    -1,   121,   122,    -1,
-     149,   123,    -1,   149,    -1,   150,   112,   149,    -1,   150,
-      -1,   150,   112,    37,    -1,    37,    -1,    -1,   147,   116,
-     154,   118,    -1,   147,   116,   118,    -1,   147,   124,    24,
-      -1,   147,   119,   154,   120,    -1,   147,   121,   154,   122,
-      -1,   147,   121,   122,    -1,   147,    38,    -1,   147,    39,
-      -1,   147,   183,    -1,   147,   153,    -1,   147,    26,    -1,
-     132,   127,    -1,   133,     4,    -1,     9,    27,    -1,     9,
-      28,    -1,   135,     7,    -1,   101,   114,   152,    36,   147,
-     115,    -1,    99,   114,   152,   197,   115,    -1,   102,   114,
-     152,   112,   152,   112,   152,   115,    -1,   128,   114,   152,
-     112,   152,   115,    -1,   129,   114,   152,   112,   152,   115,
-      -1,   130,   114,   152,   112,   152,   115,    -1,   131,   114,
-     152,   112,   152,   115,    -1,   106,   114,   152,   112,   152,
-     115,    -1,   107,   114,   152,   112,   152,   112,   152,   115,
-      -1,   108,   114,   152,   112,   152,   112,   152,   115,    -1,
-     154,   112,   152,    -1,   152,    -1,    32,    -1,    33,    -1,
-     157,    -1,   157,   177,    -1,   157,   179,    -1,   157,    62,
-      61,   163,    -1,   157,    25,    -1,   158,    -1,   158,   136,
-      20,   145,    -1,   158,   179,    -1,   158,    62,    61,   163,
-      -1,    -1,   158,   136,   137,   155,   152,   159,   143,    -1,
-      -1,   158,   136,    50,   155,   147,   160,   143,    -1,    -1,
-     158,   136,    45,   155,   147,   161,   143,    -1,    -1,   158,
-     136,    47,   155,   147,   162,   143,    -1,   158,    51,   165,
-      -1,   158,    58,   111,   166,    -1,    -1,    24,    -1,    56,
-      -1,    55,    -1,    53,   111,   164,    -1,    54,   111,     4,
-      -1,    52,   111,    24,    -1,    71,   111,    24,    -1,   116,
-     167,   118,    -1,   167,   112,    24,    -1,    24,    -1,    -1,
-      22,    -1,    24,    -1,   168,    -1,    -1,   147,   169,    -1,
-     171,   112,   170,    -1,   170,    -1,   171,    -1,   171,   112,
-      37,    -1,    37,    -1,    -1,   138,   145,   168,   114,   172,
-     115,   142,   139,    -1,    29,    -1,   121,    -1,   137,   173,
-     174,    -1,    30,    -1,   122,    -1,   186,   176,    -1,    -1,
-      45,    -1,    47,    -1,    -1,    31,   180,   178,   173,    -1,
-      -1,    63,    -1,     3,    -1,     4,    -1,     7,    -1,    27,
-      -1,    28,    -1,    38,    -1,    39,    -1,    26,    -1,   119,
-     154,   120,    -1,   153,    -1,    61,   181,    24,   112,    24,
-      -1,   126,    -1,   168,    -1,   183,    -1,   182,    -1,   147,
-     184,    -1,   186,   187,    -1,   175,   187,    -1,   188,   136,
-     189,    -1,   188,   191,    -1,    -1,    23,    -1,    72,   185,
-      -1,    72,     8,    -1,    73,    21,   184,    -1,    73,     9,
-     184,   112,    21,   184,   112,    21,   184,    -1,    74,   134,
-     184,   112,    21,   184,   116,   190,   118,    -1,    74,   134,
-     184,   112,    21,   184,   116,   118,    -1,    75,   138,   145,
-     184,   114,   194,   115,    36,    21,   184,    76,    21,   184,
-      -1,    76,    -1,    77,    -1,   190,   134,   182,   112,    21,
-     184,    -1,   134,   182,   112,    21,   184,    -1,   136,   196,
-      -1,   147,   116,   184,   112,   184,   118,    -1,   192,   112,
-     116,   184,   112,   184,   118,    -1,   185,    -1,   193,   112,
-     185,    -1,   193,    -1,    -1,    60,    59,    -1,    59,    -1,
-     128,   147,   184,   112,   184,    -1,   129,   147,   184,   112,
-     184,    -1,   130,   147,   184,   112,   184,    -1,    49,   185,
-      -1,   131,   185,   112,   185,    -1,   101,   185,    36,   147,
-      -1,   102,   185,   112,   185,   112,   185,    -1,   105,   185,
-     112,   147,    -1,   109,   185,   112,   147,    -1,   110,   185,
-     112,   147,    -1,   106,   185,   112,   185,    -1,   107,   185,
-     112,   185,   112,   185,    -1,   108,   185,   112,   185,   112,
-     185,    -1,   100,   192,    -1,   195,   138,   145,   184,   114,
-     194,   115,    -1,   199,    -1,   112,   193,    -1,    -1,    35,
-      -1,    -1,    94,   147,   140,    -1,    94,   147,   112,    15,
-     184,   140,    -1,    95,   147,   140,    -1,    95,   147,   112,
-      15,   184,   140,    -1,    96,   185,    -1,   198,    97,   147,
-     184,    -1,   198,    98,   185,   112,   147,   184,    -1,    99,
-     147,   184,   197,    -1
+      -1,    93,    -1,    94,    -1,    95,    -1,   105,    -1,   106,
+      -1,    16,    -1,    14,    -1,    12,    -1,    10,    -1,    17,
+      -1,    15,    -1,    13,    -1,    11,    -1,   134,    -1,   135,
+      -1,    18,    -1,    19,    -1,   170,   113,    -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,   114,    57,     4,    -1,    34,
+      24,    -1,    -1,   143,    -1,    -1,   114,   146,   145,    -1,
+     143,    -1,    57,     4,    -1,   149,    -1,     8,    -1,   151,
+      -1,     8,    -1,   151,    -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,   150,    -1,   185,    -1,   115,     4,    -1,
+     148,   116,   153,   117,    -1,   118,     4,   119,   151,   120,
+      -1,   121,     4,   119,   151,   122,    -1,   123,   152,   124,
+      -1,   123,   124,    -1,   151,   125,    -1,   151,    -1,   152,
+     114,   151,    -1,   152,    -1,   152,   114,    37,    -1,    37,
+      -1,    -1,   149,   118,   156,   120,    -1,   149,   118,   120,
+      -1,   149,   126,    24,    -1,   149,   121,   156,   122,    -1,
+     149,   123,   156,   124,    -1,   149,   123,   124,    -1,   149,
+      38,    -1,   149,    39,    -1,   149,   185,    -1,   149,   155,
+      -1,   149,    26,    -1,   134,   129,    -1,   135,     4,    -1,
+       9,    27,    -1,     9,    28,    -1,   137,     7,    -1,   103,
+     116,   154,    36,   149,   117,    -1,   101,   116,   154,   199,
+     117,    -1,   104,   116,   154,   114,   154,   114,   154,   117,
+      -1,   130,   116,   154,   114,   154,   117,    -1,   131,   116,
+     154,   114,   154,   117,    -1,   132,   116,   154,   114,   154,
+     117,    -1,   133,   116,   154,   114,   154,   117,    -1,   108,
+     116,   154,   114,   154,   117,    -1,   109,   116,   154,   114,
+     154,   114,   154,   117,    -1,   110,   116,   154,   114,   154,
+     114,   154,   117,    -1,   156,   114,   154,    -1,   154,    -1,
+      32,    -1,    33,    -1,   159,    -1,   159,   179,    -1,   159,
+     181,    -1,   159,    62,    61,   165,    -1,   159,    25,    -1,
+     160,    -1,   160,   138,    20,   147,    -1,   160,   181,    -1,
+     160,    62,    61,   165,    -1,    -1,   160,   138,   139,   157,
+     154,   161,   145,    -1,    -1,   160,   138,    50,   157,   149,
+     162,   145,    -1,    -1,   160,   138,    45,   157,   149,   163,
+     145,    -1,    -1,   160,   138,    47,   157,   149,   164,   145,
+      -1,   160,    51,   167,    -1,   160,    58,   113,   168,    -1,
+      -1,    24,    -1,    56,    -1,    55,    -1,    53,   113,   166,
+      -1,    54,   113,     4,    -1,    52,   113,    24,    -1,    71,
+     113,    24,    -1,   118,   169,   120,    -1,   169,   114,    24,
+      -1,    24,    -1,    -1,    22,    -1,    24,    -1,   170,    -1,
+      -1,   149,   171,    -1,   173,   114,   172,    -1,   172,    -1,
+     173,    -1,   173,   114,    37,    -1,    37,    -1,    -1,   140,
+     147,   170,   116,   174,   117,   144,   141,    -1,    29,    -1,
+     123,    -1,   139,   175,   176,    -1,    30,    -1,   124,    -1,
+     188,   178,    -1,    -1,    45,    -1,    47,    -1,    -1,    31,
+     182,   180,   175,    -1,    -1,    63,    -1,     3,    -1,     4,
+      -1,     7,    -1,    27,    -1,    28,    -1,    38,    -1,    39,
+      -1,    26,    -1,   121,   156,   122,    -1,   155,    -1,    61,
+     183,    24,   114,    24,    -1,   128,    -1,   170,    -1,   185,
+      -1,   184,    -1,   149,   186,    -1,   188,   189,    -1,   177,
+     189,    -1,   190,   138,   191,    -1,   190,   193,    -1,    -1,
+      23,    -1,    72,   187,    -1,    72,     8,    -1,    73,    21,
+     186,    -1,    73,     9,   186,   114,    21,   186,   114,    21,
+     186,    -1,    74,   136,   186,   114,    21,   186,   118,   192,
+     120,    -1,    74,   136,   186,   114,    21,   186,   118,   120,
+      -1,    75,   140,   147,   186,   116,   196,   117,    36,    21,
+     186,    76,    21,   186,    -1,    76,    -1,    77,    -1,   192,
+     136,   184,   114,    21,   186,    -1,   136,   184,   114,    21,
+     186,    -1,   138,   198,    -1,   149,   118,   186,   114,   186,
+     120,    -1,   194,   114,   118,   186,   114,   186,   120,    -1,
+     187,    -1,   195,   114,   187,    -1,   195,    -1,    -1,    60,
+      59,    -1,    59,    -1,   130,   149,   186,   114,   186,    -1,
+     131,   149,   186,   114,   186,    -1,   132,   149,   186,   114,
+     186,    -1,    49,   187,    -1,   133,   187,   114,   187,    -1,
+     103,   187,    36,   149,    -1,   104,   187,   114,   187,   114,
+     187,    -1,   107,   187,   114,   149,    -1,   111,   187,   114,
+     149,    -1,   112,   187,   114,   149,    -1,   108,   187,   114,
+     187,    -1,   109,   187,   114,   187,   114,   187,    -1,   110,
+     187,   114,   187,   114,   187,    -1,   102,   194,    -1,   197,
+     140,   147,   186,   116,   196,   117,    -1,   201,    -1,   114,
+     195,    -1,    -1,    35,    -1,    -1,    96,   149,   142,    -1,
+      96,   149,   114,    15,   186,   142,    -1,    97,   149,   142,
+      -1,    97,   149,   114,    15,   186,   142,    -1,    98,   187,
+      -1,   200,    99,   149,   186,    -1,   200,   100,   187,   114,
+     149,   186,    -1,   101,   149,   186,   199,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1134,  1134,  1135,  1143,  1144,  1154,  1154,  1154,  1154,
-    1154,  1154,  1154,  1155,  1155,  1155,  1156,  1156,  1156,  1156,
-    1156,  1156,  1158,  1158,  1162,  1162,  1162,  1162,  1163,  1163,
-    1163,  1163,  1164,  1164,  1165,  1165,  1168,  1172,  1177,  1178,
-    1179,  1180,  1181,  1182,  1183,  1184,  1186,  1187,  1188,  1189,
-    1190,  1191,  1192,  1193,  1202,  1203,  1209,  1210,  1218,  1226,
-    1227,  1232,  1233,  1234,  1239,  1253,  1253,  1254,  1254,  1256,
-    1266,  1266,  1266,  1266,  1266,  1266,  1266,  1267,  1267,  1267,
-    1267,  1267,  1267,  1268,  1272,  1276,  1284,  1292,  1305,  1310,
-    1322,  1332,  1336,  1347,  1352,  1358,  1359,  1363,  1367,  1378,
-    1404,  1418,  1448,  1474,  1495,  1508,  1518,  1523,  1584,  1591,
-    1600,  1606,  1612,  1616,  1620,  1628,  1639,  1671,  1679,  1706,
-    1717,  1723,  1731,  1737,  1743,  1752,  1756,  1764,  1764,  1774,
-    1782,  1787,  1791,  1795,  1799,  1814,  1836,  1839,  1842,  1842,
-    1850,  1850,  1858,  1858,  1866,  1866,  1875,  1878,  1881,  1885,
-    1898,  1899,  1901,  1905,  1914,  1918,  1923,  1925,  1930,  1935,
-    1944,  1944,  1945,  1945,  1947,  1954,  1960,  1967,  1971,  1977,
-    1982,  1987,  2082,  2082,  2084,  2092,  2092,  2094,  2099,  2100,
-    2101,  2103,  2103,  2113,  2117,  2122,  2126,  2130,  2134,  2138,
-    2142,  2146,  2150,  2154,  2179,  2183,  2197,  2201,  2207,  2207,
-    2213,  2218,  2222,  2231,  2242,  2247,  2259,  2272,  2276,  2280,
-    2285,  2294,  2313,  2322,  2378,  2382,  2389,  2400,  2413,  2422,
-    2431,  2441,  2445,  2452,  2452,  2454,  2458,  2463,  2482,  2497,
-    2511,  2524,  2532,  2540,  2548,  2554,  2574,  2597,  2603,  2609,
-    2615,  2630,  2689,  2696,  2699,  2704,  2708,  2715,  2720,  2726,
-    2731,  2737,  2745,  2757,  2772
+       0,  1139,  1139,  1140,  1148,  1149,  1159,  1159,  1159,  1159,
+    1159,  1159,  1159,  1159,  1159,  1160,  1160,  1160,  1161,  1161,
+    1161,  1161,  1161,  1161,  1163,  1163,  1167,  1167,  1167,  1167,
+    1168,  1168,  1168,  1168,  1169,  1169,  1170,  1170,  1173,  1177,
+    1182,  1183,  1184,  1185,  1186,  1187,  1188,  1189,  1191,  1192,
+    1193,  1194,  1195,  1196,  1197,  1198,  1207,  1208,  1214,  1215,
+    1223,  1231,  1232,  1237,  1238,  1239,  1244,  1258,  1258,  1259,
+    1259,  1261,  1271,  1271,  1271,  1271,  1271,  1271,  1271,  1272,
+    1272,  1272,  1272,  1272,  1272,  1273,  1277,  1281,  1289,  1297,
+    1310,  1315,  1327,  1337,  1341,  1352,  1357,  1363,  1364,  1368,
+    1372,  1383,  1409,  1423,  1453,  1479,  1500,  1513,  1523,  1528,
+    1589,  1596,  1605,  1611,  1617,  1621,  1625,  1633,  1644,  1676,
+    1684,  1711,  1722,  1728,  1736,  1742,  1748,  1757,  1761,  1769,
+    1769,  1779,  1787,  1792,  1796,  1800,  1804,  1819,  1841,  1844,
+    1847,  1847,  1855,  1855,  1863,  1863,  1871,  1871,  1880,  1883,
+    1886,  1890,  1903,  1904,  1906,  1910,  1919,  1923,  1928,  1930,
+    1935,  1940,  1949,  1949,  1950,  1950,  1952,  1959,  1965,  1972,
+    1976,  1982,  1987,  1992,  2087,  2087,  2089,  2097,  2097,  2099,
+    2104,  2105,  2106,  2108,  2108,  2118,  2122,  2127,  2131,  2135,
+    2139,  2143,  2147,  2151,  2155,  2159,  2184,  2188,  2202,  2206,
+    2212,  2212,  2218,  2223,  2227,  2236,  2247,  2252,  2264,  2277,
+    2281,  2285,  2290,  2299,  2318,  2327,  2383,  2387,  2394,  2405,
+    2418,  2427,  2436,  2446,  2450,  2457,  2457,  2459,  2463,  2468,
+    2490,  2505,  2519,  2532,  2540,  2548,  2556,  2562,  2582,  2605,
+    2611,  2617,  2623,  2638,  2697,  2704,  2707,  2712,  2716,  2723,
+    2728,  2734,  2739,  2745,  2753,  2765,  2780
 };
 #endif
 
@@ -1740,27 +1749,28 @@
   "SIDEEFFECT", "CC_TOK", "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK",
   "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
   "RET", "BR", "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB",
-  "MUL", "UDIV", "SDIV", "FDIV", "REM", "AND", "OR", "XOR", "SETLE",
-  "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC", "ALLOCA", "FREE",
-  "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "CAST", "SELECT", "SHL",
-  "SHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
-  "VAARG_old", "VANEXT_old", "'='", "','", "'\\\\'", "'('", "')'", "'['",
-  "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'*'", "'c'", "$accept",
-  "INTVAL", "EINT64VAL", "ArithmeticOps", "LogicalOps", "SetCondOps",
-  "ShiftOps", "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
+  "MUL", "UDIV", "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR",
+  "XOR", "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC",
+  "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "CAST",
+  "SELECT", "SHL", "SHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT",
+  "SHUFFLEVECTOR", "VAARG_old", "VANEXT_old", "'='", "','", "'\\\\'",
+  "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'*'",
+  "'c'", "$accept", "INTVAL", "EINT64VAL", "ArithmeticOps", "LogicalOps",
+  "SetCondOps", "ShiftOps", "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
 
@@ -1780,40 +1790,40 @@
      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,    61,    44,    92,    40,    41,    91,   120,    93,    60,
-      62,   123,   125,    42,    99
+     365,   366,   367,    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,   125,   126,   126,   127,   127,   128,   128,   128,   128,
-     128,   128,   128,   129,   129,   129,   130,   130,   130,   130,
-     130,   130,   131,   131,   132,   132,   132,   132,   133,   133,
-     133,   133,   134,   134,   135,   135,   136,   136,   137,   137,
-     137,   137,   137,   137,   137,   137,   138,   138,   138,   138,
-     138,   138,   138,   138,   139,   139,   140,   140,   141,   142,
-     142,   143,   143,   144,   144,   145,   145,   146,   146,   147,
-     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
-     148,   148,   148,   149,   149,   149,   149,   149,   149,   149,
-     149,   149,   149,   150,   150,   151,   151,   151,   151,   152,
-     152,   152,   152,   152,   152,   152,   152,   152,   152,   152,
-     152,   152,   152,   152,   152,   153,   153,   153,   153,   153,
-     153,   153,   153,   153,   153,   154,   154,   155,   155,   156,
-     157,   157,   157,   157,   157,   158,   158,   158,   159,   158,
-     160,   158,   161,   158,   162,   158,   158,   158,   158,   163,
-     164,   164,   165,   165,   165,   165,   166,   167,   167,   167,
-     168,   168,   169,   169,   170,   171,   171,   172,   172,   172,
-     172,   173,   174,   174,   175,   176,   176,   177,   178,   178,
-     178,   180,   179,   181,   181,   182,   182,   182,   182,   182,
-     182,   182,   182,   182,   182,   182,   183,   183,   184,   184,
-     185,   186,   186,   187,   188,   188,   188,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   190,   190,   191,   192,
-     192,   193,   193,   194,   194,   195,   195,   196,   196,   196,
-     196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
-     196,   196,   196,   197,   197,   198,   198,   199,   199,   199,
-     199,   199,   199,   199,   199
+       0,   127,   128,   128,   129,   129,   130,   130,   130,   130,
+     130,   130,   130,   130,   130,   131,   131,   131,   132,   132,
+     132,   132,   132,   132,   133,   133,   134,   134,   134,   134,
+     135,   135,   135,   135,   136,   136,   137,   137,   138,   138,
+     139,   139,   139,   139,   139,   139,   139,   139,   140,   140,
+     140,   140,   140,   140,   140,   140,   141,   141,   142,   142,
+     143,   144,   144,   145,   145,   146,   146,   147,   147,   148,
+     148,   149,   150,   150,   150,   150,   150,   150,   150,   150,
+     150,   150,   150,   150,   150,   151,   151,   151,   151,   151,
+     151,   151,   151,   151,   151,   152,   152,   153,   153,   153,
+     153,   154,   154,   154,   154,   154,   154,   154,   154,   154,
+     154,   154,   154,   154,   154,   154,   154,   155,   155,   155,
+     155,   155,   155,   155,   155,   155,   155,   156,   156,   157,
+     157,   158,   159,   159,   159,   159,   159,   160,   160,   160,
+     161,   160,   162,   160,   163,   160,   164,   160,   160,   160,
+     160,   165,   166,   166,   167,   167,   167,   167,   168,   169,
+     169,   169,   170,   170,   171,   171,   172,   173,   173,   174,
+     174,   174,   174,   175,   176,   176,   177,   178,   178,   179,
+     180,   180,   180,   182,   181,   183,   183,   184,   184,   184,
+     184,   184,   184,   184,   184,   184,   184,   184,   185,   185,
+     186,   186,   187,   188,   188,   189,   190,   190,   190,   191,
+     191,   191,   191,   191,   191,   191,   191,   191,   192,   192,
+     193,   194,   194,   195,   195,   196,   196,   197,   197,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   199,   199,   200,   200,   201,
+     201,   201,   201,   201,   201,   201,   201
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1822,502 +1832,519 @@
        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,     2,     0,     1,     1,
-       1,     1,     1,     1,     1,     0,     0,     1,     1,     1,
-       1,     1,     1,     2,     0,     2,     0,     3,     2,     0,
-       1,     0,     3,     1,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
+       1,     1,     1,     1,     1,     1,     1,     0,     0,     1,
+       1,     1,     1,     1,     1,     2,     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,     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,     6,     6,     8,     8,     3,     1,     1,     1,     1,
-       2,     2,     4,     2,     1,     4,     2,     4,     0,     7,
-       0,     7,     0,     7,     0,     7,     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,     2,     0,     1,
-       1,     0,     4,     0,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     3,     1,     5,     1,     1,     1,     1,
-       2,     2,     2,     3,     2,     0,     1,     2,     2,     3,
-       9,     9,     8,    13,     1,     1,     6,     5,     2,     6,
-       7,     1,     3,     1,     0,     2,     1,     5,     5,     5,
-       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
+       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,     6,     6,     8,     8,     3,     1,     1,
+       1,     1,     2,     2,     4,     2,     1,     4,     2,     4,
+       0,     7,     0,     7,     0,     7,     0,     7,     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,     2,
+       0,     1,     1,     0,     4,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     3,     1,     5,     1,     1,
+       1,     1,     2,     2,     2,     3,     2,     0,     1,     2,
+       2,     3,     9,     9,     8,    13,     1,     1,     6,     5,
+       2,     6,     7,     1,     3,     1,     0,     2,     1,     5,
+       5,     5,     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
 };
 
 /* 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 char yydefact[] =
+static const unsigned short int yydefact[] =
 {
-     148,     0,    45,   134,     1,   133,   181,    38,    39,    40,
-      41,    42,    43,    44,     0,    46,   205,   130,   131,   205,
-     160,   161,     0,     0,     0,    45,     0,   136,   178,     0,
-       0,    47,    48,    49,    50,    51,    52,     0,     0,   206,
-     202,    37,   175,   176,   177,   201,     0,     0,     0,     0,
-     146,     0,     0,     0,     0,     0,     0,     0,    36,   179,
-     180,    46,   149,   132,    53,     2,     3,    66,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,     0,     0,     0,     0,   196,     0,     0,    65,
-      84,    69,   197,    85,   172,   173,   174,   246,   204,     0,
-       0,     0,     0,   159,   147,   137,   135,   127,   128,     0,
-       0,     0,     0,   182,    86,     0,     0,    68,    91,    93,
-       0,     0,    98,    92,   245,     0,   226,     0,     0,     0,
-       0,    46,   214,   215,     6,     7,     8,     9,    10,    11,
+     150,     0,    47,   136,     1,   135,   183,    40,    41,    42,
+      43,    44,    45,    46,     0,    48,   207,   132,   133,   207,
+     162,   163,     0,     0,     0,    47,     0,   138,   180,     0,
+       0,    49,    50,    51,    52,    53,    54,     0,     0,   208,
+     204,    39,   177,   178,   179,   203,     0,     0,     0,     0,
+     148,     0,     0,     0,     0,     0,     0,     0,    38,   181,
+     182,    48,   151,   134,    55,     2,     3,    68,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,     0,     0,     0,     0,   198,     0,     0,    67,
+      86,    71,   199,    87,   174,   175,   176,   248,   206,     0,
+       0,     0,     0,   161,   149,   139,   137,   129,   130,     0,
+       0,     0,     0,   184,    88,     0,     0,    70,    93,    95,
+       0,     0,   100,    94,   247,     0,   228,     0,     0,     0,
+       0,    48,   216,   217,     6,     7,     8,     9,    10,    11,
       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-       0,     0,     0,     0,     0,     0,     0,    22,    23,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   203,
-      46,   218,     0,   242,   154,   151,   150,   152,   153,   155,
-     158,     0,   142,   144,   140,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,     0,     0,     0,     0,
-     138,     0,     0,     0,    90,   170,    97,    95,     0,     0,
-     230,   225,   208,   207,     0,     0,    27,    31,    26,    30,
-      25,    29,    24,    28,    32,    33,     0,     0,    56,    56,
-     251,     0,     0,   240,     0,     0,     0,     0,     0,     0,
+      22,    23,     0,     0,     0,     0,     0,     0,     0,    24,
+      25,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   205,    48,   220,     0,   244,   156,   153,   152,   154,
+     155,   157,   160,     0,   144,   146,   142,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,     0,     0,
+       0,     0,   140,     0,     0,     0,    92,   172,    99,    97,
+       0,     0,   232,   227,   210,   209,     0,     0,    29,    33,
+      28,    32,    27,    31,    26,    30,    34,    35,     0,     0,
+      58,    58,   253,     0,     0,   242,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     156,    61,    61,    61,   112,   113,     4,     5,   110,   111,
-     114,   109,   105,   106,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   108,   107,
-      61,    67,    67,    94,   169,   163,   166,   167,     0,     0,
-      87,   185,   186,   187,   192,   188,   189,   190,   191,   183,
-       0,   194,   199,   198,   200,     0,   209,     0,     0,     0,
-     247,     0,   249,   244,     0,     0,     0,     0,     0,     0,
+       0,     0,   158,    63,    63,    63,   114,   115,     4,     5,
+     112,   113,   116,   111,   107,   108,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   157,     0,   143,   145,   141,     0,     0,     0,     0,
-       0,     0,   100,   126,     0,     0,   104,     0,   101,     0,
-       0,     0,     0,   139,    88,    89,   162,   164,     0,    59,
-      96,   184,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   254,     0,     0,   232,     0,   234,   237,     0,     0,
-     235,   236,     0,     0,     0,   231,     0,   252,     0,     0,
-       0,    63,    61,   244,     0,     0,     0,     0,     0,     0,
-      99,   102,   103,     0,     0,     0,     0,   168,   165,    60,
-      54,     0,   193,     0,     0,   224,    56,    57,    56,   221,
-     243,     0,     0,     0,     0,     0,   227,   228,   229,   224,
-       0,    58,    64,    62,     0,     0,     0,     0,     0,     0,
-     125,     0,     0,     0,     0,     0,   171,     0,     0,     0,
-     223,     0,     0,   248,   250,     0,     0,     0,   233,   238,
-     239,     0,   253,   116,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    55,   195,     0,     0,     0,   222,   219,
-       0,   241,   115,     0,   122,     0,     0,   118,   119,   120,
-     121,     0,   212,     0,     0,     0,   220,     0,     0,     0,
-     210,     0,   211,     0,     0,   117,   123,   124,     0,     0,
-       0,     0,     0,     0,   217,     0,     0,   216,   213
+     110,   109,    63,    69,    69,    96,   171,   165,   168,   169,
+       0,     0,    89,   187,   188,   189,   194,   190,   191,   192,
+     193,   185,     0,   196,   201,   200,   202,     0,   211,     0,
+       0,     0,   249,     0,   251,   246,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   159,     0,   145,   147,   143,     0,     0,
+       0,     0,     0,     0,   102,   128,     0,     0,   106,     0,
+     103,     0,     0,     0,     0,   141,    90,    91,   164,   166,
+       0,    61,    98,   186,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   256,     0,     0,   234,     0,   236,   239,
+       0,     0,   237,   238,     0,     0,     0,   233,     0,   254,
+       0,     0,     0,    65,    63,   246,     0,     0,     0,     0,
+       0,     0,   101,   104,   105,     0,     0,     0,     0,   170,
+     167,    62,    56,     0,   195,     0,     0,   226,    58,    59,
+      58,   223,   245,     0,     0,     0,     0,     0,   229,   230,
+     231,   226,     0,    60,    66,    64,     0,     0,     0,     0,
+       0,     0,   127,     0,     0,     0,     0,     0,   173,     0,
+       0,     0,   225,     0,     0,   250,   252,     0,     0,     0,
+     235,   240,   241,     0,   255,   118,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    57,   197,     0,     0,     0,
+     224,   221,     0,   243,   117,     0,   124,     0,     0,   120,
+     121,   122,   123,     0,   214,     0,     0,     0,   222,     0,
+       0,     0,   212,     0,   213,     0,     0,   119,   125,   126,
+       0,     0,     0,     0,     0,     0,   219,     0,     0,   218,
+     215
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short int yydefgoto[] =
 {
-      -1,    86,   258,   274,   275,   276,   277,   196,   197,   226,
-     198,    25,    15,    37,   446,   310,   391,   410,   333,   392,
-      87,    88,   199,    90,    91,   120,   208,   343,   301,   344,
-     109,     1,     2,     3,   280,   253,   251,   252,    63,   177,
-      50,   104,   181,    92,   357,   286,   287,   288,    38,    96,
-      16,    44,    17,    61,    18,    28,   362,   302,    93,   304,
-     419,    19,    40,    41,   169,   494,    98,   233,   450,   451,
-     170,   171,   371,   172,   173
+      -1,    86,   260,   276,   277,   278,   279,   198,   199,   228,
+     200,    25,    15,    37,   448,   312,   393,   412,   335,   394,
+      87,    88,   201,    90,    91,   120,   210,   345,   303,   346,
+     109,     1,     2,     3,   282,   255,   253,   254,    63,   179,
+      50,   104,   183,    92,   359,   288,   289,   290,    38,    96,
+      16,    44,    17,    61,    18,    28,   364,   304,    93,   306,
+     421,    19,    40,    41,   171,   496,    98,   235,   452,   453,
+     172,   173,   373,   174,   175
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -463
+#define YYPACT_NINF -447
 static const short int yypact[] =
 {
-    -463,    42,   182,   621,  -463,  -463,  -463,  -463,  -463,  -463,
-    -463,  -463,  -463,  -463,   -15,   347,    64,  -463,  -463,   -12,
-    -463,  -463,    15,     1,    33,   360,    10,  -463,    89,   114,
-     140,  -463,  -463,  -463,  -463,  -463,  -463,  1005,    -1,  -463,
-    -463,   115,  -463,  -463,  -463,  -463,    40,    56,    67,    68,
-    -463,    59,   114,  1005,    51,    51,    51,    51,  -463,  -463,
-    -463,   347,  -463,  -463,  -463,  -463,  -463,    66,  -463,  -463,
-    -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
-    -463,  -463,   172,   177,   180,   489,  -463,   115,    74,  -463,
-    -463,   -97,  -463,  -463,  -463,  -463,  -463,  1178,  -463,   165,
-     -17,   188,   170,   171,  -463,  -463,  -463,  -463,  -463,  1046,
-    1046,  1046,  1087,  -463,  -463,    80,    81,  -463,  -463,   -97,
-     -91,    85,   838,  -463,  -463,  1046,  -463,   142,  1128,     6,
-     248,   347,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
-    -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
-    1046,  1046,  1046,  1046,  1046,  1046,  1046,  -463,  -463,  1046,
-    1046,  1046,  1046,  1046,  1046,  1046,  1046,  1046,  1046,  -463,
-     347,  -463,    35,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
-    -463,   -48,  -463,  -463,  -463,   113,   146,   198,   150,   200,
-     152,   213,   167,   214,   212,   223,   169,   216,   224,   443,
-    -463,  1046,  1046,  1046,  -463,   879,  -463,   109,   117,   620,
-    -463,  -463,    66,  -463,   620,   620,  -463,  -463,  -463,  -463,
-    -463,  -463,  -463,  -463,  -463,  -463,   620,  1005,   128,   129,
-    -463,   620,   126,   131,   209,   134,   141,   143,   144,   154,
-     156,   157,   620,   620,   620,   158,  1005,  1046,  1046,   228,
-    -463,   161,   161,   161,  -463,  -463,  -463,  -463,  -463,  -463,
-    -463,  -463,  -463,  -463,   160,   164,   175,   178,   181,   184,
-      87,  1087,   574,   230,   185,   186,   187,   189,  -463,  -463,
-     161,   -33,  -101,   -97,  -463,   115,  -463,   163,   176,   923,
-    -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,   231,
-    1087,  -463,  -463,  -463,  -463,   190,  -463,   195,   620,    -9,
-    -463,    -8,  -463,   196,   620,   193,  1046,  1046,  1046,  1046,
-    1046,  1046,  1046,  1046,   199,   201,   202,  1046,   620,   620,
-     203,  -463,   -22,  -463,  -463,  -463,  1087,  1087,  1087,  1087,
-    1087,  1087,  -463,  -463,   -47,   -79,  -463,   -82,  -463,  1087,
-    1087,  1087,  1087,  -463,  -463,  -463,  -463,  -463,   964,   262,
-    -463,  -463,   293,   -75,   301,   302,   210,   620,   324,   620,
-    1046,  -463,   217,   620,  -463,   218,  -463,  -463,   219,   220,
-    -463,  -463,   620,   620,   620,  -463,   229,  -463,  1046,   314,
-     340,  -463,   161,   196,   309,   234,   237,   240,   241,  1087,
-    -463,  -463,  -463,   242,   243,   246,   247,  -463,  -463,  -463,
-     303,   249,  -463,   620,   620,  1046,   250,  -463,   250,  -463,
-     251,   620,   255,  1046,  1046,  1046,  -463,  -463,  -463,  1046,
-     620,  -463,  -463,  -463,   253,  1046,  1087,  1087,  1087,  1087,
-    -463,  1087,  1087,  1087,  1087,   365,  -463,   348,   259,   258,
-     251,   260,   320,  -463,  -463,  1046,   261,   620,  -463,  -463,
-    -463,   267,  -463,  -463,   270,   277,   278,   282,   283,   281,
-     284,   294,   304,  -463,  -463,   376,    65,   372,  -463,  -463,
-     305,  -463,  -463,  1087,  -463,  1087,  1087,  -463,  -463,  -463,
-    -463,   620,  -463,   726,   149,   399,  -463,   306,   307,   310,
-    -463,   312,  -463,   726,   620,  -463,  -463,  -463,   405,   315,
-     352,   620,   409,   411,  -463,   620,   620,  -463,  -463
+    -447,    33,   122,   610,  -447,  -447,  -447,  -447,  -447,  -447,
+    -447,  -447,  -447,  -447,   -13,   161,    47,  -447,  -447,   -15,
+    -447,  -447,    15,    10,    91,    -6,    48,  -447,    19,   138,
+     168,  -447,  -447,  -447,  -447,  -447,  -447,  1070,   -20,  -447,
+    -447,    70,  -447,  -447,  -447,  -447,    60,    61,    64,    67,
+    -447,    63,   138,  1070,   106,   106,   106,   106,  -447,  -447,
+    -447,   161,  -447,  -447,  -447,  -447,  -447,    59,  -447,  -447,
+    -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,
+    -447,  -447,   174,   178,   179,   576,  -447,    70,    74,  -447,
+    -447,   -54,  -447,  -447,  -447,  -447,  -447,  1245,  -447,   162,
+     -44,   190,   171,   172,  -447,  -447,  -447,  -447,  -447,  1111,
+    1111,  1111,  1152,  -447,  -447,    78,    88,  -447,  -447,   -54,
+     -29,    92,   865,  -447,  -447,  1111,  -447,   150,  1193,    75,
+     189,   161,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,
+    -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,
+    -447,  -447,  1111,  1111,  1111,  1111,  1111,  1111,  1111,  -447,
+    -447,  1111,  1111,  1111,  1111,  1111,  1111,  1111,  1111,  1111,
+    1111,  -447,   161,  -447,     8,  -447,  -447,  -447,  -447,  -447,
+    -447,  -447,  -447,   -10,  -447,  -447,  -447,   113,   139,   206,
+     145,   211,   147,   215,   152,   216,   214,   225,   154,   218,
+     226,   419,  -447,  1111,  1111,  1111,  -447,   906,  -447,   120,
+     118,   643,  -447,  -447,    59,  -447,   643,   643,  -447,  -447,
+    -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,   643,  1070,
+     128,   129,  -447,   643,   126,   131,   210,   133,   134,   140,
+     141,   142,   143,   144,   643,   643,   643,   146,  1070,  1111,
+    1111,   237,  -447,   148,   148,   148,  -447,  -447,  -447,  -447,
+    -447,  -447,  -447,  -447,  -447,  -447,   149,   151,   153,   155,
+     156,   159,   947,  1152,   596,   239,   160,   164,   175,   177,
+    -447,  -447,   148,   -74,   -23,   -54,  -447,    70,  -447,   163,
+     180,   988,  -447,  -447,  -447,  -447,  -447,  -447,  -447,  -447,
+    -447,   201,  1152,  -447,  -447,  -447,  -447,   182,  -447,   184,
+     643,    -2,  -447,     6,  -447,   186,   643,   176,  1111,  1111,
+    1111,  1111,  1111,  1111,  1111,  1111,   187,   188,   191,  1111,
+     643,   643,   195,  -447,   -12,  -447,  -447,  -447,  1152,  1152,
+    1152,  1152,  1152,  1152,  -447,  -447,    -9,   -21,  -447,   -27,
+    -447,  1152,  1152,  1152,  1152,  -447,  -447,  -447,  -447,  -447,
+    1029,   232,  -447,  -447,   244,   -16,   249,   282,   194,   643,
+     300,   643,  1111,  -447,   197,   643,  -447,   199,  -447,  -447,
+     202,   203,  -447,  -447,   643,   643,   643,  -447,   208,  -447,
+    1111,   291,   315,  -447,   148,   186,   289,   212,   217,   219,
+     220,  1152,  -447,  -447,  -447,   231,   233,   234,   240,  -447,
+    -447,  -447,   273,   241,  -447,   643,   643,  1111,   242,  -447,
+     242,  -447,   243,   643,   246,  1111,  1111,  1111,  -447,  -447,
+    -447,  1111,   643,  -447,  -447,  -447,   223,  1111,  1152,  1152,
+    1152,  1152,  -447,  1152,  1152,  1152,  1152,   328,  -447,   322,
+     247,   245,   243,   248,   294,  -447,  -447,  1111,   250,   643,
+    -447,  -447,  -447,   252,  -447,  -447,   254,   259,   257,   262,
+     263,   264,   265,   267,   270,  -447,  -447,   341,    14,   343,
+    -447,  -447,   271,  -447,  -447,  1152,  -447,  1152,  1152,  -447,
+    -447,  -447,  -447,   643,  -447,   751,    65,   374,  -447,   279,
+     280,   281,  -447,   285,  -447,   751,   643,  -447,  -447,  -447,
+     380,   290,   288,   643,   382,   384,  -447,   643,   643,  -447,
+    -447
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -463,  -463,  -463,   336,   339,   341,   342,  -129,  -128,  -462,
-    -463,   396,   415,  -118,  -463,  -225,    82,  -463,  -244,  -463,
-     -50,  -463,   -37,  -463,   -56,   321,  -463,  -102,   252,  -247,
-       5,  -463,  -463,  -463,  -463,  -463,  -463,  -463,   390,  -463,
-    -463,  -463,  -463,     2,  -463,    92,  -463,  -463,   391,  -463,
-    -463,  -463,  -463,  -463,   450,  -463,  -463,  -459,   -57,    62,
-    -105,  -463,   436,  -463,  -463,  -463,  -463,  -463,    86,    28,
-    -463,  -463,    69,  -463,  -463
+    -447,  -447,  -447,   309,   310,   311,   312,  -129,  -128,  -446,
+    -447,   369,   386,   -89,  -447,  -227,    51,  -447,  -248,  -447,
+     -50,  -447,   -37,  -447,   -68,   292,  -447,  -102,   221,  -255,
+      57,  -447,  -447,  -447,  -447,  -447,  -447,  -447,   361,  -447,
+    -447,  -447,  -447,     2,  -447,    55,  -447,  -447,   355,  -447,
+    -447,  -447,  -447,  -447,   414,  -447,  -447,  -405,   -57,    62,
+    -105,  -447,   399,  -447,  -447,  -447,  -447,  -447,    49,    -8,
+    -447,  -447,    24,  -447,  -447
 };
 
 /* 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 -130
+#define YYTABLE_NINF -132
 static const short int yytable[] =
 {
-      89,   224,   225,   106,   312,    26,   367,   369,   334,   335,
-     200,    39,   389,   227,   493,   214,    89,   -67,    42,   355,
-     210,   203,   123,   213,   345,   347,   123,   215,    94,   119,
-     399,   204,   503,   399,   501,   390,   353,   399,   175,   176,
-     402,   401,     4,    26,   509,   412,    29,   230,   368,   368,
-     234,   235,   246,   363,   236,   237,   238,   239,   240,   241,
-     110,   111,   112,   245,   249,   399,   119,    46,    47,    48,
-     250,   400,   182,   183,   184,   216,   217,   218,   219,   220,
-     221,   222,   223,   107,   108,   354,    49,    39,   209,   121,
-     123,   209,    65,    66,    52,   117,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,    79,    80,    20,
-      43,    21,    51,   228,   229,   209,   231,   232,   209,   209,
-      95,    58,   209,   209,   209,   209,   209,   209,   242,   243,
-     244,   209,   247,   248,    59,    81,    60,    20,    62,    21,
-     254,   255,   279,   330,    64,   281,   282,   283,   433,   -27,
-     -27,    99,   303,   -26,   -26,   -25,   -25,   303,   303,   216,
-     217,   218,   219,   220,   221,   222,   223,   100,   285,   303,
-     -24,   -24,   256,   257,   303,   103,   114,   308,   101,   102,
-     -68,   115,  -129,   492,   116,   303,   303,   303,   122,   174,
-      89,   453,   178,   454,   179,   180,   328,   201,   202,   205,
-      82,   211,   -31,    83,   -30,   342,    84,     5,    85,    89,
-     329,   209,   375,     6,   377,   378,   379,   -29,   -28,   -34,
-     259,   289,   385,     7,     8,     9,    10,    11,    12,    13,
-     -35,   260,   290,   283,   393,   394,   395,   396,   397,   398,
-     309,   311,   314,   315,    14,   316,   317,   403,   404,   405,
-     406,   303,   331,   318,   348,   319,   320,   303,   216,   217,
-     218,   219,   220,   221,   222,   223,   321,   502,   322,   323,
-     327,   303,   303,   332,   336,   358,   305,   306,   337,   374,
-     209,   376,   209,   209,   209,   380,   381,   356,   307,   338,
-     209,   359,   339,   313,   361,   340,   389,   440,   341,   349,
-     350,   351,   364,   352,   324,   325,   326,   365,   370,   373,
-     303,   382,   303,   383,   384,   388,   303,   411,   458,   459,
-     460,   285,   413,   414,   415,   303,   303,   303,   417,   421,
-     423,   424,   425,   209,   465,   466,   467,   468,   431,   469,
-     470,   471,   472,   429,   432,   435,   436,   224,   225,   437,
-     478,   430,   438,   439,   441,   442,   303,   303,   443,   444,
-     445,   447,   452,   455,   303,   224,   225,   457,   463,   473,
-     366,   475,   474,   303,   476,   477,   372,   368,   209,   479,
-      53,   497,   481,   498,   499,   482,   209,   209,   209,   483,
-     386,   387,   209,   484,   485,   486,   487,   491,   464,   488,
-     303,     7,     8,     9,    10,    54,    12,    55,   495,   489,
-      56,    30,    31,    32,    33,    34,    35,    36,   209,   490,
-     504,   505,   506,   496,   508,   507,   511,   512,   513,   416,
-     515,   418,   516,   165,   303,   422,   166,    97,   167,   168,
-      57,   409,   105,   207,   426,   427,   428,   303,    65,    66,
-     408,   278,   113,    27,   303,    45,   420,   461,   303,   303,
-       0,     0,   434,     0,     0,    20,     0,    21,     0,   261,
-       0,     0,     0,     0,     0,   448,   449,     0,     0,     0,
-       0,   262,   263,   456,     0,     0,     0,     0,     0,     0,
-       0,     0,   462,     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,   480,
-       0,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,    81,     0,     0,
-       0,     0,   264,     0,   265,   266,   157,   158,     0,   267,
-     268,   269,     0,   500,     0,     0,     0,     0,     0,   270,
-       0,     0,   271,     0,   272,     0,   510,   273,     0,     0,
-       0,     0,     0,   514,     0,     0,     0,   517,   518,    65,
-      66,     0,   117,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,    79,    80,    20,     0,    21,     0,
-       0,     0,    82,     0,     0,    83,     0,     0,    84,     0,
-      85,   118,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    81,   291,   292,    65,    66,   293,     0,     0,
+      89,   226,   227,   106,   314,    26,   336,   337,    39,    94,
+     202,   177,   178,   369,    53,    42,    89,   119,   347,   349,
+     212,   371,   391,   215,   218,   219,   220,   221,   222,   223,
+     224,   225,   495,     4,   355,     7,     8,     9,    10,    54,
+      12,    55,   229,    26,    56,   392,   356,   365,    29,   232,
+     505,   123,   236,   237,   119,   370,   238,   239,   240,   241,
+     242,   243,   -69,   370,    59,   247,    60,    46,    47,    48,
+      39,   123,   184,   185,   186,   218,   219,   220,   221,   222,
+     223,   224,   225,   248,   216,   205,    49,   401,   211,   121,
+     503,   211,    20,   401,    21,   206,   217,   404,   401,   357,
+     511,   403,   123,    95,   251,   401,   414,   249,   250,    43,
+     252,   402,   110,   111,   112,   230,   231,   211,   233,   234,
+     211,   211,  -131,    51,   211,   211,   211,   211,   211,   211,
+     244,   245,   246,   211,   494,   283,   284,   285,   107,   108,
+     256,   257,   -29,   -29,   281,   332,   435,     5,   -28,   -28,
+     -27,   -27,    52,     6,   305,   -26,   -26,   258,   259,   305,
+     305,    58,    62,     7,     8,     9,    10,    11,    12,    13,
+     287,   305,    64,    99,   100,   -70,   305,   101,   114,   310,
+     102,   103,   115,   116,    14,   504,   176,   305,   305,   305,
+     122,   455,    89,   456,   180,   181,   182,   203,   330,   218,
+     219,   220,   221,   222,   223,   224,   225,   204,   207,   213,
+     -33,    89,   331,   211,   377,   -32,   379,   380,   381,   -31,
+     -30,   -36,   261,   285,   387,    30,    31,    32,    33,    34,
+      35,    36,   -37,   262,   291,   292,   395,   396,   397,   398,
+     399,   400,   311,   313,   316,   317,   318,   319,   320,   405,
+     406,   407,   408,   305,   321,   322,   323,   324,   325,   305,
+     329,   333,   334,   350,   363,   338,   391,   339,   413,   340,
+     415,   341,   342,   305,   305,   343,   351,   360,   307,   308,
+     352,   376,   211,   378,   211,   211,   211,   382,   383,   358,
+     309,   353,   211,   354,   375,   315,   366,   361,   367,   442,
+     372,   384,   385,   416,   419,   386,   326,   327,   328,   390,
+     417,   423,   305,   425,   305,   433,   426,   427,   305,   434,
+     460,   461,   462,   287,   431,   437,   438,   305,   305,   305,
+     447,   439,   475,   440,   441,   211,   467,   468,   469,   470,
+     465,   471,   472,   473,   474,   443,   476,   444,   445,   226,
+     227,   370,   480,   432,   446,   449,   454,   457,   305,   305,
+     459,   477,   493,   478,   515,   479,   305,   226,   227,   483,
+     481,   484,   368,   485,   486,   305,   487,   488,   374,   497,
+     211,   489,   490,   499,   491,   500,   501,   492,   211,   211,
+     211,   498,   388,   389,   211,   506,   507,   508,   509,   510,
+     466,   513,   305,   517,   514,   518,   167,   168,   169,   170,
+      97,    57,   411,   105,   209,   410,   113,    27,    45,   436,
+     211,   422,   280,   463,    65,    66,     0,     0,     0,     0,
+       0,   418,     0,   420,     0,     0,   305,   424,     0,     0,
+       0,    20,     0,    21,     0,   263,   428,   429,   430,   305,
+       0,     0,     0,     0,     0,     0,   305,   264,   265,     0,
+     305,   305,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   450,   451,     0,
+       0,     0,     0,     0,     0,   458,     0,     0,     0,     0,
+       0,     0,     0,     0,   464,     0,     0,   134,   135,   136,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,     0,     0,     0,     0,     0,
+     266,   482,   267,   268,   159,   160,     0,   269,   270,   271,
+       0,     0,     0,     0,     0,     0,     0,   272,     0,     0,
+     273,     0,   274,     0,     0,   275,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   502,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   512,     0,
+       0,     0,     0,     0,     0,   516,     0,     0,     0,   519,
+     520,    65,    66,     0,   117,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    20,     0,
+      21,    65,    66,     0,   117,   187,   188,   189,   190,   191,
+     192,   193,   194,   195,   196,   197,    79,    80,    20,     0,
+      21,     0,     0,     0,    81,     0,     0,     0,     0,     0,
+     -39,     0,    20,     0,    21,     0,     0,     0,     0,     0,
+       0,     6,   -39,   -39,    81,     0,   293,   294,    65,    66,
+     295,   -39,   -39,   -39,   -39,   -39,   -39,   -39,     0,     0,
+     -39,    22,     0,     0,     0,    20,     0,    21,    23,   296,
+     297,   298,    24,     0,     0,     0,     0,     0,     0,     0,
+       0,   299,   300,     0,     0,     0,     0,     0,     0,     0,
+       0,    82,     0,     0,    83,     0,     0,    84,     0,    85,
+     118,     0,     0,     0,   301,     0,     0,     0,     0,     0,
+       0,    82,     0,     0,    83,     0,     0,    84,     0,    85,
+     348,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,     0,
+       0,     0,     0,     0,   266,     0,   267,   268,   159,   160,
+       0,   269,   270,   271,   293,   294,     0,     0,   295,     0,
+       0,     0,     0,     0,   302,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   296,   297,   298,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   299,
+     300,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   -37,    20,    20,    21,    21,   294,   295,   296,     0,
-       0,     0,     6,   -37,   -37,     0,     0,     0,   297,   298,
-       0,     0,   -37,   -37,   -37,   -37,   -37,   -37,   -37,     0,
-       0,   -37,    22,     0,     0,     0,     0,     0,     0,    23,
-       0,   299,     0,    24,     0,     0,     0,    82,     0,     0,
-      83,     0,     0,    84,     0,    85,   346,     0,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,     0,     0,     0,     0,     0,   264,
-       0,   265,   266,   157,   158,     0,   267,   268,   269,   291,
-     292,     0,     0,   293,     0,     0,     0,     0,     0,   300,
+       0,     0,   301,     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,     0,     0,     0,
+       0,     0,   266,     0,   267,   268,   159,   160,     0,   269,
+     270,   271,     0,     0,     0,     0,     0,     0,     0,     0,
+      65,    66,   302,   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,   294,   295,   296,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   297,   298,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   299,     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,
-       0,     0,     0,     0,     0,   264,     0,   265,   266,   157,
-     158,     0,   267,   268,   269,     0,     0,     0,     0,     0,
-       0,     0,     0,    65,    66,   300,   117,    68,    69,    70,
+       0,     0,   208,     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,   286,     0,     0,     0,     0,     0,     0,
+       0,     0,    65,    66,    81,   117,   187,   188,   189,   190,
+     191,   192,   193,   194,   195,   196,   197,    79,    80,    20,
+       0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
+      82,     0,     0,    83,     0,     0,    84,     0,    85,     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,   206,     0,     0,     0,     0,
+       0,    82,     0,     0,    83,   362,     0,    84,     0,    85,
        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,   284,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    81,    65,    66,
-       0,   117,    68,    69,    70,    71,    72,    73,    74,    75,
+       0,     0,    82,     0,     0,    83,   409,   344,    84,     0,
+      85,     0,     0,     0,     0,    65,    66,    81,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    20,     0,    21,     0,     0,     0,     0,     0,
+       0,     0,     0,    82,     0,     0,    83,     0,     0,    84,
+       0,    85,     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,    82,     0,     0,    83,     0,     0,
+      84,     0,    85,     0,     0,     0,     0,    65,    66,    81,
+     117,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     196,   197,    79,    80,    20,     0,    21,     0,     0,     0,
+       0,     0,     0,     0,     0,    82,     0,     0,    83,     0,
+       0,    84,     0,    85,     0,     0,     0,     0,    65,    66,
+      81,   214,    68,    69,    70,    71,    72,    73,    74,    75,
       76,    77,    78,    79,    80,    20,     0,    21,     0,     0,
-       0,    82,     0,     0,    83,     0,     0,    84,     0,    85,
-     360,     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,    82,     0,     0,    83,     0,     0,    84,     0,
-      85,   407,     0,     0,     0,     0,     0,     0,     0,     0,
-      65,    66,    81,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    20,     0,    21,
        0,     0,     0,     0,     0,     0,    82,     0,     0,    83,
        0,     0,    84,     0,    85,     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,    82,     0,     0,
+       0,    81,     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,    82,     0,     0,
       83,     0,     0,    84,     0,    85,     0,     0,     0,     0,
-       0,     0,    65,    66,    81,   117,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,    79,    80,    20,
-       0,    21,     0,     0,     0,     0,     0,     0,    82,     0,
-       0,    83,     0,     0,    84,     0,    85,     0,     0,     0,
-       0,     0,     0,    65,    66,    81,   212,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      20,     0,    21,     0,     0,     0,     0,     0,     0,    82,
-       0,     0,    83,     0,     0,    84,     0,    85,     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,     0,     0,     0,     0,     0,     0,
-      82,     0,     0,    83,     0,     0,    84,     0,    85,     0,
-       0,     0,     0,   124,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   125,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   126,   127,     0,
-       0,    82,     0,     0,    83,     0,     0,    84,     0,    85,
-     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,     0,     0,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164
+     124,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   125,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   126,   127,     0,     0,    82,     0,
+       0,    83,     0,     0,    84,     0,    85,   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,   154,     0,     0,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166
 };
 
 static const short int yycheck[] =
 {
-      37,   130,   130,    53,   229,     3,    15,    15,   252,   253,
-     112,    23,    34,   131,   476,     9,    53,   114,    30,   120,
-     125,   112,   123,   128,   271,   272,   123,    21,    29,    85,
-     112,   122,   494,   112,   493,    57,   280,   112,    55,    56,
-     122,   120,     0,    41,   503,   120,    61,   152,    57,    57,
-     155,   156,   170,   300,   159,   160,   161,   162,   163,   164,
-      55,    56,    57,   168,   112,   112,   122,    52,    53,    54,
-     118,   118,   109,   110,   111,    10,    11,    12,    13,    14,
-      15,    16,    17,    32,    33,   118,    71,    23,   125,    87,
-     123,   128,     5,     6,    61,     8,     9,    10,    11,    12,
+      37,   130,   130,    53,   231,     3,   254,   255,    23,    29,
+     112,    55,    56,    15,    20,    30,    53,    85,   273,   274,
+     125,    15,    34,   128,    10,    11,    12,    13,    14,    15,
+      16,    17,   478,     0,   282,    41,    42,    43,    44,    45,
+      46,    47,   131,    41,    50,    57,   120,   302,    61,   154,
+     496,   125,   157,   158,   122,    57,   161,   162,   163,   164,
+     165,   166,   116,    57,    45,   170,    47,    52,    53,    54,
+      23,   125,   109,   110,   111,    10,    11,    12,    13,    14,
+      15,    16,    17,   172,     9,   114,    71,   114,   125,    87,
+     495,   128,    22,   114,    24,   124,    21,   124,   114,   122,
+     505,   122,   125,   123,   114,   114,   122,    99,   100,   124,
+     120,   120,    55,    56,    57,   152,   153,   154,   155,   156,
+     157,   158,     0,   113,   161,   162,   163,   164,   165,   166,
+     167,   168,   169,   170,   120,   203,   204,   205,    32,    33,
+      27,    28,     3,     4,   201,   250,   394,    25,     3,     4,
+       3,     4,    61,    31,   211,     3,     4,     3,     4,   216,
+     217,   113,    24,    41,    42,    43,    44,    45,    46,    47,
+     207,   228,     4,   113,   113,   116,   233,   113,     4,   229,
+     113,   118,     4,     4,    62,   120,    24,   244,   245,   246,
+     116,   418,   229,   420,     4,    24,    24,   119,   248,    10,
+      11,    12,    13,    14,    15,    16,    17,   119,   116,    59,
+       4,   248,   249,   250,   319,     4,   321,   322,   323,     4,
+       4,     7,     4,   291,   329,    64,    65,    66,    67,    68,
+      69,    70,     7,     7,   114,   117,   338,   339,   340,   341,
+     342,   343,   114,   114,   118,   114,    36,   114,   114,   351,
+     352,   353,   354,   310,   114,   114,   114,   114,   114,   316,
+     114,    24,   114,    24,    63,   116,    34,   116,    24,   116,
+      21,   116,   116,   330,   331,   116,   116,   114,   216,   217,
+     116,   318,   319,   320,   321,   322,   323,   324,   325,   287,
+     228,   116,   329,   116,   118,   233,   114,   117,   114,   401,
+     114,   114,   114,    21,     4,   114,   244,   245,   246,   114,
+     116,   114,   369,   114,   371,    24,   114,   114,   375,     4,
+     425,   426,   427,   360,   116,    36,   114,   384,   385,   386,
+      57,   114,     4,   114,   114,   372,   438,   439,   440,   441,
+     117,   443,   444,   445,   446,   114,    24,   114,   114,   478,
+     478,    57,   457,   390,   114,   114,   114,   114,   415,   416,
+     114,   114,    21,   118,    76,   117,   423,   496,   496,   117,
+     120,   117,   310,   114,   117,   432,   114,   114,   316,    36,
+     417,   117,   117,   485,   117,   487,   488,   117,   425,   426,
+     427,   120,   330,   331,   431,    21,   117,   117,   117,   114,
+     437,    21,   459,    21,   114,    21,    97,    97,    97,    97,
+      41,    25,   361,    52,   122,   360,    61,     3,    19,   395,
+     457,   372,   201,   431,     5,     6,    -1,    -1,    -1,    -1,
+      -1,   369,    -1,   371,    -1,    -1,   493,   375,    -1,    -1,
+      -1,    22,    -1,    24,    -1,    26,   384,   385,   386,   506,
+      -1,    -1,    -1,    -1,    -1,    -1,   513,    38,    39,    -1,
+     517,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   415,   416,    -1,
+      -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   432,    -1,    -1,    78,    79,    80,
+      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,
+     101,   459,   103,   104,   105,   106,    -1,   108,   109,   110,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
+     121,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   506,    -1,
+      -1,    -1,    -1,    -1,    -1,   513,    -1,    -1,    -1,   517,
+     518,     5,     6,    -1,     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,    -1,    -1,
+      20,    -1,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,
+      -1,    31,    32,    33,    48,    -1,     3,     4,     5,     6,
+       7,    41,    42,    43,    44,    45,    46,    47,    -1,    -1,
+      50,    51,    -1,    -1,    -1,    22,    -1,    24,    58,    26,
+      27,    28,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   115,    -1,    -1,   118,    -1,    -1,   121,    -1,   123,
+     124,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
+      -1,   115,    -1,    -1,   118,    -1,    -1,   121,    -1,   123,
+     124,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
+      -1,    -1,    -1,    -1,   101,    -1,   103,   104,   105,   106,
+      -1,   108,   109,   110,     3,     4,    -1,    -1,     7,    -1,
+      -1,    -1,    -1,    -1,   121,    -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,    -1,    -1,    -1,
+      -1,    -1,   101,    -1,   103,   104,   105,   106,    -1,   108,
+     109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       5,     6,   121,     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,    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,    12,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-     122,    24,   111,   150,   151,   152,   153,   154,   155,   156,
-     121,   111,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,    97,    98,    45,    48,    47,    22,    24,    24,
-      27,    28,   199,   248,     4,   201,   202,   203,   392,     3,
-       4,   111,   209,     3,     4,     3,     4,   214,   215,    10,
-      11,    12,    13,    14,    15,    16,    17,   111,   205,   226,
-       3,     4,     3,     4,   231,   116,     4,   227,   111,   111,
-     114,     4,     0,   118,     4,   242,   243,   244,   114,    24,
-     227,   416,     4,   418,    24,    24,   246,   117,   117,   114,
-     113,    59,     4,   116,     4,   118,   119,    25,   121,   246,
-     247,   248,   317,    31,   319,   320,   321,     4,     4,     7,
-       4,   112,   327,    41,    42,    43,    44,    45,    46,    47,
-       7,     7,   115,   289,   336,   337,   338,   339,   340,   341,
-     112,   112,   116,   112,    62,    36,   112,   349,   350,   351,
-     352,   308,    24,   112,    24,   112,   112,   314,    10,    11,
-      12,    13,    14,    15,    16,    17,   112,   118,   112,   112,
-     112,   328,   329,   112,   114,   112,   214,   215,   114,   316,
-     317,   318,   319,   320,   321,   322,   323,   285,   226,   114,
-     327,   115,   114,   231,    63,   114,    34,   399,   114,   114,
-     114,   114,   112,   114,   242,   243,   244,   112,   112,   116,
-     367,   112,   369,   112,   112,   112,   373,    24,   423,   424,
-     425,   358,    21,    21,   114,   382,   383,   384,     4,   112,
-     112,   112,   112,   370,   436,   437,   438,   439,    24,   441,
-     442,   443,   444,   114,     4,    36,   112,   476,   476,   112,
-     455,   388,   112,   112,   112,   112,   413,   414,   112,   112,
-      57,   112,   112,   112,   421,   494,   494,   112,   115,     4,
-     308,   112,    24,   430,   116,   115,   314,    57,   415,   118,
-      20,   483,   115,   485,   486,   115,   423,   424,   425,   112,
-     328,   329,   429,   115,   112,   112,   115,    21,   435,   115,
-     457,    41,    42,    43,    44,    45,    46,    47,    36,   115,
-      50,    64,    65,    66,    67,    68,    69,    70,   455,   115,
-      21,   115,   115,   118,   112,   115,    21,   112,    76,   367,
-      21,   369,    21,    97,   491,   373,    97,    41,    97,    97,
-      25,   359,    52,   122,   382,   383,   384,   504,     5,     6,
-     358,   199,    61,     3,   511,    19,   370,   429,   515,   516,
-      -1,    -1,   393,    -1,    -1,    22,    -1,    24,    -1,    26,
-      -1,    -1,    -1,    -1,    -1,   413,   414,    -1,    -1,    -1,
-      -1,    38,    39,   421,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   430,    -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,   457,
-      -1,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    48,    -1,    -1,
-      -1,    -1,    99,    -1,   101,   102,   103,   104,    -1,   106,
-     107,   108,    -1,   491,    -1,    -1,    -1,    -1,    -1,   116,
-      -1,    -1,   119,    -1,   121,    -1,   504,   124,    -1,    -1,
-      -1,    -1,    -1,   511,    -1,    -1,    -1,   515,   516,     5,
-       6,    -1,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    -1,    24,    -1,
-      -1,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,    -1,
-     121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    48,     3,     4,     5,     6,     7,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    20,    22,    22,    24,    24,    26,    27,    28,    -1,
-      -1,    -1,    31,    32,    33,    -1,    -1,    -1,    38,    39,
-      -1,    -1,    41,    42,    43,    44,    45,    46,    47,    -1,
-      -1,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    58,
-      -1,    61,    -1,    62,    -1,    -1,    -1,   113,    -1,    -1,
-     116,    -1,    -1,   119,    -1,   121,   122,    -1,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,
-      -1,   101,   102,   103,   104,    -1,   106,   107,   108,     3,
-       4,    -1,    -1,     7,    -1,    -1,    -1,    -1,    -1,   119,
-      -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,
-      -1,    -1,    -1,    -1,    -1,    99,    -1,   101,   102,   103,
-     104,    -1,   106,   107,   108,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,     5,     6,   119,     8,     9,    10,    11,
+      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     115,    -1,    -1,   118,    -1,    -1,   121,    -1,   123,    -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,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
+      -1,   115,    -1,    -1,   118,    37,    -1,   121,    -1,   123,
       -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,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,     5,     6,
-      -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      -1,    -1,   115,    -1,    -1,   118,    37,   120,   121,    -1,
+     123,    -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,    -1,    -1,
+      -1,    -1,    -1,   115,    -1,    -1,   118,    -1,    -1,   121,
+      -1,   123,    -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,    -1,
+      -1,    -1,    -1,    -1,   115,    -1,    -1,   118,    -1,    -1,
+     121,    -1,   123,    -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,
+      -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,   118,    -1,
+      -1,   121,    -1,   123,    -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,   113,    -1,    -1,   116,    -1,    -1,   119,    -1,   121,
-      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,   113,    -1,    -1,   116,    -1,    -1,   119,    -1,
-     121,    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,    -1,    -1,    -1,   113,    -1,    -1,   116,
-      -1,    -1,   119,    -1,   121,    -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,    -1,    -1,    -1,   113,    -1,    -1,
-     116,    -1,    -1,   119,    -1,   121,    -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,    -1,    -1,    -1,   113,    -1,
-      -1,   116,    -1,    -1,   119,    -1,   121,    -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,    -1,    -1,    -1,   113,
-      -1,    -1,   116,    -1,    -1,   119,    -1,   121,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,   118,
+      -1,    -1,   121,    -1,   123,    -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,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     113,    -1,    -1,   116,    -1,    -1,   119,    -1,   121,    -1,
-      -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
-      -1,   113,    -1,    -1,   116,    -1,    -1,   119,    -1,   121,
-      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,    -1,    -1,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,
+     118,    -1,    -1,   121,    -1,   123,    -1,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,   115,    -1,
+      -1,   118,    -1,    -1,   121,    -1,   123,    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,    -1,    -1,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const unsigned char yystos[] =
 {
-       0,   156,   157,   158,     0,    25,    31,    41,    42,    43,
-      44,    45,    46,    47,    62,   137,   175,   177,   179,   186,
-      22,    24,    51,    58,    62,   136,   168,   179,   180,    61,
-      64,    65,    66,    67,    68,    69,    70,   138,   173,    23,
-     187,   188,    30,   122,   176,   187,    52,    53,    54,    71,
-     165,   111,    61,    20,    45,    47,    50,   137,   111,    45,
-      47,   178,    24,   163,     4,     5,     6,     8,     9,    10,
+       0,   158,   159,   160,     0,    25,    31,    41,    42,    43,
+      44,    45,    46,    47,    62,   139,   177,   179,   181,   188,
+      22,    24,    51,    58,    62,   138,   170,   181,   182,    61,
+      64,    65,    66,    67,    68,    69,    70,   140,   175,    23,
+     189,   190,    30,   124,   178,   189,    52,    53,    54,    71,
+     167,   113,    61,    20,    45,    47,    50,   139,   113,    45,
+      47,   180,    24,   165,     4,     5,     6,     8,     9,    10,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    48,   113,   116,   119,   121,   126,   145,   146,   147,
-     148,   149,   168,   183,    29,   121,   174,   136,   191,   111,
-     111,   111,   111,   116,   166,   163,   145,    32,    33,   155,
-     155,   155,   155,   173,     4,     4,     4,     8,   122,   149,
-     150,   168,   114,   123,    35,    49,    59,    60,    72,    73,
+      21,    48,   115,   118,   121,   123,   128,   147,   148,   149,
+     150,   151,   170,   185,    29,   123,   176,   138,   193,   113,
+     113,   113,   113,   118,   168,   165,   147,    32,    33,   157,
+     157,   157,   157,   175,     4,     4,     4,     8,   124,   151,
+     152,   170,   116,   125,    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,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   128,   129,   130,   131,   189,
-     195,   196,   198,   199,    24,    55,    56,   164,     4,    24,
-      24,   167,   147,   147,   147,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,   132,   133,   135,   147,
-     152,   117,   117,   112,   122,   114,    37,   150,   151,   147,
-     185,    59,     8,   185,     9,    21,    10,    11,    12,    13,
-      14,    15,    16,    17,   132,   133,   134,   138,   147,   147,
-     185,   147,   147,   192,   185,   185,   185,   185,   185,   185,
-     185,   185,   147,   147,   147,   185,   138,    97,    98,   112,
-     118,   161,   162,   160,    27,    28,     3,     4,   127,     4,
-       7,    26,    38,    39,    99,   101,   102,   106,   107,   108,
-     116,   119,   121,   124,   128,   129,   130,   131,   153,   183,
-     159,   149,   149,   149,    37,   147,   170,   171,   172,   112,
-     115,     3,     4,     7,    26,    27,    28,    38,    39,    61,
-     119,   153,   182,   183,   184,   184,   184,   184,   145,   112,
-     140,   112,   140,   184,   116,   112,    36,   112,   112,   112,
-     112,   112,   112,   112,   184,   184,   184,   112,   145,   147,
-     185,    24,   112,   143,   143,   143,   114,   114,   114,   114,
-     114,   114,   118,   152,   154,   154,   122,   154,    24,   114,
-     114,   114,   114,   143,   118,   120,   168,   169,   112,   115,
-      37,    63,   181,   154,   112,   112,   184,    15,    57,    15,
-     112,   197,   184,   116,   147,   185,   147,   185,   185,   185,
-     147,   147,   112,   112,   112,   185,   184,   184,   112,    34,
-      57,   141,   144,   152,   152,   152,   152,   152,   152,   112,
-     118,   120,   122,   152,   152,   152,   152,    37,   170,   141,
-     142,    24,   120,    21,    21,   114,   184,     4,   184,   185,
-     193,   112,   184,   112,   112,   112,   184,   184,   184,   114,
-     147,    24,     4,   143,   197,    36,   112,   112,   112,   112,
-     152,   112,   112,   112,   112,    57,   139,   112,   184,   184,
-     193,   194,   112,   140,   140,   112,   184,   112,   185,   185,
-     185,   194,   184,   115,   147,   152,   152,   152,   152,   152,
-     152,   152,   152,     4,    24,   112,   116,   115,   185,   118,
-     184,   115,   115,   112,   115,   112,   112,   115,   115,   115,
-     115,    21,   118,   134,   190,    36,   118,   152,   152,   152,
-     184,   182,   118,   134,    21,   115,   115,   115,   112,   182,
-     184,    21,   112,    76,   184,    21,    21,   184,   184
+      94,    95,    96,    97,    98,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   130,   131,   132,
+     133,   191,   197,   198,   200,   201,    24,    55,    56,   166,
+       4,    24,    24,   169,   149,   149,   149,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,   134,   135,
+     137,   149,   154,   119,   119,   114,   124,   116,    37,   152,
+     153,   149,   187,    59,     8,   187,     9,    21,    10,    11,
+      12,    13,    14,    15,    16,    17,   134,   135,   136,   140,
+     149,   149,   187,   149,   149,   194,   187,   187,   187,   187,
+     187,   187,   187,   187,   149,   149,   149,   187,   140,    99,
+     100,   114,   120,   163,   164,   162,    27,    28,     3,     4,
+     129,     4,     7,    26,    38,    39,   101,   103,   104,   108,
+     109,   110,   118,   121,   123,   126,   130,   131,   132,   133,
+     155,   185,   161,   151,   151,   151,    37,   149,   172,   173,
+     174,   114,   117,     3,     4,     7,    26,    27,    28,    38,
+      39,    61,   121,   155,   184,   185,   186,   186,   186,   186,
+     147,   114,   142,   114,   142,   186,   118,   114,    36,   114,
+     114,   114,   114,   114,   114,   114,   186,   186,   186,   114,
+     147,   149,   187,    24,   114,   145,   145,   145,   116,   116,
+     116,   116,   116,   116,   120,   154,   156,   156,   124,   156,
+      24,   116,   116,   116,   116,   145,   120,   122,   170,   171,
+     114,   117,    37,    63,   183,   156,   114,   114,   186,    15,
+      57,    15,   114,   199,   186,   118,   149,   187,   149,   187,
+     187,   187,   149,   149,   114,   114,   114,   187,   186,   186,
+     114,    34,    57,   143,   146,   154,   154,   154,   154,   154,
+     154,   114,   120,   122,   124,   154,   154,   154,   154,    37,
+     172,   143,   144,    24,   122,    21,    21,   116,   186,     4,
+     186,   187,   195,   114,   186,   114,   114,   114,   186,   186,
+     186,   116,   149,    24,     4,   145,   199,    36,   114,   114,
+     114,   114,   154,   114,   114,   114,   114,    57,   141,   114,
+     186,   186,   195,   196,   114,   142,   142,   114,   186,   114,
+     187,   187,   187,   196,   186,   117,   149,   154,   154,   154,
+     154,   154,   154,   154,   154,     4,    24,   114,   118,   117,
+     187,   120,   186,   117,   117,   114,   117,   114,   114,   117,
+     117,   117,   117,    21,   120,   136,   192,    36,   120,   154,
+     154,   154,   186,   184,   120,   136,    21,   117,   117,   117,
+     114,   184,   186,    21,   114,    76,   186,    21,    21,   186,
+     186
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2987,7 +3014,7 @@
   switch (yyn)
     {
         case 3:
-#line 1135 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1140 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
     GEN_ERROR("Value too large for type!");
@@ -2997,7 +3024,7 @@
     break;
 
   case 5:
-#line 1144 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1149 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX)     // Outside of my range!
     GEN_ERROR("Value too large for type!");
@@ -3006,99 +3033,99 @@
 ;}
     break;
 
-  case 36:
-#line 1168 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 38:
+#line 1173 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 37:
-#line 1172 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 39:
+#line 1177 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 38:
-#line 1177 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 40:
+#line 1182 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
-  case 39:
-#line 1178 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 41:
+#line 1183 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
-  case 40:
-#line 1179 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 42:
+#line 1184 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
-  case 41:
-#line 1180 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 43:
+#line 1185 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
-  case 42:
-#line 1181 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 44:
+#line 1186 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
-  case 43:
-#line 1182 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 45:
+#line 1187 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
-  case 44:
-#line 1183 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 46:
+#line 1188 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
-  case 45:
-#line 1184 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 47:
+#line 1189 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
-  case 46:
-#line 1186 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::C; ;}
-    break;
-
-  case 47:
-#line 1187 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::C; ;}
-    break;
-
   case 48:
-#line 1188 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::CSRet; ;}
+#line 1191 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 49:
-#line 1189 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::Fast; ;}
+#line 1192 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 50:
-#line 1190 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::Cold; ;}
+#line 1193 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::CSRet; ;}
     break;
 
   case 51:
-#line 1191 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
+#line 1194 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 52:
-#line 1192 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
+#line 1195 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 53:
-#line 1193 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1196 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
+    break;
+
+  case 54:
+#line 1197 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
+    break;
+
+  case 55:
+#line 1198 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
                      GEN_ERROR("Calling conv too large!");
@@ -3107,28 +3134,13 @@
                  ;}
     break;
 
-  case 54:
-#line 1202 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = 0; ;}
-    break;
-
-  case 55:
-#line 1203 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
-  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
-    GEN_ERROR("Alignment must be a power of two!");
-  CHECK_FOR_ERROR
-;}
-    break;
-
   case 56:
-#line 1209 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1207 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 57:
-#line 1210 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1208 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3138,7 +3150,22 @@
     break;
 
   case 58:
-#line 1218 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1214 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 59:
+#line 1215 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
+    GEN_ERROR("Alignment must be a power of two!");
+  CHECK_FOR_ERROR
+;}
+    break;
+
+  case 60:
+#line 1223 "/proj/llvm/llvm-4/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] == '\\')
@@ -3148,28 +3175,28 @@
 ;}
     break;
 
-  case 59:
-#line 1226 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 61:
+#line 1231 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 60:
-#line 1227 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 62:
+#line 1232 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
-  case 61:
-#line 1232 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {;}
-    break;
-
-  case 62:
-#line 1233 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {;}
-    break;
-
   case 63:
-#line 1234 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1237 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {;}
+    break;
+
+  case 64:
+#line 1238 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {;}
+    break;
+
+  case 65:
+#line 1239 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3177,8 +3204,8 @@
   ;}
     break;
 
-  case 64:
-#line 1239 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 66:
+#line 1244 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two!");
@@ -3187,18 +3214,18 @@
   ;}
     break;
 
-  case 66:
-#line 1253 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;}
-    break;
-
   case 68:
-#line 1254 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1258 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;}
     break;
 
-  case 69:
-#line 1256 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 70:
+#line 1259 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;}
+    break;
+
+  case 71:
+#line 1261 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -3207,24 +3234,24 @@
   ;}
     break;
 
-  case 83:
-#line 1268 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 85:
+#line 1273 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 84:
-#line 1272 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 86:
+#line 1277 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 85:
-#line 1276 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 87:
+#line 1281 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
   const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
   CHECK_FOR_ERROR
@@ -3232,8 +3259,8 @@
 ;}
     break;
 
-  case 86:
-#line 1284 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 88:
+#line 1289 "/proj/llvm/llvm-4/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
@@ -3244,8 +3271,8 @@
   ;}
     break;
 
-  case 87:
-#line 1292 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 89:
+#line 1297 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {           // Function derived type?
     std::vector<const Type*> Params;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3261,8 +3288,8 @@
   ;}
     break;
 
-  case 88:
-#line 1305 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 90:
+#line 1310 "/proj/llvm/llvm-4/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);
@@ -3270,8 +3297,8 @@
   ;}
     break;
 
-  case 89:
-#line 1310 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 91:
+#line 1315 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {          // Packed array type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -3286,8 +3313,8 @@
   ;}
     break;
 
-  case 90:
-#line 1322 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 92:
+#line 1327 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3300,16 +3327,16 @@
   ;}
     break;
 
-  case 91:
-#line 1332 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 93:
+#line 1337 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 92:
-#line 1336 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 94:
+#line 1341 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -3319,8 +3346,8 @@
   ;}
     break;
 
-  case 93:
-#line 1347 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 95:
+#line 1352 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
@@ -3328,40 +3355,40 @@
   ;}
     break;
 
-  case 94:
-#line 1352 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 96:
+#line 1357 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 96:
-#line 1359 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 98:
+#line 1364 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(Type::VoidTy);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 97:
-#line 1363 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 99:
+#line 1368 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList) = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 98:
-#line 1367 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 100:
+#line 1372 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 99:
-#line 1378 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 101:
+#line 1383 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal)->get());
     if (ATy == 0)
@@ -3390,8 +3417,8 @@
   ;}
     break;
 
-  case 100:
-#line 1404 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 102:
+#line 1409 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
@@ -3408,8 +3435,8 @@
   ;}
     break;
 
-  case 101:
-#line 1418 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 103:
+#line 1423 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
@@ -3442,8 +3469,8 @@
   ;}
     break;
 
-  case 102:
-#line 1448 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 104:
+#line 1453 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal)->get());
     if (PTy == 0)
@@ -3472,8 +3499,8 @@
   ;}
     break;
 
-  case 103:
-#line 1474 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 105:
+#line 1479 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
@@ -3497,8 +3524,8 @@
   ;}
     break;
 
-  case 104:
-#line 1495 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 106:
+#line 1500 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal)->get());
     if (STy == 0)
@@ -3514,8 +3541,8 @@
   ;}
     break;
 
-  case 105:
-#line 1508 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 107:
+#line 1513 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (PTy == 0)
@@ -3528,8 +3555,8 @@
   ;}
     break;
 
-  case 106:
-#line 1518 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 108:
+#line 1523 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get());
     delete (yyvsp[-1].TypeVal);
@@ -3537,8 +3564,8 @@
   ;}
     break;
 
-  case 107:
-#line 1523 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 109:
+#line 1528 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (Ty == 0)
@@ -3602,8 +3629,8 @@
   ;}
     break;
 
-  case 108:
-#line 1584 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 110:
+#line 1589 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType())
       GEN_ERROR("Mismatched types for constant expression!");
@@ -3613,8 +3640,8 @@
   ;}
     break;
 
-  case 109:
-#line 1591 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 111:
+#line 1596 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal)->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
@@ -3625,8 +3652,8 @@
   ;}
     break;
 
-  case 110:
-#line 1600 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 112:
+#line 1605 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
@@ -3635,8 +3662,8 @@
   ;}
     break;
 
-  case 111:
-#line 1606 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 113:
+#line 1611 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {            // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
@@ -3645,24 +3672,24 @@
   ;}
     break;
 
-  case 112:
-#line 1612 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 114:
+#line 1617 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
     (yyval.ConstVal) = ConstantBool::getTrue();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 113:
-#line 1616 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 115:
+#line 1621 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
     (yyval.ConstVal) = ConstantBool::getFalse();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 114:
-#line 1620 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 116:
+#line 1625 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
       GEN_ERROR("Floating point constant invalid for type!!");
@@ -3671,8 +3698,8 @@
   ;}
     break;
 
-  case 115:
-#line 1628 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 117:
+#line 1633 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!(yyvsp[-3].ConstVal)->getType()->isFirstClassType())
       GEN_ERROR("cast constant expression from a non-primitive type: '" +
@@ -3686,8 +3713,8 @@
   ;}
     break;
 
-  case 116:
-#line 1639 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 118:
+#line 1644 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand!");
@@ -3722,8 +3749,8 @@
   ;}
     break;
 
-  case 117:
-#line 1671 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 119:
+#line 1676 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy)
       GEN_ERROR("Select condition must be of boolean type!");
@@ -3734,8 +3761,8 @@
   ;}
     break;
 
-  case 118:
-#line 1679 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 120:
+#line 1684 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match!");
@@ -3765,8 +3792,8 @@
   ;}
     break;
 
-  case 119:
-#line 1706 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 121:
+#line 1711 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match!");
@@ -3780,8 +3807,8 @@
   ;}
     break;
 
-  case 120:
-#line 1717 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 122:
+#line 1722 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("setcc operand types must match!");
@@ -3790,8 +3817,8 @@
   ;}
     break;
 
-  case 121:
-#line 1723 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 123:
+#line 1728 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy)
       GEN_ERROR("Shift count for shift constant must be unsigned byte!");
@@ -3802,8 +3829,8 @@
   ;}
     break;
 
-  case 122:
-#line 1731 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 124:
+#line 1736 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid extractelement operands!");
@@ -3812,8 +3839,8 @@
   ;}
     break;
 
-  case 123:
-#line 1737 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 125:
+#line 1742 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid insertelement operands!");
@@ -3822,8 +3849,8 @@
   ;}
     break;
 
-  case 124:
-#line 1743 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 126:
+#line 1748 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands!");
@@ -3832,16 +3859,16 @@
   ;}
     break;
 
-  case 125:
-#line 1752 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 127:
+#line 1757 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 126:
-#line 1756 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 128:
+#line 1761 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -3849,18 +3876,18 @@
   ;}
     break;
 
-  case 127:
-#line 1764 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 129:
+#line 1769 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
-  case 128:
-#line 1764 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 130:
+#line 1769 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
-  case 129:
-#line 1774 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 131:
+#line 1779 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
   CurModule.ModuleDone();
@@ -3868,8 +3895,8 @@
 ;}
     break;
 
-  case 130:
-#line 1782 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 132:
+#line 1787 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
     CurFun.FunctionDone();
@@ -3877,24 +3904,8 @@
   ;}
     break;
 
-  case 131:
-#line 1787 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 132:
-#line 1791 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.ModuleVal) = (yyvsp[-3].ModuleVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
   case 133:
-#line 1795 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1792 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
     CHECK_FOR_ERROR
@@ -3902,7 +3913,23 @@
     break;
 
   case 134:
-#line 1799 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1796 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ModuleVal) = (yyvsp[-3].ModuleVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 135:
+#line 1800 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 136:
+#line 1804 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
@@ -3918,8 +3945,8 @@
   ;}
     break;
 
-  case 135:
-#line 1814 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 137:
+#line 1819 "/proj/llvm/llvm-4/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:
@@ -3944,22 +3971,22 @@
   ;}
     break;
 
-  case 136:
-#line 1836 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 138:
+#line 1841 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {       // Function prototypes can be in const pool
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 137:
-#line 1839 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 139:
+#line 1844 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {  // Asm blocks can be in the const pool
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 138:
-#line 1842 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 140:
+#line 1847 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant!");
@@ -3968,15 +3995,15 @@
   ;}
     break;
 
-  case 139:
-#line 1847 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 141:
+#line 1852 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
-  case 140:
-#line 1850 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 142:
+#line 1855 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
     CHECK_FOR_ERROR
@@ -3984,25 +4011,8 @@
   ;}
     break;
 
-  case 141:
-#line 1854 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 0;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 142:
-#line 1858 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
-    CHECK_FOR_ERROR
-    delete (yyvsp[0].TypeVal);
-  ;}
-    break;
-
   case 143:
-#line 1862 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1859 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
@@ -4010,7 +4020,24 @@
     break;
 
   case 144:
-#line 1866 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1863 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
+    CHECK_FOR_ERROR
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 145:
+#line 1867 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 0;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 146:
+#line 1871 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 
       ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
@@ -4019,36 +4046,36 @@
   ;}
     break;
 
-  case 145:
-#line 1871 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 147:
+#line 1876 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 146:
-#line 1875 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 148:
+#line 1880 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 147:
-#line 1878 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 149:
+#line 1883 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 148:
-#line 1881 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 150:
+#line 1886 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { 
   ;}
     break;
 
-  case 149:
-#line 1885 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 151:
+#line 1890 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4063,26 +4090,26 @@
 ;}
     break;
 
-  case 150:
-#line 1898 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 152:
+#line 1903 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Endianness) = Module::BigEndian; ;}
     break;
 
-  case 151:
-#line 1899 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 153:
+#line 1904 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Endianness) = Module::LittleEndian; ;}
     break;
 
-  case 152:
-#line 1901 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 154:
+#line 1906 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 153:
-#line 1905 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 155:
+#line 1910 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) == 32)
       CurModule.CurrentModule->setPointerSize(Module::Pointer32);
@@ -4094,54 +4121,54 @@
   ;}
     break;
 
-  case 154:
-#line 1914 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 156:
+#line 1919 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
   ;}
     break;
 
-  case 155:
-#line 1918 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 157:
+#line 1923 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
   ;}
     break;
 
-  case 157:
-#line 1925 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
-          free((yyvsp[0].StrVal));
-          CHECK_FOR_ERROR
-        ;}
-    break;
-
-  case 158:
-#line 1930 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    {
-          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
-          free((yyvsp[0].StrVal));
-          CHECK_FOR_ERROR
-        ;}
-    break;
-
   case 159:
-#line 1935 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1930 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
+          CHECK_FOR_ERROR
+        ;}
+    break;
+
+  case 160:
+#line 1935 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
+          CHECK_FOR_ERROR
+        ;}
+    break;
+
+  case 161:
+#line 1940 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
-  case 163:
-#line 1945 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 165:
+#line 1950 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 164:
-#line 1947 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 166:
+#line 1952 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   if (*(yyvsp[-1].TypeVal) == Type::VoidTy)
     GEN_ERROR("void typed arguments are invalid!");
@@ -4150,8 +4177,8 @@
 ;}
     break;
 
-  case 165:
-#line 1954 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 167:
+#line 1959 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -4160,8 +4187,8 @@
   ;}
     break;
 
-  case 166:
-#line 1960 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 168:
+#line 1965 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeHolder*,char*> >();
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -4170,16 +4197,16 @@
   ;}
     break;
 
-  case 167:
-#line 1967 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 169:
+#line 1972 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[0].ArgList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 168:
-#line 1971 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 170:
+#line 1976 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     (yyval.ArgList)->push_back(std::pair<PATypeHolder*,
@@ -4188,8 +4215,8 @@
   ;}
     break;
 
-  case 169:
-#line 1977 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 171:
+#line 1982 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeHolder*,char*> >();
     (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0));
@@ -4197,16 +4224,16 @@
   ;}
     break;
 
-  case 170:
-#line 1982 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 172:
+#line 1987 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 171:
-#line 1988 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 173:
+#line 1993 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   UnEscapeLexed((yyvsp[-5].StrVal));
   std::string FunctionName((yyvsp[-5].StrVal));
@@ -4302,8 +4329,8 @@
 ;}
     break;
 
-  case 174:
-#line 2084 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 176:
+#line 2089 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -4313,31 +4340,31 @@
 ;}
     break;
 
-  case 177:
-#line 2094 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 179:
+#line 2099 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 179:
-#line 2100 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { CurFun.Linkage = GlobalValue::DLLImportLinkage ;}
-    break;
-
-  case 180:
-#line 2101 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { CurFun.Linkage = GlobalValue::DLLImportLinkage ;}
-    break;
-
   case 181:
-#line 2103 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
-    { CurFun.isDeclare = true; ;}
+#line 2105 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { CurFun.Linkage = GlobalValue::DLLImportLinkage ;}
     break;
 
   case 182:
-#line 2103 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2106 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { CurFun.Linkage = GlobalValue::DLLImportLinkage ;}
+    break;
+
+  case 183:
+#line 2108 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { CurFun.isDeclare = true; ;}
+    break;
+
+  case 184:
+#line 2108 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
@@ -4345,88 +4372,88 @@
   ;}
     break;
 
-  case 183:
-#line 2113 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 185:
+#line 2118 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 184:
-#line 2117 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 186:
+#line 2122 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 185:
-#line 2122 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 187:
+#line 2127 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 186:
-#line 2126 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 188:
+#line 2131 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 187:
-#line 2130 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 189:
+#line 2135 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 188:
-#line 2134 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 190:
+#line 2139 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 189:
-#line 2138 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 191:
+#line 2143 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 190:
-#line 2142 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 192:
+#line 2147 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 191:
-#line 2146 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 193:
+#line 2151 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 192:
-#line 2150 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 194:
+#line 2155 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 193:
-#line 2154 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 195:
+#line 2159 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -4454,16 +4481,16 @@
   ;}
     break;
 
-  case 194:
-#line 2179 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 196:
+#line 2184 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 195:
-#line 2183 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 197:
+#line 2188 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -4476,48 +4503,48 @@
   ;}
     break;
 
-  case 196:
-#line 2197 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 198:
+#line 2202 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 197:
-#line 2201 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 199:
+#line 2206 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 200:
-#line 2213 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 202:
+#line 2218 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 201:
-#line 2218 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 203:
+#line 2223 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 202:
-#line 2222 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 204:
+#line 2227 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 203:
-#line 2231 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 205:
+#line 2236 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     CHECK_FOR_ERROR
@@ -4530,8 +4557,8 @@
   ;}
     break;
 
-  case 204:
-#line 2242 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 206:
+#line 2247 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal));
     (yyval.BasicBlockVal) = (yyvsp[-1].BasicBlockVal);
@@ -4539,8 +4566,8 @@
   ;}
     break;
 
-  case 205:
-#line 2247 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 207:
+#line 2252 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
     CHECK_FOR_ERROR
@@ -4555,8 +4582,8 @@
   ;}
     break;
 
-  case 206:
-#line 2259 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 208:
+#line 2264 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
     CHECK_FOR_ERROR
@@ -4571,24 +4598,24 @@
   ;}
     break;
 
-  case 207:
-#line 2272 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 209:
+#line 2277 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 208:
-#line 2276 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 210:
+#line 2281 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                                       // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 209:
-#line 2280 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 211:
+#line 2285 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {                         // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -4596,8 +4623,8 @@
   ;}
     break;
 
-  case 210:
-#line 2285 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 212:
+#line 2290 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {  
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
@@ -4609,8 +4636,8 @@
   ;}
     break;
 
-  case 211:
-#line 2294 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 213:
+#line 2299 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
@@ -4632,8 +4659,8 @@
   ;}
     break;
 
-  case 212:
-#line 2313 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 214:
+#line 2318 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
@@ -4645,8 +4672,8 @@
   ;}
     break;
 
-  case 213:
-#line 2323 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 215:
+#line 2328 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -4704,24 +4731,24 @@
   ;}
     break;
 
-  case 214:
-#line 2378 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 216:
+#line 2383 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 215:
-#line 2382 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 217:
+#line 2387 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 216:
-#line 2389 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 218:
+#line 2394 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -4735,8 +4762,8 @@
   ;}
     break;
 
-  case 217:
-#line 2400 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 219:
+#line 2405 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -4751,8 +4778,8 @@
   ;}
     break;
 
-  case 218:
-#line 2413 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 220:
+#line 2418 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
   // Is this definition named?? if so, assign the name...
   setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
@@ -4763,8 +4790,8 @@
 ;}
     break;
 
-  case 219:
-#line 2422 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 221:
+#line 2427 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     (yyval.PHIList) = new std::list<std::pair<Value*, BasicBlock*> >();
     Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal));
@@ -4776,8 +4803,8 @@
   ;}
     break;
 
-  case 220:
-#line 2431 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 222:
+#line 2436 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -4788,16 +4815,16 @@
   ;}
     break;
 
-  case 221:
-#line 2441 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 223:
+#line 2446 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {    // Used for call statements, and memory insts...
     (yyval.ValueList) = new std::vector<Value*>();
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
   ;}
     break;
 
-  case 222:
-#line 2445 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 224:
+#line 2450 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
@@ -4805,36 +4832,39 @@
   ;}
     break;
 
-  case 224:
-#line 2452 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 226:
+#line 2457 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = 0; ;}
     break;
 
-  case 225:
-#line 2454 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 227:
+#line 2459 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 226:
-#line 2458 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 228:
+#line 2463 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 227:
-#line 2463 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 229:
+#line 2468 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && 
         !isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR(
         "Arithmetic operator requires integer, FP, or packed operands!");
-    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()) && (yyvsp[-4].BinaryOpVal).opcode == Instruction::Rem)
-      GEN_ERROR("Rem not supported on packed types!");
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()) && 
+        ((yyvsp[-4].BinaryOpVal).opcode == Instruction::URem || 
+         (yyvsp[-4].BinaryOpVal).opcode == Instruction::SRem ||
+         (yyvsp[-4].BinaryOpVal).opcode == Instruction::FRem))
+      GEN_ERROR("U/S/FRem not supported on packed types!");
     // Upgrade the opcode from obsolete versions before we do anything with it.
     sanitizeOpCode((yyvsp[-4].BinaryOpVal),*(yyvsp[-3].TypeVal));
     CHECK_FOR_ERROR;
@@ -4849,8 +4879,8 @@
   ;}
     break;
 
-  case 228:
-#line 2482 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 230:
+#line 2490 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!(*(yyvsp[-3].TypeVal))->isIntegral()) {
       if (!isa<PackedType>((yyvsp[-3].TypeVal)->get()) ||
@@ -4868,8 +4898,8 @@
   ;}
     break;
 
-  case 229:
-#line 2497 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 231:
+#line 2505 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if(isa<PackedType>((*(yyvsp[-3].TypeVal)).get())) {
       GEN_ERROR(
@@ -4886,8 +4916,8 @@
   ;}
     break;
 
-  case 230:
-#line 2511 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 232:
+#line 2519 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     std::cerr << "WARNING: Use of eliminated 'not' instruction:"
               << " Replacing with 'xor'.\n";
@@ -4903,8 +4933,8 @@
   ;}
     break;
 
-  case 231:
-#line 2524 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 233:
+#line 2532 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy)
       GEN_ERROR("Shift amount must be ubyte!");
@@ -4915,8 +4945,8 @@
   ;}
     break;
 
-  case 232:
-#line 2532 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 234:
+#line 2540 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!(yyvsp[0].TypeVal)->get()->isFirstClassType())
       GEN_ERROR("cast instruction to a non-primitive type: '" +
@@ -4927,8 +4957,8 @@
   ;}
     break;
 
-  case 233:
-#line 2540 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 235:
+#line 2548 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy)
       GEN_ERROR("select condition must be boolean!");
@@ -4939,8 +4969,8 @@
   ;}
     break;
 
-  case 234:
-#line 2548 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 236:
+#line 2556 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     NewVarArgs = true;
     (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal));
@@ -4949,8 +4979,8 @@
   ;}
     break;
 
-  case 235:
-#line 2554 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 237:
+#line 2562 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ObsoleteVarArgs = true;
     const Type* ArgTy = (yyvsp[-2].ValueVal)->getType();
@@ -4973,8 +5003,8 @@
   ;}
     break;
 
-  case 236:
-#line 2574 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 238:
+#line 2582 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     ObsoleteVarArgs = true;
     const Type* ArgTy = (yyvsp[-2].ValueVal)->getType();
@@ -5000,8 +5030,8 @@
   ;}
     break;
 
-  case 237:
-#line 2597 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 239:
+#line 2605 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands!");
@@ -5010,8 +5040,8 @@
   ;}
     break;
 
-  case 238:
-#line 2603 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 240:
+#line 2611 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands!");
@@ -5020,8 +5050,8 @@
   ;}
     break;
 
-  case 239:
-#line 2609 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 241:
+#line 2617 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands!");
@@ -5030,8 +5060,8 @@
   ;}
     break;
 
-  case 240:
-#line 2615 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 242:
+#line 2623 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5049,8 +5079,8 @@
   ;}
     break;
 
-  case 241:
-#line 2630 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 243:
+#line 2638 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -5112,48 +5142,48 @@
   ;}
     break;
 
-  case 242:
-#line 2689 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 244:
+#line 2697 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 243:
-#line 2696 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 245:
+#line 2704 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { 
     (yyval.ValueList) = (yyvsp[0].ValueList); 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 244:
-#line 2699 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 246:
+#line 2707 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     { 
     (yyval.ValueList) = new std::vector<Value*>(); 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 245:
-#line 2704 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 247:
+#line 2712 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 246:
-#line 2708 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 248:
+#line 2716 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 247:
-#line 2715 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 249:
+#line 2723 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
     delete (yyvsp[-1].TypeVal);
@@ -5161,8 +5191,8 @@
   ;}
     break;
 
-  case 248:
-#line 2720 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 250:
+#line 2728 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
@@ -5171,8 +5201,8 @@
   ;}
     break;
 
-  case 249:
-#line 2726 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 251:
+#line 2734 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
     delete (yyvsp[-1].TypeVal);
@@ -5180,8 +5210,8 @@
   ;}
     break;
 
-  case 250:
-#line 2731 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 252:
+#line 2739 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
@@ -5190,8 +5220,8 @@
   ;}
     break;
 
-  case 251:
-#line 2737 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 253:
+#line 2745 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " + 
@@ -5201,8 +5231,8 @@
   ;}
     break;
 
-  case 252:
-#line 2745 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 254:
+#line 2753 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-1].TypeVal)->get()))
       GEN_ERROR("Can't load from nonpointer type: " +
@@ -5217,8 +5247,8 @@
   ;}
     break;
 
-  case 253:
-#line 2757 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 255:
+#line 2765 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PT = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (!PT)
@@ -5236,8 +5266,8 @@
   ;}
     break;
 
-  case 254:
-#line 2772 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 256:
+#line 2780 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-2].TypeVal)->get()))
       GEN_ERROR("getelementptr insn requires pointer operand!");
@@ -5269,7 +5299,7 @@
     }
 
 /* Line 1126 of yacc.c.  */
-#line 5273 "llvmAsmParser.tab.c"
+#line 5303 "llvmAsmParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5537,7 +5567,7 @@
 }
 
 
-#line 2798 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2806 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 
 
 void llvm::GenerateError(const std::string &message, int LineNo) {
diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs
index d0c8572..a70c260 100644
--- a/lib/AsmParser/llvmAsmParser.h.cvs
+++ b/lib/AsmParser/llvmAsmParser.h.cvs
@@ -110,33 +110,35 @@
      UDIV = 336,
      SDIV = 337,
      FDIV = 338,
-     REM = 339,
-     AND = 340,
-     OR = 341,
-     XOR = 342,
-     SETLE = 343,
-     SETGE = 344,
-     SETLT = 345,
-     SETGT = 346,
-     SETEQ = 347,
-     SETNE = 348,
-     MALLOC = 349,
-     ALLOCA = 350,
-     FREE = 351,
-     LOAD = 352,
-     STORE = 353,
-     GETELEMENTPTR = 354,
-     PHI_TOK = 355,
-     CAST = 356,
-     SELECT = 357,
-     SHL = 358,
-     SHR = 359,
-     VAARG = 360,
-     EXTRACTELEMENT = 361,
-     INSERTELEMENT = 362,
-     SHUFFLEVECTOR = 363,
-     VAARG_old = 364,
-     VANEXT_old = 365
+     UREM = 339,
+     SREM = 340,
+     FREM = 341,
+     AND = 342,
+     OR = 343,
+     XOR = 344,
+     SETLE = 345,
+     SETGE = 346,
+     SETLT = 347,
+     SETGT = 348,
+     SETEQ = 349,
+     SETNE = 350,
+     MALLOC = 351,
+     ALLOCA = 352,
+     FREE = 353,
+     LOAD = 354,
+     STORE = 355,
+     GETELEMENTPTR = 356,
+     PHI_TOK = 357,
+     CAST = 358,
+     SELECT = 359,
+     SHL = 360,
+     SHR = 361,
+     VAARG = 362,
+     EXTRACTELEMENT = 363,
+     INSERTELEMENT = 364,
+     SHUFFLEVECTOR = 365,
+     VAARG_old = 366,
+     VANEXT_old = 367
    };
 #endif
 /* Tokens.  */
@@ -221,39 +223,41 @@
 #define UDIV 336
 #define SDIV 337
 #define FDIV 338
-#define REM 339
-#define AND 340
-#define OR 341
-#define XOR 342
-#define SETLE 343
-#define SETGE 344
-#define SETLT 345
-#define SETGT 346
-#define SETEQ 347
-#define SETNE 348
-#define MALLOC 349
-#define ALLOCA 350
-#define FREE 351
-#define LOAD 352
-#define STORE 353
-#define GETELEMENTPTR 354
-#define PHI_TOK 355
-#define CAST 356
-#define SELECT 357
-#define SHL 358
-#define SHR 359
-#define VAARG 360
-#define EXTRACTELEMENT 361
-#define INSERTELEMENT 362
-#define SHUFFLEVECTOR 363
-#define VAARG_old 364
-#define VANEXT_old 365
+#define UREM 339
+#define SREM 340
+#define FREM 341
+#define AND 342
+#define OR 343
+#define XOR 344
+#define SETLE 345
+#define SETGE 346
+#define SETLT 347
+#define SETGT 348
+#define SETEQ 349
+#define SETNE 350
+#define MALLOC 351
+#define ALLOCA 352
+#define FREE 353
+#define LOAD 354
+#define STORE 355
+#define GETELEMENTPTR 356
+#define PHI_TOK 357
+#define CAST 358
+#define SELECT 359
+#define SHL 360
+#define SHR 361
+#define VAARG 362
+#define EXTRACTELEMENT 363
+#define INSERTELEMENT 364
+#define SHUFFLEVECTOR 365
+#define VAARG_old 366
+#define VANEXT_old 367
 
 
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1011 "/proj/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1016 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -294,7 +298,7 @@
   llvm::Module::Endianness          Endianness;
 } YYSTYPE;
 /* Line 1447 of yacc.c.  */
-#line 298 "llvmAsmParser.tab.h"
+#line 302 "llvmAsmParser.tab.h"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
diff --git a/lib/AsmParser/llvmAsmParser.y.cvs b/lib/AsmParser/llvmAsmParser.y.cvs
index 684b643..d40b653 100644
--- a/lib/AsmParser/llvmAsmParser.y.cvs
+++ b/lib/AsmParser/llvmAsmParser.y.cvs
@@ -836,7 +836,7 @@
   // Depending on the opcode ..
   switch (OI.opcode) {
     default:
-      GenerateError("Invalid Obsolete OpCode");
+      GenerateError("Invalid obsolete opCode (check Lexer.l)");
       break;
     case Instruction::UDiv:
       // Handle cases where the opcode needs to change
@@ -845,12 +845,17 @@
       else if (Ty->isSigned())
         OI.opcode = Instruction::SDiv;
       break;
+    case Instruction::URem:
+      if (Ty->isFloatingPoint()) 
+        OI.opcode = Instruction::FRem;
+      else if (Ty->isSigned())
+        OI.opcode = Instruction::SRem;
+      break;
   }
   // Its not obsolete any more, we fixed it.
   OI.obsolete = false;
 }
-
-
+  
 // common code from the two 'RunVMAsmParser' functions
 static Module* RunParser(Module * M) {
 
@@ -1113,7 +1118,7 @@
 
 // Binary Operators
 %type  <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
-%token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV REM AND OR XOR
+%token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND OR XOR
 %token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE  // Binary Comparators
 
 // Memory Instructions
@@ -1151,7 +1156,7 @@
 // Operations that are notably excluded from this list include:
 // RET, BR, & SWITCH because they end basic blocks and are treated specially.
 //
-ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | REM ;
+ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | UREM | SREM | FREM;
 LogicalOps   : AND | OR | XOR;
 SetCondOps   : SETLE | SETGE | SETLT | SETGT | SETEQ | SETNE;
 
@@ -2465,8 +2470,11 @@
         !isa<PackedType>((*$2).get()))
       GEN_ERROR(
         "Arithmetic operator requires integer, FP, or packed operands!");
-    if (isa<PackedType>((*$2).get()) && $1.opcode == Instruction::Rem)
-      GEN_ERROR("Rem not supported on packed types!");
+    if (isa<PackedType>((*$2).get()) && 
+        ($1.opcode == Instruction::URem || 
+         $1.opcode == Instruction::SRem ||
+         $1.opcode == Instruction::FRem))
+      GEN_ERROR("U/S/FRem not supported on packed types!");
     // Upgrade the opcode from obsolete versions before we do anything with it.
     sanitizeOpCode($1,*$2);
     CHECK_FOR_ERROR;
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index b1ec74e..c20eedd 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -1383,7 +1383,6 @@
     unsigned NumEntries = read_vbr_uint();
     unsigned Typ = 0;
     bool isTypeType = read_typeid(Typ);
-    const Type *Ty = getType(Typ);
 
     for (unsigned i = 0; i != NumEntries; ++i) {
       // Symtab entry: [def slot #][name]
diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp
index 61af8e4..199869c 100644
--- a/lib/Bytecode/Writer/Writer.cpp
+++ b/lib/Bytecode/Writer/Writer.cpp
@@ -1273,7 +1273,7 @@
     Out.write(compressed_magic,4);
 
     // Compress everything after the magic number (which we altered)
-    uint64_t zipSize = Compressor::compressToStream(
+    Compressor::compressToStream(
       (char*)(FirstByte+4),        // Skip the magic number
       Buffer.size()-4,             // Skip the magic number
       Out                          // Where to write compressed data
diff --git a/lib/CodeGen/BranchFolding.cpp b/lib/CodeGen/BranchFolding.cpp
index 0ee7ee2..97587d5 100644
--- a/lib/CodeGen/BranchFolding.cpp
+++ b/lib/CodeGen/BranchFolding.cpp
@@ -766,7 +766,6 @@
         // Analyze the branch at the end of the pred.
         MachineBasicBlock *PredBB = *PI;
         MachineFunction::iterator PredFallthrough = PredBB; ++PredFallthrough;
-        MachineBasicBlock *PredTBB = 0, *PredFBB = 0;
         std::vector<MachineOperand> PredCond;
         if (PredBB != MBB && !CanFallThrough(PredBB)) {
           MBB->moveAfter(PredBB);
@@ -781,7 +780,6 @@
         // Analyze the branch at the end of the block before the succ.
         MachineBasicBlock *SuccBB = *SI;
         MachineFunction::iterator SuccPrev = SuccBB; --SuccPrev;
-        MachineBasicBlock *SuccPrevTBB = 0, *SuccPrevFBB = 0;
         std::vector<MachineOperand> SuccPrevCond;
         if (SuccBB != MBB && !CanFallThrough(SuccPrev)) {
           MBB->moveBefore(SuccBB);
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp
index 43ea483..be51d9f 100644
--- a/lib/CodeGen/DwarfWriter.cpp
+++ b/lib/CodeGen/DwarfWriter.cpp
@@ -2132,7 +2132,6 @@
           } else {
             EmitInt8(DW_CFA_def_cfa);
             EOL("DW_CFA_def_cfa");
-            
             EmitULEB128Bytes(RI->getDwarfRegNum(Src.getRegister()));
             EOL("Register");
           }
diff --git a/lib/CodeGen/ELFWriter.cpp b/lib/CodeGen/ELFWriter.cpp
index 4f041c2..5c58dd4 100644
--- a/lib/CodeGen/ELFWriter.cpp
+++ b/lib/CodeGen/ELFWriter.cpp
@@ -113,7 +113,6 @@
 
   // Add padding zeros to the end of the buffer to make sure that the
   // function will start on the correct byte alignment within the section.
-  size_t SectionOff = OutBuffer->size();
   ELFWriter::align(*OutBuffer, Align);
 
   FnStart = OutBuffer->size();
diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp
index 1834d6c..8e3f888 100644
--- a/lib/CodeGen/LiveInterval.cpp
+++ b/lib/CodeGen/LiveInterval.cpp
@@ -289,7 +289,6 @@
   //
   // Also, if one range is a physreg and one is a vreg, we always merge from the
   // vreg into the physreg, which leaves the vreg intervals pristine.
-  unsigned OtherOffs = 1, ThisOffs = 0;
   if ((Other.ranges.size() > ranges.size() &&
       MRegisterInfo::isVirtualRegister(reg)) ||
       MRegisterInfo::isPhysicalRegister(Other.reg)) {
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index aee2b1f..99f7e4d 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -184,7 +184,7 @@
       if (tii_->isMoveInstr(*mii, srcReg, dstReg) &&
           (RegRep = rep(srcReg)) == rep(dstReg)) {
         // remove from def list
-        LiveInterval &interval = getOrCreateInterval(RegRep);
+        getOrCreateInterval(RegRep);
         RemoveMachineInstrFromMaps(mii);
         mii = mbbi->erase(mii);
         ++numPeep;
diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp
index 5a73131..2968655 100644
--- a/lib/CodeGen/LiveVariables.cpp
+++ b/lib/CodeGen/LiveVariables.cpp
@@ -223,7 +223,6 @@
   for (df_ext_iterator<MachineBasicBlock*> DFI = df_ext_begin(Entry, Visited),
          E = df_ext_end(Entry, Visited); DFI != E; ++DFI) {
     MachineBasicBlock *MBB = *DFI;
-    unsigned BBNum = MBB->getNumber();
 
     // Loop over all of the instructions, processing them.
     for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end();
diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index a4d3c54..39090ed 100644
--- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -1041,7 +1041,6 @@
   ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0);
   ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1);
   MVT::ValueType VT = N1.getValueType();
-  unsigned OpSizeInBits = MVT::getSizeInBits(VT);
   
   // fold (and c1, c2) -> c1&c2
   if (N0C && N1C)
@@ -1319,7 +1318,7 @@
 /// MatchRotateHalf - Match "(X shl/srl V1) & V2" where V2 may not be present.
 static bool MatchRotateHalf(SDOperand Op, SDOperand &Shift, SDOperand &Mask) {
   if (Op.getOpcode() == ISD::AND) {
-    if (ConstantSDNode *RHSC = dyn_cast<ConstantSDNode>(Op.getOperand(1))) {
+    if (isa<ConstantSDNode>(Op.getOperand(1))) {
       Mask = Op.getOperand(1);
       Op = Op.getOperand(0);
     } else {
@@ -1856,9 +1855,6 @@
   SDOperand N2 = N->getOperand(2);
   SDOperand N3 = N->getOperand(3);
   SDOperand N4 = N->getOperand(4);
-  ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0);
-  ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1);
-  ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2);
   ISD::CondCode CC = cast<CondCodeSDNode>(N4)->get();
   
   // fold select_cc lhs, rhs, x, x, cc -> x
@@ -1900,7 +1896,7 @@
   MVT::ValueType VT = N->getValueType(0);
 
   // fold (sext c1) -> c1
-  if (ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0))
+  if (isa<ConstantSDNode>(N0))
     return DAG.getNode(ISD::SIGN_EXTEND, VT, N0);
   
   // fold (sext (sext x)) -> (sext x)
@@ -1958,7 +1954,7 @@
   MVT::ValueType VT = N->getValueType(0);
 
   // fold (zext c1) -> c1
-  if (ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0))
+  if (isa<ConstantSDNode>(N0))
     return DAG.getNode(ISD::ZERO_EXTEND, VT, N0);
   // fold (zext (zext x)) -> (zext x)
   // fold (zext (aext x)) -> (zext x)
@@ -3578,7 +3574,7 @@
 
   if (ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1.Val)) {
     uint64_t C1 = N1C->getValue();
-    if (ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0.Val)) {
+    if (isa<ConstantSDNode>(N0.Val)) {
       return DAG.FoldSetCC(VT, N0, N1, Cond);
     } else {
       // If the LHS is '(srl (ctlz x), 5)', the RHS is 0/1, and this is an
@@ -3806,7 +3802,7 @@
     return DAG.getSetCC(VT, N1, N0, ISD::getSetCCSwappedOperands(Cond));
   }
 
-  if (ConstantFPSDNode *N0C = dyn_cast<ConstantFPSDNode>(N0.Val)) {
+  if (isa<ConstantFPSDNode>(N0.Val)) {
     // Constant fold or commute setcc.
     SDOperand O = DAG.FoldSetCC(VT, N0, N1, Cond);    
     if (O.Val) return O;
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index cbb5824..b1dfc90 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -3690,7 +3690,6 @@
   SmallVector<SDOperand, 8> Stores;
   unsigned TypeByteSize = 
     MVT::getSizeInBits(Node->getOperand(0).getValueType())/8;
-  unsigned VectorSize = MVT::getSizeInBits(VT)/8;
   // Store (in the right endianness) the elements to memory.
   for (unsigned i = 0, e = Node->getNumOperands(); i != e; ++i) {
     // Ignore undef elements.
@@ -4802,7 +4801,6 @@
     
     bool HasMULHS = TLI.isOperationLegal(ISD::MULHS, NVT);
     bool HasMULHU = TLI.isOperationLegal(ISD::MULHU, NVT);
-    bool UseLibCall = true;
     if (HasMULHS || HasMULHU) {
       SDOperand LL, LH, RL, RH;
       ExpandOp(Node->getOperand(0), LL, LH);
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
index 7704a53..7befa9c 100644
--- a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+++ b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
@@ -257,7 +257,6 @@
   // While Available queue is not empty, grab the node with the highest
   // priority. If it is not ready put it back. Schedule the node.
   std::vector<SUnit*> NotReady;
-  SUnit *CurNode = NULL;
   while (!AvailableQueue->empty()) {
     SUnit *CurNode = AvailableQueue->pop();
     while (CurNode && !isReady(CurNode, CurCycle)) {
@@ -373,7 +372,6 @@
   // While Available queue is not empty, grab the node with the highest
   // priority. If it is not ready put it back. Schedule the node.
   std::vector<SUnit*> NotReady;
-  SUnit *CurNode = NULL;
   while (!AvailableQueue->empty()) {
     SUnit *CurNode = AvailableQueue->pop();
     while (CurNode && !isReady(CurNode, CurCycle)) {
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
index efc828b..f48f444 100644
--- a/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
+++ b/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
@@ -505,7 +505,6 @@
   RSLoadStore = 0x0C000000,  // Two load store units
   RSBranch    = 0x02000000   // One branch unit
 };
-static InstrStage CallStage  = { CallLatency, RSBranch };
 static InstrStage LoadStage  = { 5, RSLoadStore };
 static InstrStage StoreStage = { 2, RSLoadStore };
 static InstrStage IntStage   = { 2, RSInteger };
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 16c0718..bfd9a80 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -1956,7 +1956,6 @@
   assert(N->getNumOperands() == 2 && "Update with wrong number of operands");
   
   // Check to see if there is no change.
-  bool AnyChange = false;
   if (Op1 == N->getOperand(0) && Op2 == N->getOperand(1))
     return InN;   // No operands changed, just return the input node.
   
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 9930605..d00b996 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -2343,11 +2343,6 @@
   SDOperand AsmStr = DAG.getTargetExternalSymbol(IA->getAsmString().c_str(),
                                                  MVT::Other);
 
-  // Note, we treat inline asms both with and without side-effects as the same.
-  // If an inline asm doesn't have side effects and doesn't access memory, we
-  // could not choose to not chain it.
-  bool hasSideEffects = IA->hasSideEffects();
-
   std::vector<InlineAsm::ConstraintInfo> Constraints = IA->ParseConstraints();
   std::vector<MVT::ValueType> ConstraintVTs;
   
@@ -3124,7 +3119,6 @@
 static SDOperand getMemsetStringVal(MVT::ValueType VT,
                                     SelectionDAG &DAG, TargetLowering &TLI,
                                     std::string &Str, unsigned Offset) {
-  MVT::ValueType CurVT = VT;
   uint64_t Val = 0;
   unsigned MSB = getSizeInBits(VT) / 8;
   if (TLI.isLittleEndian())
diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 129bcd9..05abe96 100644
--- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -504,7 +504,6 @@
     }
     break;
   case ISD::SIGN_EXTEND_INREG: {
-    MVT::ValueType  VT = Op.getValueType();
     MVT::ValueType EVT = cast<VTSDNode>(Op.getOperand(1))->getVT();
 
     // Sign extension.  Compute the demanded bits in the result that are not 
@@ -852,7 +851,6 @@
     }
     return;
   case ISD::SIGN_EXTEND_INREG: {
-    MVT::ValueType  VT = Op.getValueType();
     MVT::ValueType EVT = cast<VTSDNode>(Op.getOperand(1))->getVT();
     
     // Sign extension.  Compute the demanded bits in the result that are not 
diff --git a/lib/Debugger/ProgramInfo.cpp b/lib/Debugger/ProgramInfo.cpp
index 7e12cf8..05ad4f7 100644
--- a/lib/Debugger/ProgramInfo.cpp
+++ b/lib/Debugger/ProgramInfo.cpp
@@ -61,7 +61,7 @@
       
       // If we found a stop point, check to see if it is earlier than what we
       // already have.  If so, remember it.
-      if (const Function *F = CI->getCalledFunction())
+      if (CI->getCalledFunction())
         if (const DbgStopPointInst *SPI = dyn_cast<DbgStopPointInst>(CI)) {
           unsigned CurLineNo = SPI->getLine();
           unsigned CurColNo = SPI->getColumn();
diff --git a/lib/ExecutionEngine/JIT/JITEmitter.cpp b/lib/ExecutionEngine/JIT/JITEmitter.cpp
index 4e55632..911aa8c 100644
--- a/lib/ExecutionEngine/JIT/JITEmitter.cpp
+++ b/lib/ExecutionEngine/JIT/JITEmitter.cpp
@@ -906,7 +906,6 @@
   const std::vector<MachineJumpTableEntry> &JT = MJTI->getJumpTables();
   if (JT.empty() || JumpTableBase == 0) return;
 
-  unsigned Offset = 0;
   assert(MJTI->getEntrySize() == sizeof(void*) && "Cross JIT'ing?");
   
   // For each jump table, map each target in the jump table to the address of 
diff --git a/lib/Linker/LinkArchives.cpp b/lib/Linker/LinkArchives.cpp
index 15d261e..63e263a 100644
--- a/lib/Linker/LinkArchives.cpp
+++ b/lib/Linker/LinkArchives.cpp
@@ -23,20 +23,6 @@
 #include <set>
 using namespace llvm;
 
-/// GetAllDefinedSymbols - Modifies its parameter DefinedSymbols to contain the
-/// name of each externally-visible symbol defined in M.
-///
-static void
-GetAllDefinedSymbols(Module *M, std::set<std::string> &DefinedSymbols) {
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    if (I->hasName() && !I->isExternal() && !I->hasInternalLinkage())
-      DefinedSymbols.insert(I->getName());
-  for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-       I != E; ++I)
-    if (I->hasName() && !I->isExternal() && !I->hasInternalLinkage())
-      DefinedSymbols.insert(I->getName());
-}
-
 /// GetAllUndefinedSymbols - calculates the set of undefined symbols that still
 /// exist in an LLVM module. This is a bit tricky because there may be two
 /// symbols with the same name but different LLVM types that will be resolved to
diff --git a/lib/Target/Alpha/AlphaAsmPrinter.cpp b/lib/Target/Alpha/AlphaAsmPrinter.cpp
index f94f553..821d432 100644
--- a/lib/Target/Alpha/AlphaAsmPrinter.cpp
+++ b/lib/Target/Alpha/AlphaAsmPrinter.cpp
@@ -97,7 +97,6 @@
 
 void AlphaAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) {
   const MRegisterInfo &RI = *TM.getRegisterInfo();
-  int new_symbol;
 
   switch (MO.getType()) {
   case MachineOperand::MO_Register:
diff --git a/lib/Target/Alpha/AlphaCodeEmitter.cpp b/lib/Target/Alpha/AlphaCodeEmitter.cpp
index 82f31da..15de348 100644
--- a/lib/Target/Alpha/AlphaCodeEmitter.cpp
+++ b/lib/Target/Alpha/AlphaCodeEmitter.cpp
@@ -92,7 +92,6 @@
   for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end();
        I != E; ++I) {
     MachineInstr &MI = *I;
-    unsigned Opcode = MI.getOpcode();
     switch(MI.getOpcode()) {
     default:
       MCE.emitWordLE(getBinaryCodeForInstr(*I));
@@ -160,10 +159,6 @@
   } else if (MO.isGlobalAddress() || MO.isExternalSymbol()
              || MO.isConstantPoolIndex()) {
     DEBUG(std::cerr << MO << " is a relocated op for " << MI << "\n";);
-    bool isExternal = MO.isExternalSymbol() ||
-      (MO.isGlobalAddress() &&
-       ( MO.getGlobal()->hasWeakLinkage() ||
-         MO.getGlobal()->isExternal()) );
     unsigned Reloc = 0;
     int Offset = 0;
     bool useGOT = false;
diff --git a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
index 8f09b2e..521e661 100644
--- a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
+++ b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
@@ -324,7 +324,6 @@
       //	val32 >= IMM_LOW  + IMM_LOW  * IMM_MULT) //always true
       break; //(zext (LDAH (LDA)))
     //Else use the constant pool
-    MachineConstantPool *CP = BB->getParent()->getConstantPool();
     ConstantInt *C = ConstantInt::get(Type::ULongTy, uval);
     SDOperand CPI = CurDAG->getTargetConstantPool(C, MVT::i64);
     SDNode *Tmp = CurDAG->getTargetNode(Alpha::LDAHr, MVT::i64, CPI,
diff --git a/lib/Target/Alpha/AlphaISelLowering.cpp b/lib/Target/Alpha/AlphaISelLowering.cpp
index 0b8961e..9728d88 100644
--- a/lib/Target/Alpha/AlphaISelLowering.cpp
+++ b/lib/Target/Alpha/AlphaISelLowering.cpp
@@ -175,8 +175,6 @@
   SDOperand JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT);
   SDOperand Zero = DAG.getConstant(0, PtrVT);
   
-  const TargetMachine &TM = DAG.getTarget();
-
   SDOperand Hi = DAG.getNode(AlphaISD::GPRelHi,  MVT::i64, JTI,
 			     DAG.getNode(ISD::GLOBAL_OFFSET_TABLE, MVT::i64));
   SDOperand Lo = DAG.getNode(AlphaISD::GPRelLo, MVT::i64, JTI, Hi);
@@ -207,7 +205,6 @@
 				       int &VarArgsOffset) {
   MachineFunction &MF = DAG.getMachineFunction();
   MachineFrameInfo *MFI = MF.getFrameInfo();
-  SSARegMap *RegMap = MF.getSSARegMap();
   std::vector<SDOperand> ArgValues;
   SDOperand Root = Op.getOperand(0);
 
@@ -225,7 +222,6 @@
     SDOperand ArgVal;
 
     if (ArgNo  < 6) {
-      unsigned Vreg;
       switch (ObjectVT) {
       default:
         std::cerr << "Unknown Type " << ObjectVT << "\n";
@@ -480,7 +476,6 @@
     //Expand only on constant case
     if (Op.getOperand(1).getOpcode() == ISD::Constant) {
       MVT::ValueType VT = Op.Val->getValueType(0);
-      unsigned Opc = Op.Val->getOpcode() == ISD::UREM ? ISD::UDIV : ISD::SDIV;
       SDOperand Tmp1 = Op.Val->getOpcode() == ISD::UREM ?
 	BuildUDIV(Op.Val, DAG, NULL) :
 	BuildSDIV(Op.Val, DAG, NULL);
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 4a04e02..15bf06a 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -702,7 +702,7 @@
         // The prefix for a quiet NaN is 0x7FF8. For a signalling NaN,
         // it's 0x7ff4.
         const unsigned long QuietNaN = 0x7ff8UL;
-        const unsigned long SignalNaN = 0x7ff4UL;
+        //const unsigned long SignalNaN = 0x7ff4UL;
 
         // We need to grab the first part of the FP #
         char Buffer[100];
@@ -2140,7 +2140,7 @@
                                       gep_type_iterator E) {
   bool HasImplicitAddress = false;
   // If accessing a global value with no indexing, avoid *(&GV) syndrome
-  if (GlobalValue *V = dyn_cast<GlobalValue>(Ptr)) {
+  if (isa<GlobalValue>(Ptr)) {
     HasImplicitAddress = true;
   } else if (isDirectAlloca(Ptr)) {
     HasImplicitAddress = true;
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index 4a04e02..15bf06a 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -702,7 +702,7 @@
         // The prefix for a quiet NaN is 0x7FF8. For a signalling NaN,
         // it's 0x7ff4.
         const unsigned long QuietNaN = 0x7ff8UL;
-        const unsigned long SignalNaN = 0x7ff4UL;
+        //const unsigned long SignalNaN = 0x7ff4UL;
 
         // We need to grab the first part of the FP #
         char Buffer[100];
@@ -2140,7 +2140,7 @@
                                       gep_type_iterator E) {
   bool HasImplicitAddress = false;
   // If accessing a global value with no indexing, avoid *(&GV) syndrome
-  if (GlobalValue *V = dyn_cast<GlobalValue>(Ptr)) {
+  if (isa<GlobalValue>(Ptr)) {
     HasImplicitAddress = true;
   } else if (isDirectAlloca(Ptr)) {
     HasImplicitAddress = true;
diff --git a/lib/Target/IA64/IA64ISelDAGToDAG.cpp b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
index a79cf2c..fe60ee7e 100644
--- a/lib/Target/IA64/IA64ISelDAGToDAG.cpp
+++ b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
@@ -337,11 +337,9 @@
       dyn_cast<GlobalAddressSDNode>(N->getOperand(1))) {
       CallOpcode = IA64::BRCALL_IPREL_GA;
       CallOperand = CurDAG->getTargetGlobalAddress(GASD->getGlobal(), MVT::i64);
-    } else if (ExternalSymbolSDNode *ESSDN = // FIXME: we currently NEED this
-		                         // case for correctness, to avoid
-					 // "non-pic code with imm reloc.n
-					 // against dynamic symbol" errors
-             dyn_cast<ExternalSymbolSDNode>(N->getOperand(1))) {
+    } else if (isa<ExternalSymbolSDNode>(N->getOperand(1))) {
+      // FIXME: we currently NEED this case for correctness, to avoid
+      // "non-pic code with imm reloc.n against dynamic symbol" errors
     CallOpcode = IA64::BRCALL_IPREL_ES;
     CallOperand = N->getOperand(1);
   } else {
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
index aafc782..ee57cba 100644
--- a/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -249,7 +249,6 @@
     DarwinAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
                      const TargetAsmInfo *T)
       : PPCAsmPrinter(O, TM, T), DW(O, this, T) {
-      bool isPPC64 = Subtarget.isPPC64();
     }
 
     virtual const char *getPassName() const {
@@ -308,7 +307,6 @@
     // Computing the address of a global symbol, not calling it.
     GlobalValue *GV = MO.getGlobal();
     std::string Name = Mang->getValueName(GV);
-    int offset = MO.getOffset();
 
     // External or weakly linked global variables need non-lazily-resolved stubs
     if (TM.getRelocationModel() != Reloc::Static) {
diff --git a/lib/Target/PowerPC/PPCCodeEmitter.cpp b/lib/Target/PowerPC/PPCCodeEmitter.cpp
index 464044a..c321cbc 100644
--- a/lib/Target/PowerPC/PPCCodeEmitter.cpp
+++ b/lib/Target/PowerPC/PPCCodeEmitter.cpp
@@ -91,7 +91,6 @@
   
   for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end(); I != E; ++I){
     MachineInstr &MI = *I;
-    unsigned Opcode = MI.getOpcode();
     switch (MI.getOpcode()) {
     default:
       MCE.emitWordBE(getBinaryCodeForInstr(*I));
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
index 2bfaa2d..aee156c 100644
--- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -1134,7 +1134,6 @@
     SDOperand CCReg = SelectCC(N->getOperand(0), N->getOperand(1), CC);
     unsigned BROpc = getBCCForSetCC(CC);
 
-    bool isFP = MVT::isFloatingPoint(N->getValueType(0));
     unsigned SelectCCOp;
     if (N->getValueType(0) == MVT::i32)
       SelectCCOp = PPC::SELECT_CC_I4;
@@ -1218,7 +1217,6 @@
   SDOperand Chain(0, 0);
   SDOperand N1(0, 0);
   SDOperand Tmp0(0, 0);
-  SDNode *ResNode;
   Chain = N.getOperand(0);
   N1 = N.getOperand(1);
   
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
index 26a1f21..184b4bf 100644
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -942,9 +942,7 @@
 
 static SDOperand LowerCALL(SDOperand Op, SelectionDAG &DAG) {
   SDOperand Chain = Op.getOperand(0);
-  unsigned CallingConv= cast<ConstantSDNode>(Op.getOperand(1))->getValue();
   bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
-  bool isTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0;
   SDOperand Callee    = Op.getOperand(4);
   unsigned NumOps     = (Op.getNumOperands() - 5) / 2;
 
diff --git a/lib/Target/PowerPC/PPCMachOWriter.cpp b/lib/Target/PowerPC/PPCMachOWriter.cpp
index 8d6de73..59068e1 100644
--- a/lib/Target/PowerPC/PPCMachOWriter.cpp
+++ b/lib/Target/PowerPC/PPCMachOWriter.cpp
@@ -99,7 +99,7 @@
   case PPC::reloc_pcrel_bx:
     Addr -= MR.getMachineCodeOffset();
     Addr >>= 2;
-    Addr & 0xFFFFFF;
+    // ??? Addr & 0xFFFFFF;  Possibly this was supposed to be Addr &= 0xFFFFFF ?
     Addr <<= 2;
     Addr |= (MOS.SectionData[MR.getMachineCodeOffset()] << 24);
     fixword(MOS.SectionData, Addr, MR.getMachineCodeOffset());
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp
index 34c23bd..98ada71 100644
--- a/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -370,7 +370,6 @@
 //
 static bool hasFP(const MachineFunction &MF) {
   const MachineFrameInfo *MFI = MF.getFrameInfo();
-  unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
 
   // If frame pointers are forced, or if there are variable sized stack objects,
   // use a frame pointer.
diff --git a/lib/Target/Sparc/SparcAsmPrinter.cpp b/lib/Target/Sparc/SparcAsmPrinter.cpp
index 1c251e1..2e6a470 100644
--- a/lib/Target/Sparc/SparcAsmPrinter.cpp
+++ b/lib/Target/Sparc/SparcAsmPrinter.cpp
@@ -185,8 +185,6 @@
     return;
   }
   
-  MachineOperand::MachineOperandType OpTy = MI->getOperand(opNum+1).getType();
-  
   if (MI->getOperand(opNum+1).isRegister() &&
       MI->getOperand(opNum+1).getReg() == SP::G0)
     return;   // don't print "+%g0"
diff --git a/lib/Target/X86/X86FloatingPoint.cpp b/lib/Target/X86/X86FloatingPoint.cpp
index 832e09a..5a10d97 100644
--- a/lib/Target/X86/X86FloatingPoint.cpp
+++ b/lib/Target/X86/X86FloatingPoint.cpp
@@ -106,7 +106,6 @@
     bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; }
     void moveToTop(unsigned RegNo, MachineBasicBlock::iterator &I) {
       if (!isAtTop(RegNo)) {
-        unsigned Slot = getSlot(RegNo);
         unsigned STReg = getSTReg(RegNo);
         unsigned RegOnTop = getStackEntry(0);
 
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 92bec91..ac7327f 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -532,7 +532,6 @@
 SDOperand X86TargetLowering::LowerCCCCallTo(SDOperand Op, SelectionDAG &DAG) {
   SDOperand Chain     = Op.getOperand(0);
   unsigned CallingConv= cast<ConstantSDNode>(Op.getOperand(1))->getValue();
-  bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
   bool isTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0;
   SDOperand Callee    = Op.getOperand(4);
   MVT::ValueType RetVT= Op.Val->getValueType(0);
@@ -1031,7 +1030,6 @@
 SDOperand
 X86TargetLowering::LowerX86_64CCCCallTo(SDOperand Op, SelectionDAG &DAG) {
   SDOperand Chain     = Op.getOperand(0);
-  unsigned CallingConv= cast<ConstantSDNode>(Op.getOperand(1))->getValue();
   bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
   bool isTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0;
   SDOperand Callee    = Op.getOperand(4);
@@ -1528,8 +1526,6 @@
 SDOperand X86TargetLowering::LowerFastCCCallTo(SDOperand Op, SelectionDAG &DAG,
                                                bool isFastCall) {
   SDOperand Chain     = Op.getOperand(0);
-  unsigned CallingConv= cast<ConstantSDNode>(Op.getOperand(1))->getValue();
-  bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
   bool isTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0;
   SDOperand Callee    = Op.getOperand(4);
   MVT::ValueType RetVT= Op.Val->getValueType(0);
@@ -1549,11 +1545,13 @@
     { X86::AX,  X86::DX },
     { X86::EAX, X86::EDX }
   };
+#if 0
   static const unsigned FastCallGPRArgRegs[][2] = {
     { X86::CL,  X86::DL },
     { X86::CX,  X86::DX },
     { X86::ECX, X86::EDX }
   };  
+#endif
   static const unsigned XMMArgRegs[] = {
     X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3
   };
@@ -1906,7 +1904,6 @@
 SDOperand X86TargetLowering::LowerStdCallCCCallTo(SDOperand Op,
                                                   SelectionDAG &DAG) {
   SDOperand Chain     = Op.getOperand(0);
-  unsigned CallingConv= cast<ConstantSDNode>(Op.getOperand(1))->getValue();
   bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
   bool isTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0;
   SDOperand Callee    = Op.getOperand(4);
@@ -2841,7 +2838,7 @@
   unsigned i = 0;
   for (; i != NumElems; ++i) {
     SDOperand Elt = N->getOperand(i);
-    if (ConstantSDNode *EltV = dyn_cast<ConstantSDNode>(Elt)) {
+    if (isa<ConstantSDNode>(Elt)) {
       ElementBase = Elt;
       break;
     }
@@ -5431,7 +5428,6 @@
 
 SDOperand X86TargetLowering::PerformDAGCombine(SDNode *N, 
                                                DAGCombinerInfo &DCI) const {
-  TargetMachine &TM = getTargetMachine();
   SelectionDAG &DAG = DCI.DAG;
   switch (N->getOpcode()) {
   default: break;
diff --git a/lib/Target/X86/X86IntelAsmPrinter.cpp b/lib/Target/X86/X86IntelAsmPrinter.cpp
index 7b23963..91e1478 100755
--- a/lib/Target/X86/X86IntelAsmPrinter.cpp
+++ b/lib/Target/X86/X86IntelAsmPrinter.cpp
@@ -386,7 +386,6 @@
     
     std::string name = Mang->getValueName(I);
     Constant *C = I->getInitializer();
-    unsigned Size = TD->getTypeSize(C->getType());
     unsigned Align = TD->getPreferredAlignmentLog(I);
     bool bCustomSegment = false;
 
diff --git a/lib/Transforms/ExprTypeConvert.cpp b/lib/Transforms/ExprTypeConvert.cpp
index 3cbbc76..9145021 100644
--- a/lib/Transforms/ExprTypeConvert.cpp
+++ b/lib/Transforms/ExprTypeConvert.cpp
@@ -537,7 +537,7 @@
         // a whole structure at a time), so the level raiser must be trying to
         // store into the first field.  Check for this and allow it now:
         //
-        if (const StructType *SElTy = dyn_cast<StructType>(ElTy)) {
+        if (isa<StructType>(ElTy)) {
           unsigned Offset = 0;
           std::vector<Value*> Indices;
           ElTy = getStructOffsetType(ElTy, Offset, Indices, TD, false);
@@ -799,9 +799,6 @@
         Value *SrcPtr = VMCI->second;
 
         if (ElTy != NewTy) {
-          // We check that this is a struct in the initial scan...
-          const StructType *SElTy = cast<StructType>(ElTy);
-
           std::vector<Value*> Indices;
           Indices.push_back(Constant::getNullValue(Type::UIntTy));
 
diff --git a/lib/Transforms/IPO/ArgumentPromotion.cpp b/lib/Transforms/IPO/ArgumentPromotion.cpp
index 79f21b5..646f5b8 100644
--- a/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -259,7 +259,6 @@
   // it is safe to unconditionally load the pointer.  Use alias analysis to
   // check to see if the pointer is guaranteed to not be modified from entry of
   // the function to each of the load instructions.
-  Function &F = *Arg->getParent();
 
   // Because there could be several/many load instructions, remember which
   // blocks we know to be transparent to the load.
@@ -508,7 +507,6 @@
           GetElementPtrInst *GEP = cast<GetElementPtrInst>(I->use_back());
           std::vector<Value*> Operands(GEP->op_begin()+1, GEP->op_end());
 
-          unsigned ArgNo = 0;
           Function::arg_iterator TheArg = I2;
           for (ScalarizeTable::iterator It = ArgIndices.begin();
                *It != Operands; ++It, ++TheArg) {
diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp
index bc5aecd..6cdd530 100644
--- a/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/lib/Transforms/IPO/GlobalOpt.cpp
@@ -1770,7 +1770,7 @@
           return false;
         InstResult = RetVal;
       }
-    } else if (TerminatorInst *TI = dyn_cast<TerminatorInst>(CurInst)) {
+    } else if (isa<TerminatorInst>(CurInst)) {
       BasicBlock *NewBB = 0;
       if (BranchInst *BI = dyn_cast<BranchInst>(CurInst)) {
         if (BI->isUnconditional()) {
diff --git a/lib/Transforms/IPO/IndMemRemoval.cpp b/lib/Transforms/IPO/IndMemRemoval.cpp
index 78b6ea5..ef27cd6 100644
--- a/lib/Transforms/IPO/IndMemRemoval.cpp
+++ b/lib/Transforms/IPO/IndMemRemoval.cpp
@@ -77,7 +77,7 @@
       BasicBlock* bb = new BasicBlock("entry",FN);
       Instruction* c = new CastInst(FN->arg_begin(), Type::UIntTy, "c", bb);
       Instruction* a = new MallocInst(Type::SByteTy, c, "m", bb);
-      Instruction* R = new ReturnInst(a, bb);
+      new ReturnInst(a, bb);
       ++NumBounce;
       NumBounceSites += F->getNumUses();
       F->replaceAllUsesWith(FN);
diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp
index c2aa4cb..c4b033c 100644
--- a/lib/Transforms/IPO/InlineSimple.cpp
+++ b/lib/Transforms/IPO/InlineSimple.cpp
@@ -245,7 +245,7 @@
     // significant future optimization possibilities (like scalar promotion, and
     // scalarization), so encourage the inlining of the function.
     //
-    else if (AllocaInst *AI = dyn_cast<AllocaInst>(I)) {
+    else if (isa<AllocaInst>(I)) {
       if (ArgNo < CalleeFI.ArgumentWeights.size())
         InlineCost -= CalleeFI.ArgumentWeights[ArgNo].AllocaWeight;
 
diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp
index ae4032b..edb34be 100644
--- a/lib/Transforms/IPO/Inliner.cpp
+++ b/lib/Transforms/IPO/Inliner.cpp
@@ -129,8 +129,6 @@
           DEBUG(std::cerr << "    Inlining: cost=" << InlineCost
                 << ", Call: " << *CS.getInstruction());
 
-          Function *Caller = CS.getInstruction()->getParent()->getParent();
-
           // Attempt to inline the function...
           if (InlineCallIfPossible(CS, CG, SCCFunctions)) {
             // Remove this call site from the list.
diff --git a/lib/Transforms/IPO/LowerSetJmp.cpp b/lib/Transforms/IPO/LowerSetJmp.cpp
index cd46718..e6ff5c9 100644
--- a/lib/Transforms/IPO/LowerSetJmp.cpp
+++ b/lib/Transforms/IPO/LowerSetJmp.cpp
@@ -496,7 +496,6 @@
   // If not reachable from a setjmp call, don't transform.
   if (!DFSBlocks.count(BB)) return;
 
-  BasicBlock* NormalBB = II.getNormalDest();
   BasicBlock* ExceptBB = II.getUnwindDest();
 
   Function* Func = BB->getParent();
diff --git a/lib/Transforms/IPO/SimplifyLibCalls.cpp b/lib/Transforms/IPO/SimplifyLibCalls.cpp
index 157ea38..af11709 100644
--- a/lib/Transforms/IPO/SimplifyLibCalls.cpp
+++ b/lib/Transforms/IPO/SimplifyLibCalls.cpp
@@ -1106,7 +1106,7 @@
     CastInst* DestCast =
       new CastInst(dest,PointerType::get(castType),dest->getName()+".cast",ci);
     LoadInst* LI = new LoadInst(SrcCast,SrcCast->getName()+".val",ci);
-    StoreInst* SI = new StoreInst(LI, DestCast, ci);
+    new StoreInst(LI, DestCast, ci);
     ci->eraseFromParent();
     return true;
   }
@@ -2063,7 +2063,7 @@
   Constant* INTLZR = GV->getInitializer();
 
   // Handle the ConstantAggregateZero case
-  if (ConstantAggregateZero *CAZ = dyn_cast<ConstantAggregateZero>(INTLZR)) {
+  if (isa<ConstantAggregateZero>(INTLZR)) {
     // This is a degenerate case. The initializer is constant zero so the
     // length of the string must be zero.
     len = 0;
diff --git a/lib/Transforms/Instrumentation/RSProfiling.cpp b/lib/Transforms/Instrumentation/RSProfiling.cpp
index 5d6654d..671b3bc 100644
--- a/lib/Transforms/Instrumentation/RSProfiling.cpp
+++ b/lib/Transforms/Instrumentation/RSProfiling.cpp
@@ -580,7 +580,6 @@
   for(BasicBlock::iterator ib = btarget->begin(), ie = btarget->end();
       ib != ie; ++ib)
     if (PHINode* phi = dyn_cast<PHINode>(&*ib)) {
-      unsigned total = phi->getNumIncomingValues();
       std::map<BasicBlock*, Value*> counter;
       for(unsigned i = 0; i < phi->getNumIncomingValues(); ) {
         if (counter[phi->getIncomingBlock(i)]) {
diff --git a/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp b/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp
index 8bf6001..003ea0d 100644
--- a/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp
+++ b/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp
@@ -56,7 +56,7 @@
   while (isa<AllocaInst>(InsertPos) || isa<PHINode>(InsertPos))
     ++InsertPos;
 
-  Instruction *InstrCall = new CallInst (InstrFn, Args, "", InsertPos);
+  new CallInst (InstrFn, Args, "", InsertPos);
 }
 
 bool TraceBasicBlocks::runOnModule(Module &M) {
diff --git a/lib/Transforms/Scalar/CorrelatedExprs.cpp b/lib/Transforms/Scalar/CorrelatedExprs.cpp
index 35e6a97..3ea6795 100644
--- a/lib/Transforms/Scalar/CorrelatedExprs.cpp
+++ b/lib/Transforms/Scalar/CorrelatedExprs.cpp
@@ -726,7 +726,6 @@
                              const std::vector<BasicBlock*> &RegionExitBlocks) {
   assert(BBVal->getType() == OldVal->getType() && "Should be derived values!");
   BasicBlock *BB = BBVal->getParent();
-  BasicBlock *OldSucc = OldVal->getParent();
 
   // Loop over all of the blocks we have to place PHIs in, doing it.
   for (unsigned i = 0, e = RegionExitBlocks.size(); i != e; ++i) {
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp
index d3a625b..98c35dd 100644
--- a/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -2579,8 +2579,6 @@
 }
 
 Instruction *InstCombiner::visitFRem(BinaryOperator &I) {
-  Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
-
   return commonRemTransforms(I);
 }
 
@@ -3109,7 +3107,6 @@
   
   {
     Value *A = 0, *B = 0;
-    ConstantInt *C1 = 0, *C2 = 0;
     if (match(Op0, m_Or(m_Value(A), m_Value(B))))
       if (A == Op1 || B == Op1)    // (A | ?) & A  --> A
         return ReplaceInstUsesWith(I, Op1);
@@ -5510,7 +5507,7 @@
       // If the first operand is itself a cast, and is eliminable, do not count
       // this as an eliminable cast.  We would prefer to eliminate those two
       // casts first.
-      if (CastInst *OpCast = dyn_cast<CastInst>(I->getOperand(0)))
+      if (isa<CastInst>(I->getOperand(0)))
         return true;
       
       ++NumCastsRemoved;
@@ -6192,7 +6189,6 @@
   if (Instruction *TI = dyn_cast<Instruction>(TrueVal))
     if (Instruction *FI = dyn_cast<Instruction>(FalseVal))
       if (TI->hasOneUse() && FI->hasOneUse()) {
-        bool isInverse = false;
         Instruction *AddOp = 0, *SubOp = 0;
 
         // Turn (select C, (op X, Y), (op X, Z)) -> (op X, (select C, Y, Z))
@@ -6971,7 +6967,7 @@
   // Insert and return the new operation.
   if (isa<CastInst>(FirstInst))
     return new CastInst(PhiVal, PN.getType());
-  else if (LoadInst *LI = dyn_cast<LoadInst>(FirstInst))
+  else if (isa<LoadInst>(FirstInst))
     return new LoadInst(PhiVal, "", isVolatile);
   else if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(FirstInst))
     return BinaryOperator::create(BinOp->getOpcode(), PhiVal, ConstantOp);
@@ -7327,7 +7323,7 @@
         // If the index will be to exactly the right offset with the scale taken
         // out, perform the transformation.
         if (Scale && Scale->getZExtValue() % ArrayEltSize == 0) {
-          if (ConstantInt *C = dyn_cast<ConstantInt>(Scale))
+          if (isa<ConstantInt>(Scale))
             Scale = ConstantInt::get(Scale->getType(),
                                       Scale->getZExtValue() / ArrayEltSize);
           if (Scale->getZExtValue() != 1) {
@@ -7501,7 +7497,7 @@
   Value *Op = LI.getOperand(0);
 
   // load (cast X) --> cast (load X) iff safe
-  if (CastInst *CI = dyn_cast<CastInst>(Op))
+  if (isa<CastInst>(Op))
     if (Instruction *Res = InstCombineLoadCast(*this, LI))
       return Res;
 
@@ -7728,7 +7724,7 @@
 
   // If the pointer destination is a cast, see if we can fold the cast into the
   // source instead.
-  if (CastInst *CI = dyn_cast<CastInst>(Ptr))
+  if (isa<CastInst>(Ptr))
     if (Instruction *Res = InstCombineStoreToCast(*this, SI))
       return Res;
   if (ConstantExpr *CE = dyn_cast<ConstantExpr>(Ptr))
@@ -8015,7 +8011,7 @@
           InsertNewInstBefore(newEI1, EI);
           return BinaryOperator::create(BO->getOpcode(), newEI0, newEI1);
         }
-      } else if (LoadInst *LI = dyn_cast<LoadInst>(I)) {
+      } else if (isa<LoadInst>(I)) {
         Value *Ptr = InsertCastBefore(I->getOperand(0),
                                       PointerType::get(EI.getType()), EI);
         GetElementPtrInst *GEP = 
diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index 5b64e54f..dc6b986 100644
--- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -307,7 +307,7 @@
         Start = SCEVAddExpr::get(Start, AE->getOperand(i));
       }
         
-  } else if (SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SH)) {
+  } else if (isa<SCEVAddRecExpr>(SH)) {
     TheAddRec = SH;
   } else {
     return false;  // not analyzable.
diff --git a/lib/Transforms/Scalar/LoopUnroll.cpp b/lib/Transforms/Scalar/LoopUnroll.cpp
index 9c59dd3..2fa3fcd 100644
--- a/lib/Transforms/Scalar/LoopUnroll.cpp
+++ b/lib/Transforms/Scalar/LoopUnroll.cpp
@@ -92,7 +92,7 @@
         // Ignore PHI nodes in the header.
       } else if (I->hasOneUse() && I->use_back() == Term) {
         // Ignore instructions only used by the loop terminator.
-      } else if (DbgInfoIntrinsic *DbgI = dyn_cast<DbgInfoIntrinsic>(I)) {
+      } else if (isa<DbgInfoIntrinsic>(I)) {
         // Ignore debug instructions
       } else {
         ++Size;
@@ -135,7 +135,6 @@
     return 0;
 
   DEBUG(std::cerr << "Merging: " << *BB << "into: " << *OnlyPred);
-  TerminatorInst *Term = OnlyPred->getTerminator();
 
   // Resolve any PHI nodes at the start of the block.  They are all
   // guaranteed to have exactly one entry if they exist, unless there are
diff --git a/lib/Transforms/Scalar/LoopUnswitch.cpp b/lib/Transforms/Scalar/LoopUnswitch.cpp
index 9521725..a91d295 100644
--- a/lib/Transforms/Scalar/LoopUnswitch.cpp
+++ b/lib/Transforms/Scalar/LoopUnswitch.cpp
@@ -576,8 +576,6 @@
 
   // Split all of the edges from inside the loop to their exit blocks.  Update
   // the appropriate Phi nodes as we do so.
-  unsigned NumBlocks = L->getBlocks().size();
-  
   for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) {
     BasicBlock *ExitBlock = ExitBlocks[i];
     std::vector<BasicBlock*> Preds(pred_begin(ExitBlock), pred_end(ExitBlock));
@@ -966,9 +964,8 @@
               BasicBlock* Split = SplitBlock(Old, SI);
               
               Instruction* OldTerm = Old->getTerminator();
-              BranchInst* Branch = new BranchInst(Split, SI->getSuccessor(i),
-                                                  ConstantBool::getTrue(),
-                                                  OldTerm);
+              new BranchInst(Split, SI->getSuccessor(i),
+                             ConstantBool::getTrue(), OldTerm);
               
               Old->getTerminator()->eraseFromParent();
               
diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp
index 44634cd..8e585c2 100644
--- a/lib/Transforms/Scalar/SCCP.cpp
+++ b/lib/Transforms/Scalar/SCCP.cpp
@@ -377,7 +377,7 @@
         Succs[BCValue.getConstant() == ConstantBool::getFalse()] = true;
       }
     }
-  } else if (InvokeInst *II = dyn_cast<InvokeInst>(&TI)) {
+  } else if (isa<InvokeInst>(&TI)) {
     // Invoke instructions successors are always executable.
     Succs[0] = Succs[1] = true;
   } else if (SwitchInst *SI = dyn_cast<SwitchInst>(&TI)) {
@@ -436,7 +436,7 @@
       }
       return false;
     }
-  } else if (InvokeInst *II = dyn_cast<InvokeInst>(TI)) {
+  } else if (isa<InvokeInst>(TI)) {
     // Invoke instructions successors are always executable.
     return true;
   } else if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) {
diff --git a/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/lib/Transforms/Scalar/ScalarReplAggregates.cpp
index ffb095a..3eba528 100644
--- a/lib/Transforms/Scalar/ScalarReplAggregates.cpp
+++ b/lib/Transforms/Scalar/ScalarReplAggregates.cpp
@@ -302,7 +302,7 @@
   if (const ArrayType *AT = dyn_cast<ArrayType>(*I)) {
     uint64_t NumElements = AT->getNumElements();
 
-    if (ConstantInt *CI = dyn_cast<ConstantInt>(I.getOperand())) {
+    if (isa<ConstantInt>(I.getOperand())) {
       // Check to make sure that index falls within the array.  If not,
       // something funny is going on, so we won't do the optimization.
       //
diff --git a/lib/Transforms/Scalar/TailRecursionElimination.cpp b/lib/Transforms/Scalar/TailRecursionElimination.cpp
index 14c4d8b..e732392 100644
--- a/lib/Transforms/Scalar/TailRecursionElimination.cpp
+++ b/lib/Transforms/Scalar/TailRecursionElimination.cpp
@@ -161,7 +161,6 @@
   // occurs when a function passes an argument straight through to its tail
   // call.
   if (!ArgumentPHIs.empty()) {
-    unsigned NumIncoming = ArgumentPHIs[0]->getNumIncomingValues();
     for (unsigned i = 0, e = ArgumentPHIs.size(); i != e; ++i) {
       PHINode *PN = ArgumentPHIs[i];
 
diff --git a/lib/Transforms/Utils/CloneFunction.cpp b/lib/Transforms/Utils/CloneFunction.cpp
index f80b153..30a7add 100644
--- a/lib/Transforms/Utils/CloneFunction.cpp
+++ b/lib/Transforms/Utils/CloneFunction.cpp
@@ -361,10 +361,7 @@
   // requires the CFG to be up-to-date.
   for (unsigned phino = 0, e = PHIToResolve.size(); phino != e; ) {
     const PHINode *OPN = PHIToResolve[phino];
-    
     unsigned NumPreds = OPN->getNumIncomingValues();
-    
-    unsigned BBPHIStart = phino;
     const BasicBlock *OldBB = OPN->getParent();
     BasicBlock *NewBB = cast<BasicBlock>(ValueMap[OldBB]);
 
diff --git a/lib/Transforms/Utils/LoopSimplify.cpp b/lib/Transforms/Utils/LoopSimplify.cpp
index 620a581..19293f4 100644
--- a/lib/Transforms/Utils/LoopSimplify.cpp
+++ b/lib/Transforms/Utils/LoopSimplify.cpp
@@ -763,7 +763,6 @@
   // If NewBB dominates some blocks, then it will dominate all blocks that
   // NewBBSucc does.
   if (NewBBDominatesNewBBSucc) {
-    BasicBlock *PredBlock = PredBlocks[0];
     Function *F = NewBB->getParent();
     for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I)
       if (DS.dominates(NewBBSucc, I))
diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp
index 1816144..3385ba1 100644
--- a/lib/Transforms/Utils/LowerInvoke.cpp
+++ b/lib/Transforms/Utils/LowerInvoke.cpp
@@ -370,7 +370,6 @@
       // Scan all of the uses and see if the live range is live across an unwind
       // edge.  If we find a use live across an invoke edge, create an alloca
       // and spill the value.
-      AllocaInst *SpillLoc = 0;
       std::set<InvokeInst*> InvokesWithStoreInserted;
 
       // Find all of the blocks that this value is live in.
diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp
index 9794ed6..de9f8ec 100644
--- a/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -1340,7 +1340,7 @@
         }
       }
     }
-  } else if (UnwindInst *UI = dyn_cast<UnwindInst>(BB->begin())) {
+  } else if (isa<UnwindInst>(BB->begin())) {
     // Check to see if the first instruction in this block is just an unwind.
     // If so, replace any invoke instructions which use this as an exception
     // destination with call instructions, and any unconditional branch
@@ -1409,7 +1409,7 @@
           return 1;
       
     } else {  // Conditional branch
-      if (Value *CompVal = isValueEqualityComparison(BI)) {
+      if (isValueEqualityComparison(BI)) {
         // If we only have one predecessor, and if it is a branch on this value,
         // see if that predecessor totally determines the outcome of this
         // switch.
@@ -1764,7 +1764,6 @@
 
   if (OnlySucc) {
     DEBUG(std::cerr << "Merging: " << *BB << "into: " << *OnlyPred);
-    TerminatorInst *Term = OnlyPred->getTerminator();
 
     // Resolve any PHI nodes at the start of the block.  They are all
     // guaranteed to have exactly one entry if they exist, unless there are
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index 25a84f1..4f2cbc4 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -753,7 +753,7 @@
     Out << '<' << PTy->getNumElements() << " x ";
     printType(PTy->getElementType()) << '>';
   }
-  else if (const OpaqueType *OTy = dyn_cast<OpaqueType>(Ty)) {
+  else if (isa<OpaqueType>(Ty)) {
     Out << "opaque";
   } else {
     if (!Ty->isPrimitiveType())
