[llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeInternals.h UpgradeLexer.cpp.cvs UpgradeLexer.l UpgradeLexer.l.cvs UpgradeParser.cpp.cvs UpgradeParser.h.cvs UpgradeParser.y UpgradeParser.y.cvs

Reid Spencer reid at x10sys.com
Thu Feb 1 18:17:37 PST 2007



Changes in directory llvm/tools/llvm-upgrade:

UpgradeInternals.h updated: 1.7 -> 1.8
UpgradeLexer.cpp.cvs updated: 1.18 -> 1.19
UpgradeLexer.l updated: 1.17 -> 1.18
UpgradeLexer.l.cvs updated: 1.17 -> 1.18
UpgradeParser.cpp.cvs updated: 1.53 -> 1.54
UpgradeParser.h.cvs updated: 1.39 -> 1.40
UpgradeParser.y updated: 1.54 -> 1.55
UpgradeParser.y.cvs updated: 1.52 -> 1.53
---
Log message:

Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to 
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.


---
Diffs of the changes:  (+1854 -2000)

 UpgradeInternals.h    |    6 
 UpgradeLexer.cpp.cvs  | 2167 +++++++++++++++++++++++---------------------------
 UpgradeLexer.l        |    9 
 UpgradeLexer.l.cvs    |    9 
 UpgradeParser.cpp.cvs | 1480 +++++++++++++++++-----------------
 UpgradeParser.h.cvs   |   82 -
 UpgradeParser.y       |   50 -
 UpgradeParser.y.cvs   |   50 -
 8 files changed, 1853 insertions(+), 2000 deletions(-)


Index: llvm/tools/llvm-upgrade/UpgradeInternals.h
diff -u llvm/tools/llvm-upgrade/UpgradeInternals.h:1.7 llvm/tools/llvm-upgrade/UpgradeInternals.h:1.8
--- llvm/tools/llvm-upgrade/UpgradeInternals.h:1.7	Sun Jan 28 23:41:09 2007
+++ llvm/tools/llvm-upgrade/UpgradeInternals.h	Thu Feb  1 20:16:22 2007
@@ -194,6 +194,7 @@
   DivOp, UDivOp, SDivOp, FDivOp, 
   RemOp, URemOp, SRemOp, FRemOp, 
   AndOp, OrOp, XorOp,
+  ShlOp, ShrOp, LShrOp, AShrOp,
   SetEQ, SetNE, SetLE, SetGE, SetLT, SetGT
 };
 
@@ -202,10 +203,9 @@
 };
 
 enum OtherOps {
-  PHIOp, CallOp, ShlOp, ShrOp, SelectOp, UserOp1, UserOp2, VAArg,
+  PHIOp, CallOp, SelectOp, UserOp1, UserOp2, VAArg,
   ExtractElementOp, InsertElementOp, ShuffleVectorOp,
-  ICmpOp, FCmpOp,
-  LShrOp, AShrOp
+  ICmpOp, FCmpOp
 };
 
 enum CastOps {


Index: llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs:1.18 llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs:1.19
--- llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs:1.18	Sun Jan 28 07:36:57 2007
+++ llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs	Thu Feb  1 20:16:22 2007
@@ -1,94 +1,51 @@
-#line 2 "UpgradeLexer.cpp"
+#define yy_create_buffer Upgrade_create_buffer
+#define yy_delete_buffer Upgrade_delete_buffer
+#define yy_scan_buffer Upgrade_scan_buffer
+#define yy_scan_string Upgrade_scan_string
+#define yy_scan_bytes Upgrade_scan_bytes
+#define yy_flex_debug Upgrade_flex_debug
+#define yy_init_buffer Upgrade_init_buffer
+#define yy_flush_buffer Upgrade_flush_buffer
+#define yy_load_buffer_state Upgrade_load_buffer_state
+#define yy_switch_to_buffer Upgrade_switch_to_buffer
+#define yyin Upgradein
+#define yyleng Upgradeleng
+#define yylex Upgradelex
+#define yyout Upgradeout
+#define yyrestart Upgraderestart
+#define yytext Upgradetext
+#define yylineno Upgradelineno
 
-#line 4 "UpgradeLexer.cpp"
+#line 20 "UpgradeLexer.cpp"
+/* A lexical scanner generated by flex*/
 
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
+/* Scanner skeleton version:
+ * $Header: /var/cvs/llvm/llvm/tools/llvm-upgrade/UpgradeLexer.cpp.cvs,v 1.19 2007/02/02 02:16:22 reid Exp $
+ */
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
 
-/* begin standard C headers. */
 #include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
+#include <unistd.h>
 
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
 #endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
 #endif
 
-#endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
 
+#include <stdlib.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
 /* The "const" storage-class-modifier is valid. */
 #define YY_USE_CONST
 
@@ -96,17 +53,34 @@
 
 #if __STDC__
 
+#define YY_USE_PROTOS
 #define YY_USE_CONST
 
 #endif	/* __STDC__ */
 #endif	/* ! __cplusplus */
 
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
 #ifdef YY_USE_CONST
 #define yyconst const
 #else
 #define yyconst
 #endif
 
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
@@ -121,88 +95,80 @@
  * but we do it the disgusting crufty way forced on us by the ()-less
  * definition of BEGIN.
  */
-#define BEGIN (yy_start) = 1 + 2 *
+#define BEGIN yy_start = 1 + 2 *
 
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
-#define YY_START (((yy_start) - 1) / 2)
+#define YY_START ((yy_start - 1) / 2)
 #define YYSTATE YY_START
 
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE Upgraderestart(Upgradein  )
+#define YY_NEW_FILE yyrestart( yyin )
 
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
 #define YY_BUF_SIZE (16384*64)
-#endif
 
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int Upgradeleng;
 
-extern FILE *Upgradein, *Upgradeout;
+extern int yyleng;
+extern FILE *yyin, *yyout;
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-     *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE Upgradelex. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-Upgradelineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < Upgradeleng; ++yyl )\
-                    if ( Upgradetext[yyl] == '\n' )\
-                        --Upgradelineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator).  This
+ * avoids problems with code like:
+ *
+ * 	if ( condition_holds )
+ *		yyless( 5 );
+ *	else
+ *		do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
 #define yyless(n) \
 	do \
 		{ \
-		/* Undo effects of setting up Upgradetext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
+		/* Undo effects of setting up yytext. */ \
+		*yy_cp = yy_hold_char; \
 		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up Upgradetext again */ \
+		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 		} \
 	while ( 0 )
 
-#define unput(c) yyunput( c, (yytext_ptr)  )
+#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).
  */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
 typedef unsigned int yy_size_t;
-#endif
 
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
+
 struct yy_buffer_state
 	{
 	FILE *yy_input_file;
@@ -239,16 +205,12 @@
 	 */
 	int yy_at_bol;
 
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
 	int yy_fill_buffer;
 
 	int yy_buffer_status;
-
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
 	/* When an EOF's been seen but there's still some text to process
@@ -258,209 +220,207 @@
 	 * possible backing-up.
 	 *
 	 * When we actually see the EOF, we change the status to "new"
-	 * (via Upgraderestart()), so that the user can continue scanning by
-	 * just pointing Upgradein at a new input file.
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
 	 */
 #define YY_BUFFER_EOF_PENDING 2
-
 	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+static YY_BUFFER_STATE yy_current_buffer = 0;
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
- *
- * Returns the top of the stack, or NULL.
  */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
+#define YY_CURRENT_BUFFER yy_current_buffer
 
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
-/* yy_hold_char holds the character lost when Upgradetext is formed. */
+/* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
+
 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-int Upgradeleng;
+
+
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
+static int yy_init = 1;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
-/* Flag which is used to allow Upgradewrap()'s to do buffer switches
- * instead of setting up a fresh Upgradein.  A bit of a hack ...
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void Upgraderestart (FILE *input_file  );
-void Upgrade_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE Upgrade_create_buffer (FILE *file,int size  );
-void Upgrade_delete_buffer (YY_BUFFER_STATE b  );
-void Upgrade_flush_buffer (YY_BUFFER_STATE b  );
-void Upgradepush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void Upgradepop_buffer_state (void );
-
-static void Upgradeensure_buffer_stack (void );
-static void Upgrade_load_buffer_state (void );
-static void Upgrade_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER Upgrade_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE Upgrade_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE Upgrade_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE Upgrade_scan_bytes (yyconst char *bytes,int len  );
-
-void *Upgradealloc (yy_size_t  );
-void *Upgraderealloc (void *,yy_size_t  );
-void Upgradefree (void *  );
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+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 )) YY_MAY_BE_UNUSED;
+static void yy_flex_free YY_PROTO(( void * ));
 
-#define yy_new_buffer Upgrade_create_buffer
+#define yy_new_buffer yy_create_buffer
 
 #define yy_set_interactive(is_interactive) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        Upgradeensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            Upgrade_create_buffer(Upgradein,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_is_interactive = is_interactive; \
 	}
 
 #define yy_set_bol(at_bol) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        Upgradeensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            Upgrade_create_buffer(Upgradein,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_at_bol = at_bol; \
 	}
 
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
-/* Begin user sect3 */
 
-#define Upgradewrap(n) 1
-#define YY_SKIP_YYWRAP
+#define YY_USES_REJECT
 
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
 typedef unsigned char YY_CHAR;
-
-FILE *Upgradein = (FILE *) 0, *Upgradeout = (FILE *) 0;
-
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
-
-extern int Upgradelineno;
-
-int Upgradelineno = 1;
-
-extern char *Upgradetext;
-#define yytext_ptr Upgradetext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+extern int yylineno;
+int yylineno = 1;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up Upgradetext.
+ * corresponding action - sets up yytext.
  */
 #define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	Upgradeleng = (size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
+	yytext_ptr = yy_bp; \
+	yyleng = (int) (yy_cp - yy_bp); \
+	yy_hold_char = *yy_cp; \
 	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
+	yy_c_buf_p = yy_cp;
 
 #define YY_NUM_RULES 156
 #define YY_END_OF_BUFFER 157
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[610] =
+static yyconst short int yy_acclist[234] =
     {   0,
-        0,    0,  157,  155,  154,  154,  155,  155,  155,  155,
-      155,  155,  147,  147,    1,  155,  155,  155,  155,  155,
-      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
-      155,  155,  155,  155,  155,  155,    0,  146,    0,  144,
-      143,  143,  150,    0,  148,    0,  152,  147,    0,    1,
-        0,    0,    0,    0,    0,    0,    0,    0,  129,    0,
-       41,    0,    0,    0,    0,    0,    0,    0,    0,   85,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
-        0,    0,    0,    0,    0,    0,    0,   75,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   23,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  146,  143,  143,  152,   20,  152,    0,
-      153,   63,    0,    0,   74,    0,    0,   39,    0,   34,
-        0,    0,    0,    0,   42,    0,    0,    0,    0,    0,
-        0,   66,    0,    0,    3,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       65,   25,    0,   95,  100,   98,   99,   97,   96,    0,
-
-      101,  105,    0,    0,   70,  128,    0,    0,    0,    0,
-        0,    0,    0,   90,   88,  121,    0,  122,    0,    0,
-        0,   89,   87,    0,    0,   64,    0,    0,    0,    0,
-        0,    0,    0,    0,  103,   94,   92,    0,    0,   93,
-        0,   91,    0,  104,    0,  102,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   76,    0,    0,
-      145,  152,    0,    0,    0,  152,    0,    0,    0,  124,
-        0,    0,   57,  106,  107,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       84,   69,    0,    0,    0,    0,  136,   73,    0,    0,
-
-       83,    0,    0,    0,    0,    0,    0,    0,    0,  137,
-       54,  123,    0,    0,   22,    0,    0,    0,  149,    0,
-       68,    0,    0,    0,    0,    0,    0,  110,    0,    0,
-        0,    0,   72,    0,    0,   26,    0,    0,    4,    0,
-       61,    0,   67,   53,    0,    0,    0,    0,    0,    0,
-       71,    0,    0,    0,    0,   56,    0,   11,    0,    0,
-      109,  152,   36,    0,    0,    2,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        5,    0,   58,  112,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   60,    0,    0,    0,    0,    0,
-
-        0,    0,   48,    0,    0,   78,   82,   80,   81,   79,
-       77,   50,    0,    0,    0,  138,    0,    0,    0,  108,
-       49,    0,   55,   21,    0,    0,    0,    0,    0,  126,
-        0,    0,    0,    0,    0,  135,    0,    0,   45,    0,
-        0,    0,    0,    0,    0,    0,   59,   30,   24,    0,
-        0,   44,  114,  113,    0,    0,    7,    0,    0,    0,
-        0,  131,    0,   33,  134,   38,   62,    0,    0,    0,
-      120,    0,    0,  116,  130,   27,   28,  115,    0,    0,
-      132,   51,  127,  125,    0,    0,    0,    0,    0,  119,
-        0,   43,    0,    6,   29,    0,    0,    0,    0,    0,
-
-      111,    0,    0,    0,    0,    0,    0,    0,    0,   37,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    8,
-        0,    0,    0,    0,   17,    0,    0,    0,    0,    9,
-      118,   10,    0,  117,    0,    0,    0,    0,   35,    0,
-        0,    0,   12,    0,   14,   13,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
-        0,    0,    0,    0,    0,    0,    0,   40,    0,    0,
-        0,    0,    0,   15,    0,    0,    0,    0,   31,    0,
-        0,  133,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  139,    0,  141,  142,   16,
+      157,  155,  156,  154,  155,  156,  154,  156,  155,  156,
+      155,  156,  155,  156,  155,  156,  155,  156,  155,  156,
+      147,  155,  156,  147,  155,  156,    1,  155,  156,  155,
+      156,  155,  156,  155,  156,  155,  156,  155,  156,  155,
+      156,  155,  156,  155,  156,  155,  156,  155,  156,  155,
+      156,  155,  156,  155,  156,  155,  156,  155,  156,  155,
+      156,  155,  156,  155,  156,  155,  156,  155,  156,  155,
+      156,  146,  144,  143,  143,  150,  148,  152,  147,    1,
+      129,   41,   89,   90,   75,   23,  146,  143,  143,  151,
+      152,   20,  152,  153,   63,   74,   39,   34,   42,   66,
+
+        3,   52,   65,   25,   99,  104,  102,  103,  101,  100,
+      105,  109,   70,  128,   94,   92,   83,   84,   93,   91,
+       64,  107,   98,   96,   97,   95,  108,  106,   76,  145,
+      152,  152,   86,   57,  110,  111,   88,   69,  136,   73,
+       87,  137,   54,   85,   22,  149,   68,  114,   72,   26,
+        4,   61,   67,   53,   71,   56,   11,  113,  152,   36,
+        2,    5,   58,  116,   60,   48,   78,   82,   80,   81,
+       79,   77,   50,  138,  112,   49,   55,   21,  126,  135,
+       45,   59,   30,   24,   44,  118,  117,    7,  131,   33,
+      134,   38,   62,  124,  120,  130,   27,   28,  119,  132,
+
+       51,  127,  125,  123,   43,    6,   29,  115,   37,    8,
+       17,    9,  122,   10,  121,   35,   12,   14,   13,   32,
+       40,   15,   31,  133,  139,  141,  142,   16,   46,  140,
+       18,   47,   19
+    } ;
 
-        0,   46,    0,  140,   18,   47,    0,   19,    0
+static yyconst short int yy_accept[611] =
+    {   0,
+        1,    1,    1,    2,    4,    7,    9,   11,   13,   15,
+       17,   19,   21,   24,   27,   30,   32,   34,   36,   38,
+       40,   42,   44,   46,   48,   50,   52,   54,   56,   58,
+       60,   62,   64,   66,   68,   70,   72,   72,   73,   73,
+       74,   75,   76,   77,   77,   78,   78,   79,   80,   80,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   82,
+       82,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       85,   85,   85,   85,   85,   85,   85,   85,   86,   86,
+
+       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
+       86,   86,   86,   86,   86,   86,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   88,   89,   91,   92,   93,   94,
+       94,   95,   96,   96,   96,   97,   97,   97,   98,   98,
+       99,   99,   99,   99,   99,  100,  100,  100,  100,  100,
+      100,  100,  101,  101,  101,  102,  102,  102,  102,  102,
+      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+      102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  104,  105,  105,  106,  107,  108,  109,  110,  111,
+
+      111,  112,  113,  113,  113,  114,  115,  115,  115,  115,
+      115,  115,  115,  115,  116,  117,  118,  118,  119,  119,
+      119,  119,  120,  121,  121,  121,  122,  122,  122,  122,
+      122,  122,  122,  122,  122,  123,  124,  125,  125,  125,
+      126,  126,  127,  127,  128,  128,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  130,  130,
+      130,  131,  132,  132,  132,  132,  133,  133,  133,  133,
+      134,  134,  134,  135,  136,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  138,  139,  139,  139,  139,  139,  140,  141,  141,
+
+      141,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      143,  144,  145,  145,  145,  146,  146,  146,  146,  147,
+      147,  148,  148,  148,  148,  148,  148,  148,  149,  149,
+      149,  149,  149,  150,  150,  150,  151,  151,  151,  152,
+      152,  153,  153,  154,  155,  155,  155,  155,  155,  155,
+      155,  156,  156,  156,  156,  156,  157,  157,  158,  158,
+      158,  159,  160,  161,  161,  161,  162,  162,  162,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  163,  163,  164,  165,  165,  165,  165,  165,  165,
+      165,  165,  165,  165,  165,  166,  166,  166,  166,  166,
+
+      166,  166,  166,  167,  167,  167,  168,  169,  170,  171,
+      172,  173,  174,  174,  174,  174,  175,  175,  175,  175,
+      176,  177,  177,  178,  179,  179,  179,  179,  179,  179,
+      180,  180,  180,  180,  180,  180,  181,  181,  181,  182,
+      182,  182,  182,  182,  182,  182,  182,  183,  184,  185,
+      185,  185,  186,  187,  188,  188,  188,  189,  189,  189,
+      189,  189,  190,  190,  191,  192,  193,  194,  194,  194,
+      194,  195,  195,  195,  196,  197,  198,  199,  200,  200,
+      200,  201,  202,  203,  204,  204,  204,  204,  204,  204,
+      205,  205,  206,  206,  207,  208,  208,  208,  208,  208,
+
+      208,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
+      211,  211,  211,  211,  211,  212,  212,  212,  212,  212,
+      213,  214,  215,  215,  216,  216,  216,  216,  216,  217,
+      217,  217,  217,  218,  218,  219,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      221,  221,  221,  221,  221,  221,  221,  221,  222,  222,
+      222,  222,  222,  222,  223,  223,  223,  223,  223,  224,
+      224,  224,  225,  225,  225,  225,  225,  225,  225,  225,
+      225,  225,  225,  225,  225,  225,  226,  226,  227,  228,
+
+      229,  229,  230,  230,  231,  232,  233,  233,  234,  234
     } ;
 
-static yyconst flex_int32_t yy_ec[256] =
+static yyconst int yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -492,7 +452,7 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[44] =
+static yyconst int yy_meta[44] =
     {   0,
         1,    1,    2,    1,    3,    1,    1,    3,    3,    3,
         3,    3,    3,    4,    1,    3,    3,    3,    3,    3,
@@ -501,7 +461,7 @@
         3,    3,    3
     } ;
 
-static yyconst flex_int16_t yy_base[615] =
+static yyconst short int yy_base[615] =
     {   0,
         0,    0, 1308, 1309, 1309, 1309, 1303, 1292,   36,   40,
        44,   50,   56,   62,    0,   63,   66,   81,   89,   47,
@@ -573,7 +533,7 @@
      1179,  143, 1183,   57
     } ;
 
-static yyconst flex_int16_t yy_def[615] =
+static yyconst short int yy_def[615] =
     {   0,
       609,    1,  609,  609,  609,  609,  610,  611,  612,  609,
       611,  611,  611,  611,  613,  611,  611,  611,  611,  611,
@@ -645,7 +605,7 @@
       609,  609,  609,  609
     } ;
 
-static yyconst flex_int16_t yy_nxt[1353] =
+static yyconst short int yy_nxt[1353] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   14,   14,    4,   15,    8,    8,    8,   16,   17,
@@ -798,7 +758,7 @@
       609,  609
     } ;
 
-static yyconst flex_int16_t yy_chk[1353] =
+static yyconst short int yy_chk[1353] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -951,33 +911,22 @@
       609,  609
     } ;
 
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[157] =
-    {   0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int Upgrade_flex_debug;
-int Upgrade_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
+static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
+static char *yy_full_match;
+static int yy_lp;
+#define REJECT \
+{ \
+*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
+yy_cp = yy_full_match; /* restore poss. backed-over text */ \
+++yy_lp; \
+goto find_rule; \
+}
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *Upgradetext;
-#line 1 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+char *yytext;
+#line 1 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#define INITIAL 0
 /*===-- UpgradeLexer.l - Scanner for 1.9 assembly files --------*- C++ -*--===//
 //
 //                     The LLVM Compiler Infrastructure
@@ -990,7 +939,8 @@
 //  This file implements the flex scanner for LLVM 1.9 assembly languages files.
 //
 //===----------------------------------------------------------------------===*/
-#line 28 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#define YY_NEVER_INTERACTIVE 1
+#line 28 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 #include "UpgradeInternals.h"
 #include "llvm/Module.h"
 #include <list>
@@ -1126,23 +1076,7 @@
 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
  * it to deal with 64 bit numbers.
  */
-#line 1130 "UpgradeLexer.cpp"
-
-#define INITIAL 0
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
+#line 1080 "UpgradeLexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1150,30 +1084,65 @@
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int Upgradewrap (void );
+extern "C" int yywrap YY_PROTO(( void ));
 #else
-extern int Upgradewrap (void );
+extern int yywrap YY_PROTO(( void ));
 #endif
 #endif
 
-    static inline void yyunput (int c,char *buf_ptr  );
-    
+#ifndef YY_NO_UNPUT
+static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
 #endif
 
 #ifndef YY_NO_INPUT
-
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput YY_PROTO(( void ));
 #else
-static int input (void );
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
 #endif
 
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines.  This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
 #endif
 
 /* Amount of stuff to slurp up with each read. */
@@ -1182,11 +1151,12 @@
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
+
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( Upgradetext, Upgradeleng, 1, Upgradeout )
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1194,35 +1164,21 @@
  */
 #ifndef YY_INPUT
 #define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+	if ( yy_current_buffer->yy_is_interactive ) \
 		{ \
-		int c = '*'; \
-		size_t n; \
+		int c = '*', n; \
 		for ( n = 0; n < max_size && \
-			     (c = getc( Upgradein )) != EOF && c != '\n'; ++n ) \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
 		if ( c == '\n' ) \
 			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( Upgradein ) ) \
+		if ( c == EOF && ferror( yyin ) ) \
 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 		result = n; \
 		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, Upgradein))==0 && ferror(Upgradein)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(Upgradein); \
-			} \
-		}\
-\
-
+	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+		  && ferror( yyin ) ) \
+		YY_FATAL_ERROR( "input in flex scanner failed" );
 #endif
 
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -1243,20 +1199,14 @@
 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 #endif
 
-/* end tables serialization structures and prototypes */
-
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int Upgradelex (void);
-
-#define YY_DECL int Upgradelex (void)
-#endif /* !YY_DECL */
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
 
-/* Code executed at the beginning of each rule, after Upgradetext and Upgradeleng
+/* Code executed at the beginning of each rule, after yytext and yyleng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1271,67 +1221,60 @@
 #define YY_RULE_SETUP \
 	YY_USER_ACTION
 
-/** The main scanner function which does all the work.
- */
 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 189 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+
+#line 189 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 
 
-#line 1286 "UpgradeLexer.cpp"
+#line 1234 "UpgradeLexer.cpp"
 
-	if ( !(yy_init) )
+	if ( yy_init )
 		{
-		(yy_init) = 1;
+		yy_init = 0;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
 #endif
 
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
+		if ( ! yy_start )
+			yy_start = 1;	/* first start state */
 
-		if ( ! Upgradein )
-			Upgradein = stdin;
+		if ( ! yyin )
+			yyin = stdin;
 
-		if ( ! Upgradeout )
-			Upgradeout = stdout;
+		if ( ! yyout )
+			yyout = stdout;
 
-		if ( ! YY_CURRENT_BUFFER ) {
-			Upgradeensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				Upgrade_create_buffer(Upgradein,YY_BUF_SIZE );
-		}
+		if ( ! yy_current_buffer )
+			yy_current_buffer =
+				yy_create_buffer( yyin, YY_BUF_SIZE );
 
-		Upgrade_load_buffer_state( );
+		yy_load_buffer_state();
 		}
 
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
-		yy_cp = (yy_c_buf_p);
+		yy_cp = yy_c_buf_p;
 
-		/* Support of Upgradetext. */
-		*yy_cp = (yy_hold_char);
+		/* Support of yytext. */
+		*yy_cp = yy_hold_char;
 
 		/* yy_bp points to the position in yy_ch_buf of the start of
 		 * the current run.
 		 */
 		yy_bp = yy_cp;
 
-		yy_current_state = (yy_start);
+		yy_current_state = yy_start;
+		yy_state_ptr = yy_state_buf;
+		*yy_state_ptr++ = yy_current_state;
 yy_match:
 		do
 			{
 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
@@ -1339,802 +1282,807 @@
 					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 != 609 );
-		yy_cp = (yy_last_accepting_cpos);
-		yy_current_state = (yy_last_accepting_state);
 
 yy_find_action:
-		yy_act = yy_accept[yy_current_state];
+		yy_current_state = *--yy_state_ptr;
+		yy_lp = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+		for ( ; ; ) /* until we find what rule we matched */
+			{
+			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
+				{
+				yy_act = yy_acclist[yy_lp];
+					{
+					yy_full_match = yy_cp;
+					break;
+					}
+				}
+			--yy_cp;
+			yy_current_state = *--yy_state_ptr;
+			yy_lp = yy_accept[yy_current_state];
+			}
 
 		YY_DO_BEFORE_ACTION;
 
-		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+		if ( yy_act != YY_END_OF_BUFFER )
 			{
 			int yyl;
-			for ( yyl = 0; yyl < Upgradeleng; ++yyl )
-				if ( Upgradetext[yyl] == '\n' )
-					   
-    Upgradelineno++;
-;
+			for ( yyl = 0; yyl < yyleng; ++yyl )
+				if ( yytext[yyl] == '\n' )
+					++yylineno;
 			}
 
 do_action:	/* This label is used only to access EOF actions. */
 
+
 		switch ( yy_act )
 	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
 case 1:
 YY_RULE_SETUP
-#line 191 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 191 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { /* Ignore comments for now */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 193 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 193 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return BEGINTOK; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 194 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 194 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return ENDTOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 195 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 195 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TRUETOK;  }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 196 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 196 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return FALSETOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 197 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 197 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DECLARE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 198 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 198 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return GLOBAL; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 199 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 199 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return CONSTANT; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 200 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 200 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return INTERNAL; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 201 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 201 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return LINKONCE; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 202 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 202 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return WEAK; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 203 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 203 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return APPENDING; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 204 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 204 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DLLIMPORT; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 205 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 205 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DLLEXPORT; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 206 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return EXTERN_WEAK; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 207 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 207 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return EXTERNAL; }    /* Deprecated, turn into external */
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 208 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 208 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return EXTERNAL; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 209 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 209 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return IMPLEMENTATION; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 210 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 210 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return ZEROINITIALIZER; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 211 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 211 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DOTDOTDOT; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 212 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 212 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return UNDEF; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 213 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 213 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return NULL_TOK; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 214 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TO; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 215 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 215 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return EXCEPT; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 216 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 216 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return NOT; }  /* Deprecated, turned into XOR */
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 217 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 217 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TAIL; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 218 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 218 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TARGET; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 219 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 219 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TRIPLE; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 220 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 220 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DEPLIBS; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 221 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 221 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return ENDIAN; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 222 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 222 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return POINTERSIZE; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 223 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 223 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return DATALAYOUT; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 224 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 224 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return LITTLE; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 225 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 225 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return BIG; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 226 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 226 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return VOLATILE; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 227 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 227 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return ALIGN;  }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 228 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return SECTION; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 229 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 229 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return MODULE; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 230 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 230 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return ASM_TOK; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 231 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 231 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return SIDEEFFECT; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 233 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return CC_TOK; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 234 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 234 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return CCC_TOK; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 235 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 235 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return CSRETCC_TOK; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 236 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return FASTCC_TOK; }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 237 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 237 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return COLDCC_TOK; }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 238 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 238 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return X86_STDCALLCC_TOK; }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 239 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 239 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return X86_FASTCALLCC_TOK; }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 241 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 241 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(SBYTE,  Type::Int8Ty,  Signed);  }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 242 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 242 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(UBYTE,  Type::Int8Ty,  Unsigned); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 243 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 243 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(SHORT,  Type::Int16Ty, Signed);  }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 244 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 244 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(USHORT, Type::Int16Ty, Unsigned); }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 245 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 245 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(INT,    Type::Int32Ty, Signed);  }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 246 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 246 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(UINT,   Type::Int32Ty, Unsigned); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 247 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 247 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(LONG,   Type::Int64Ty, Signed);  }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 248 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 248 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(ULONG,  Type::Int64Ty, Unsigned); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 249 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 249 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(VOID,   Type::VoidTy,  Signless  ); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 250 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 250 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(BOOL,   Type::Int1Ty,  Unsigned  ); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 251 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(FLOAT,  Type::FloatTy, Signless ); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 252 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 252 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(DOUBLE, Type::DoubleTy,Signless); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 253 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 253 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TY(LABEL,  Type::LabelTy, Signless ); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 254 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 254 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return TYPE;   }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 255 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 255 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return OPAQUE; }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 257 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 257 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, AddOp, ADD); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 258 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 258 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SubOp, SUB); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 259 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 259 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, MulOp, MUL); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 260 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 260 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, DivOp,  DIV); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 261 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 261 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, UDivOp, UDIV); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 262 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 262 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SDivOp, SDIV); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 263 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 263 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, FDivOp, FDIV); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 264 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 264 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, RemOp,  REM); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 265 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 265 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, URemOp, UREM); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 266 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 266 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SRemOp, SREM); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 267 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 267 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, FRemOp, FREM); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 268 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 268 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, AndOp, AND); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 269 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, OrOp , OR ); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 270 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 270 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, XorOp, XOR); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 271 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 271 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetNE, SETNE); }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 272 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 272 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 273 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 273 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetLT, SETLT); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 274 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 274 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetGT, SETGT); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 275 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 275 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetLE, SETLE); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 276 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 276 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(BinaryOpVal, SetGE, SETGE); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 277 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, ICmpOp, ICMP); }
+#line 277 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, ShlOp, SHL); }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 278 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, FCmpOp, FCMP); }
+#line 278 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, ShrOp, SHR); }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 280 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return EQ; }
+#line 279 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, LShrOp, LSHR); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 281 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return NE; }
+#line 280 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, AShrOp, ASHR); }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 282 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return SLT; }
+#line 282 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, ICmpOp, ICMP); }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 283 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return SGT; }
+#line 283 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, FCmpOp, FCMP); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 284 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return SLE; }
+#line 285 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EQ; }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 285 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return SGE; }
+#line 286 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return NE; }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 286 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return ULT; }
+#line 287 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SLT; }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 287 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return UGT; }
+#line 288 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SGT; }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 288 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return ULE; }
+#line 289 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SLE; }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 289 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return UGE; }
+#line 290 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SGE; }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 290 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return OEQ; }
+#line 291 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ULT; }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 291 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return ONE; }
+#line 292 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UGT; }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 292 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return OLT; }
+#line 293 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ULE; }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 293 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return OGT; }
+#line 294 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UGE; }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 294 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return OLE; }
+#line 295 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OEQ; }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 295 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return OGE; }
+#line 296 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ONE; }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 296 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return ORD; }
+#line 297 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OLT; }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 297 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return UNO; }
+#line 298 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OGT; }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 298 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return UEQ; }
+#line 299 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OLE; }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 299 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return UNE; }
+#line 300 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OGE; }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 301 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, PHIOp, PHI_TOK); }
+#line 301 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ORD; }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 302 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, CallOp, CALL); }
+#line 302 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNO; }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 303 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, CastOp, CAST);  }
+#line 303 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UEQ; }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 304 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, TruncOp, TRUNC); }
+#line 304 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNE; }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 305 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, ZExtOp , ZEXT); }
+#line 306 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, PHIOp, PHI_TOK); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 306 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, SExtOp, SEXT); }
+#line 307 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, CallOp, CALL); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 307 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, FPTruncOp, FPTRUNC); }
+#line 308 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, CastOp, CAST);  }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 308 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, FPExtOp, FPEXT); }
+#line 309 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, TruncOp, TRUNC); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 309 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, FPToUIOp, FPTOUI); }
+#line 310 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, ZExtOp , ZEXT); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 310 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, FPToSIOp, FPTOSI); }
+#line 311 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, SExtOp, SEXT); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 311 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, UIToFPOp, UITOFP); }
+#line 312 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPTruncOp, FPTRUNC); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 312 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, SIToFPOp, SITOFP); }
+#line 313 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPExtOp, FPEXT); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 313 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, PtrToIntOp, PTRTOINT); }
+#line 314 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPToUIOp, FPTOUI); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 314 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, IntToPtrOp, INTTOPTR); }
+#line 315 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPToSIOp, FPTOSI); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 315 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(CastOpVal, BitCastOp, BITCAST); }
+#line 316 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, UIToFPOp, UITOFP); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 316 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, SelectOp, SELECT); }
+#line 317 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, SIToFPOp, SITOFP); }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 317 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, ShlOp, SHL); }
+#line 318 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, PtrToIntOp, PTRTOINT); }
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 318 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, ShrOp, SHR); }
+#line 319 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, IntToPtrOp, INTTOPTR); }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 319 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, LShrOp, LSHR); }
+#line 320 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, BitCastOp, BITCAST); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 320 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OtherOpVal, AShrOp, ASHR); }
+#line 321 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, SelectOp, SELECT); }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 321 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 322 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return VANEXT_old; }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 322 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return VAARG_old; }
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 323 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 324 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(OtherOpVal, VAArg , VAARG); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 324 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 325 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(TermOpVal, RetOp, RET); }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 325 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 326 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(TermOpVal, BrOp, BR); }
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 326 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 327 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(TermOpVal, SwitchOp, SWITCH); }
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 327 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 328 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(TermOpVal, InvokeOp, INVOKE); }
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 328 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 329 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { return UNWIND; }
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 329 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 330 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(TermOpVal, UnreachableOp, UNREACHABLE); }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 331 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 332 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, MallocOp, MALLOC); }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 332 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 333 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, AllocaOp, ALLOCA); }
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 333 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 334 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, FreeOp, FREE); }
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 334 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 335 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, LoadOp, LOAD); }
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 335 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 336 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, StoreOp, STORE); }
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 336 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 337 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(MemOpVal, GetElementPtrOp, GETELEMENTPTR); }
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 338 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 339 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(OtherOpVal, ExtractElementOp, EXTRACTELEMENT); }
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 339 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 340 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(OtherOpVal, InsertElementOp, INSERTELEMENT); }
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 340 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 341 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { RET_TOK(OtherOpVal, ShuffleVectorOp, SHUFFLEVECTOR); }
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 343 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 344 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  UnEscapeLexed(Upgradetext+1);
-                  Upgradelval.StrVal = strdup(Upgradetext+1);             // Skip %
+                  UnEscapeLexed(yytext+1);
+                  Upgradelval.StrVal = strdup(yytext+1);             // Skip %
                   return VAR_ID;
                 }
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 348 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 349 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  Upgradetext[strlen(Upgradetext)-1] = 0;  // nuke colon
-                  UnEscapeLexed(Upgradetext);
-                  Upgradelval.StrVal = strdup(Upgradetext);
+                  yytext[strlen(yytext)-1] = 0;  // nuke colon
+                  UnEscapeLexed(yytext);
+                  Upgradelval.StrVal = strdup(yytext);
                   return LABELSTR;
                 }
 	YY_BREAK
 case 145:
-/* rule 145 can match eol */
 YY_RULE_SETUP
-#line 354 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 355 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  Upgradetext[strlen(Upgradetext)-2] = 0;  // nuke colon, end quote
-                  UnEscapeLexed(Upgradetext+1);
-                  Upgradelval.StrVal = strdup(Upgradetext+1);
+                  yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
+                  UnEscapeLexed(yytext+1);
+                  Upgradelval.StrVal = strdup(yytext+1);
                   return LABELSTR;
                 }
 	YY_BREAK
 case 146:
-/* rule 146 can match eol */
 YY_RULE_SETUP
-#line 361 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 362 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.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
                    // [sbyte] c"Hello World\00" constant, for example.
                    //
-                   Upgradetext[strlen(Upgradetext)-1] = 0;           // nuke end quote
-                   Upgradelval.StrVal = strdup(Upgradetext+1);  // Nuke start quote
+                   yytext[strlen(yytext)-1] = 0;           // nuke end quote
+                   Upgradelval.StrVal = strdup(yytext+1);  // Nuke start quote
                    return STRINGCONSTANT;
                  }
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 372 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ Upgradelval.UInt64Val = atoull(Upgradetext); return EUINT64VAL; }
+#line 373 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.UInt64Val = atoull(yytext); return EUINT64VAL; }
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 373 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 374 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  uint64_t Val = atoull(Upgradetext+1);
+                  uint64_t Val = atoull(yytext+1);
                   // +1:  we have bigger negative range
                   if (Val > (uint64_t)INT64_MAX+1)
                     error("Constant too large for signed 64 bits!");
@@ -2144,17 +2092,17 @@
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 381 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 382 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                   Upgradelval.UInt64Val = HexIntToVal(Upgradetext+3);
-                   return Upgradetext[0] == 's' ? ESINT64VAL : EUINT64VAL;
+                   Upgradelval.UInt64Val = HexIntToVal(yytext+3);
+                   return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
                  }
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 386 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 387 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  uint64_t Val = atoull(Upgradetext+1);
+                  uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
                     error("Invalid value number (too large)!");
                   Upgradelval.UIntVal = unsigned(Val);
@@ -2163,9 +2111,9 @@
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 393 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 394 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
-                  uint64_t Val = atoull(Upgradetext+2);
+                  uint64_t Val = atoull(yytext+2);
                   // +1:  we have bigger negative range
                   if (Val > (uint64_t)INT32_MAX+1)
                     error("Constant too large for signed 32 bits!");
@@ -2175,65 +2123,64 @@
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 402 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ Upgradelval.FPVal = atof(Upgradetext); return FPVAL; }
+#line 403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.FPVal = atof(yytext); return FPVAL; }
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 403 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ Upgradelval.FPVal = HexToFP(Upgradetext); return FPVAL; }
+#line 404 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.FPVal = HexToFP(yytext); return FPVAL; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 405 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 406 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
                    */
-                  Upgrade_delete_buffer(YY_CURRENT_BUFFER);
+                  yy_delete_buffer(YY_CURRENT_BUFFER);
                   return EOF;
                 }
 	YY_BREAK
 case 154:
-/* rule 154 can match eol */
 YY_RULE_SETUP
-#line 413 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 414 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 { /* Ignore whitespace */ }
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 414 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
-{ return Upgradetext[0]; }
+#line 415 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+{ return yytext[0]; }
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 416 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+#line 417 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 2213 "UpgradeLexer.cpp"
+#line 2160 "UpgradeLexer.cpp"
 
 	case YY_END_OF_BUFFER:
 		{
 		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
 
 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
+		*yy_cp = yy_hold_char;
 		YY_RESTORE_YY_MORE_OFFSET
 
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
 			{
 			/* We're scanning a new file or input source.  It's
 			 * possible that this happened because the user
-			 * just pointed Upgradein at a new source and called
-			 * Upgradelex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
 			 * globals.  Here is the right place to do so, because
 			 * this is the first action (other than possibly a
 			 * back-up) that will match for the new input source.
 			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = Upgradein;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
 		/* Note that here we test for yy_c_buf_p "<=" to the position
@@ -2243,13 +2190,13 @@
 		 * end-of-buffer state).  Contrast this with the test
 		 * in input().
 		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			{ /* This was really a NUL. */
 			yy_state_type yy_next_state;
 
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
 
-			yy_current_state = yy_get_previous_state(  );
+			yy_current_state = yy_get_previous_state();
 
 			/* Okay, we're now positioned to make the NUL
 			 * transition.  We couldn't have
@@ -2262,42 +2209,41 @@
 
 			yy_next_state = yy_try_NUL_trans( yy_current_state );
 
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
 
 			if ( yy_next_state )
 				{
 				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
+				yy_cp = ++yy_c_buf_p;
 				yy_current_state = yy_next_state;
 				goto yy_match;
 				}
 
 			else
 				{
-				yy_cp = (yy_last_accepting_cpos);
-				yy_current_state = (yy_last_accepting_state);
+				yy_cp = yy_c_buf_p;
 				goto yy_find_action;
 				}
 			}
 
-		else switch ( yy_get_next_buffer(  ) )
+		else switch ( yy_get_next_buffer() )
 			{
 			case EOB_ACT_END_OF_FILE:
 				{
-				(yy_did_buffer_switch_on_eof) = 0;
+				yy_did_buffer_switch_on_eof = 0;
 
-				if ( Upgradewrap( ) )
+				if ( yywrap() )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
-					 * Upgradetext, we can now set up
+					 * yytext, we can now set up
 					 * yy_c_buf_p so that if some total
 					 * hoser (like flex itself) wants to
 					 * call the scanner after we return the
 					 * YY_NULL, it'll still work - another
 					 * YY_NULL will get returned.
 					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
 
 					yy_act = YY_STATE_EOF(YY_START);
 					goto do_action;
@@ -2305,30 +2251,30 @@
 
 				else
 					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 					}
 				break;
 				}
 
 			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
 
-				yy_current_state = yy_get_previous_state(  );
+				yy_current_state = yy_get_previous_state();
 
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_match;
 
 			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
 
-				yy_current_state = yy_get_previous_state(  );
+				yy_current_state = yy_get_previous_state();
 
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_find_action;
 			}
 		break;
@@ -2339,7 +2285,8 @@
 			"fatal flex scanner internal error--no action found" );
 	} /* end of action switch */
 		} /* end of scanning one token */
-} /* end of Upgradelex */
+	} /* end of yylex */
+
 
 /* yy_get_next_buffer - try to read in a new buffer
  *
@@ -2348,20 +2295,21 @@
  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  *	EOB_ACT_END_OF_FILE - end of file
  */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
+
+static int yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
 	register int number_to_move, i;
 	int ret_val;
 
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
 		YY_FATAL_ERROR(
 		"fatal flex scanner internal error--end of buffer missed" );
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
 		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
 			{
 			/* We matched a single character, the EOB, so
 			 * treat this as a final EOF.
@@ -2381,30 +2329,34 @@
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 		/* don't do the read, it's not guaranteed to return an EOF,
 		 * just force an EOF
 		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
 
 	else
 		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
 
 			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+			YY_BUFFER_STATE b = yy_current_buffer;
 
 			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+				(int) (yy_c_buf_p - b->yy_ch_buf);
 
 			if ( b->yy_is_our_buffer )
 				{
@@ -2417,7 +2369,8 @@
 
 				b->yy_ch_buf = (char *)
 					/* Include room in for 2 EOB chars. */
-					Upgraderealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
 				}
 			else
 				/* Can't grow it, we don't own it. */
@@ -2427,35 +2380,35 @@
 				YY_FATAL_ERROR(
 				"fatal error - scanner input buffer overflow" );
 
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+			num_to_read = yy_current_buffer->yy_buf_size -
 						number_to_move - 1;
-
+#endif
 			}
 
 		if ( num_to_read > YY_READ_BUF_SIZE )
 			num_to_read = YY_READ_BUF_SIZE;
 
 		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
 
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	if ( (yy_n_chars) == 0 )
+	if ( yy_n_chars == 0 )
 		{
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			Upgraderestart(Upgradein  );
+			yyrestart( yyin );
 			}
 
 		else
 			{
 			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+			yy_current_buffer->yy_buffer_status =
 				YY_BUFFER_EOF_PENDING;
 			}
 		}
@@ -2463,32 +2416,30 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
 
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
 
 	return ret_val;
-}
+	}
+
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-    static yy_state_type yy_get_previous_state (void)
-{
+static yy_state_type yy_get_previous_state()
+	{
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
 
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+	yy_current_state = yy_start;
+	yy_state_ptr = yy_state_buf;
+	*yy_state_ptr++ = yy_current_state;
+
+	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 		{
 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
@@ -2496,27 +2447,29 @@
 				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;
 		}
 
 	return yy_current_state;
-}
+	}
+
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
  *
  * synopsis
  *	next_state = yy_try_NUL_trans( current_state );
  */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+	{
 	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
 
 	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
@@ -2525,79 +2478,87 @@
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 609);
+	if ( ! yy_is_jam )
+		*yy_state_ptr++ = yy_current_state;
 
 	return yy_is_jam ? 0 : yy_current_state;
-}
+	}
 
-    static inline void yyunput (int c, register char * yy_bp )
-{
-	register char *yy_cp;
-    
-    yy_cp = (yy_c_buf_p);
 
-	/* undo effects of setting up Upgradetext */
-	*yy_cp = (yy_hold_char);
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static inline void yyunput( int c, register char *yy_bp )
+#else
+static inline void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+	{
+	register char *yy_cp = yy_c_buf_p;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yy_hold_char;
 
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = (yy_n_chars) + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register int number_to_move = yy_n_chars + 2;
+		register char *dest = &yy_current_buffer->yy_ch_buf[
+					yy_current_buffer->yy_buf_size + 2];
 		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+				&yy_current_buffer->yy_ch_buf[number_to_move];
 
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+		while ( source > yy_current_buffer->yy_ch_buf )
 			*--dest = *--source;
 
 		yy_cp += (int) (dest - source);
 		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+		yy_current_buffer->yy_n_chars =
+			yy_n_chars = yy_current_buffer->yy_buf_size;
 
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
 		}
 
 	*--yy_cp = (char) c;
 
-    if ( c == '\n' ){
-        --Upgradelineno;
-    }
+	if ( c == '\n' )
+		--yylineno;
+
+	yytext_ptr = yy_bp;
+	yy_hold_char = *yy_cp;
+	yy_c_buf_p = yy_cp;
+	}
+#endif	/* ifndef YY_NO_UNPUT */
 
-	(yytext_ptr) = yy_bp;
-	(yy_hold_char) = *yy_cp;
-	(yy_c_buf_p) = yy_cp;
-}
 
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
-    static int yyinput (void)
+static int yyinput()
 #else
-    static int input  (void)
+static int input()
 #endif
-
-{
+	{
 	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
 
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
 		{
 		/* yy_c_buf_p now points to the character we want to return.
 		 * If this occurs *before* the EOB characters, then it's a
 		 * valid NUL; if not, then we've hit the end of the buffer.
 		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
+			*yy_c_buf_p = '\0';
 
 		else
 			{ /* need more input */
-			int offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
 
-			switch ( yy_get_next_buffer(  ) )
+			switch ( yy_get_next_buffer() )
 				{
 				case EOB_ACT_LAST_MATCH:
 					/* This happens because yy_g_n_b()
@@ -2611,16 +2572,16 @@
 					 */
 
 					/* Reset buffer status. */
-					Upgraderestart(Upgradein );
+					yyrestart( yyin );
 
-					/*FALLTHROUGH*/
+					/* fall through */
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( Upgradewrap( ) )
+					if ( yywrap() )
 						return EOF;
 
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 #ifdef __cplusplus
 					return yyinput();
@@ -2630,170 +2591,169 @@
 					}
 
 				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
+					yy_c_buf_p = yytext_ptr + offset;
 					break;
 				}
 			}
 		}
 
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve Upgradetext */
-	(yy_hold_char) = *++(yy_c_buf_p);
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
 
 	if ( c == '\n' )
-		   
-    Upgradelineno++;
-;
+		++yylineno;
 
 	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
+	}
+#endif /* YY_NO_INPUT */
 
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void Upgraderestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        Upgradeensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            Upgrade_create_buffer(Upgradein,YY_BUF_SIZE );
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+	{
+	if ( ! yy_current_buffer )
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+	yy_init_buffer( yy_current_buffer, input_file );
+	yy_load_buffer_state();
 	}
 
-	Upgrade_init_buffer(YY_CURRENT_BUFFER,input_file );
-	Upgrade_load_buffer_state( );
-}
 
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void Upgrade_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		Upgradepop_buffer_state();
-	 *		Upgradepush_buffer_state(new_buffer);
-     */
-	Upgradeensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+	{
+	if ( yy_current_buffer == new_buffer )
 		return;
 
-	if ( YY_CURRENT_BUFFER )
+	if ( yy_current_buffer )
 		{
 		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		*yy_c_buf_p = yy_hold_char;
+		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	Upgrade_load_buffer_state( );
+	yy_current_buffer = new_buffer;
+	yy_load_buffer_state();
 
 	/* We don't actually know whether we did this switch during
-	 * EOF (Upgradewrap()) processing, but the only time this flag
-	 * is looked at is after Upgradewrap() is called, so it's safe
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
 	 * to go ahead and always set it.
 	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
+	yy_did_buffer_switch_on_eof = 1;
+	}
 
-static void Upgrade_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	Upgradein = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
 
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE Upgrade_create_buffer  (FILE * file, int  size )
-{
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+	{
+	yy_n_chars = yy_current_buffer->yy_n_chars;
+	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+	yyin = yy_current_buffer->yy_input_file;
+	yy_hold_char = *yy_c_buf_p;
+	}
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) Upgradealloc(sizeof( struct yy_buffer_state )  );
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in Upgrade_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_buf_size = size;
 
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) Upgradealloc(b->yy_buf_size + 2  );
+	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
 	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in Upgrade_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	Upgrade_init_buffer(b,file );
+	yy_init_buffer( b, file );
 
 	return b;
-}
+	}
 
-/** Destroy the buffer.
- * @param b a buffer created with Upgrade_create_buffer()
- * 
- */
-    void Upgrade_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+	{
 	if ( ! b )
 		return;
 
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+	if ( b == yy_current_buffer )
+		yy_current_buffer = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		Upgradefree((void *) b->yy_ch_buf  );
+		yy_flex_free( (void *) b->yy_ch_buf );
 
-	Upgradefree((void *) b  );
-}
+	yy_flex_free( (void *) b );
+	}
 
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a Upgraderestart() or at EOF.
- */
-    static void Upgrade_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
-{
-	int oerrno = errno;
-    
-	Upgrade_flush_buffer(b );
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+	{
+	yy_flush_buffer( b );
 
 	b->yy_input_file = file;
 	b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then Upgrade_init_buffer was _probably_
-     * called from Upgraderestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
+#if YY_ALWAYS_INTERACTIVE
+	b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+	b->yy_is_interactive = 0;
+#else
+	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+	}
 
-        b->yy_is_interactive = 0;
-    
-	errno = oerrno;
-}
 
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void Upgrade_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+	{
+	if ( ! b )
 		return;
 
 	b->yy_n_chars = 0;
@@ -2810,123 +2770,31 @@
 	b->yy_at_bol = 1;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	if ( b == YY_CURRENT_BUFFER )
-		Upgrade_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void Upgradepush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	Upgradeensure_buffer_stack();
-
-	/* This block is copied from Upgrade_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from Upgrade_switch_to_buffer. */
-	Upgrade_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void Upgradepop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	Upgrade_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		Upgrade_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
+	if ( b == yy_current_buffer )
+		yy_load_buffer_state();
 	}
-}
 
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void Upgradeensure_buffer_stack (void)
-{
-	int num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)Upgradealloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)Upgraderealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
 
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE Upgrade_scan_buffer  (char * base, yy_size_t  size )
-{
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
+
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
 		return 0;
 
-	b = (YY_BUFFER_STATE) Upgradealloc(sizeof( struct yy_buffer_state )  );
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in Upgrade_scan_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
@@ -2938,53 +2806,58 @@
 	b->yy_fill_buffer = 0;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	Upgrade_switch_to_buffer(b  );
+	yy_switch_to_buffer( b );
 
 	return b;
-}
+	}
+#endif
 
-/** Setup the input buffer state to scan a string. The next call to Upgradelex() will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       Upgrade_scan_bytes() instead.
- */
-YY_BUFFER_STATE Upgrade_scan_string (yyconst char * yystr )
-{
-    
-	return Upgrade_scan_bytes(yystr,strlen(yystr) );
-}
 
-/** Setup the input buffer state to scan the given bytes. The next call to Upgradelex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE Upgrade_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
-{
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+	{
+	int len;
+	for ( len = 0; yy_str[len]; ++len )
+		;
+
+	return yy_scan_bytes( yy_str, len );
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+	{
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
 	int i;
-    
+
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) Upgradealloc(n  );
+	n = len + 2;
+	buf = (char *) yy_flex_alloc( n );
 	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in Upgrade_scan_bytes()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
+	for ( i = 0; i < len; ++i )
+		buf[i] = bytes[i];
 
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
 
-	b = Upgrade_scan_buffer(buf,n );
+	b = yy_scan_buffer( buf, n );
 	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in Upgrade_scan_bytes()" );
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
 	/* It's okay to grow etc. this buffer, and we should throw it
 	 * away when we're done.
@@ -2992,199 +2865,148 @@
 	b->yy_is_our_buffer = 1;
 
 	return b;
-}
+	}
+#endif
 
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
 #endif
+	{
+	if ( yy_start_stack_ptr >= yy_start_stack_depth )
+		{
+		yy_size_t new_size;
 
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
+		yy_start_stack_depth += YY_START_STACK_INCR;
+		new_size = yy_start_stack_depth * sizeof( int );
 
-/* Redefine yyless() so it works in section 3 code. */
+		if ( ! yy_start_stack )
+			yy_start_stack = (int *) yy_flex_alloc( new_size );
 
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up Upgradetext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		Upgradetext[Upgradeleng] = (yy_hold_char); \
-		(yy_c_buf_p) = Upgradetext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		Upgradeleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
+		else
+			yy_start_stack = (int *) yy_flex_realloc(
+					(void *) yy_start_stack, new_size );
 
-/* Accessor  methods (get/set functions) to struct members. */
+		if ( ! yy_start_stack )
+			YY_FATAL_ERROR(
+			"out of memory expanding start-condition stack" );
+		}
 
-/** Get the current line number.
- * 
- */
-int Upgradeget_lineno  (void)
-{
-        
-    return Upgradelineno;
-}
+	yy_start_stack[yy_start_stack_ptr++] = YY_START;
 
-/** Get the input stream.
- * 
- */
-FILE *Upgradeget_in  (void)
-{
-        return Upgradein;
-}
+	BEGIN(new_state);
+	}
+#endif
 
-/** Get the output stream.
- * 
- */
-FILE *Upgradeget_out  (void)
-{
-        return Upgradeout;
-}
 
-/** Get the length of the current token.
- * 
- */
-int Upgradeget_leng  (void)
-{
-        return Upgradeleng;
-}
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+	{
+	if ( --yy_start_stack_ptr < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
 
-/** Get the current token.
- * 
- */
+	BEGIN(yy_start_stack[yy_start_stack_ptr]);
+	}
+#endif
 
-char *Upgradeget_text  (void)
-{
-        return Upgradetext;
-}
 
-/** Set the current line number.
- * @param line_number
- * 
- */
-void Upgradeset_lineno (int  line_number )
-{
-    
-    Upgradelineno = line_number;
-}
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+	{
+	return yy_start_stack[yy_start_stack_ptr - 1];
+	}
+#endif
 
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see Upgrade_switch_to_buffer
- */
-void Upgradeset_in (FILE *  in_str )
-{
-        Upgradein = in_str ;
-}
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
 
-void Upgradeset_out (FILE *  out_str )
-{
-        Upgradeout = out_str ;
-}
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+	{
+	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+	}
 
-int Upgradeget_debug  (void)
-{
-        return Upgrade_flex_debug;
-}
 
-void Upgradeset_debug (int  bdebug )
-{
-        Upgrade_flex_debug = bdebug ;
-}
 
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from Upgradelex_destroy(), so don't allocate here.
-     */
-
-    /* We do not touch Upgradelineno unless the option is enabled. */
-    Upgradelineno =  1;
-    
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    Upgradein = stdin;
-    Upgradeout = stdout;
-#else
-    Upgradein = (FILE *) 0;
-    Upgradeout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * Upgradelex_init()
-     */
-    return 0;
-}
+/* Redefine yyless() so it works in section 3 code. */
 
-/* Upgradelex_destroy is for both reentrant and non-reentrant scanners. */
-int Upgradelex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		Upgrade_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		Upgradepop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	Upgradefree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * Upgradelex() is called, initialization will occur. */
-    yy_init_globals( );
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
+		} \
+	while ( 0 )
 
-    return 0;
-}
 
-/*
- * Internal utility routines.
- */
+/* Internal utility routines. */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
 	register int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
-}
+	}
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
 	register int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
-}
+	}
 #endif
 
-void *Upgradealloc (yy_size_t  size )
-{
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
 	return (void *) malloc( size );
-}
+	}
 
-void *Upgraderealloc  (void * ptr, yy_size_t  size )
-{
+#ifdef YY_USE_PROTOS
+static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static inline void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+	{
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -3193,16 +3015,24 @@
 	 * as though doing an assignment.
 	 */
 	return (void *) realloc( (char *) ptr, size );
-}
-
-void Upgradefree (void * ptr )
-{
-	free( (char *) ptr );	/* see Upgraderealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 416 "/home/asl/proj/llvm/src/tools/llvm-upgrade/UpgradeLexer.l"
+	}
 
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+	{
+	free( ptr );
+	}
 
+#if YY_MAIN
+int main()
+	{
+	yylex();
+	return 0;
+	}
+#endif
+#line 417 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
 


Index: llvm/tools/llvm-upgrade/UpgradeLexer.l
diff -u llvm/tools/llvm-upgrade/UpgradeLexer.l:1.17 llvm/tools/llvm-upgrade/UpgradeLexer.l:1.18
--- llvm/tools/llvm-upgrade/UpgradeLexer.l:1.17	Fri Jan 26 02:18:33 2007
+++ llvm/tools/llvm-upgrade/UpgradeLexer.l	Thu Feb  1 20:16:22 2007
@@ -274,6 +274,11 @@
 setgt           { RET_TOK(BinaryOpVal, SetGT, SETGT); }
 setle           { RET_TOK(BinaryOpVal, SetLE, SETLE); }
 setge           { RET_TOK(BinaryOpVal, SetGE, SETGE); }
+shl             { RET_TOK(BinaryOpVal, ShlOp, SHL); }
+shr             { RET_TOK(BinaryOpVal, ShrOp, SHR); }
+lshr            { RET_TOK(BinaryOpVal, LShrOp, LSHR); }
+ashr            { RET_TOK(BinaryOpVal, AShrOp, ASHR); }
+
 icmp            { RET_TOK(OtherOpVal, ICmpOp, ICMP); }
 fcmp            { RET_TOK(OtherOpVal, FCmpOp, FCMP); }
 
@@ -314,10 +319,6 @@
 inttoptr        { RET_TOK(CastOpVal, IntToPtrOp, INTTOPTR); }
 bitcast         { RET_TOK(CastOpVal, BitCastOp, BITCAST); }
 select          { RET_TOK(OtherOpVal, SelectOp, SELECT); }
-shl             { RET_TOK(OtherOpVal, ShlOp, SHL); }
-shr             { RET_TOK(OtherOpVal, ShrOp, SHR); }
-lshr            { RET_TOK(OtherOpVal, LShrOp, LSHR); }
-ashr            { RET_TOK(OtherOpVal, AShrOp, ASHR); }
 vanext          { return VANEXT_old; }
 vaarg           { return VAARG_old; }
 va_arg          { RET_TOK(OtherOpVal, VAArg , VAARG); }


Index: llvm/tools/llvm-upgrade/UpgradeLexer.l.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeLexer.l.cvs:1.17 llvm/tools/llvm-upgrade/UpgradeLexer.l.cvs:1.18
--- llvm/tools/llvm-upgrade/UpgradeLexer.l.cvs:1.17	Fri Jan 26 02:19:09 2007
+++ llvm/tools/llvm-upgrade/UpgradeLexer.l.cvs	Thu Feb  1 20:16:22 2007
@@ -274,6 +274,11 @@
 setgt           { RET_TOK(BinaryOpVal, SetGT, SETGT); }
 setle           { RET_TOK(BinaryOpVal, SetLE, SETLE); }
 setge           { RET_TOK(BinaryOpVal, SetGE, SETGE); }
+shl             { RET_TOK(BinaryOpVal, ShlOp, SHL); }
+shr             { RET_TOK(BinaryOpVal, ShrOp, SHR); }
+lshr            { RET_TOK(BinaryOpVal, LShrOp, LSHR); }
+ashr            { RET_TOK(BinaryOpVal, AShrOp, ASHR); }
+
 icmp            { RET_TOK(OtherOpVal, ICmpOp, ICMP); }
 fcmp            { RET_TOK(OtherOpVal, FCmpOp, FCMP); }
 
@@ -314,10 +319,6 @@
 inttoptr        { RET_TOK(CastOpVal, IntToPtrOp, INTTOPTR); }
 bitcast         { RET_TOK(CastOpVal, BitCastOp, BITCAST); }
 select          { RET_TOK(OtherOpVal, SelectOp, SELECT); }
-shl             { RET_TOK(OtherOpVal, ShlOp, SHL); }
-shr             { RET_TOK(OtherOpVal, ShrOp, SHR); }
-lshr            { RET_TOK(OtherOpVal, LShrOp, LSHR); }
-ashr            { RET_TOK(OtherOpVal, AShrOp, ASHR); }
 vanext          { return VANEXT_old; }
 vaarg           { return VAARG_old; }
 va_arg          { RET_TOK(OtherOpVal, VAArg , VAARG); }


Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.53 llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.54
--- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.53	Tue Jan 30 14:08:38 2007
+++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs	Thu Feb  1 20:16:22 2007
@@ -154,26 +154,26 @@
      AND = 345,
      OR = 346,
      XOR = 347,
-     SETLE = 348,
-     SETGE = 349,
-     SETLT = 350,
-     SETGT = 351,
-     SETEQ = 352,
-     SETNE = 353,
-     ICMP = 354,
-     FCMP = 355,
-     MALLOC = 356,
-     ALLOCA = 357,
-     FREE = 358,
-     LOAD = 359,
-     STORE = 360,
-     GETELEMENTPTR = 361,
-     PHI_TOK = 362,
-     SELECT = 363,
-     SHL = 364,
-     SHR = 365,
-     ASHR = 366,
-     LSHR = 367,
+     SHL = 348,
+     SHR = 349,
+     ASHR = 350,
+     LSHR = 351,
+     SETLE = 352,
+     SETGE = 353,
+     SETLT = 354,
+     SETGT = 355,
+     SETEQ = 356,
+     SETNE = 357,
+     ICMP = 358,
+     FCMP = 359,
+     MALLOC = 360,
+     ALLOCA = 361,
+     FREE = 362,
+     LOAD = 363,
+     STORE = 364,
+     GETELEMENTPTR = 365,
+     PHI_TOK = 366,
+     SELECT = 367,
      VAARG = 368,
      EXTRACTELEMENT = 369,
      INSERTELEMENT = 370,
@@ -306,26 +306,26 @@
 #define AND 345
 #define OR 346
 #define XOR 347
-#define SETLE 348
-#define SETGE 349
-#define SETLT 350
-#define SETGT 351
-#define SETEQ 352
-#define SETNE 353
-#define ICMP 354
-#define FCMP 355
-#define MALLOC 356
-#define ALLOCA 357
-#define FREE 358
-#define LOAD 359
-#define STORE 360
-#define GETELEMENTPTR 361
-#define PHI_TOK 362
-#define SELECT 363
-#define SHL 364
-#define SHR 365
-#define ASHR 366
-#define LSHR 367
+#define SHL 348
+#define SHR 349
+#define ASHR 350
+#define LSHR 351
+#define SETLE 352
+#define SETGE 353
+#define SETLT 354
+#define SETGT 355
+#define SETEQ 356
+#define SETNE 357
+#define ICMP 358
+#define FCMP 359
+#define MALLOC 360
+#define ALLOCA 361
+#define FREE 362
+#define LOAD 363
+#define STORE 364
+#define GETELEMENTPTR 365
+#define PHI_TOK 366
+#define SELECT 367
 #define VAARG 368
 #define EXTRACTELEMENT 369
 #define INSERTELEMENT 370
@@ -370,7 +370,7 @@
 
 
 /* Copy the first part of user declarations.  */
-#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 
 #include "UpgradeInternals.h"
 #include "llvm/CallingConv.h"
@@ -1368,6 +1368,13 @@
     case URemOp : return Instruction::URem;
     case SRemOp : return Instruction::SRem;
     case FRemOp : return Instruction::FRem;
+    case LShrOp : return Instruction::LShr;
+    case AShrOp : return Instruction::AShr;
+    case ShlOp  : return Instruction::Shl;
+    case ShrOp  : 
+      if (Sign == Signed)
+        return Instruction::AShr;
+      return Instruction::LShr;
     case AndOp  : return Instruction::And;
     case OrOp   : return Instruction::Or;
     case XorOp  : return Instruction::Xor;
@@ -1462,11 +1469,6 @@
     default               : assert(0 && "Invalid OldOtherOps");
     case PHIOp            : return Instruction::PHI;
     case CallOp           : return Instruction::Call;
-    case ShlOp            : return Instruction::Shl;
-    case ShrOp            : 
-      if (Sign == Signed)
-        return Instruction::AShr;
-      return Instruction::LShr;
     case SelectOp         : return Instruction::Select;
     case UserOp1          : return Instruction::UserOp1;
     case UserOp2          : return Instruction::UserOp2;
@@ -1476,8 +1478,6 @@
     case ShuffleVectorOp  : return Instruction::ShuffleVector;
     case ICmpOp           : return Instruction::ICmp;
     case FCmpOp           : return Instruction::FCmp;
-    case LShrOp           : return Instruction::LShr;
-    case AShrOp           : return Instruction::AShr;
   };
 }
 
@@ -1553,7 +1553,6 @@
       error("Invalid prototype for " + Name + " prototype");
     return new FCmpInst(FCmpInst::FCMP_UNO, Args[0], Args[1]);
   } else {
-    static unsigned upgradeCount = 1;
     const Type* PtrTy = PointerType::get(Type::Int8Ty);
     std::vector<const Type*> Params;
     if (Name == "llvm.va_start" || Name == "llvm.va_end") {
@@ -1563,9 +1562,7 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName("va_upgrade");
-      InstName += llvm::utostr(upgradeCount++);
-      Args[0] = new BitCastInst(Args[0], PtrTy, InstName, CurBB);
+      Args[0] = new BitCastInst(Args[0], PtrTy, makeNameUnique("va"), CurBB);
       return new CallInst(Func, Args);
     } else if (Name == "llvm.va_copy") {
       if (Args.size() != 2)
@@ -1575,10 +1572,8 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName0("va_upgrade");
-      InstName0 += llvm::utostr(upgradeCount++);
-      std::string InstName1("va_upgrade");
-      InstName1 += llvm::utostr(upgradeCount++);
+      std::string InstName0(makeNameUnique("va0"));
+      std::string InstName1(makeNameUnique("va1"));
       Args[0] = new BitCastInst(Args[0], PtrTy, InstName0, CurBB);
       Args[1] = new BitCastInst(Args[1], PtrTy, InstName1, CurBB);
       return new CallInst(Func, Args);
@@ -1623,7 +1618,7 @@
               cast<Constant>(Index), Type::Int64Ty);
           else
             Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
-              makeNameUnique("gep_upgrade"), CurBB);
+              makeNameUnique("gep"), CurBB);
           VIndices[i] = Index;
         }
     }
@@ -1816,7 +1811,7 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1440 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1435 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1859,7 +1854,7 @@
   llvm::Module::Endianness          Endianness;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1863 "UpgradeParser.tab.c"
+#line 1858 "UpgradeParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1871,7 +1866,7 @@
 
 
 /* Line 219 of yacc.c.  */
-#line 1875 "UpgradeParser.tab.c"
+#line 1870 "UpgradeParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -2022,7 +2017,7 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1712
+#define YYLAST   1736
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  166
@@ -2130,14 +2125,14 @@
      200,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
       -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,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,
+      -1,    89,    -1,    90,    -1,    91,    -1,    92,    -1,    97,
+      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
       -1,   119,    -1,   120,    -1,   121,    -1,   122,    -1,   123,
       -1,   124,    -1,   125,    -1,   126,    -1,   127,    -1,   128,
       -1,   129,    -1,   130,    -1,   131,    -1,   132,    -1,   133,
       -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,   138,
       -1,   125,    -1,   126,    -1,   127,    -1,   128,    -1,    27,
-      -1,    28,    -1,   109,    -1,   110,    -1,   111,    -1,   112,
+      -1,    28,    -1,    93,    -1,    94,    -1,    95,    -1,    96,
       -1,   140,    -1,   141,    -1,   142,    -1,   143,    -1,   144,
       -1,   145,    -1,   146,    -1,   147,    -1,   148,    -1,   149,
       -1,   150,    -1,   151,    -1,   139,    -1,    16,    -1,    14,
@@ -2166,11 +2161,11 @@
      191,    39,    -1,   191,   227,    -1,   191,   197,    -1,   191,
       26,    -1,   176,   168,    -1,   177,     4,    -1,     9,    27,
       -1,     9,    28,    -1,   179,     7,    -1,   175,   155,   196,
-      36,   191,   156,    -1,   106,   155,   196,   242,   156,    -1,
-     108,   155,   196,   153,   196,   153,   196,   156,    -1,   169,
+      36,   191,   156,    -1,   110,   155,   196,   242,   156,    -1,
+     112,   155,   196,   153,   196,   153,   196,   156,    -1,   169,
      155,   196,   153,   196,   156,    -1,   170,   155,   196,   153,
      196,   156,    -1,   171,   155,   196,   153,   196,   156,    -1,
-      99,   172,   155,   196,   153,   196,   156,    -1,   100,   173,
+     103,   172,   155,   196,   153,   196,   156,    -1,   104,   173,
      155,   196,   153,   196,   156,    -1,   174,   155,   196,   153,
      196,   156,    -1,   114,   155,   196,   153,   196,   156,    -1,
      115,   155,   196,   153,   196,   153,   196,   156,    -1,   116,
@@ -2211,55 +2206,55 @@
      238,   153,   229,    -1,   238,    -1,    -1,    60,    59,    -1,
       59,    -1,   169,   191,   228,   153,   228,    -1,   170,   191,
      228,   153,   228,    -1,   171,   191,   228,   153,   228,    -1,
-      99,   172,   191,   228,   153,   228,    -1,   100,   173,   191,
+     103,   172,   191,   228,   153,   228,    -1,   104,   173,   191,
      228,   153,   228,    -1,    49,   229,    -1,   174,   229,   153,
-     229,    -1,   175,   229,    36,   191,    -1,   108,   229,   153,
+     229,    -1,   175,   229,    36,   191,    -1,   112,   229,   153,
      229,   153,   229,    -1,   113,   229,   153,   191,    -1,   117,
      229,   153,   191,    -1,   118,   229,   153,   191,    -1,   114,
      229,   153,   229,    -1,   115,   229,   153,   229,   153,   229,
-      -1,   116,   229,   153,   229,   153,   229,    -1,   107,   237,
+      -1,   116,   229,   153,   229,   153,   229,    -1,   111,   237,
       -1,   240,   182,   189,   228,   155,   239,   156,    -1,   244,
-      -1,   153,   238,    -1,    -1,    35,    -1,    -1,   101,   191,
-     184,    -1,   101,   191,   153,    15,   228,   184,    -1,   102,
-     191,   184,    -1,   102,   191,   153,    15,   228,   184,    -1,
-     103,   229,    -1,   243,   104,   191,   228,    -1,   243,   105,
-     229,   153,   191,   228,    -1,   106,   191,   228,   242,    -1
+      -1,   153,   238,    -1,    -1,    35,    -1,    -1,   105,   191,
+     184,    -1,   105,   191,   153,    15,   228,   184,    -1,   106,
+     191,   184,    -1,   106,   191,   153,    15,   228,   184,    -1,
+     107,   229,    -1,   243,   108,   191,   228,    -1,   243,   109,
+     229,   153,   191,   228,    -1,   110,   191,   228,   242,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1580,  1580,  1581,  1589,  1590,  1600,  1600,  1600,  1600,
-    1600,  1600,  1600,  1600,  1600,  1600,  1600,  1604,  1604,  1604,
-    1608,  1608,  1608,  1608,  1608,  1608,  1612,  1612,  1613,  1613,
-    1614,  1614,  1615,  1615,  1616,  1616,  1620,  1620,  1621,  1621,
-    1622,  1622,  1623,  1623,  1624,  1624,  1625,  1625,  1626,  1626,
-    1627,  1628,  1631,  1631,  1631,  1631,  1635,  1635,  1635,  1635,
-    1635,  1635,  1635,  1636,  1636,  1636,  1636,  1636,  1636,  1642,
-    1642,  1642,  1642,  1646,  1646,  1646,  1646,  1650,  1650,  1654,
-    1654,  1659,  1662,  1667,  1668,  1669,  1670,  1671,  1672,  1673,
-    1674,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1695,
-    1696,  1704,  1705,  1713,  1722,  1723,  1730,  1731,  1735,  1739,
-    1755,  1756,  1763,  1764,  1771,  1779,  1779,  1779,  1779,  1779,
-    1779,  1779,  1780,  1780,  1780,  1780,  1780,  1785,  1789,  1793,
-    1798,  1807,  1828,  1834,  1847,  1856,  1860,  1871,  1875,  1888,
-    1892,  1899,  1900,  1906,  1913,  1925,  1955,  1968,  1991,  2019,
-    2041,  2052,  2074,  2085,  2094,  2099,  2157,  2164,  2172,  2179,
-    2186,  2190,  2194,  2203,  2218,  2231,  2240,  2268,  2281,  2290,
-    2296,  2302,  2311,  2317,  2323,  2334,  2335,  2344,  2345,  2357,
-    2366,  2367,  2368,  2369,  2370,  2386,  2406,  2408,  2410,  2410,
-    2417,  2417,  2424,  2424,  2431,  2431,  2439,  2441,  2443,  2448,
-    2462,  2463,  2467,  2470,  2478,  2482,  2489,  2493,  2497,  2501,
-    2509,  2509,  2513,  2514,  2518,  2526,  2531,  2539,  2540,  2547,
-    2554,  2558,  2673,  2673,  2677,  2687,  2687,  2691,  2695,  2697,
-    2698,  2702,  2702,  2714,  2715,  2720,  2721,  2722,  2723,  2724,
-    2725,  2726,  2727,  2728,  2749,  2752,  2767,  2768,  2773,  2773,
-    2781,  2790,  2793,  2802,  2812,  2817,  2826,  2837,  2837,  2840,
-    2843,  2846,  2850,  2856,  2871,  2877,  2933,  2936,  2942,  2952,
-    2965,  2994,  3002,  3010,  3014,  3021,  3022,  3026,  3029,  3035,
-    3052,  3068,  3082,  3094,  3106,  3117,  3126,  3135,  3144,  3151,
-    3172,  3196,  3202,  3208,  3214,  3230,  3308,  3316,  3317,  3321,
-    3322,  3326,  3332,  3338,  3344,  3350,  3357,  3369,  3383
+       0,  1575,  1575,  1576,  1584,  1585,  1595,  1595,  1595,  1595,
+    1595,  1595,  1595,  1595,  1595,  1595,  1595,  1599,  1599,  1599,
+    1603,  1603,  1603,  1603,  1603,  1603,  1607,  1607,  1608,  1608,
+    1609,  1609,  1610,  1610,  1611,  1611,  1615,  1615,  1616,  1616,
+    1617,  1617,  1618,  1618,  1619,  1619,  1620,  1620,  1621,  1621,
+    1622,  1623,  1626,  1626,  1626,  1626,  1630,  1630,  1630,  1630,
+    1630,  1630,  1630,  1631,  1631,  1631,  1631,  1631,  1631,  1637,
+    1637,  1637,  1637,  1641,  1641,  1641,  1641,  1645,  1645,  1649,
+    1649,  1654,  1657,  1662,  1663,  1664,  1665,  1666,  1667,  1668,
+    1669,  1673,  1674,  1675,  1676,  1677,  1678,  1679,  1680,  1690,
+    1691,  1699,  1700,  1708,  1717,  1718,  1725,  1726,  1730,  1734,
+    1750,  1751,  1758,  1759,  1766,  1774,  1774,  1774,  1774,  1774,
+    1774,  1774,  1775,  1775,  1775,  1775,  1775,  1780,  1784,  1788,
+    1793,  1802,  1823,  1829,  1842,  1851,  1855,  1866,  1870,  1883,
+    1887,  1894,  1895,  1901,  1908,  1920,  1950,  1963,  1986,  2014,
+    2036,  2047,  2069,  2080,  2089,  2094,  2152,  2159,  2167,  2174,
+    2181,  2185,  2189,  2198,  2213,  2226,  2235,  2263,  2276,  2285,
+    2291,  2297,  2308,  2314,  2320,  2331,  2332,  2341,  2342,  2354,
+    2363,  2364,  2365,  2366,  2367,  2383,  2403,  2405,  2407,  2407,
+    2414,  2414,  2421,  2421,  2428,  2428,  2436,  2438,  2440,  2445,
+    2459,  2460,  2464,  2467,  2475,  2479,  2486,  2490,  2494,  2498,
+    2506,  2506,  2510,  2511,  2515,  2523,  2528,  2536,  2537,  2544,
+    2551,  2555,  2670,  2670,  2674,  2684,  2684,  2688,  2692,  2694,
+    2695,  2699,  2699,  2711,  2712,  2717,  2718,  2719,  2720,  2721,
+    2722,  2723,  2724,  2725,  2746,  2749,  2764,  2765,  2770,  2770,
+    2778,  2787,  2790,  2799,  2809,  2814,  2823,  2834,  2834,  2837,
+    2840,  2843,  2847,  2853,  2868,  2874,  2930,  2933,  2939,  2949,
+    2962,  2991,  2999,  3007,  3011,  3018,  3019,  3023,  3026,  3032,
+    3049,  3065,  3079,  3091,  3103,  3114,  3132,  3141,  3150,  3157,
+    3178,  3202,  3208,  3214,  3220,  3236,  3314,  3322,  3323,  3327,
+    3328,  3332,  3338,  3344,  3350,  3356,  3363,  3375,  3389
 };
 #endif
 
@@ -2282,10 +2277,10 @@
   "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
   "RET", "BR", "SWITCH", "INVOKE", "UNREACHABLE", "UNWIND", "EXCEPT",
   "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM",
-  "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT",
-  "SETEQ", "SETNE", "ICMP", "FCMP", "MALLOC", "ALLOCA", "FREE", "LOAD",
-  "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR",
-  "LSHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
+  "SREM", "FREM", "AND", "OR", "XOR", "SHL", "SHR", "ASHR", "LSHR",
+  "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "ICMP", "FCMP",
+  "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK",
+  "SELECT", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
   "VAARG_old", "VANEXT_old", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT",
   "UGT", "ULE", "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD",
   "UNO", "UEQ", "UNE", "CAST", "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT",
@@ -2427,9 +2422,9 @@
        0,     0,   232,   130,     0,     0,     0,   113,   135,   139,
        0,     0,   144,   138,   299,     0,   278,     0,     0,     0,
        0,    91,   267,   257,   258,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
-       0,     0,     0,    52,    53,    54,    55,     0,     0,     0,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    52,
+      53,    54,    55,    20,    21,    22,    23,    24,    25,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    68,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,     0,     0,     0,     0,
        0,   266,   253,    91,   270,     0,   296,   204,   201,   200,
@@ -2491,83 +2486,83 @@
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -508
+#define YYPACT_NINF -541
 static const short int yypact[] =
 {
-    -508,    18,   144,   546,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,     2,   152,    47,  -508,  -508,   -15,
-    -508,  -508,   -30,   -75,    29,    69,   -10,  -508,    98,   104,
-     151,  -508,  -508,  -508,  -508,  -508,  -508,  1307,    -8,  -508,
-    -508,   149,  -508,  -508,  -508,  -508,    11,    20,    22,    24,
-    -508,    27,   104,  1307,     0,     0,     0,     0,  -508,  -508,
-    -508,   152,  -508,  -508,  -508,  -508,  -508,    37,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   194,   200,     3,   695,  -508,   149,    54,  -508,  -508,
-     -81,  -508,  -508,  -508,  -508,  -508,  1561,  -508,   186,   -19,
-     210,   188,   203,  -508,  -508,  -508,  -508,  -508,  1368,  1368,
-    1368,  1409,  -508,  -508,    66,    70,   715,  -508,  -508,   -81,
-     -85,    75,   781,  -508,  -508,  1368,  -508,   172,  1429,    58,
-     255,   152,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,   208,   394,  1368,  1368,  1368,
-    1368,  1368,  1368,  -508,  -508,  -508,  -508,  1368,  1368,  1368,
-    1368,  1368,  1368,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  1368,  1368,  1368,  1368,
-    1368,  -508,  -508,   152,  -508,    55,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,   -50,  -508,  -508,  -508,   153,   179,
-     228,   191,   229,   193,   230,   197,   231,   233,   234,   199,
-     232,   235,   537,  -508,  1368,  1368,    84,   -45,  1368,  -508,
-    1149,  -508,    93,    91,   898,  -508,  -508,    37,  -508,   898,
-     898,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   898,  1307,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  1368,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    1368,    95,    96,  -508,   898,    99,    97,   105,   106,   107,
-     120,   123,   126,   127,   898,   898,   898,   128,   221,  1307,
-    1368,  1368,   258,  -508,   132,   132,   132,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,   208,   394,   131,
-     134,   135,   136,   137,  1190,  1470,   736,   259,   139,   140,
-     141,   142,   148,  -508,  -508,   132,  -130,   -23,  -508,   143,
-     -81,  -508,   149,  -508,   155,   154,  1210,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,   224,  1409,  -508,  -508,
-    -508,  -508,   156,  -508,   163,   898,   898,   898,     4,  -508,
-       5,  -508,   164,   898,   162,  1368,  1368,  1368,  1368,  1368,
-    1368,  1368,   167,   168,   169,  1368,  1368,   898,   898,   170,
-    -508,   -17,  -508,  -508,  -508,   150,   182,  1409,  1409,  1409,
-    1409,  1409,  -508,  -508,   -13,   756,   -24,  -508,   -36,  -508,
-    1409,  1409,  1409,  1409,  1409,  -508,  -508,  -508,  -508,  -508,
-    -508,  1251,   290,  -508,  -508,   301,   -14,   324,   325,   198,
-     201,   202,   898,   348,   898,  1368,  -508,   204,   898,   205,
-    -508,  -508,   211,   214,  -508,  -508,   898,   898,   898,  -508,
-    -508,   213,  -508,  1368,   332,   365,  -508,   132,  1409,  1409,
-     164,   217,   222,   223,   225,  1409,  -508,   216,   -71,   -27,
-    -508,  -508,   226,   236,   237,   240,   338,  -508,  -508,  -508,
-     326,   241,  -508,   898,   898,  1368,   898,   898,   242,  -508,
-     242,  -508,   243,   898,   244,  1368,  1368,  1368,  -508,  -508,
-    -508,  1368,   898,  -508,  -508,  -508,   246,   247,   245,  1409,
-    1409,  1409,  1409,  -508,  -508,   220,  1409,  1409,  1409,  1409,
-    1368,   378,  -508,   361,   249,   248,   243,   250,  -508,  -508,
-     329,  -508,  -508,  1368,   256,   898,  -508,  -508,  -508,   251,
-    -508,  1409,  1409,  -508,   261,   252,   270,   271,  -508,   269,
-     272,   275,   279,   280,  -508,  -508,   367,    40,   368,  -508,
-    -508,   267,  -508,   281,   282,  1409,  -508,  1409,  1409,  -508,
-    -508,  -508,  -508,  -508,   898,  -508,   996,    85,   382,  -508,
-    -508,  -508,   283,   285,   288,  -508,   274,  -508,   996,   898,
-    -508,  -508,  -508,   424,   293,   130,   898,   426,   430,  -508,
-     898,   898,  -508,  -508
+    -541,    28,    61,   478,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,    23,   152,    45,  -541,  -541,    -9,
+    -541,  -541,   -20,   -51,    76,    69,    12,  -541,    97,   149,
+     172,  -541,  -541,  -541,  -541,  -541,  -541,  1331,   -19,  -541,
+    -541,   137,  -541,  -541,  -541,  -541,    49,    58,    60,    62,
+    -541,    72,   149,  1331,    88,    88,    88,    88,  -541,  -541,
+    -541,   152,  -541,  -541,  -541,  -541,  -541,    75,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   227,   228,     3,   691,  -541,   137,    79,  -541,  -541,
+     -46,  -541,  -541,  -541,  -541,  -541,  1585,  -541,   212,   136,
+     233,   214,   216,  -541,  -541,  -541,  -541,  -541,  1392,  1392,
+    1392,  1433,  -541,  -541,    83,    87,   711,  -541,  -541,   -46,
+     -70,    89,   777,  -541,  -541,  1392,  -541,   183,  1453,     6,
+     309,   152,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,    59,
+     142,  1392,  1392,  1392,  1392,  1392,  1392,  1392,  1392,  1392,
+    1392,  1392,  1392,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  1392,  1392,  1392,  1392,
+    1392,  -541,  -541,   152,  -541,    86,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -129,  -541,  -541,  -541,   169,   196,
+     242,   200,   246,   203,   252,   205,   253,   251,   258,   221,
+     255,   259,   533,  -541,  1392,  1392,    99,   -63,  1392,  -541,
+    1173,  -541,   128,   126,   894,  -541,  -541,    75,  -541,   894,
+     894,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   894,  1331,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  1392,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    1392,   130,   133,  -541,   894,   132,   138,   139,   143,   144,
+     151,   155,   156,   157,   894,   894,   894,   163,   254,  1331,
+    1392,  1392,   271,  -541,   164,   164,   164,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,    59,   142,   173,
+     174,   175,   176,   177,  1214,  1494,   732,   281,   178,   179,
+     180,   182,   190,  -541,  -541,   164,   -42,  -135,  -541,   166,
+     -46,  -541,   137,  -541,   193,   191,  1234,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,   290,  1433,  -541,  -541,
+    -541,  -541,   201,  -541,   202,   894,   894,   894,     7,  -541,
+      10,  -541,   204,   894,   199,  1392,  1392,  1392,  1392,  1392,
+    1392,  1392,   211,   215,   217,  1392,  1392,   894,   894,   223,
+    -541,   -21,  -541,  -541,  -541,   210,   219,  1433,  1433,  1433,
+    1433,  1433,  -541,  -541,     4,   752,   -91,  -541,    -8,  -541,
+    1433,  1433,  1433,  1433,  1433,  -541,  -541,  -541,  -541,  -541,
+    -541,  1275,   324,  -541,  -541,   343,    37,   348,   356,   224,
+     225,   229,   894,   376,   894,  1392,  -541,   230,   894,   232,
+    -541,  -541,   234,   235,  -541,  -541,   894,   894,   894,  -541,
+    -541,   226,  -541,  1392,   362,   385,  -541,   164,  1433,  1433,
+     204,   238,   239,   240,   241,  1433,  -541,   243,   -17,    -5,
+    -541,  -541,   247,   250,   261,   262,   359,  -541,  -541,  -541,
+     339,   268,  -541,   894,   894,  1392,   894,   894,   269,  -541,
+     269,  -541,   270,   894,   272,  1392,  1392,  1392,  -541,  -541,
+    -541,  1392,   894,  -541,  -541,  -541,   273,   274,   249,  1433,
+    1433,  1433,  1433,  -541,  -541,   245,  1433,  1433,  1433,  1433,
+    1392,   395,  -541,   383,   275,   267,   270,   279,  -541,  -541,
+     351,  -541,  -541,  1392,   277,   894,  -541,  -541,  -541,   282,
+    -541,  1433,  1433,  -541,   278,   283,   284,   288,  -541,   289,
+     291,   295,   296,   297,  -541,  -541,   423,    43,   410,  -541,
+    -541,   298,  -541,   300,   305,  1433,  -541,  1433,  1433,  -541,
+    -541,  -541,  -541,  -541,   894,  -541,  1020,    64,   441,  -541,
+    -541,  -541,   307,   311,   314,  -541,   312,  -541,  1020,   894,
+    -541,  -541,  -541,   450,   319,   150,   894,   452,   453,  -541,
+     894,   894,  -541,  -541
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -508,  -508,  -508,   356,   357,   360,   145,   147,   371,   374,
-    -128,  -127,  -497,  -508,   416,   436,  -117,  -508,  -277,    41,
-    -508,  -296,  -508,   -47,  -508,   -37,  -508,   -58,    46,  -508,
-     -99,   253,  -298,    49,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   419,  -508,  -508,  -508,  -508,     8,  -508,    51,  -508,
-    -508,   412,  -508,  -508,  -508,  -508,  -508,   471,  -508,  -508,
-    -507,  -209,    67,  -124,  -508,   457,  -508,  -118,  -508,  -508,
-    -508,  -508,    43,   -22,  -508,  -508,    21,  -508,  -508
+    -541,  -541,  -541,   379,   380,   381,   161,   162,   386,   388,
+    -128,  -127,  -540,  -541,   438,   456,  -111,  -541,  -277,    63,
+    -541,  -297,  -541,   -47,  -541,   -37,  -541,   -53,    40,  -541,
+     -99,   264,  -307,    84,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   435,  -541,  -541,  -541,  -541,     8,  -541,    68,  -541,
+    -541,   427,  -541,  -541,  -541,  -541,  -541,   487,  -541,  -541,
+    -489,  -199,    67,  -124,  -541,   472,  -541,  -103,  -541,  -541,
+    -541,  -541,    71,    -7,  -541,  -541,    33,  -541,  -541
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -2577,354 +2572,358 @@
 #define YYTABLE_NINF -180
 static const short int yytable[] =
 {
-      88,   235,   249,   250,   238,   371,   105,   115,    39,   393,
-     394,    26,   223,   334,   252,    42,    88,   454,     4,   432,
-     434,    93,    46,    47,    48,   360,   119,   406,   408,   416,
-     360,   360,   106,   107,   123,   283,   198,   199,   287,   415,
-     455,    49,   360,   288,   289,   290,   291,   292,   293,    26,
-     241,   242,   243,   244,   245,   246,   247,   248,   119,   426,
-     576,   433,   433,    29,   119,   297,   298,   239,   228,   586,
-      39,   205,   206,   207,  -112,   360,   299,    51,   229,   240,
-     588,   594,  -139,   123,  -112,   360,   360,   360,   234,    53,
-      52,   234,  -139,   123,   121,   241,   242,   243,   244,   245,
-     246,   247,   248,   302,   109,   110,   111,   469,   228,   303,
-       7,     8,     9,    10,    54,    12,    55,   465,   339,    56,
-     281,   282,   234,   284,   285,   234,   465,   471,    62,   465,
-     234,   234,   234,   234,   234,   234,   515,   470,   417,   465,
-     465,   123,    58,    59,  -179,    60,   466,   482,    43,   294,
-     295,   296,   234,   234,    94,    64,   360,   360,   360,   300,
-     301,   505,   227,    98,   360,   116,   336,   337,   232,     5,
-     340,    20,    99,    21,   100,     6,   101,   389,   360,   360,
-     307,   308,   -72,   -72,   102,     7,     8,     9,    10,    11,
-      12,    13,  -113,   342,   -71,   -71,   -70,   -70,   113,   575,
-     -69,   -69,   309,   310,   114,   365,    14,   133,   134,   122,
-     197,   531,   202,   532,   201,    88,    30,    31,    32,    33,
-      34,    35,    36,   360,   224,   360,   366,   203,   225,   360,
-     230,   236,   -76,   -75,   -74,   -73,   312,   360,   360,   360,
-     -79,   -80,   313,   367,   587,   338,   346,   347,   368,   370,
-     374,   439,   387,   441,   442,   443,   373,   386,   375,   376,
-     377,   449,    88,   388,   234,   241,   242,   243,   244,   245,
-     246,   247,   248,   378,   360,   360,   379,   360,   360,   380,
-     381,   385,   390,   409,   360,   391,   397,   424,   340,   398,
-     399,   400,   401,   360,   410,   411,   412,   413,   460,   461,
-     462,   463,   464,   414,   418,   458,   362,   363,   421,   427,
-     422,   472,   473,   474,   475,   476,   428,   435,   364,   438,
-     446,   447,   448,   453,   454,   481,   360,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   459,   234,   440,
-     234,   234,   234,   444,   445,   483,   484,   468,   234,   450,
-     419,   372,   489,   485,   486,   487,   503,   493,   495,   506,
-     507,   382,   383,   384,   496,   360,   513,   497,   501,   504,
-     509,   536,   537,   538,   520,   510,   511,   514,   512,   516,
-     360,   548,   554,   521,   342,   555,   433,   360,   574,   517,
-     518,   360,   360,   519,   523,   530,   533,   535,   234,   541,
-     542,   543,   556,   589,   578,   557,   558,   562,   566,   559,
-     544,   545,   546,   547,   565,   560,   502,   549,   550,   551,
-     552,   264,   265,   567,   568,   569,   579,   593,   570,   249,
-     250,   571,   429,   430,   431,   572,   573,   580,   581,   590,
-     437,   591,   563,   564,   592,   596,   597,   600,   234,   249,
-     250,   601,   186,   187,   451,   452,   188,    96,   234,   234,
-     234,    57,   395,   479,   234,   396,   582,   189,   583,   584,
-     190,   104,   478,   112,    27,   333,    45,   598,   492,   539,
-       0,   508,     0,   553,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   234,     0,     0,   488,
-       0,   490,     0,     0,     0,   494,     0,     0,     0,     0,
-       0,     0,     0,   498,   499,   500,     0,     0,     0,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    65,    66,     0,     0,     0,     0,     0,     0,
-     524,   525,     0,   528,   529,     0,     0,     0,     0,    20,
-     534,    21,     0,   314,     0,     0,   -82,     0,    20,   540,
-      21,     0,     0,     0,     0,   315,   316,     6,   -82,   -82,
-       0,     0,     0,     0,     0,     0,     0,   -82,   -82,   -82,
-     -82,   -82,   -82,   -82,     0,     0,   -82,    22,     0,     0,
-       0,     0,   561,     0,    23,     0,     0,     0,    24,     0,
-       0,     0,     0,     0,     0,     0,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   317,   318,     0,     0,
-       0,   585,     0,   319,     0,   320,   163,   164,   165,   166,
-       0,   321,   322,   323,     0,     0,   595,     0,     0,     0,
+      88,   235,   249,   250,   238,   371,   105,   115,   393,   394,
+      93,    26,   223,   454,    39,   239,    88,   576,   406,   408,
+     252,    42,   432,   334,   302,   434,   417,   240,     4,   123,
+     303,   119,    46,    47,    48,   360,   455,   588,   415,   283,
+     360,   360,   287,   288,   289,   290,   291,   292,   293,    26,
+     426,    49,   360,   241,   242,   243,   244,   245,   246,   247,
+     248,  -179,   465,   119,   433,   297,   298,   433,    39,   119,
+     470,   205,   206,   207,   241,   242,   243,   244,   245,   246,
+     247,   248,   299,   228,    29,   360,     5,   586,   234,    53,
+     228,   234,     6,   229,   121,   360,   360,   360,   469,   594,
+     339,    51,     7,     8,     9,    10,    11,    12,    13,  -112,
+       7,     8,     9,    10,    54,    12,    55,   416,   123,    56,
+     106,   107,   123,    14,   281,   282,   234,   284,   285,   234,
+     234,   234,   234,   234,   234,   234,  -139,    52,  -112,   109,
+     110,   111,    59,    94,    60,   465,  -139,   123,   465,   294,
+     295,   296,   234,   234,    43,   471,   227,   465,   515,    20,
+     505,    21,   232,   466,    58,   116,   360,   360,   360,   264,
+     265,   336,   337,    62,   360,   340,    64,   389,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   360,   360,
+     465,   198,   199,   342,   300,   301,   307,   308,   482,   -72,
+     -72,    98,   575,   -71,   -71,   365,   -70,   -70,   -69,   -69,
+      99,   531,   100,   532,   101,    88,    30,    31,    32,    33,
+      34,    35,    36,   587,   309,   310,   366,   133,   134,   102,
+    -113,   113,   114,   360,   122,   360,   197,   201,   202,   360,
+     203,   224,   236,   367,   230,   225,   -76,   360,   360,   360,
+     -75,   439,   387,   441,   442,   443,   -74,   -73,   -79,   312,
+     338,   449,    88,   388,   234,   -80,   313,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   346,   347,   368,   360,   360,   370,   360,   360,   373,
+     386,   374,   375,   340,   360,   390,   376,   377,   460,   461,
+     462,   463,   464,   360,   378,   409,   362,   363,   379,   380,
+     381,   472,   473,   474,   475,   476,   385,   391,   364,   241,
+     242,   243,   244,   245,   246,   247,   248,   418,   397,   398,
+     399,   400,   401,   410,   411,   412,   360,   413,   234,   440,
+     234,   234,   234,   444,   445,   414,   421,   422,   234,   450,
+     419,   372,   468,   424,   427,   428,   438,   435,   454,   506,
+     507,   382,   383,   384,   446,   458,   513,   481,   447,   483,
+     448,   536,   537,   538,   459,   360,   453,   484,   486,   485,
+     489,   501,   487,   493,   342,   495,   503,   496,   497,   504,
+     360,   509,   510,   511,   512,   520,   521,   360,   234,   554,
+     516,   360,   360,   517,   514,   543,   548,   555,   433,   559,
+     544,   545,   546,   547,   518,   519,   502,   549,   550,   551,
+     552,   523,   530,   533,   557,   535,   541,   542,   556,   249,
+     250,   565,   429,   430,   431,   558,   560,   567,   562,   566,
+     437,   568,   563,   564,   574,   569,   578,   570,   234,   249,
+     250,   571,   572,   573,   451,   452,   580,   579,   234,   234,
+     234,   581,   589,   590,   234,   593,   582,   591,   583,   584,
+     592,   596,   597,   600,   601,   186,   187,   188,   395,    96,
+     396,    57,   189,   553,   190,   479,   333,   104,   112,   478,
+      27,    45,   598,   508,   539,     0,   234,     0,   -82,   488,
+      20,   490,    21,     0,     0,   494,   492,     0,     0,     6,
+     -82,   -82,     0,   498,   499,   500,     0,     0,     0,   -82,
+     -82,   -82,   -82,   -82,   -82,   -82,     0,     0,   -82,    22,
+       0,     0,     0,     0,     0,     0,    23,     0,    65,    66,
+      24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     524,   525,     0,   528,   529,    20,     0,    21,     0,   314,
+     534,     0,     0,     0,     0,     0,     0,     0,     0,   540,
+       0,   315,   316,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   561,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   317,   318,     0,     0,
+       0,   585,     0,   319,     0,   320,     0,   321,   322,   323,
+       0,     0,     0,     0,     0,     0,   595,     0,     0,     0,
        0,     0,     0,   599,     0,     0,     0,   602,   603,     0,
-       0,     0,     0,     0,     0,     0,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,     0,
-       0,     0,     0,     0,   324,     0,     0,   325,     0,   326,
-      65,    66,   327,   117,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
-      65,    66,     0,   117,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
-       0,    65,    66,    80,   117,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,     0,    79,    20,     0,
-      21,    65,    66,    80,   117,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,     0,    79,    20,     0,
-      21,     0,     0,     0,    80,     0,    65,    66,     0,   117,
+       0,     0,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,     0,     0,     0,     0,
+     324,     0,     0,   325,     0,   326,    65,    66,   327,   117,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,     0,    79,    20,    80,    21,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   231,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
+      78,     0,    79,    20,     0,    21,    65,    66,     0,   117,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,     0,    79,    20,     0,    21,     0,    65,    66,    80,
+     117,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   218,     0,    79,    20,     0,    21,    65,    66,    80,
+     117,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   218,     0,    79,    20,     0,    21,     0,     0,     0,
+      80,     0,    65,    66,     0,   117,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,     0,    79,    20,
+      80,    21,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   231,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
-       0,     0,    82,     0,     0,    83,     0,    84,   118,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
-       0,     0,    82,     0,     0,    83,     0,    84,   226,     0,
+       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,   118,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,   226,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,   407,     0,   348,   349,    65,
+      66,   350,     0,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,   467,    20,     0,    21,     0,
+     351,   352,   353,     0,     0,     0,     0,     0,     0,     0,
+       0,    81,   354,   355,    82,     0,     0,    83,     0,    84,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      81,     0,     0,    82,     0,     0,    83,     0,    84,   407,
-       0,   348,   349,    65,    66,   350,     0,     0,     0,     0,
-      81,     0,     0,    82,     0,     0,    83,     0,    84,   467,
-      20,     0,    21,     0,   351,   352,   353,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   354,   355,    82,     0,
-       0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   356,
+       0,     0,     0,     0,     0,   356,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,   317,   318,   348,
-     349,     0,     0,   350,   319,     0,   320,   163,   164,   165,
-     166,     0,   321,   322,   323,     0,     0,     0,     0,     0,
-       0,     0,   351,   352,   353,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   354,   355,     0,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,     0,     0,     0,     0,     0,     0,   356,   357,     0,
+       0,     0,     0,   135,   136,   137,   138,   139,   140,   141,
+     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,   156,   157,   158,   317,   318,     0,
+       0,     0,     0,     0,   319,     0,   320,     0,   321,   322,
+     323,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   348,   349,     0,     0,   350,     0,     0,
+       0,     0,     0,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   351,   352,   353,     0,
+       0,     0,     0,     0,   357,     0,     0,     0,   354,   355,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   317,   318,     0,     0,     0,
-       0,     0,   319,     0,   320,   163,   164,   165,   166,     0,
-     321,   322,   323,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   173,   174,   175,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,     0,     0,
-       0,     0,     0,     0,    65,    66,   357,   117,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,     0,
-      79,    20,     0,    21,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   341,     0,     0,     0,
-       0,     0,     0,     0,     0,    65,    66,    80,   117,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-       0,    79,    20,     0,    21,    65,    66,     0,   117,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-       0,    79,    20,     0,    21,     0,     0,     0,    80,     0,
-       0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
-       0,     0,     0,     0,     0,     0,    65,    66,    80,   117,
+       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   317,   318,     0,     0,     0,     0,     0,
+     319,     0,   320,     0,   321,   322,   323,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   173,
+     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,     0,     0,     0,     0,     0,    65,    66,
+     357,   117,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,     0,    79,    20,     0,    21,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     341,     0,     0,     0,     0,     0,     0,     0,     0,    65,
+      66,    80,   117,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,     0,    79,    20,     0,    21,    65,
+      66,     0,   117,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,     0,    79,    20,     0,    21,     0,
+       0,     0,    80,     0,     0,     0,     0,     0,     0,     0,
+       0,   423,     0,     0,     0,     0,     0,     0,     0,     0,
+      65,    66,    80,   117,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   477,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    80,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,    65,    66,     0,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,     0,    79,    20,     0,    21,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   477,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,    65,    66,     0,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,     0,    79,    20,
-       0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    81,     0,     0,    82,     0,   402,
-      83,     0,    84,     0,     0,    80,     0,     0,     0,     0,
-       0,     0,     0,     0,    81,     0,     0,    82,     0,     0,
-      83,     0,    84,    65,    66,     0,   117,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,     0,    79,
-      20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
-       0,    83,     0,    84,    65,    66,    80,   117,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,     0,
-      79,    20,     0,    21,    65,    66,     0,   237,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,     0,
-      79,    20,     0,    21,     0,     0,     0,    80,     0,     0,
-       0,    81,     0,     0,    82,     0,     0,    83,     0,    84,
-       0,     0,     0,     0,     0,    65,    66,    80,   117,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-       0,    79,    20,     0,    21,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    80,     0,
-       0,     0,    81,     0,     0,    82,     0,     0,    83,     0,
-      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+       0,    82,     0,   402,    83,     0,    84,     0,     0,    80,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+       0,    82,     0,     0,    83,     0,    84,    65,    66,     0,
+     117,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,     0,    79,    20,     0,    21,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
+       0,     0,    82,     0,     0,    83,     0,    84,    65,    66,
+      80,   117,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,     0,    79,    20,     0,    21,    65,    66,
+       0,   237,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,     0,    79,    20,     0,    21,     0,     0,
+       0,    80,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,     0,     0,     0,     0,     0,    65,
+      66,    80,   117,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,     0,    79,    20,     0,    21,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,   124,     0,     0,     0,
+       0,     0,    80,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,     0,     0,     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,    81,     0,     0,    82,     0,     0,
-      83,     0,   405,   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,
-     155,   156,   157,   158,   159,     0,     0,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,     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,    81,     0,
+       0,    82,     0,     0,    83,     0,   405,   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,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,     0,     0,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185
+       0,     0,     0,     0,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185
 };
 
 static const short int yycheck[] =
 {
-      37,   125,   130,   130,   128,   282,    53,     4,    23,   305,
-     306,     3,   111,   222,   131,    30,    53,    34,     0,    15,
-      15,    29,    52,    53,    54,   234,    84,   325,   326,   159,
-     239,   240,    32,    33,   164,   159,    55,    56,   162,   335,
-      57,    71,   251,   167,   168,   169,   170,   171,   172,    41,
-      10,    11,    12,    13,    14,    15,    16,    17,   116,   357,
-     557,    57,    57,    61,   122,   189,   190,     9,   153,   576,
-      23,   108,   109,   110,   155,   284,   193,   152,   163,    21,
-     577,   588,   153,   164,   155,   294,   295,   296,   125,    20,
-      61,   128,   163,   164,    86,    10,    11,    12,    13,    14,
-      15,    16,    17,   153,    55,    56,    57,   405,   153,   159,
-      41,    42,    43,    44,    45,    46,    47,   153,   163,    50,
-     157,   158,   159,   160,   161,   162,   153,   163,    24,   153,
-     167,   168,   169,   170,   171,   172,   163,   161,   161,   153,
-     153,   164,   152,    45,     0,    47,   159,   161,   163,   186,
-     187,   188,   189,   190,   162,     4,   365,   366,   367,   104,
-     105,   457,   116,   152,   373,   162,   224,   225,   122,    25,
-     228,    22,   152,    24,   152,    31,   152,   301,   387,   388,
-      27,    28,     3,     4,   157,    41,    42,    43,    44,    45,
-      46,    47,   155,   230,     3,     4,     3,     4,     4,   159,
-       3,     4,     3,     4,     4,   252,    62,    77,    78,   155,
-      24,   488,    24,   490,     4,   252,    64,    65,    66,    67,
-      68,    69,    70,   432,   158,   434,   263,    24,   158,   438,
-     155,    59,     4,     4,     4,     4,     4,   446,   447,   448,
-       7,     7,     7,   280,   159,   161,   153,   156,   153,   153,
-     153,   375,   299,   377,   378,   379,   157,    36,   153,   153,
-     153,   385,   299,   300,   301,    10,    11,    12,    13,    14,
-      15,    16,    17,   153,   483,   484,   153,   486,   487,   153,
-     153,   153,    24,    24,   493,   153,   155,    63,   346,   155,
-     155,   155,   155,   502,   155,   155,   155,   155,   397,   398,
-     399,   400,   401,   155,   161,   155,   239,   240,   153,   153,
-     156,   410,   411,   412,   413,   414,   153,   153,   251,   157,
-     153,   153,   153,   153,    34,    24,   535,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   155,   375,   376,
-     377,   378,   379,   380,   381,    21,    21,   405,   385,   386,
-     342,   284,     4,   155,   153,   153,    24,   153,   153,   458,
-     459,   294,   295,   296,   153,   574,   465,   153,   155,     4,
-     153,   495,   496,   497,    36,   153,   153,   161,   153,   153,
-     589,   161,     4,    57,   421,    24,    57,   596,    21,   153,
-     153,   600,   601,   153,   153,   153,   153,   153,   435,   153,
-     153,   156,   153,    21,    36,   157,   156,   156,   156,   533,
-     509,   510,   511,   512,   153,   159,   453,   516,   517,   518,
-     519,    27,    28,   153,   153,   156,   159,   153,   156,   557,
-     557,   156,   365,   366,   367,   156,   156,   156,   156,   156,
-     373,   156,   541,   542,   156,    21,   153,    21,   485,   577,
-     577,    21,    96,    96,   387,   388,    96,    41,   495,   496,
-     497,    25,   317,   422,   501,   318,   565,    96,   567,   568,
-      96,    52,   421,    61,     3,   222,    19,   595,   435,   501,
-      -1,   460,    -1,   520,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   432,
-      -1,   434,    -1,    -1,    -1,   438,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   446,   447,   448,    -1,    -1,    -1,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,
-     483,   484,    -1,   486,   487,    -1,    -1,    -1,    -1,    22,
-     493,    24,    -1,    26,    -1,    -1,    20,    -1,    22,   502,
-      24,    -1,    -1,    -1,    -1,    38,    39,    31,    32,    33,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
-      44,    45,    46,    47,    -1,    -1,    50,    51,    -1,    -1,
-      -1,    -1,   535,    -1,    58,    -1,    -1,    -1,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,    -1,    -1,
-      -1,   574,    -1,   106,    -1,   108,   109,   110,   111,   112,
-      -1,   114,   115,   116,    -1,    -1,   589,    -1,    -1,    -1,
+      37,   125,   130,   130,   128,   282,    53,     4,   305,   306,
+      29,     3,   111,    34,    23,     9,    53,   557,   325,   326,
+     131,    30,    15,   222,   153,    15,   161,    21,     0,   164,
+     159,    84,    52,    53,    54,   234,    57,   577,   335,   163,
+     239,   240,   166,   167,   168,   169,   170,   171,   172,    41,
+     357,    71,   251,    10,    11,    12,    13,    14,    15,    16,
+      17,     0,   153,   116,    57,   189,   190,    57,    23,   122,
+     161,   108,   109,   110,    10,    11,    12,    13,    14,    15,
+      16,    17,   193,   153,    61,   284,    25,   576,   125,    20,
+     153,   128,    31,   163,    86,   294,   295,   296,   405,   588,
+     163,   152,    41,    42,    43,    44,    45,    46,    47,   155,
+      41,    42,    43,    44,    45,    46,    47,   159,   164,    50,
+      32,    33,   164,    62,   161,   162,   163,   164,   165,   166,
+     167,   168,   169,   170,   171,   172,   153,    61,   155,    55,
+      56,    57,    45,   162,    47,   153,   163,   164,   153,   186,
+     187,   188,   189,   190,   163,   163,   116,   153,   163,    22,
+     457,    24,   122,   159,   152,   162,   365,   366,   367,    27,
+      28,   224,   225,    24,   373,   228,     4,   301,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   387,   388,
+     153,    55,    56,   230,   108,   109,    27,    28,   161,     3,
+       4,   152,   159,     3,     4,   252,     3,     4,     3,     4,
+     152,   488,   152,   490,   152,   252,    64,    65,    66,    67,
+      68,    69,    70,   159,     3,     4,   263,    77,    78,   157,
+     155,     4,     4,   432,   155,   434,    24,     4,    24,   438,
+      24,   158,    59,   280,   155,   158,     4,   446,   447,   448,
+       4,   375,   299,   377,   378,   379,     4,     4,     7,     4,
+     161,   385,   299,   300,   301,     7,     7,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   153,   156,   153,   483,   484,   153,   486,   487,   157,
+      36,   153,   153,   346,   493,    24,   153,   153,   397,   398,
+     399,   400,   401,   502,   153,    24,   239,   240,   153,   153,
+     153,   410,   411,   412,   413,   414,   153,   153,   251,    10,
+      11,    12,    13,    14,    15,    16,    17,   161,   155,   155,
+     155,   155,   155,   155,   155,   155,   535,   155,   375,   376,
+     377,   378,   379,   380,   381,   155,   153,   156,   385,   386,
+     342,   284,   405,    63,   153,   153,   157,   153,    34,   458,
+     459,   294,   295,   296,   153,   155,   465,    24,   153,    21,
+     153,   495,   496,   497,   155,   574,   153,    21,   153,   155,
+       4,   155,   153,   153,   421,   153,    24,   153,   153,     4,
+     589,   153,   153,   153,   153,    36,    57,   596,   435,     4,
+     153,   600,   601,   153,   161,   156,   161,    24,    57,   533,
+     509,   510,   511,   512,   153,   153,   453,   516,   517,   518,
+     519,   153,   153,   153,   157,   153,   153,   153,   153,   557,
+     557,   153,   365,   366,   367,   156,   159,   153,   156,   156,
+     373,   153,   541,   542,    21,   156,    36,   156,   485,   577,
+     577,   156,   156,   156,   387,   388,   156,   159,   495,   496,
+     497,   156,    21,   156,   501,   153,   565,   156,   567,   568,
+     156,    21,   153,    21,    21,    96,    96,    96,   317,    41,
+     318,    25,    96,   520,    96,   422,   222,    52,    61,   421,
+       3,    19,   595,   460,   501,    -1,   533,    -1,    20,   432,
+      22,   434,    24,    -1,    -1,   438,   435,    -1,    -1,    31,
+      32,    33,    -1,   446,   447,   448,    -1,    -1,    -1,    41,
+      42,    43,    44,    45,    46,    47,    -1,    -1,    50,    51,
+      -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,     5,     6,
+      62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     483,   484,    -1,   486,   487,    22,    -1,    24,    -1,    26,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   502,
+      -1,    38,    39,    -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,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    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,    -1,    -1,
+      -1,   574,    -1,   110,    -1,   112,    -1,   114,   115,   116,
+      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,
       -1,    -1,    -1,   596,    -1,    -1,    -1,   600,   601,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,    -1,
-      -1,    -1,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,
-       5,     6,   165,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    -1,    21,    22,    -1,    24,
-       5,     6,    -1,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    -1,    21,    22,    -1,    24,
-      -1,     5,     6,    48,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    -1,    21,    22,    -1,
-      24,     5,     6,    48,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    -1,    21,    22,    -1,
-      24,    -1,    -1,    -1,    48,    -1,     5,     6,    -1,     8,
+      -1,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,    -1,    -1,    -1,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,     5,     6,   165,     8,
        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    -1,    21,    22,    48,    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,
+      19,    -1,    21,    22,    -1,    24,     5,     6,    -1,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    -1,    21,    22,    -1,    24,    -1,     5,     6,    48,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,     5,     6,    48,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,
+      48,    -1,     5,     6,    -1,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    -1,    21,    22,
+      48,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
-      -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
-      -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,    -1,
+      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,   163,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,   163,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,   163,    -1,     3,     4,     5,
+       6,     7,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,   163,    22,    -1,    24,    -1,
+      26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   154,    38,    39,   157,    -1,    -1,   160,    -1,   162,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,
-      -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
-     154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,
-      22,    -1,    24,    -1,    26,    27,    28,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   154,    38,    39,   157,    -1,
-      -1,   160,    -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,
+      -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,     3,
-       4,    -1,    -1,     7,   106,    -1,   108,   109,   110,   111,
-     112,    -1,   114,   115,   116,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    38,    39,    -1,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,   160,    -1,
+      -1,    -1,    -1,    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,    -1,
+      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,   114,   115,
+     116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,    -1,
+      -1,    -1,    -1,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,    26,    27,    28,    -1,
+      -1,    -1,    -1,    -1,   160,    -1,    -1,    -1,    38,    39,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,    -1,    -1,    -1,
-      -1,    -1,   106,    -1,   108,   109,   110,   111,   112,    -1,
-     114,   115,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,   160,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      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,
-      -1,    21,    22,    -1,    24,     5,     6,    -1,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    21,    22,    -1,    24,    -1,    -1,    -1,    48,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,    48,     8,
+      -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    -1,    -1,    -1,    -1,
+     110,    -1,   112,    -1,   114,   115,   116,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
+     160,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    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,    -1,    21,    22,    -1,    24,     5,
+       6,    -1,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    -1,    21,    22,    -1,    24,    -1,
+      -1,    -1,    48,    -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,    -1,    21,    22,    -1,    24,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    48,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,     5,     6,    -1,     8,
        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
       19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,     5,     6,    -1,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    -1,    21,    22,
-      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,   159,
-     160,    -1,   162,    -1,    -1,    48,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,
-     160,    -1,   162,     5,     6,    -1,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    -1,    21,
-      22,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
-      -1,   160,    -1,   162,     5,     6,    48,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      21,    22,    -1,    24,     5,     6,    -1,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      21,    22,    -1,    24,    -1,    -1,    -1,    48,    -1,    -1,
-      -1,   154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,
-      -1,    -1,    -1,    -1,    -1,     5,     6,    48,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
-      -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,    -1,
-     162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+      -1,   157,    -1,   159,   160,    -1,   162,    -1,    -1,    48,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+      -1,   157,    -1,    -1,   160,    -1,   162,     5,     6,    -1,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
+      -1,    -1,   157,    -1,    -1,   160,    -1,   162,     5,     6,
+      48,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    21,    22,    -1,    24,     5,     6,
+      -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,
+      -1,    48,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,    -1,    -1,    -1,    -1,    -1,     5,
+       6,    48,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    -1,    21,    22,    -1,    24,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      -1,    -1,    48,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,    -1,    -1,    -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,   154,    -1,    -1,   157,    -1,    -1,
-     160,    -1,   162,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,    -1,    -1,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,    -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,   154,    -1,
+      -1,   157,    -1,    -1,   160,    -1,   162,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,    -1,    -1,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151
+      -1,    -1,    -1,    -1,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2947,7 +2946,7 @@
       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     104,   105,   106,   107,   110,   111,   112,   113,   114,   115,
      116,   117,   118,   139,   140,   141,   142,   143,   144,   145,
      146,   147,   148,   149,   150,   151,   169,   170,   171,   174,
      175,   233,   234,   240,   241,   243,   244,    24,    55,    56,
@@ -2961,9 +2960,9 @@
      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      173,   191,   191,   229,   191,   191,   237,   229,   229,   229,
      229,   229,   229,   229,   191,   191,   191,   229,   229,   182,
-     104,   105,   153,   159,   205,   206,   204,    27,    28,     3,
-       4,   168,     4,     7,    26,    38,    39,    99,   100,   106,
-     108,   114,   115,   116,   157,   160,   162,   165,   169,   170,
+     108,   109,   153,   159,   205,   206,   204,    27,    28,     3,
+       4,   168,     4,     7,    26,    38,    39,   103,   104,   110,
+     112,   114,   115,   116,   157,   160,   162,   165,   169,   170,
      171,   174,   175,   197,   227,   203,   193,   193,   161,   163,
      193,    37,   191,   214,   215,   216,   153,   156,     3,     4,
        7,    26,    27,    28,    38,    39,    61,   160,   197,   226,
@@ -3661,7 +3660,7 @@
   switch (yyn)
     {
         case 3:
-#line 1581 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1576 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3670,7 +3669,7 @@
     break;
 
   case 5:
-#line 1590 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1585 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3679,226 +3678,226 @@
     break;
 
   case 26:
-#line 1612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1607 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 27:
-#line 1612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1607 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 28:
-#line 1613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1608 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 29:
-#line 1613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1608 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 30:
-#line 1614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 31:
-#line 1614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 32:
-#line 1615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1610 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 33:
-#line 1615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1610 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 34:
-#line 1616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 35:
-#line 1616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 36:
-#line 1620 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 37:
-#line 1620 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 38:
-#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1616 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 39:
-#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1616 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 40:
-#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 41:
-#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 42:
-#line 1623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1618 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 43:
-#line 1623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1618 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 44:
-#line 1624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 45:
-#line 1624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 46:
-#line 1625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1620 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 47:
-#line 1625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1620 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 48:
-#line 1626 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1621 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 49:
-#line 1626 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1621 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 50:
-#line 1627 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1622 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 51:
-#line 1628 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1623 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 81:
-#line 1659 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1654 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
   ;}
     break;
 
   case 82:
-#line 1662 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1657 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = 0;
   ;}
     break;
 
   case 83:
-#line 1667 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1662 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 84:
-#line 1668 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1663 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 85:
-#line 1669 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1664 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 86:
-#line 1670 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 87:
-#line 1671 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1666 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 88:
-#line 1672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1667 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 89:
-#line 1673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1668 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 90:
-#line 1674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1669 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 91:
-#line 1678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1673 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 92:
-#line 1679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 93:
-#line 1680 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1675 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::CSRet; ;}
     break;
 
   case 94:
-#line 1681 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1676 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::Fast; ;}
     break;
 
   case 95:
-#line 1682 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1677 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::Cold; ;}
     break;
 
   case 96:
-#line 1683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::X86_StdCall; ;}
     break;
 
   case 97:
-#line 1684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1679 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::X86_FastCall; ;}
     break;
 
   case 98:
-#line 1685 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1680 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
       error("Calling conv too large");
@@ -3907,12 +3906,12 @@
     break;
 
   case 99:
-#line 1695 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1690 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 100:
-#line 1696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1691 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3921,12 +3920,12 @@
     break;
 
   case 101:
-#line 1704 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 102:
-#line 1705 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1700 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3935,7 +3934,7 @@
     break;
 
   case 103:
-#line 1713 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1708 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
       if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -3945,27 +3944,27 @@
     break;
 
   case 104:
-#line 1722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 105:
-#line 1723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1718 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
   case 106:
-#line 1730 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 107:
-#line 1731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1726 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 108:
-#line 1735 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1730 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3973,7 +3972,7 @@
     break;
 
   case 109:
-#line 1739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1734 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       error("Alignment must be a power of two");
@@ -3983,7 +3982,7 @@
     break;
 
   case 111:
-#line 1756 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1751 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S = Signless;
@@ -3991,7 +3990,7 @@
     break;
 
   case 113:
-#line 1764 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1759 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S = Signless;
@@ -3999,7 +3998,7 @@
     break;
 
   case 114:
-#line 1771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1766 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!UpRefs.empty())
       error("Invalid upreference in type: " + (*(yyvsp[0].TypeVal).T)->getDescription());
@@ -4008,7 +4007,7 @@
     break;
 
   case 127:
-#line 1785 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1780 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T);
     (yyval.TypeVal).S = (yyvsp[0].PrimType).S;
@@ -4016,7 +4015,7 @@
     break;
 
   case 128:
-#line 1789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1784 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeVal).T = new PATypeHolder(OpaqueType::get());
     (yyval.TypeVal).S = Signless;
@@ -4024,7 +4023,7 @@
     break;
 
   case 129:
-#line 1793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1788 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getType((yyvsp[0].ValIDVal));
     (yyval.TypeVal).T = new PATypeHolder(tmp);
@@ -4033,7 +4032,7 @@
     break;
 
   case 130:
-#line 1798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1793 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) 
       error("Value out of range");
@@ -4046,7 +4045,7 @@
     break;
 
   case 131:
-#line 1807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1802 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {           // Function derived type?
     std::vector<const Type*> Params;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -4071,7 +4070,7 @@
     break;
 
   case 132:
-#line 1828 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1823 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {          // Sized array type?
     (yyval.TypeVal).T = new PATypeHolder(HandleUpRefs(ArrayType::get((yyvsp[-1].TypeVal).T->get(), 
                                                         (unsigned)(yyvsp[-3].UInt64Val))));
@@ -4081,7 +4080,7 @@
     break;
 
   case 133:
-#line 1834 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1829 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {          // Packed array type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).T->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -4098,7 +4097,7 @@
     break;
 
   case 134:
-#line 1847 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1842 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -4111,7 +4110,7 @@
     break;
 
   case 135:
-#line 1856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1851 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     (yyval.TypeVal).S = Signless;
@@ -4119,7 +4118,7 @@
     break;
 
   case 136:
-#line 1860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1855 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                // Packed Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -4134,7 +4133,7 @@
     break;
 
   case 137:
-#line 1871 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1866 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                          // Empty packed structure type?
     (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>(),true));
     (yyval.TypeVal).S = Signless;
@@ -4142,7 +4141,7 @@
     break;
 
   case 138:
-#line 1875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1870 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                             // Pointer type?
     if ((yyvsp[-1].TypeVal).T->get() == Type::LabelTy)
       error("Cannot form a pointer to a basic block");
@@ -4153,7 +4152,7 @@
     break;
 
   case 139:
-#line 1888 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1883 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); 
@@ -4161,14 +4160,14 @@
     break;
 
   case 140:
-#line 1892 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1887 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal));
   ;}
     break;
 
   case 142:
-#line 1900 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1895 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     PATypeInfo VoidTI;
     VoidTI.T = new PATypeHolder(Type::VoidTy);
@@ -4178,7 +4177,7 @@
     break;
 
   case 143:
-#line 1906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1901 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     PATypeInfo VoidTI;
@@ -4189,14 +4188,14 @@
     break;
 
   case 144:
-#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1908 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
   ;}
     break;
 
   case 145:
-#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1920 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal).T->get());
     if (ATy == 0)
@@ -4230,7 +4229,7 @@
     break;
 
   case 146:
-#line 1955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1950 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get());
     if (ATy == 0)
@@ -4247,7 +4246,7 @@
     break;
 
   case 147:
-#line 1968 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1963 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get());
     if (ATy == 0)
@@ -4274,7 +4273,7 @@
     break;
 
   case 148:
-#line 1991 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1986 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal).T->get());
     if (PTy == 0)
@@ -4306,7 +4305,7 @@
     break;
 
   case 149:
-#line 2019 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2014 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal).T->get());
     if (STy == 0)
@@ -4332,7 +4331,7 @@
     break;
 
   case 150:
-#line 2041 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2036 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal).T->get());
     if (STy == 0)
@@ -4347,7 +4346,7 @@
     break;
 
   case 151:
-#line 2052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2047 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal).T->get());
     if (STy == 0)
@@ -4373,7 +4372,7 @@
     break;
 
   case 152:
-#line 2074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2069 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-4].TypeVal).T->get());
     if (STy == 0)
@@ -4388,7 +4387,7 @@
     break;
 
   case 153:
-#line 2085 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2080 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (PTy == 0)
@@ -4401,7 +4400,7 @@
     break;
 
   case 154:
-#line 2094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2089 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVal).C = UndefValue::get((yyvsp[-1].TypeVal).T->get());
     (yyval.ConstVal).S = (yyvsp[-1].TypeVal).S;
@@ -4410,7 +4409,7 @@
     break;
 
   case 155:
-#line 2099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2094 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (Ty == 0)
@@ -4472,7 +4471,7 @@
     break;
 
   case 156:
-#line 2157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).T->get() != (yyvsp[0].ConstVal).C->getType())
       error("Mismatched types for constant expression");
@@ -4483,7 +4482,7 @@
     break;
 
   case 157:
-#line 2164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2159 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
@@ -4495,7 +4494,7 @@
     break;
 
   case 158:
-#line 2172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2167 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {      // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].SInt64Val)))
@@ -4506,7 +4505,7 @@
     break;
 
   case 159:
-#line 2179 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2174 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {            // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].UInt64Val)))
@@ -4517,7 +4516,7 @@
     break;
 
   case 160:
-#line 2186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2181 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                      // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, true);
     (yyval.ConstVal).S = Unsigned;
@@ -4525,7 +4524,7 @@
     break;
 
   case 161:
-#line 2190 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2185 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                     // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, false);
     (yyval.ConstVal).S = Unsigned;
@@ -4533,7 +4532,7 @@
     break;
 
   case 162:
-#line 2194 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2189 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType).T, (yyvsp[0].FPVal)))
       error("Floating point constant invalid for type");
@@ -4543,7 +4542,7 @@
     break;
 
   case 163:
-#line 2203 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2198 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* SrcTy = (yyvsp[-3].ConstVal).C->getType();
     const Type* DstTy = (yyvsp[-1].TypeVal).T->get();
@@ -4562,7 +4561,7 @@
     break;
 
   case 164:
-#line 2218 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2213 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-2].ConstVal).C->getType();
     if (!isa<PointerType>(Ty))
@@ -4579,7 +4578,7 @@
     break;
 
   case 165:
-#line 2231 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2226 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-5].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-5].ConstVal).C->getType())->getBitWidth() != 1)
@@ -4592,7 +4591,7 @@
     break;
 
   case 166:
-#line 2240 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2235 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4624,7 +4623,7 @@
     break;
 
   case 167:
-#line 2268 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2263 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4641,7 +4640,7 @@
     break;
 
   case 168:
-#line 2281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2276 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4654,7 +4653,7 @@
     break;
 
   case 169:
-#line 2290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2285 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("icmp operand types must match");
@@ -4664,7 +4663,7 @@
     break;
 
   case 170:
-#line 2296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2291 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("fcmp operand types must match");
@@ -4674,20 +4673,22 @@
     break;
 
   case 171:
-#line 2302 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2297 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-1].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-1].ConstVal).C->getType())->getBitWidth() != 8)
       error("Shift count for shift constant must be unsigned byte");
+    const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (!(yyvsp[-3].ConstVal).C->getType()->isInteger())
       error("Shift constant expression requires integer operand");
-    (yyval.ConstVal).C = ConstantExpr::get(getOtherOp((yyvsp[-5].OtherOpVal), (yyvsp[-3].ConstVal).S), (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C);
+    Constant *ShiftAmt = ConstantExpr::getZExt((yyvsp[-1].ConstVal).C, Ty);
+    (yyval.ConstVal).C = ConstantExpr::get(getBinaryOp((yyvsp[-5].BinaryOpVal), Ty, (yyvsp[-3].ConstVal).S), (yyvsp[-3].ConstVal).C, ShiftAmt);
     (yyval.ConstVal).S = (yyvsp[-3].ConstVal).S;
   ;}
     break;
 
   case 172:
-#line 2311 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2308 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid extractelement operands");
@@ -4697,7 +4698,7 @@
     break;
 
   case 173:
-#line 2317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2314 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid insertelement operands");
@@ -4707,7 +4708,7 @@
     break;
 
   case 174:
-#line 2323 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2320 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid shufflevector operands");
@@ -4717,12 +4718,12 @@
     break;
 
   case 175:
-#line 2334 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2331 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); ;}
     break;
 
   case 176:
-#line 2335 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2332 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVector) = new std::vector<ConstInfo>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4730,17 +4731,17 @@
     break;
 
   case 177:
-#line 2344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2341 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 178:
-#line 2345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2342 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 179:
-#line 2357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2354 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
     CurModule.ModuleDone();
@@ -4748,27 +4749,27 @@
     break;
 
   case 180:
-#line 2366 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); ;}
     break;
 
   case 181:
-#line 2367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2364 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 182:
-#line 2368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2365 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); ;}
     break;
 
   case 183:
-#line 2369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2366 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 184:
-#line 2370 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2367 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
@@ -4784,7 +4785,7 @@
     break;
 
   case 185:
-#line 2386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2383 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     // Eagerly resolve types.  This is not an optimization, this is a
     // requirement that is due to the fact that we could have this:
@@ -4808,19 +4809,19 @@
     break;
 
   case 186:
-#line 2406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {       // Function prototypes can be in const pool
   ;}
     break;
 
   case 187:
-#line 2408 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  // Asm blocks can be in the const pool
   ;}
     break;
 
   case 188:
-#line 2410 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2407 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].ConstVal).C == 0) 
       error("Global value initializer is not a constant");
@@ -4829,14 +4830,14 @@
     break;
 
   case 189:
-#line 2414 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2411 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 190:
-#line 2417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2414 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4845,14 +4846,14 @@
     break;
 
   case 191:
-#line 2421 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2418 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 192:
-#line 2424 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4861,14 +4862,14 @@
     break;
 
   case 193:
-#line 2428 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2425 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 194:
-#line 2431 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2428 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = 
@@ -4878,32 +4879,32 @@
     break;
 
   case 195:
-#line 2436 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 196:
-#line 2439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2436 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 197:
-#line 2441 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2438 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
   ;}
     break;
 
   case 198:
-#line 2443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2440 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 199:
-#line 2448 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
     char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4918,24 +4919,24 @@
     break;
 
   case 200:
-#line 2462 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2459 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::BigEndian; ;}
     break;
 
   case 201:
-#line 2463 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2460 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::LittleEndian; ;}
     break;
 
   case 202:
-#line 2467 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2464 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.setEndianness((yyvsp[0].Endianness));
   ;}
     break;
 
   case 203:
-#line 2470 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2467 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) == 32)
       CurModule.setPointerSize(Module::Pointer32);
@@ -4947,7 +4948,7 @@
     break;
 
   case 204:
-#line 2478 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2475 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4955,7 +4956,7 @@
     break;
 
   case 205:
-#line 2482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2479 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4963,7 +4964,7 @@
     break;
 
   case 207:
-#line 2493 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2490 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
       CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
       free((yyvsp[0].StrVal));
@@ -4971,7 +4972,7 @@
     break;
 
   case 208:
-#line 2497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2494 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4979,17 +4980,17 @@
     break;
 
   case 209:
-#line 2501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2498 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { ;}
     break;
 
   case 213:
-#line 2514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2511 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 214:
-#line 2518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2515 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).T->get() == Type::VoidTy)
       error("void typed arguments are invalid");
@@ -4998,7 +4999,7 @@
     break;
 
   case 215:
-#line 2526 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2523 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5007,7 +5008,7 @@
     break;
 
   case 216:
-#line 2531 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2528 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5016,12 +5017,12 @@
     break;
 
   case 217:
-#line 2539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2536 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = (yyvsp[0].ArgList); ;}
     break;
 
   case 218:
-#line 2540 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2537 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     PATypeInfo VoidTI;
@@ -5032,7 +5033,7 @@
     break;
 
   case 219:
-#line 2547 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2544 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     PATypeInfo VoidTI;
@@ -5043,12 +5044,12 @@
     break;
 
   case 220:
-#line 2554 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2551 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = 0; ;}
     break;
 
   case 221:
-#line 2558 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2555 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     UnEscapeLexed((yyvsp[-5].StrVal));
     std::string FunctionName((yyvsp[-5].StrVal));
@@ -5164,7 +5165,7 @@
     break;
 
   case 224:
-#line 2677 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -5175,29 +5176,29 @@
     break;
 
   case 227:
-#line 2691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2688 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 229:
-#line 2697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2694 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 230:
-#line 2698 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2695 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 231:
-#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 232:
-#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
@@ -5206,57 +5207,57 @@
     break;
 
   case 233:
-#line 2714 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2711 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 234:
-#line 2715 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2712 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 235:
-#line 2720 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); ;}
     break;
 
   case 236:
-#line 2721 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2718 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); ;}
     break;
 
   case 237:
-#line 2722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2719 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); ;}
     break;
 
   case 238:
-#line 2723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2720 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, true)); ;}
     break;
 
   case 239:
-#line 2724 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2721 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, false)); ;}
     break;
 
   case 240:
-#line 2725 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2722 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createNull(); ;}
     break;
 
   case 241:
-#line 2726 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2723 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createUndef(); ;}
     break;
 
   case 242:
-#line 2727 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2724 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createZeroInit(); ;}
     break;
 
   case 243:
-#line 2728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0].C->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -5281,14 +5282,14 @@
     break;
 
   case 244:
-#line 2749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2746 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal).C);
   ;}
     break;
 
   case 245:
-#line 2752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2749 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -5301,17 +5302,17 @@
     break;
 
   case 246:
-#line 2767 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2764 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); ;}
     break;
 
   case 247:
-#line 2768 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2765 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); ;}
     break;
 
   case 250:
-#line 2781 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2778 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.ValueVal).S = (yyvsp[-1].TypeVal).S;
@@ -5321,21 +5322,21 @@
     break;
 
   case 251:
-#line 2790 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2787 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 252:
-#line 2793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2790 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 253:
-#line 2802 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2799 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     InsertValue((yyvsp[0].TermInstVal));
@@ -5346,7 +5347,7 @@
     break;
 
   case 254:
-#line 2812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2809 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].InstVal).I)
       (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal).I);
@@ -5355,7 +5356,7 @@
     break;
 
   case 255:
-#line 2817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2814 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
     // Make sure to move the basic block to the correct location in the
@@ -5368,7 +5369,7 @@
     break;
 
   case 256:
-#line 2826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2823 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
     // Make sure to move the basic block to the correct location in the
@@ -5381,21 +5382,21 @@
     break;
 
   case 259:
-#line 2840 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2837 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal).V);
   ;}
     break;
 
   case 260:
-#line 2843 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2840 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                                       // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
   ;}
     break;
 
   case 261:
-#line 2846 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2843 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                         // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     (yyval.TermInstVal) = new BranchInst(tmpBB);
@@ -5403,7 +5404,7 @@
     break;
 
   case 262:
-#line 2850 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2847 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
     BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal));
@@ -5413,7 +5414,7 @@
     break;
 
   case 263:
-#line 2856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2853 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType).T, (yyvsp[-6].ValIDVal));
     BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal));
@@ -5432,7 +5433,7 @@
     break;
 
   case 264:
-#line 2871 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2868 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType).T, (yyvsp[-5].ValIDVal));
     BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal));
@@ -5442,7 +5443,7 @@
     break;
 
   case 265:
-#line 2878 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2875 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -5501,21 +5502,21 @@
     break;
 
   case 266:
-#line 2933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2930 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
   ;}
     break;
 
   case 267:
-#line 2936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2933 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
   ;}
     break;
 
   case 268:
-#line 2942 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2939 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5529,7 +5530,7 @@
     break;
 
   case 269:
-#line 2952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2949 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5543,7 +5544,7 @@
     break;
 
   case 270:
-#line 2965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2962 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     bool omit = false;
     if ((yyvsp[-1].StrVal))
@@ -5575,7 +5576,7 @@
     break;
 
   case 271:
-#line 2994 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2991 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for PHI nodes
     (yyval.PHIList).P = new std::list<std::pair<Value*, BasicBlock*> >();
     (yyval.PHIList).S = (yyvsp[-5].TypeVal).S;
@@ -5587,7 +5588,7 @@
     break;
 
   case 272:
-#line 3002 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2999 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList).P->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5597,7 +5598,7 @@
     break;
 
   case 273:
-#line 3010 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for call statements, and memory insts...
     (yyval.ValueList) = new std::vector<ValueInfo>();
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5605,7 +5606,7 @@
     break;
 
   case 274:
-#line 3014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3011 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5613,26 +5614,26 @@
     break;
 
   case 276:
-#line 3022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3019 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = 0; ;}
     break;
 
   case 277:
-#line 3026 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3023 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = true;
   ;}
     break;
 
   case 278:
-#line 3029 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3026 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = false;
   ;}
     break;
 
   case 279:
-#line 3035 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3032 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].TypeVal).T->get();
     if (!Ty->isInteger() && !Ty->isFloatingPoint() && !isa<PackedType>(Ty))
@@ -5653,7 +5654,7 @@
     break;
 
   case 280:
-#line 3052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3049 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (!Ty->isInteger()) {
@@ -5673,7 +5674,7 @@
     break;
 
   case 281:
-#line 3068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3065 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].TypeVal).T->get();
     if(isa<PackedType>(Ty))
@@ -5691,7 +5692,7 @@
     break;
 
   case 282:
-#line 3082 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3079 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (isa<PackedType>(Ty)) 
@@ -5707,7 +5708,7 @@
     break;
 
   case 283:
-#line 3094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3091 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (isa<PackedType>(Ty))
@@ -5723,7 +5724,7 @@
     break;
 
   case 284:
-#line 3106 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3103 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     warning("Use of obsolete 'not' instruction: Replacing with 'xor");
     const Type *Ty = (yyvsp[0].ValueVal).V->getType();
@@ -5738,20 +5739,29 @@
     break;
 
   case 285:
-#line 3117 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3114 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[0].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[0].ValueVal).V->getType())->getBitWidth() != 8)
       error("Shift amount must be int8");
-    if (!(yyvsp[-2].ValueVal).V->getType()->isInteger())
+    const Type* Ty = (yyvsp[-2].ValueVal).V->getType();
+    if (!Ty->isInteger())
       error("Shift constant expression requires integer operand");
-    (yyval.InstVal).I = new ShiftInst(getOtherOp((yyvsp[-3].OtherOpVal), (yyvsp[-2].ValueVal).S), (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V);
+    Value* ShiftAmt = 0;
+    if (cast<IntegerType>(Ty)->getBitWidth() > Type::Int8Ty->getBitWidth())
+      if (Constant *C = dyn_cast<Constant>((yyvsp[0].ValueVal).V))
+        ShiftAmt = ConstantExpr::getZExt(C, Ty);
+      else
+        ShiftAmt = new ZExtInst((yyvsp[0].ValueVal).V, Ty, makeNameUnique("shift"), CurBB);
+    else
+      ShiftAmt = (yyvsp[0].ValueVal).V;
+    (yyval.InstVal).I = BinaryOperator::create(getBinaryOp((yyvsp[-3].BinaryOpVal), Ty, (yyvsp[-2].ValueVal).S), (yyvsp[-2].ValueVal).V, ShiftAmt);
     (yyval.InstVal).S = (yyvsp[-2].ValueVal).S;
   ;}
     break;
 
   case 286:
-#line 3126 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3132 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *DstTy = (yyvsp[0].TypeVal).T->get();
     if (!DstTy->isFirstClassType())
@@ -5764,7 +5774,7 @@
     break;
 
   case 287:
-#line 3135 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3141 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-4].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-4].ValueVal).V->getType())->getBitWidth() != 1)
@@ -5777,7 +5787,7 @@
     break;
 
   case 288:
-#line 3144 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3150 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     NewVarArgs = true;
@@ -5788,7 +5798,7 @@
     break;
 
   case 289:
-#line 3151 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3157 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5813,7 +5823,7 @@
     break;
 
   case 290:
-#line 3172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3178 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5841,7 +5851,7 @@
     break;
 
   case 291:
-#line 3196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3202 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid extractelement operands");
@@ -5851,7 +5861,7 @@
     break;
 
   case 292:
-#line 3202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3208 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid insertelement operands");
@@ -5861,7 +5871,7 @@
     break;
 
   case 293:
-#line 3208 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid shufflevector operands");
@@ -5871,7 +5881,7 @@
     break;
 
   case 294:
-#line 3214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3220 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList).P->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5891,7 +5901,7 @@
     break;
 
   case 295:
-#line 3230 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
 
     // Handle the short call syntax
@@ -5973,34 +5983,34 @@
     break;
 
   case 296:
-#line 3308 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3314 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
   ;}
     break;
 
   case 297:
-#line 3316 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3322 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = (yyvsp[0].ValueList); ;}
     break;
 
   case 298:
-#line 3317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = new std::vector<ValueInfo>(); ;}
     break;
 
   case 299:
-#line 3321 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3327 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 300:
-#line 3322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3328 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 301:
-#line 3326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3332 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6010,7 +6020,7 @@
     break;
 
   case 302:
-#line 3332 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3338 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -6020,7 +6030,7 @@
     break;
 
   case 303:
-#line 3338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3344 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6030,7 +6040,7 @@
     break;
 
   case 304:
-#line 3344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3350 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -6040,7 +6050,7 @@
     break;
 
   case 305:
-#line 3350 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3356 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *PTy = (yyvsp[0].ValueVal).V->getType();
     if (!isa<PointerType>(PTy))
@@ -6051,7 +6061,7 @@
     break;
 
   case 306:
-#line 3357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6067,7 +6077,7 @@
     break;
 
   case 307:
-#line 3369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3375 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (!PTy)
@@ -6085,7 +6095,7 @@
     break;
 
   case 308:
-#line 3383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3389 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-2].TypeVal).T->get();
     if (!isa<PointerType>(Ty))
@@ -6107,7 +6117,7 @@
     }
 
 /* Line 1126 of yacc.c.  */
-#line 6111 "UpgradeParser.tab.c"
+#line 6121 "UpgradeParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -6375,7 +6385,7 @@
 }
 
 
-#line 3399 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 
 
 int yyerror(const char *ErrorMsg) {


Index: llvm/tools/llvm-upgrade/UpgradeParser.h.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.39 llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.40
--- llvm/tools/llvm-upgrade/UpgradeParser.h.cvs:1.39	Mon Jan 29 13:08:46 2007
+++ llvm/tools/llvm-upgrade/UpgradeParser.h.cvs	Thu Feb  1 20:16:23 2007
@@ -119,26 +119,26 @@
      AND = 345,
      OR = 346,
      XOR = 347,
-     SETLE = 348,
-     SETGE = 349,
-     SETLT = 350,
-     SETGT = 351,
-     SETEQ = 352,
-     SETNE = 353,
-     ICMP = 354,
-     FCMP = 355,
-     MALLOC = 356,
-     ALLOCA = 357,
-     FREE = 358,
-     LOAD = 359,
-     STORE = 360,
-     GETELEMENTPTR = 361,
-     PHI_TOK = 362,
-     SELECT = 363,
-     SHL = 364,
-     SHR = 365,
-     ASHR = 366,
-     LSHR = 367,
+     SHL = 348,
+     SHR = 349,
+     ASHR = 350,
+     LSHR = 351,
+     SETLE = 352,
+     SETGE = 353,
+     SETLT = 354,
+     SETGT = 355,
+     SETEQ = 356,
+     SETNE = 357,
+     ICMP = 358,
+     FCMP = 359,
+     MALLOC = 360,
+     ALLOCA = 361,
+     FREE = 362,
+     LOAD = 363,
+     STORE = 364,
+     GETELEMENTPTR = 365,
+     PHI_TOK = 366,
+     SELECT = 367,
      VAARG = 368,
      EXTRACTELEMENT = 369,
      INSERTELEMENT = 370,
@@ -271,26 +271,26 @@
 #define AND 345
 #define OR 346
 #define XOR 347
-#define SETLE 348
-#define SETGE 349
-#define SETLT 350
-#define SETGT 351
-#define SETEQ 352
-#define SETNE 353
-#define ICMP 354
-#define FCMP 355
-#define MALLOC 356
-#define ALLOCA 357
-#define FREE 358
-#define LOAD 359
-#define STORE 360
-#define GETELEMENTPTR 361
-#define PHI_TOK 362
-#define SELECT 363
-#define SHL 364
-#define SHR 365
-#define ASHR 366
-#define LSHR 367
+#define SHL 348
+#define SHR 349
+#define ASHR 350
+#define LSHR 351
+#define SETLE 352
+#define SETGE 353
+#define SETLT 354
+#define SETGT 355
+#define SETEQ 356
+#define SETNE 357
+#define ICMP 358
+#define FCMP 359
+#define MALLOC 360
+#define ALLOCA 361
+#define FREE 362
+#define LOAD 363
+#define STORE 364
+#define GETELEMENTPTR 365
+#define PHI_TOK 366
+#define SELECT 367
 #define VAARG 368
 #define EXTRACTELEMENT 369
 #define INSERTELEMENT 370
@@ -335,7 +335,7 @@
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1440 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1435 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;


Index: llvm/tools/llvm-upgrade/UpgradeParser.y
diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.54 llvm/tools/llvm-upgrade/UpgradeParser.y:1.55
--- llvm/tools/llvm-upgrade/UpgradeParser.y:1.54	Tue Jan 30 14:08:39 2007
+++ llvm/tools/llvm-upgrade/UpgradeParser.y	Thu Feb  1 20:16:23 2007
@@ -1008,6 +1008,13 @@
     case URemOp : return Instruction::URem;
     case SRemOp : return Instruction::SRem;
     case FRemOp : return Instruction::FRem;
+    case LShrOp : return Instruction::LShr;
+    case AShrOp : return Instruction::AShr;
+    case ShlOp  : return Instruction::Shl;
+    case ShrOp  : 
+      if (Sign == Signed)
+        return Instruction::AShr;
+      return Instruction::LShr;
     case AndOp  : return Instruction::And;
     case OrOp   : return Instruction::Or;
     case XorOp  : return Instruction::Xor;
@@ -1102,11 +1109,6 @@
     default               : assert(0 && "Invalid OldOtherOps");
     case PHIOp            : return Instruction::PHI;
     case CallOp           : return Instruction::Call;
-    case ShlOp            : return Instruction::Shl;
-    case ShrOp            : 
-      if (Sign == Signed)
-        return Instruction::AShr;
-      return Instruction::LShr;
     case SelectOp         : return Instruction::Select;
     case UserOp1          : return Instruction::UserOp1;
     case UserOp2          : return Instruction::UserOp2;
@@ -1116,8 +1118,6 @@
     case ShuffleVectorOp  : return Instruction::ShuffleVector;
     case ICmpOp           : return Instruction::ICmp;
     case FCmpOp           : return Instruction::FCmp;
-    case LShrOp           : return Instruction::LShr;
-    case AShrOp           : return Instruction::AShr;
   };
 }
 
@@ -1193,7 +1193,6 @@
       error("Invalid prototype for " + Name + " prototype");
     return new FCmpInst(FCmpInst::FCMP_UNO, Args[0], Args[1]);
   } else {
-    static unsigned upgradeCount = 1;
     const Type* PtrTy = PointerType::get(Type::Int8Ty);
     std::vector<const Type*> Params;
     if (Name == "llvm.va_start" || Name == "llvm.va_end") {
@@ -1203,9 +1202,7 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName("va_upgrade");
-      InstName += llvm::utostr(upgradeCount++);
-      Args[0] = new BitCastInst(Args[0], PtrTy, InstName, CurBB);
+      Args[0] = new BitCastInst(Args[0], PtrTy, makeNameUnique("va"), CurBB);
       return new CallInst(Func, Args);
     } else if (Name == "llvm.va_copy") {
       if (Args.size() != 2)
@@ -1215,10 +1212,8 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName0("va_upgrade");
-      InstName0 += llvm::utostr(upgradeCount++);
-      std::string InstName1("va_upgrade");
-      InstName1 += llvm::utostr(upgradeCount++);
+      std::string InstName0(makeNameUnique("va0"));
+      std::string InstName1(makeNameUnique("va1"));
       Args[0] = new BitCastInst(Args[0], PtrTy, InstName0, CurBB);
       Args[1] = new BitCastInst(Args[1], PtrTy, InstName1, CurBB);
       return new CallInst(Func, Args);
@@ -1263,7 +1258,7 @@
               cast<Constant>(Index), Type::Int64Ty);
           else
             Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
-              makeNameUnique("gep_upgrade"), CurBB);
+              makeNameUnique("gep"), CurBB);
           VIndices[i] = Index;
         }
     }
@@ -1546,8 +1541,9 @@
 
 // Binary Operators
 %type  <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
+%type  <BinaryOpVal> ShiftOps
 %token <BinaryOpVal> ADD SUB MUL DIV UDIV SDIV FDIV REM UREM SREM FREM 
-%token <BinaryOpVal> AND OR XOR
+%token <BinaryOpVal> AND OR XOR SHL SHR ASHR LSHR 
 %token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE  // Binary Comparators
 %token <OtherOpVal> ICMP FCMP
 
@@ -1555,8 +1551,7 @@
 %token <MemOpVal> MALLOC ALLOCA FREE LOAD STORE GETELEMENTPTR
 
 // Other Operators
-%type  <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI_TOK SELECT SHL SHR ASHR LSHR VAARG
+%token <OtherOpVal> PHI_TOK SELECT VAARG
 %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
 %token VAARG_old VANEXT_old //OBSOLETE
 
@@ -2303,9 +2298,11 @@
     if (!$5.C->getType()->isInteger() ||
         cast<IntegerType>($5.C->getType())->getBitWidth() != 8)
       error("Shift count for shift constant must be unsigned byte");
+    const Type* Ty = $3.C->getType();
     if (!$3.C->getType()->isInteger())
       error("Shift constant expression requires integer operand");
-    $$.C = ConstantExpr::get(getOtherOp($1, $3.S), $3.C, $5.C);
+    Constant *ShiftAmt = ConstantExpr::getZExt($5.C, Ty);
+    $$.C = ConstantExpr::get(getBinaryOp($1, Ty, $3.S), $3.C, ShiftAmt);
     $$.S = $3.S;
   }
   | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
@@ -3118,9 +3115,18 @@
     if (!$4.V->getType()->isInteger() ||
         cast<IntegerType>($4.V->getType())->getBitWidth() != 8)
       error("Shift amount must be int8");
-    if (!$2.V->getType()->isInteger())
+    const Type* Ty = $2.V->getType();
+    if (!Ty->isInteger())
       error("Shift constant expression requires integer operand");
-    $$.I = new ShiftInst(getOtherOp($1, $2.S), $2.V, $4.V);
+    Value* ShiftAmt = 0;
+    if (cast<IntegerType>(Ty)->getBitWidth() > Type::Int8Ty->getBitWidth())
+      if (Constant *C = dyn_cast<Constant>($4.V))
+        ShiftAmt = ConstantExpr::getZExt(C, Ty);
+      else
+        ShiftAmt = new ZExtInst($4.V, Ty, makeNameUnique("shift"), CurBB);
+    else
+      ShiftAmt = $4.V;
+    $$.I = BinaryOperator::create(getBinaryOp($1, Ty, $2.S), $2.V, ShiftAmt);
     $$.S = $2.S;
   }
   | CastOps ResolvedVal TO Types {


Index: llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.52 llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.53
--- llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.52	Tue Jan 30 14:08:39 2007
+++ llvm/tools/llvm-upgrade/UpgradeParser.y.cvs	Thu Feb  1 20:16:23 2007
@@ -1008,6 +1008,13 @@
     case URemOp : return Instruction::URem;
     case SRemOp : return Instruction::SRem;
     case FRemOp : return Instruction::FRem;
+    case LShrOp : return Instruction::LShr;
+    case AShrOp : return Instruction::AShr;
+    case ShlOp  : return Instruction::Shl;
+    case ShrOp  : 
+      if (Sign == Signed)
+        return Instruction::AShr;
+      return Instruction::LShr;
     case AndOp  : return Instruction::And;
     case OrOp   : return Instruction::Or;
     case XorOp  : return Instruction::Xor;
@@ -1102,11 +1109,6 @@
     default               : assert(0 && "Invalid OldOtherOps");
     case PHIOp            : return Instruction::PHI;
     case CallOp           : return Instruction::Call;
-    case ShlOp            : return Instruction::Shl;
-    case ShrOp            : 
-      if (Sign == Signed)
-        return Instruction::AShr;
-      return Instruction::LShr;
     case SelectOp         : return Instruction::Select;
     case UserOp1          : return Instruction::UserOp1;
     case UserOp2          : return Instruction::UserOp2;
@@ -1116,8 +1118,6 @@
     case ShuffleVectorOp  : return Instruction::ShuffleVector;
     case ICmpOp           : return Instruction::ICmp;
     case FCmpOp           : return Instruction::FCmp;
-    case LShrOp           : return Instruction::LShr;
-    case AShrOp           : return Instruction::AShr;
   };
 }
 
@@ -1193,7 +1193,6 @@
       error("Invalid prototype for " + Name + " prototype");
     return new FCmpInst(FCmpInst::FCMP_UNO, Args[0], Args[1]);
   } else {
-    static unsigned upgradeCount = 1;
     const Type* PtrTy = PointerType::get(Type::Int8Ty);
     std::vector<const Type*> Params;
     if (Name == "llvm.va_start" || Name == "llvm.va_end") {
@@ -1203,9 +1202,7 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName("va_upgrade");
-      InstName += llvm::utostr(upgradeCount++);
-      Args[0] = new BitCastInst(Args[0], PtrTy, InstName, CurBB);
+      Args[0] = new BitCastInst(Args[0], PtrTy, makeNameUnique("va"), CurBB);
       return new CallInst(Func, Args);
     } else if (Name == "llvm.va_copy") {
       if (Args.size() != 2)
@@ -1215,10 +1212,8 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName0("va_upgrade");
-      InstName0 += llvm::utostr(upgradeCount++);
-      std::string InstName1("va_upgrade");
-      InstName1 += llvm::utostr(upgradeCount++);
+      std::string InstName0(makeNameUnique("va0"));
+      std::string InstName1(makeNameUnique("va1"));
       Args[0] = new BitCastInst(Args[0], PtrTy, InstName0, CurBB);
       Args[1] = new BitCastInst(Args[1], PtrTy, InstName1, CurBB);
       return new CallInst(Func, Args);
@@ -1263,7 +1258,7 @@
               cast<Constant>(Index), Type::Int64Ty);
           else
             Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
-              makeNameUnique("gep_upgrade"), CurBB);
+              makeNameUnique("gep"), CurBB);
           VIndices[i] = Index;
         }
     }
@@ -1546,8 +1541,9 @@
 
 // Binary Operators
 %type  <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
+%type  <BinaryOpVal> ShiftOps
 %token <BinaryOpVal> ADD SUB MUL DIV UDIV SDIV FDIV REM UREM SREM FREM 
-%token <BinaryOpVal> AND OR XOR
+%token <BinaryOpVal> AND OR XOR SHL SHR ASHR LSHR 
 %token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE  // Binary Comparators
 %token <OtherOpVal> ICMP FCMP
 
@@ -1555,8 +1551,7 @@
 %token <MemOpVal> MALLOC ALLOCA FREE LOAD STORE GETELEMENTPTR
 
 // Other Operators
-%type  <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI_TOK SELECT SHL SHR ASHR LSHR VAARG
+%token <OtherOpVal> PHI_TOK SELECT VAARG
 %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
 %token VAARG_old VANEXT_old //OBSOLETE
 
@@ -2303,9 +2298,11 @@
     if (!$5.C->getType()->isInteger() ||
         cast<IntegerType>($5.C->getType())->getBitWidth() != 8)
       error("Shift count for shift constant must be unsigned byte");
+    const Type* Ty = $3.C->getType();
     if (!$3.C->getType()->isInteger())
       error("Shift constant expression requires integer operand");
-    $$.C = ConstantExpr::get(getOtherOp($1, $3.S), $3.C, $5.C);
+    Constant *ShiftAmt = ConstantExpr::getZExt($5.C, Ty);
+    $$.C = ConstantExpr::get(getBinaryOp($1, Ty, $3.S), $3.C, ShiftAmt);
     $$.S = $3.S;
   }
   | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
@@ -3118,9 +3115,18 @@
     if (!$4.V->getType()->isInteger() ||
         cast<IntegerType>($4.V->getType())->getBitWidth() != 8)
       error("Shift amount must be int8");
-    if (!$2.V->getType()->isInteger())
+    const Type* Ty = $2.V->getType();
+    if (!Ty->isInteger())
       error("Shift constant expression requires integer operand");
-    $$.I = new ShiftInst(getOtherOp($1, $2.S), $2.V, $4.V);
+    Value* ShiftAmt = 0;
+    if (cast<IntegerType>(Ty)->getBitWidth() > Type::Int8Ty->getBitWidth())
+      if (Constant *C = dyn_cast<Constant>($4.V))
+        ShiftAmt = ConstantExpr::getZExt(C, Ty);
+      else
+        ShiftAmt = new ZExtInst($4.V, Ty, makeNameUnique("shift"), CurBB);
+    else
+      ShiftAmt = $4.V;
+    $$.I = BinaryOperator::create(getBinaryOp($1, Ty, $2.S), $2.V, ShiftAmt);
     $$.S = $2.S;
   }
   | CastOps ResolvedVal TO Types {






More information about the llvm-commits mailing list