[llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y.cvs

Reid Spencer reid at x10sys.com
Fri Jan 5 09:07:38 PST 2007



Changes in directory llvm/lib/AsmParser:

llvmAsmParser.cpp.cvs updated: 1.44 -> 1.45
llvmAsmParser.h.cvs updated: 1.34 -> 1.35
llvmAsmParser.y.cvs updated: 1.45 -> 1.46
---
Log message:

Regenerate.


---
Diffs of the changes:  (+1159 -1170)

 llvmAsmParser.cpp.cvs | 2226 ++++++++++++++++++++++++--------------------------
 llvmAsmParser.h.cvs   |    6 
 llvmAsmParser.y.cvs   |   97 +-
 3 files changed, 1159 insertions(+), 1170 deletions(-)


Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.44 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.45
--- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.44	Wed Jan  3 20:57:52 2007
+++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs	Fri Jan  5 11:07:23 2007
@@ -195,7 +195,8 @@
      VAARG = 386,
      EXTRACTELEMENT = 387,
      INSERTELEMENT = 388,
-     SHUFFLEVECTOR = 389
+     SHUFFLEVECTOR = 389,
+     NORETURN = 390
    };
 #endif
 /* Tokens.  */
@@ -331,6 +332,7 @@
 #define EXTRACTELEMENT 387
 #define INSERTELEMENT 388
 #define SHUFFLEVECTOR 389
+#define NORETURN 390
 
 
 
@@ -1284,7 +1286,7 @@
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1288 "llvmAsmParser.tab.c"
+#line 1290 "llvmAsmParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1296,7 +1298,7 @@
 
 
 /* Line 219 of yacc.c.  */
-#line 1300 "llvmAsmParser.tab.c"
+#line 1302 "llvmAsmParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -1447,20 +1449,20 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  37
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1503
+#define YYLAST   1405
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  150
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  77
+#define YYNNTS  78
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  288
+#define YYNRULES  289
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  572
+#define YYNSTATES  569
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   389
+#define YYMAXUTOK   390
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -1472,12 +1474,12 @@
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     138,   139,   140,     2,   136,     2,     2,     2,     2,     2,
+     140,   141,   138,     2,   137,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     145,   135,   146,     2,   137,     2,     2,     2,     2,     2,
+     145,   136,   146,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   142,   141,   144,     2,     2,     2,     2,     2,   149,
+       2,   142,   139,   144,     2,     2,     2,     2,     2,   149,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      143,     2,     2,   147,     2,   148,     2,     2,     2,     2,
@@ -1506,7 +1508,8 @@
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135
 };
 
 #if YYDEBUG
@@ -1523,32 +1526,32 @@
      119,   121,   123,   125,   128,   129,   131,   133,   135,   137,
      139,   141,   143,   145,   146,   148,   150,   151,   153,   155,
      157,   159,   160,   162,   164,   166,   168,   170,   172,   175,
-     177,   179,   181,   185,   186,   189,   194,   195,   198,   199,
-     203,   206,   207,   209,   210,   214,   216,   219,   221,   223,
-     225,   227,   229,   231,   233,   235,   237,   239,   242,   244,
-     247,   253,   259,   265,   271,   275,   278,   284,   289,   292,
-     295,   298,   300,   304,   306,   310,   312,   313,   315,   319,
-     324,   328,   332,   337,   342,   346,   349,   352,   355,   358,
-     361,   364,   367,   370,   373,   376,   383,   389,   398,   405,
-     412,   420,   428,   435,   442,   451,   460,   464,   466,   468,
-     470,   472,   473,   475,   478,   479,   483,   484,   488,   492,
-     494,   498,   502,   503,   509,   510,   517,   518,   525,   528,
-     532,   534,   536,   538,   542,   546,   550,   554,   558,   562,
-     564,   565,   567,   569,   571,   572,   578,   582,   584,   588,
-     590,   591,   600,   602,   604,   608,   610,   612,   615,   618,
-     619,   621,   623,   625,   627,   629,   631,   633,   635,   637,
-     641,   643,   649,   651,   653,   655,   657,   660,   663,   666,
-     670,   673,   674,   676,   679,   682,   686,   696,   706,   715,
-     729,   731,   733,   740,   746,   749,   756,   764,   768,   774,
-     775,   776,   780,   783,   785,   791,   797,   804,   811,   814,
-     819,   824,   831,   836,   841,   848,   855,   858,   866,   868,
-     870,   871,   875,   882,   886,   893,   896,   901,   908
+     177,   179,   180,   183,   185,   187,   188,   191,   192,   195,
+     196,   200,   203,   204,   206,   207,   211,   213,   216,   218,
+     220,   222,   224,   226,   228,   230,   232,   234,   236,   239,
+     241,   244,   250,   256,   262,   268,   272,   275,   281,   286,
+     289,   291,   293,   295,   299,   301,   305,   307,   308,   310,
+     314,   319,   323,   327,   332,   337,   341,   344,   347,   350,
+     353,   356,   359,   362,   365,   368,   371,   378,   384,   393,
+     400,   407,   415,   423,   430,   437,   446,   455,   459,   461,
+     463,   465,   467,   468,   470,   473,   474,   478,   479,   483,
+     487,   489,   493,   497,   498,   504,   505,   512,   513,   520,
+     523,   527,   529,   531,   533,   537,   541,   545,   549,   553,
+     557,   559,   560,   562,   564,   566,   567,   573,   577,   579,
+     583,   585,   586,   596,   598,   600,   604,   606,   608,   611,
+     614,   615,   617,   619,   621,   623,   625,   627,   629,   631,
+     633,   637,   639,   645,   647,   649,   651,   653,   656,   659,
+     662,   666,   669,   670,   672,   675,   678,   682,   692,   702,
+     711,   726,   728,   730,   737,   743,   746,   753,   761,   765,
+     771,   772,   773,   777,   780,   782,   788,   794,   801,   808,
+     811,   816,   821,   828,   833,   838,   845,   852,   855,   864,
+     866,   868,   869,   873,   880,   884,   891,   894,   899,   906
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short int yyrhs[] =
 {
-     186,     0,    -1,     5,    -1,     6,    -1,    74,    -1,    75,
+     187,     0,    -1,     5,    -1,     6,    -1,    74,    -1,    75,
       -1,    76,    -1,    77,    -1,    78,    -1,    79,    -1,    80,
       -1,    81,    -1,    82,    -1,    83,    -1,    84,    -1,    85,
       -1,   114,    -1,   115,    -1,   116,    -1,   117,    -1,   118,
@@ -1560,120 +1563,120 @@
       -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,
       -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    23,
       -1,    24,    -1,    13,    -1,    12,    -1,    11,    -1,    10,
-      -1,    14,    -1,    15,    -1,   199,   135,    -1,    -1,    37,
+      -1,    14,    -1,    15,    -1,   200,   136,    -1,    -1,    37,
       -1,    39,    -1,    38,    -1,    40,    -1,    42,    -1,    41,
       -1,    43,    -1,    46,    -1,    -1,    41,    -1,    43,    -1,
       -1,    37,    -1,    38,    -1,    39,    -1,    42,    -1,    -1,
       61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
-      66,    -1,    60,     4,    -1,   115,    -1,   116,    -1,   166,
-      -1,   167,   136,   166,    -1,    -1,   137,   166,    -1,   137,
-     138,   167,   139,    -1,    -1,    53,     4,    -1,    -1,   136,
-      53,     4,    -1,    31,    20,    -1,    -1,   171,    -1,    -1,
-     136,   174,   173,    -1,   171,    -1,    53,     4,    -1,     9,
-      -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,    14,
-      -1,    15,    -1,    16,    -1,    44,    -1,   175,    -1,   176,
-     140,    -1,   211,    -1,   141,     4,    -1,   176,   168,   138,
-     180,   139,    -1,     8,   168,   138,   180,   139,    -1,   142,
-       4,   143,   176,   144,    -1,   145,     4,   143,   176,   146,
-      -1,   147,   181,   148,    -1,   147,   148,    -1,   145,   147,
-     181,   148,   146,    -1,   145,   147,   148,   146,    -1,   176,
-     168,    -1,   176,   168,    -1,     8,   168,    -1,   177,    -1,
-     179,   136,   177,    -1,   179,    -1,   179,   136,    34,    -1,
-      34,    -1,    -1,   176,    -1,   181,   136,   176,    -1,   176,
-     142,   184,   144,    -1,   176,   142,   144,    -1,   176,   149,
-      20,    -1,   176,   145,   184,   146,    -1,   176,   147,   184,
-     148,    -1,   176,   147,   148,    -1,   176,    35,    -1,   176,
-      36,    -1,   176,   211,    -1,   176,   183,    -1,   176,    22,
-      -1,   158,     3,    -1,   158,     4,    -1,     9,    23,    -1,
-       9,    24,    -1,   159,     7,    -1,   154,   138,   182,    33,
-     176,   139,    -1,   113,   138,   182,   222,   139,    -1,   127,
-     138,   182,   136,   182,   136,   182,   139,    -1,   152,   138,
-     182,   136,   182,   139,    -1,   153,   138,   182,   136,   182,
-     139,    -1,    86,   156,   138,   182,   136,   182,   139,    -1,
-      87,   157,   138,   182,   136,   182,   139,    -1,   155,   138,
-     182,   136,   182,   139,    -1,   132,   138,   182,   136,   182,
-     139,    -1,   133,   138,   182,   136,   182,   136,   182,   139,
-      -1,   134,   138,   182,   136,   182,   136,   182,   139,    -1,
-     184,   136,   182,    -1,   182,    -1,    29,    -1,    30,    -1,
-     187,    -1,    -1,   188,    -1,   187,   188,    -1,    -1,    28,
-     189,   207,    -1,    -1,    27,   190,   208,    -1,    58,    57,
-     194,    -1,    21,    -1,   160,    17,   176,    -1,   160,    17,
-       8,    -1,    -1,   160,   185,   182,   191,   173,    -1,    -1,
-     160,   161,   185,   182,   192,   173,    -1,    -1,   160,   162,
-     185,   176,   193,   173,    -1,    47,   196,    -1,    54,   135,
-     197,    -1,    20,    -1,    52,    -1,    51,    -1,    49,   135,
-     195,    -1,    50,   135,     4,    -1,    48,   135,    20,    -1,
-      67,   135,    20,    -1,   142,   198,   144,    -1,   198,   136,
-      20,    -1,    20,    -1,    -1,    18,    -1,    20,    -1,   199,
-      -1,    -1,   201,   136,   176,   168,   200,    -1,   176,   168,
-     200,    -1,   201,    -1,   201,   136,    34,    -1,    34,    -1,
-      -1,   165,   178,   199,   138,   202,   139,   172,   169,    -1,
-      25,    -1,   147,    -1,   164,   203,   204,    -1,    26,    -1,
-     148,    -1,   214,   206,    -1,   163,   203,    -1,    -1,    59,
-      -1,     3,    -1,     4,    -1,     7,    -1,    23,    -1,    24,
-      -1,    35,    -1,    36,    -1,    22,    -1,   145,   184,   146,
-      -1,   183,    -1,    57,   209,    20,   136,    20,    -1,   151,
-      -1,   199,    -1,   211,    -1,   210,    -1,   176,   212,    -1,
-     214,   215,    -1,   205,   215,    -1,   216,   160,   217,    -1,
-     216,   219,    -1,    -1,    19,    -1,    68,   213,    -1,    68,
-       8,    -1,    69,    16,   212,    -1,    69,     9,   212,   136,
-      16,   212,   136,    16,   212,    -1,    70,   158,   212,   136,
-      16,   212,   142,   218,   144,    -1,    70,   158,   212,   136,
-      16,   212,   142,   144,    -1,    71,   165,   178,   212,   138,
-     221,   139,    33,    16,   212,    72,    16,   212,    -1,    72,
-      -1,    73,    -1,   218,   158,   210,   136,    16,   212,    -1,
-     158,   210,   136,    16,   212,    -1,   160,   224,    -1,   176,
-     142,   212,   136,   212,   144,    -1,   220,   136,   142,   212,
-     136,   212,   144,    -1,   176,   212,   168,    -1,   221,   136,
-     176,   212,   168,    -1,    -1,    -1,   222,   136,   213,    -1,
-      56,    55,    -1,    55,    -1,   152,   176,   212,   136,   212,
-      -1,   153,   176,   212,   136,   212,    -1,    86,   156,   176,
-     212,   136,   212,    -1,    87,   157,   176,   212,   136,   212,
-      -1,    45,   213,    -1,   155,   213,   136,   213,    -1,   154,
-     213,    33,   176,    -1,   127,   213,   136,   213,   136,   213,
-      -1,   131,   213,   136,   176,    -1,   132,   213,   136,   213,
-      -1,   133,   213,   136,   213,   136,   213,    -1,   134,   213,
-     136,   213,   136,   213,    -1,   126,   220,    -1,   223,   165,
-     178,   212,   138,   221,   139,    -1,   226,    -1,    32,    -1,
-      -1,   108,   176,   170,    -1,   108,   176,   136,    12,   212,
-     170,    -1,   109,   176,   170,    -1,   109,   176,   136,    12,
-     212,   170,    -1,   110,   213,    -1,   225,   111,   176,   212,
-      -1,   225,   112,   213,   136,   176,   212,    -1,   113,   176,
-     212,   222,    -1
+      66,    -1,    60,     4,    -1,   115,    -1,   116,    -1,    -1,
+     167,   166,    -1,   135,    -1,   166,    -1,    -1,   169,   168,
+      -1,    -1,    53,     4,    -1,    -1,   137,    53,     4,    -1,
+      31,    20,    -1,    -1,   172,    -1,    -1,   137,   175,   174,
+      -1,   172,    -1,    53,     4,    -1,     9,    -1,    10,    -1,
+      11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,    -1,
+      16,    -1,    44,    -1,   176,    -1,   177,   138,    -1,   212,
+      -1,   139,     4,    -1,   177,   140,   181,   141,   169,    -1,
+       8,   140,   181,   141,   169,    -1,   142,     4,   143,   177,
+     144,    -1,   145,     4,   143,   177,   146,    -1,   147,   182,
+     148,    -1,   147,   148,    -1,   145,   147,   182,   148,   146,
+      -1,   145,   147,   148,   146,    -1,   177,   167,    -1,   177,
+      -1,     8,    -1,   178,    -1,   180,   137,   178,    -1,   180,
+      -1,   180,   137,    34,    -1,    34,    -1,    -1,   177,    -1,
+     182,   137,   177,    -1,   177,   142,   185,   144,    -1,   177,
+     142,   144,    -1,   177,   149,    20,    -1,   177,   145,   185,
+     146,    -1,   177,   147,   185,   148,    -1,   177,   147,   148,
+      -1,   177,    35,    -1,   177,    36,    -1,   177,   212,    -1,
+     177,   184,    -1,   177,    22,    -1,   158,     3,    -1,   158,
+       4,    -1,     9,    23,    -1,     9,    24,    -1,   159,     7,
+      -1,   154,   140,   183,    33,   177,   141,    -1,   113,   140,
+     183,   223,   141,    -1,   127,   140,   183,   137,   183,   137,
+     183,   141,    -1,   152,   140,   183,   137,   183,   141,    -1,
+     153,   140,   183,   137,   183,   141,    -1,    86,   156,   140,
+     183,   137,   183,   141,    -1,    87,   157,   140,   183,   137,
+     183,   141,    -1,   155,   140,   183,   137,   183,   141,    -1,
+     132,   140,   183,   137,   183,   141,    -1,   133,   140,   183,
+     137,   183,   137,   183,   141,    -1,   134,   140,   183,   137,
+     183,   137,   183,   141,    -1,   185,   137,   183,    -1,   183,
+      -1,    29,    -1,    30,    -1,   188,    -1,    -1,   189,    -1,
+     188,   189,    -1,    -1,    28,   190,   208,    -1,    -1,    27,
+     191,   209,    -1,    58,    57,   195,    -1,    21,    -1,   160,
+      17,   177,    -1,   160,    17,     8,    -1,    -1,   160,   186,
+     183,   192,   174,    -1,    -1,   160,   161,   186,   183,   193,
+     174,    -1,    -1,   160,   162,   186,   177,   194,   174,    -1,
+      47,   197,    -1,    54,   136,   198,    -1,    20,    -1,    52,
+      -1,    51,    -1,    49,   136,   196,    -1,    50,   136,     4,
+      -1,    48,   136,    20,    -1,    67,   136,    20,    -1,   142,
+     199,   144,    -1,   199,   137,    20,    -1,    20,    -1,    -1,
+      18,    -1,    20,    -1,   200,    -1,    -1,   202,   137,   177,
+     167,   201,    -1,   177,   167,   201,    -1,   202,    -1,   202,
+     137,    34,    -1,    34,    -1,    -1,   165,   179,   200,   140,
+     203,   141,   169,   173,   170,    -1,    25,    -1,   147,    -1,
+     164,   204,   205,    -1,    26,    -1,   148,    -1,   215,   207,
+      -1,   163,   204,    -1,    -1,    59,    -1,     3,    -1,     4,
+      -1,     7,    -1,    23,    -1,    24,    -1,    35,    -1,    36,
+      -1,    22,    -1,   145,   185,   146,    -1,   184,    -1,    57,
+     210,    20,   137,    20,    -1,   151,    -1,   200,    -1,   212,
+      -1,   211,    -1,   177,   213,    -1,   215,   216,    -1,   206,
+     216,    -1,   217,   160,   218,    -1,   217,   220,    -1,    -1,
+      19,    -1,    68,   214,    -1,    68,     8,    -1,    69,    16,
+     213,    -1,    69,     9,   213,   137,    16,   213,   137,    16,
+     213,    -1,    70,   158,   213,   137,    16,   213,   142,   219,
+     144,    -1,    70,   158,   213,   137,    16,   213,   142,   144,
+      -1,    71,   165,   179,   213,   140,   222,   141,   169,    33,
+      16,   213,    72,    16,   213,    -1,    72,    -1,    73,    -1,
+     219,   158,   211,   137,    16,   213,    -1,   158,   211,   137,
+      16,   213,    -1,   160,   225,    -1,   177,   142,   213,   137,
+     213,   144,    -1,   221,   137,   142,   213,   137,   213,   144,
+      -1,   177,   213,   167,    -1,   222,   137,   177,   213,   167,
+      -1,    -1,    -1,   223,   137,   214,    -1,    56,    55,    -1,
+      55,    -1,   152,   177,   213,   137,   213,    -1,   153,   177,
+     213,   137,   213,    -1,    86,   156,   177,   213,   137,   213,
+      -1,    87,   157,   177,   213,   137,   213,    -1,    45,   214,
+      -1,   155,   214,   137,   214,    -1,   154,   214,    33,   177,
+      -1,   127,   214,   137,   214,   137,   214,    -1,   131,   214,
+     137,   177,    -1,   132,   214,   137,   214,    -1,   133,   214,
+     137,   214,   137,   214,    -1,   134,   214,   137,   214,   137,
+     214,    -1,   126,   221,    -1,   224,   165,   179,   213,   140,
+     222,   141,   169,    -1,   227,    -1,    32,    -1,    -1,   108,
+     177,   171,    -1,   108,   177,   137,    12,   213,   171,    -1,
+     109,   177,   171,    -1,   109,   177,   137,    12,   213,   171,
+      -1,   110,   214,    -1,   226,   111,   177,   213,    -1,   226,
+     112,   214,   137,   177,   213,    -1,   113,   177,   213,   223,
+      -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1035,  1035,  1036,  1046,  1046,  1046,  1046,  1046,  1046,
-    1046,  1046,  1046,  1047,  1047,  1047,  1048,  1048,  1048,  1048,
-    1048,  1048,  1049,  1049,  1049,  1049,  1049,  1049,  1050,  1050,
-    1050,  1052,  1052,  1053,  1053,  1054,  1054,  1055,  1055,  1056,
-    1056,  1060,  1060,  1061,  1061,  1062,  1062,  1063,  1063,  1064,
-    1064,  1065,  1065,  1066,  1066,  1067,  1068,  1073,  1073,  1073,
-    1073,  1074,  1074,  1077,  1081,  1087,  1088,  1089,  1090,  1091,
-    1095,  1096,  1097,  1101,  1102,  1103,  1107,  1108,  1109,  1110,
-    1111,  1114,  1115,  1116,  1117,  1118,  1119,  1120,  1121,  1128,
-    1129,  1132,  1133,  1138,  1139,  1140,  1145,  1146,  1152,  1153,
-    1161,  1169,  1170,  1175,  1176,  1177,  1182,  1195,  1195,  1195,
-    1195,  1195,  1195,  1195,  1195,  1198,  1202,  1206,  1213,  1218,
-    1226,  1244,  1262,  1267,  1279,  1289,  1293,  1303,  1310,  1317,
-    1325,  1331,  1336,  1343,  1344,  1351,  1358,  1366,  1371,  1382,
-    1410,  1426,  1455,  1483,  1504,  1519,  1531,  1538,  1601,  1611,
-    1621,  1627,  1633,  1637,  1641,  1649,  1663,  1684,  1692,  1698,
-    1709,  1714,  1719,  1728,  1734,  1740,  1749,  1753,  1761,  1761,
-    1772,  1777,  1785,  1786,  1790,  1790,  1794,  1794,  1797,  1800,
-    1812,  1836,  1847,  1847,  1856,  1856,  1864,  1864,  1874,  1877,
-    1883,  1896,  1897,  1899,  1903,  1912,  1916,  1921,  1923,  1928,
-    1933,  1942,  1942,  1943,  1943,  1945,  1955,  1966,  1970,  1979,
-    1988,  1993,  2098,  2098,  2100,  2108,  2108,  2110,  2115,  2126,
-    2130,  2135,  2139,  2143,  2147,  2151,  2155,  2159,  2163,  2167,
-    2192,  2196,  2210,  2214,  2220,  2220,  2226,  2235,  2239,  2248,
-    2259,  2268,  2280,  2293,  2297,  2301,  2306,  2315,  2334,  2343,
-    2410,  2414,  2421,  2432,  2445,  2454,  2465,  2475,  2483,  2491,
-    2494,  2495,  2502,  2506,  2511,  2532,  2549,  2562,  2575,  2588,
-    2597,  2610,  2618,  2625,  2631,  2637,  2643,  2658,  2720,  2725,
-    2729,  2736,  2743,  2751,  2758,  2766,  2774,  2788,  2805
+       0,  1038,  1038,  1039,  1049,  1049,  1049,  1049,  1049,  1049,
+    1049,  1049,  1049,  1050,  1050,  1050,  1051,  1051,  1051,  1051,
+    1051,  1051,  1052,  1052,  1052,  1052,  1052,  1052,  1053,  1053,
+    1053,  1055,  1055,  1056,  1056,  1057,  1057,  1058,  1058,  1059,
+    1059,  1063,  1063,  1064,  1064,  1065,  1065,  1066,  1066,  1067,
+    1067,  1068,  1068,  1069,  1069,  1070,  1071,  1076,  1076,  1076,
+    1076,  1077,  1077,  1080,  1084,  1090,  1091,  1092,  1093,  1094,
+    1098,  1099,  1100,  1104,  1105,  1106,  1110,  1111,  1112,  1113,
+    1114,  1117,  1118,  1119,  1120,  1121,  1122,  1123,  1124,  1131,
+    1132,  1135,  1136,  1141,  1142,  1145,  1146,  1153,  1154,  1160,
+    1161,  1169,  1177,  1178,  1183,  1184,  1185,  1190,  1203,  1203,
+    1203,  1203,  1203,  1203,  1203,  1203,  1206,  1210,  1214,  1221,
+    1226,  1234,  1252,  1270,  1275,  1287,  1297,  1301,  1311,  1318,
+    1325,  1332,  1337,  1342,  1349,  1350,  1357,  1364,  1372,  1377,
+    1388,  1416,  1432,  1461,  1489,  1510,  1525,  1537,  1544,  1607,
+    1617,  1627,  1633,  1639,  1643,  1647,  1655,  1669,  1690,  1698,
+    1704,  1715,  1720,  1725,  1734,  1740,  1746,  1755,  1759,  1767,
+    1767,  1778,  1783,  1791,  1792,  1796,  1796,  1800,  1800,  1803,
+    1806,  1818,  1842,  1853,  1853,  1862,  1862,  1870,  1870,  1880,
+    1883,  1889,  1902,  1903,  1905,  1909,  1918,  1922,  1927,  1929,
+    1934,  1939,  1948,  1948,  1949,  1949,  1951,  1961,  1972,  1976,
+    1985,  1994,  1999,  2104,  2104,  2106,  2114,  2114,  2116,  2121,
+    2132,  2136,  2141,  2145,  2149,  2153,  2157,  2161,  2165,  2169,
+    2173,  2198,  2202,  2216,  2220,  2226,  2226,  2232,  2241,  2245,
+    2254,  2265,  2274,  2286,  2299,  2303,  2307,  2312,  2321,  2340,
+    2349,  2416,  2420,  2427,  2438,  2451,  2460,  2471,  2481,  2489,
+    2497,  2500,  2501,  2508,  2512,  2517,  2538,  2555,  2568,  2581,
+    2594,  2603,  2616,  2624,  2631,  2637,  2643,  2649,  2664,  2727,
+    2732,  2736,  2743,  2750,  2758,  2765,  2773,  2781,  2795,  2812
 };
 #endif
 
@@ -1702,15 +1705,15 @@
   "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP", "SITOFP", "FPTOUI",
   "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK", "SELECT", "SHL", "LSHR",
   "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
-  "'='", "','", "'@'", "'('", "')'", "'*'", "'\\\\'", "'['", "'x'", "']'",
-  "'<'", "'>'", "'{'", "'}'", "'c'", "$accept", "INTVAL", "ArithmeticOps",
-  "LogicalOps", "CastOps", "ShiftOps", "IPredicates", "FPredicates",
-  "IntType", "FPType", "OptAssign", "GVInternalLinkage",
+  "NORETURN", "'='", "','", "'*'", "'\\\\'", "'('", "')'", "'['", "'x'",
+  "']'", "'<'", "'>'", "'{'", "'}'", "'c'", "$accept", "INTVAL",
+  "ArithmeticOps", "LogicalOps", "CastOps", "ShiftOps", "IPredicates",
+  "FPredicates", "IntType", "FPType", "OptAssign", "GVInternalLinkage",
   "GVExternalLinkage", "FunctionDeclareLinkage", "FunctionDefineLinkage",
-  "OptCallingConv", "ParamAttr", "ParamAttrList", "OptParamAttrs",
-  "OptAlign", "OptCAlign", "SectionString", "OptSection",
+  "OptCallingConv", "ParamAttr", "OptParamAttrs", "FuncAttr",
+  "OptFuncAttrs", "OptAlign", "OptCAlign", "SectionString", "OptSection",
   "GlobalVarAttributes", "GlobalVarAttribute", "PrimType", "Types",
-  "ArgType", "ResultType", "ArgTypeList", "ArgTypeListI", "TypeListI",
+  "ArgType", "ResultTypes", "ArgTypeList", "ArgTypeListI", "TypeListI",
   "ConstVal", "ConstExpr", "ConstVector", "GlobalType", "Module",
   "DefinitionList", "Definition", "@1", "@2", "@3", "@4", "@5", "AsmBlock",
   "BigOrLittle", "TargetDefinition", "LibrariesDefinition", "LibList",
@@ -1741,8 +1744,8 @@
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,    61,    44,    64,    40,    41,
-      42,    92,    91,   120,    93,    60,    62,   123,   125,    99
+     385,   386,   387,   388,   389,   390,    61,    44,    42,    92,
+      40,    41,    91,   120,    93,    60,    62,   123,   125,    99
 };
 # endif
 
@@ -1758,26 +1761,26 @@
      158,   159,   159,   160,   160,   161,   161,   161,   161,   161,
      162,   162,   162,   163,   163,   163,   164,   164,   164,   164,
      164,   165,   165,   165,   165,   165,   165,   165,   165,   166,
-     166,   167,   167,   168,   168,   168,   169,   169,   170,   170,
-     171,   172,   172,   173,   173,   174,   174,   175,   175,   175,
-     175,   175,   175,   175,   175,   176,   176,   176,   176,   176,
-     176,   176,   176,   176,   176,   176,   176,   176,   177,   178,
-     178,   179,   179,   180,   180,   180,   180,   181,   181,   182,
-     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
-     182,   182,   182,   182,   182,   183,   183,   183,   183,   183,
-     183,   183,   183,   183,   183,   183,   184,   184,   185,   185,
-     186,   186,   187,   187,   189,   188,   190,   188,   188,   188,
-     188,   188,   191,   188,   192,   188,   193,   188,   188,   188,
-     194,   195,   195,   196,   196,   196,   196,   197,   198,   198,
-     198,   199,   199,   200,   200,   201,   201,   202,   202,   202,
-     202,   203,   204,   204,   205,   206,   206,   207,   208,   209,
-     209,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   211,   211,   212,   212,   213,   214,   214,   215,
-     216,   216,   216,   217,   217,   217,   217,   217,   217,   217,
-     217,   217,   218,   218,   219,   220,   220,   221,   221,   221,
-     222,   222,   223,   223,   224,   224,   224,   224,   224,   224,
-     224,   224,   224,   224,   224,   224,   224,   224,   224,   225,
-     225,   226,   226,   226,   226,   226,   226,   226,   226
+     166,   167,   167,   168,   168,   169,   169,   170,   170,   171,
+     171,   172,   173,   173,   174,   174,   175,   175,   176,   176,
+     176,   176,   176,   176,   176,   176,   177,   177,   177,   177,
+     177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
+     179,   179,   180,   180,   181,   181,   181,   181,   182,   182,
+     183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
+     183,   183,   183,   183,   183,   183,   184,   184,   184,   184,
+     184,   184,   184,   184,   184,   184,   184,   185,   185,   186,
+     186,   187,   187,   188,   188,   190,   189,   191,   189,   189,
+     189,   189,   189,   192,   189,   193,   189,   194,   189,   189,
+     189,   195,   196,   196,   197,   197,   197,   197,   198,   199,
+     199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
+     203,   203,   204,   205,   205,   206,   207,   207,   208,   209,
+     210,   210,   211,   211,   211,   211,   211,   211,   211,   211,
+     211,   211,   211,   212,   212,   213,   213,   214,   215,   215,
+     216,   217,   217,   217,   218,   218,   218,   218,   218,   218,
+     218,   218,   218,   219,   219,   220,   221,   221,   222,   222,
+     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
+     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
+     226,   226,   227,   227,   227,   227,   227,   227,   227,   227
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1792,26 +1795,26 @@
        1,     1,     1,     2,     0,     1,     1,     1,     1,     1,
        1,     1,     1,     0,     1,     1,     0,     1,     1,     1,
        1,     0,     1,     1,     1,     1,     1,     1,     2,     1,
-       1,     1,     3,     0,     2,     4,     0,     2,     0,     3,
-       2,     0,     1,     0,     3,     1,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     1,     2,
-       5,     5,     5,     5,     3,     2,     5,     4,     2,     2,
-       2,     1,     3,     1,     3,     1,     0,     1,     3,     4,
-       3,     3,     4,     4,     3,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     6,     5,     8,     6,     6,
-       7,     7,     6,     6,     8,     8,     3,     1,     1,     1,
-       1,     0,     1,     2,     0,     3,     0,     3,     3,     1,
-       3,     3,     0,     5,     0,     6,     0,     6,     2,     3,
-       1,     1,     1,     3,     3,     3,     3,     3,     3,     1,
-       0,     1,     1,     1,     0,     5,     3,     1,     3,     1,
-       0,     8,     1,     1,     3,     1,     1,     2,     2,     0,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-       1,     5,     1,     1,     1,     1,     2,     2,     2,     3,
-       2,     0,     1,     2,     2,     3,     9,     9,     8,    13,
-       1,     1,     6,     5,     2,     6,     7,     3,     5,     0,
-       0,     3,     2,     1,     5,     5,     6,     6,     2,     4,
-       4,     6,     4,     4,     6,     6,     2,     7,     1,     1,
-       0,     3,     6,     3,     6,     2,     4,     6,     4
+       1,     0,     2,     1,     1,     0,     2,     0,     2,     0,
+       3,     2,     0,     1,     0,     3,     1,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
+       2,     5,     5,     5,     5,     3,     2,     5,     4,     2,
+       1,     1,     1,     3,     1,     3,     1,     0,     1,     3,
+       4,     3,     3,     4,     4,     3,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     6,     5,     8,     6,
+       6,     7,     7,     6,     6,     8,     8,     3,     1,     1,
+       1,     1,     0,     1,     2,     0,     3,     0,     3,     3,
+       1,     3,     3,     0,     5,     0,     6,     0,     6,     2,
+       3,     1,     1,     1,     3,     3,     3,     3,     3,     3,
+       1,     0,     1,     1,     1,     0,     5,     3,     1,     3,
+       1,     0,     9,     1,     1,     3,     1,     1,     2,     2,
+       0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       3,     1,     5,     1,     1,     1,     1,     2,     2,     2,
+       3,     2,     0,     1,     2,     2,     3,     9,     9,     8,
+      14,     1,     1,     6,     5,     2,     6,     7,     3,     5,
+       0,     0,     3,     2,     1,     5,     5,     6,     6,     2,
+       4,     4,     6,     4,     4,     6,     6,     2,     8,     1,
+       1,     0,     3,     6,     3,     6,     2,     4,     6,     4
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1819,470 +1822,448 @@
    means the default is an error.  */
 static const unsigned short int yydefact[] =
 {
-      64,   201,   202,   179,   176,   174,     0,     0,     0,     0,
-       0,    64,   172,     0,    73,    76,     0,     0,     0,     0,
-     188,     0,     0,     0,   168,   169,    65,    67,    66,    68,
-      70,    69,    71,    72,     0,     0,     0,     1,   173,    63,
-      74,    75,    81,   177,    77,    78,    79,    80,    81,   241,
-     175,   241,     0,     0,     0,     0,   200,   189,   190,   178,
-       2,     3,   181,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,     0,     0,     0,     0,   232,   116,   180,   233,
-     118,     0,     0,    93,   107,   108,   109,   110,   111,   112,
-     113,     0,     0,    93,   182,     0,    82,    83,    84,    85,
-      86,    87,     0,   218,     0,   242,   238,    64,   215,   216,
-     217,   237,   195,   192,   191,   193,   194,   196,   199,     0,
-       0,     0,   119,     0,     0,     0,   125,   137,     0,   117,
-       0,   184,   186,   152,   153,   150,   151,   154,   149,   145,
-     146,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,     0,     0,     0,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,     0,    28,
-      29,    30,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   148,   147,   103,    88,    93,    93,     0,
-     212,   213,   214,   280,   240,     0,   197,    89,    90,     0,
-      94,   136,     0,     0,     0,     0,     0,   124,   136,   103,
-     103,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,     0,    55,    56,    51,    52,    53,    54,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,     0,     0,
-       0,     0,     0,     0,   140,   167,     0,     0,   144,     0,
-     141,     0,     0,     0,     0,     0,   183,   130,   129,     0,
-     279,     0,   263,     0,     0,     0,     0,    81,   250,   251,
+      64,   202,   203,   180,   177,   175,     0,     0,     0,     0,
+       0,    64,   173,     0,    73,    76,     0,     0,     0,     0,
+     189,     0,     0,     0,   169,   170,    65,    67,    66,    68,
+      70,    69,    71,    72,     0,     0,     0,     1,   174,    63,
+      74,    75,    81,   178,    77,    78,    79,    80,    81,   242,
+     176,   242,     0,     0,     0,     0,   201,   190,   191,   179,
+       2,     3,   182,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,     0,     0,     0,     0,   233,   117,   181,   234,
+     119,     0,     0,     0,   108,   109,   110,   111,   112,   113,
+     114,     0,     0,     0,   183,     0,    82,    83,    84,    85,
+      86,    87,     0,   219,     0,   243,   239,    64,   216,   217,
+     218,   238,   196,   193,   192,   194,   195,   197,   200,     0,
+     137,   120,     0,     0,     0,   126,   138,     0,   118,   137,
+     185,   187,   153,   154,   151,   152,   155,   150,   146,   147,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,     0,     0,     0,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,     0,    28,    29,
+      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   149,   148,   104,    88,   131,   130,     0,   213,
+     214,   215,   281,   241,     0,   198,   136,    91,   132,   134,
+       0,     0,     0,     0,     0,     0,   125,     0,   104,   104,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+       0,    55,    56,    51,    52,    53,    54,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,     0,     0,     0,
+       0,     0,     0,   141,   168,     0,     0,   145,     0,   142,
+       0,     0,     0,     0,     0,   184,     0,   280,     0,   264,
+       0,     0,     0,     0,    81,   251,   252,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   239,    81,   254,     0,
-     278,   198,    91,     0,   135,    93,   131,   133,     0,    93,
-      93,   127,     0,   138,     0,   185,   187,     0,     0,   260,
-       0,     0,     0,     0,     0,   139,   142,   143,     0,     0,
-       0,     0,     0,     0,   105,   103,   210,    93,   268,   262,
-     244,   243,     0,     0,    60,    59,    58,    57,     0,     0,
-       0,     0,    98,    98,   285,    93,    93,   276,     0,     0,
-       0,     0,     0,    93,    93,     0,     0,     0,     0,     0,
-       0,    95,   128,     0,   121,   122,   123,   126,   120,     0,
-       0,     0,     0,     0,     0,     0,   166,     0,     0,     0,
-       0,   100,   106,   104,   209,    93,   207,     0,   221,   222,
-     223,   228,   224,   225,   226,   227,   219,     0,   230,   235,
-     234,   236,     0,   245,     0,     0,    93,    93,     0,   281,
-       0,   283,   260,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    93,     0,    92,   134,   132,
-       0,     0,     0,   156,     0,     0,     0,     0,     0,     0,
-      93,     0,   204,     0,   101,   220,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   288,     0,     0,     0,
-     272,   273,     0,     0,     0,     0,   270,   269,     0,   286,
-       0,     0,     0,   261,     0,   163,     0,     0,   158,   159,
-     155,   162,   203,   206,   208,    93,   102,    96,     0,   229,
-       0,     0,   259,     0,     0,    98,    99,    98,     0,     0,
-       0,     0,     0,   264,   265,   259,    93,   160,   161,     0,
-       0,     0,   204,     0,   211,     0,     0,     0,    93,     0,
-     266,   267,     0,   282,   284,     0,     0,   271,   274,   275,
-       0,   287,   157,   164,   165,   205,    97,   231,     0,     0,
-      93,     0,     0,   255,     0,   277,     0,   248,     0,     0,
-     257,    93,     0,   256,   246,     0,   247,     0,    93,     0,
-       0,     0,   258,     0,     0,     0,     0,   253,     0,     0,
-     252,   249
+       0,     0,     0,   240,    81,   255,     0,   279,   199,   129,
+       0,    95,     0,     0,   128,     0,   139,    95,   186,   188,
+       0,     0,   261,     0,     0,     0,     0,     0,   140,   143,
+     144,     0,     0,     0,     0,     0,     0,   106,   104,   211,
+       0,   269,   263,   245,   244,     0,     0,    60,    59,    58,
+      57,     0,     0,     0,     0,    99,    99,   286,     0,     0,
+     277,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    89,    90,    92,   135,   133,   122,   123,
+     124,   127,   121,     0,     0,     0,     0,     0,     0,     0,
+     167,     0,     0,     0,     0,   101,   107,   105,   210,    91,
+     208,     0,   222,   223,   224,   229,   225,   226,   227,   228,
+     220,     0,   231,   236,   235,   237,     0,   246,     0,     0,
+       0,     0,     0,   282,     0,   284,   261,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    93,    94,    96,     0,     0,     0,   157,     0,     0,
+       0,     0,     0,     0,     0,     0,   205,     0,    95,   221,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     289,     0,     0,     0,   273,   274,     0,     0,     0,     0,
+     271,   270,     0,   287,     0,     0,     0,   262,     0,   164,
+       0,     0,   159,   160,   156,   163,   204,   207,   209,    91,
+     102,     0,   230,     0,     0,   260,     0,     0,    99,   100,
+      99,     0,     0,     0,     0,     0,   265,   266,   260,     0,
+     161,   162,     0,     0,     0,   205,   103,    97,     0,     0,
+       0,     0,     0,   267,   268,     0,   283,   285,     0,     0,
+     272,   275,   276,     0,   288,   158,   165,   166,   206,     0,
+     212,   232,     0,     0,    91,     0,    95,   256,     0,    95,
+      98,     0,   249,     0,     0,   258,     0,     0,   257,   278,
+     247,     0,   248,     0,    91,     0,     0,     0,   259,     0,
+       0,     0,     0,   254,     0,     0,   253,     0,   250
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short int yydefgoto[] =
 {
-      -1,    76,   179,   180,   181,   182,   221,   238,    91,    92,
-       9,    34,    35,    42,    48,   102,   200,   293,   130,   514,
-     409,   324,   487,   256,   325,    77,    93,   296,   189,   297,
-     298,   128,   245,   398,   246,    36,    10,    11,    12,    15,
-      14,   185,   209,   210,    59,   115,    20,    57,   119,    79,
-     483,   386,   387,   103,   192,    49,   110,    50,    43,   446,
-     399,    80,   401,   328,    51,   106,   107,   286,   549,   194,
-     347,   519,   371,   287,   288,   289,   290
+      -1,    76,   178,   179,   180,   181,   220,   237,    91,    92,
+       9,    34,    35,    42,    48,   102,   355,   289,   423,   358,
+     530,   403,   317,   507,   255,   318,    77,    93,   198,   188,
+     199,   200,   127,   244,   392,   245,    36,    10,    11,    12,
+      15,    14,   184,   208,   209,    59,   115,    20,    57,   119,
+      79,   477,   380,   381,   103,   191,    49,   110,    50,    43,
+     440,   393,    80,   395,   321,    51,   106,   107,   283,   544,
+     193,   340,   512,   365,   284,   285,   286,   287
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -444
+#define YYPACT_NINF -468
 static const short int yypact[] =
 {
-      76,  -444,  -444,  -444,  -444,  -444,   -14,   -77,    12,   548,
-      89,    91,  -444,   -40,    79,   116,   -36,   -29,   -11,    -3,
-    -444,    14,   119,   949,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,  -444,  -444,  -444,    15,    15,  1230,  -444,  -444,  -444,
-    -444,  -444,   131,  -444,  -444,  -444,  -444,  -444,   131,   124,
-    -444,    -2,   130,   -12,   173,   179,   188,  -444,  -444,  -444,
-    -444,  -444,    25,  -444,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,  -444,   212,   214,     4,    72,  -444,  -444,    44,  -444,
-    -444,  1230,  1271,   103,   152,   207,   225,   243,   260,   230,
-     241,   262,   269,   575,  -444,   263,  -444,  -444,  -444,  -444,
-    -444,  -444,  1288,  -444,   -16,  -444,  -444,   117,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,   -19,
-     -84,   140,  -444,   136,   139,   539,  -444,    44,   -99,  -444,
-     150,  -444,    44,  -444,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,  -444,  -444,    77,   283,   151,  -444,  -444,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,   154,  -444,
-    -444,  -444,   156,   157,   158,   806,  1230,   720,   270,   159,
-     162,   166,   170,  -444,  -444,   155,  -444,   103,    20,   117,
-    -444,  -444,  -444,  1369,  -444,   289,  -444,  -444,  -444,   153,
-    -444,  1123,  1271,  1271,   164,   -98,  1271,  -444,  1123,   155,
-     155,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,   174,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,   175,  1230,
-    1230,  1230,  1230,  1230,  -444,  -444,   -15,   -90,  -444,   -93,
-    -444,  1230,  1230,  1230,  1230,    -5,  -444,   140,   150,   177,
-    -444,  1271,  -444,   256,  1329,    84,   176,   131,  -444,  -444,
-      77,   283,  1271,  1271,  1271,  1271,  1271,  1271,  1271,  1271,
-    1271,  1271,  1271,  1271,  1271,  1271,  -444,   131,  -444,   160,
-    -444,  -444,  -444,     5,  -444,    20,  -444,   178,   180,    -4,
-     -39,  -444,   181,    44,   182,  -444,  -444,  1230,  1230,  -444,
-     184,   186,   187,   190,  1230,  -444,  -444,  -444,   192,   193,
-     291,   194,   311,   328,  -444,   155,  1169,   756,  -444,  -444,
-      25,  -444,   899,   899,  -444,  -444,  -444,  -444,   899,  1288,
-    1271,  1271,    67,    85,  -444,   756,   -27,   197,   201,   202,
-     203,   205,   206,   756,   756,   310,   208,  1288,  1271,  1271,
-     153,  -444,   150,  1186,  -444,  -444,  -444,  -444,  -444,   209,
-     210,    73,  1230,  1230,  1230,  1230,  -444,  1230,  1230,  1271,
-    1230,  -444,  -444,  -444,  -444,    20,   211,   213,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,   290,  1230,  -444,  -444,
-    -444,  -444,   215,  -444,   221,   899,   756,   756,    13,  -444,
-      17,  -444,  -444,   899,   216,  1271,  1271,  1271,  1271,  1271,
-     223,   224,  1271,  1271,   899,   756,   226,  -444,  -444,  -444,
-    1230,  1230,  1271,  -444,   231,   235,   234,   240,   236,   252,
-     -66,   258,    10,  1213,   317,  -444,   330,   -71,   382,   386,
-     266,   271,   272,   899,   401,   899,   278,   279,   899,   281,
-      44,  -444,   282,   288,   899,   899,    44,  -444,   292,  -444,
-    1271,   280,   287,  -444,  1230,  -444,  1230,  1230,  -444,  -444,
-    -444,  -444,  -444,  -444,  -444,    20,  -444,   374,   293,  -444,
-     899,   899,  1271,   899,   899,   297,  -444,   297,   899,   298,
-    1271,  1271,  1271,  -444,  -444,  1271,   756,  -444,  -444,   296,
-     301,   305,    10,   424,  -444,   416,   309,   295,   756,    88,
-    -444,  -444,   395,  -444,  -444,   306,   899,  -444,  -444,  -444,
-     100,  -444,  -444,  -444,  -444,  -444,  -444,  -444,   433,     3,
-     103,  1271,   418,  -444,   308,  -444,   899,  -444,  1031,     8,
-    -444,   756,   437,  -444,  -444,   319,  -444,  1031,   103,   899,
-     440,   321,  -444,   387,   899,   442,   444,  -444,   899,   899,
-    -444,  -444
+     384,  -468,  -468,  -468,  -468,  -468,    23,   -99,    -3,    74,
+      78,   507,  -468,   -66,   129,   148,   -26,     0,    26,    31,
+    -468,     6,   156,  1114,  -468,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,  -468,  -468,    66,    66,  1130,  -468,  -468,  -468,
+    -468,  -468,   138,  -468,  -468,  -468,  -468,  -468,   138,   172,
+    -468,    20,   163,   104,   208,   196,   202,  -468,  -468,  -468,
+    -468,  -468,    90,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,   258,   262,     4,    18,  -468,  -468,   -89,  -468,
+    -468,  1130,  1167,    90,   216,   240,   257,   261,   266,   264,
+     277,   270,   278,   495,  -468,   283,  -468,  -468,  -468,  -468,
+    -468,  -468,  1183,  -468,   -14,  -468,  -468,   119,  -468,  -468,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,   -19,
+     749,  -468,   145,   147,   357,  -468,   -89,   -87,  -468,   749,
+    -468,   -89,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,   557,   804,   157,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,   158,  -468,  -468,
+    -468,   167,   168,   173,   853,  1130,   582,   282,   174,   175,
+     176,   177,  -468,  -468,   181,  -468,    90,   -89,   119,  -468,
+    -468,  -468,  1271,  -468,   292,  -468,  -468,   -89,  -468,   183,
+     180,  1167,  1167,   185,   -63,  1167,  -468,   182,   181,   181,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+     186,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,   192,  1130,  1130,
+    1130,  1130,  1130,  -468,  -468,   -13,   -44,  -468,   -43,  -468,
+    1130,  1130,  1130,  1130,    12,  -468,   193,  -468,  1167,  -468,
+     267,  1230,   126,   214,   138,  -468,  -468,   557,   804,  1167,
+    1167,  1167,  1167,  1167,  1167,  1167,  1167,  1167,  1167,  1167,
+    1167,  1167,  1167,  -468,   138,  -468,   164,  -468,  -468,   162,
+    1024,  -468,     5,    -8,  -468,   188,   -89,  -468,  -468,  -468,
+    1130,  1130,  -468,   198,   199,   201,   203,  1130,  -468,  -468,
+    -468,   204,   205,   306,   206,   324,   343,  -468,   181,  1070,
+     657,  -468,  -468,    90,  -468,   800,   800,  -468,  -468,  -468,
+    -468,   800,  1183,  1167,  1167,    56,    91,  -468,   657,    35,
+     211,   212,   215,   218,   219,   220,   657,   657,   318,   221,
+    1183,  1167,  1167,  -468,  -468,  -468,  -468,  -468,   -71,  -468,
+    -468,  -468,   -71,   222,   224,    51,  1130,  1130,  1130,  1130,
+    -468,  1130,  1130,  1167,  1130,  -468,  -468,  -468,  -468,   -89,
+     227,   233,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+     317,  1130,  -468,  -468,  -468,  -468,   241,  -468,   242,   800,
+     657,   657,    10,  -468,    13,  -468,  -468,   800,   238,  1167,
+    1167,  1167,  1167,  1167,   244,   246,  1167,  1167,   800,   657,
+     248,  -468,  -468,  -468,  1130,  1130,  1167,  -468,   254,   251,
+     259,   260,   268,   269,    96,   272,    38,  1087,  -468,  -468,
+     362,   -39,   379,   391,   275,   271,   279,   800,   419,   800,
+     289,   291,   800,   293,   -89,  -468,   295,   296,   800,   800,
+     -89,  -468,   294,  -468,  1167,   288,   298,  -468,  1130,  -468,
+    1130,  1130,  -468,  -468,  -468,  -468,  -468,  -468,  -468,   -89,
+      11,   299,  -468,   800,   800,  1167,   800,   800,   303,  -468,
+     303,   800,   307,  1167,  1167,  1167,  -468,  -468,  1167,   657,
+    -468,  -468,   302,   304,   308,    38,  -468,   382,   427,   313,
+     310,   657,    70,  -468,  -468,   400,  -468,  -468,   311,   800,
+    -468,  -468,  -468,    73,  -468,  -468,  -468,  -468,  -468,   450,
+    -468,  -468,   440,     3,  -468,  1167,  -468,  -468,   315,  -468,
+    -468,   800,  -468,   932,     8,   162,   657,   -16,  -468,   -71,
+    -468,   323,  -468,   932,  -468,   445,   447,   327,   162,   800,
+     800,   449,   394,  -468,   800,   451,  -468,   800,  -468
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -444,  -444,   268,   277,   294,   299,   218,   191,  -262,  -444,
-     356,  -444,  -444,  -444,  -444,  -245,  -196,  -444,   -60,  -444,
-    -336,    27,  -444,  -199,  -444,  -444,   -23,   101,  -306,  -444,
-     264,   348,    -9,   383,  -171,   239,  -444,  -444,   464,  -444,
-    -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,  -444,     1,
-     -31,  -444,  -444,   438,  -444,  -444,  -444,  -444,  -444,  -444,
-    -443,   -52,    78,  -217,  -444,   439,  -444,  -444,  -444,  -444,
-    -444,   -10,    81,  -444,  -444,  -444,  -444
+    -468,  -468,   276,   281,   284,   287,   207,   213,  -261,  -468,
+     373,  -468,  -468,  -468,  -468,  -229,  -352,  -370,  -468,  -294,
+    -468,  -329,   -11,  -468,  -168,  -468,  -468,   -23,   194,  -275,
+    -468,   358,   364,    53,   396,  -171,   245,  -468,  -468,   480,
+    -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,  -468,
+       1,   -12,  -468,  -468,   444,  -468,  -468,  -468,  -468,  -468,
+    -468,  -467,    -1,  -278,  -194,  -468,   443,  -468,  -468,  -468,
+    -468,  -468,    16,    89,  -468,  -468,  -468,  -468
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -172
+#define YYTABLE_NINF -173
 static const short int yytable[] =
 {
-      78,    13,   121,   292,   338,   247,   249,   411,   124,   190,
-     305,   306,    13,   334,   335,   336,   337,   105,   334,   335,
-     336,   337,   339,   121,   108,   453,   322,    94,     1,   455,
-       2,   197,   198,   405,    16,    17,    18,   206,   206,   113,
-     114,   184,   357,   314,    24,    25,   314,   331,   323,   207,
-     302,   424,   127,    19,   199,   317,   316,   344,    21,   132,
-     348,   349,   350,   351,   352,   314,   454,   355,   356,    22,
-     454,   120,   131,   480,   129,   489,  -171,    60,    61,   188,
-      83,    63,    64,    65,    66,    67,    68,    69,    70,    37,
-       1,  -170,     2,   332,     1,    39,     2,     3,   120,    52,
-     333,   129,   127,     4,     5,   555,    53,   366,    13,     1,
-     120,     2,     3,   129,   561,   413,    71,   195,     4,     5,
-      40,   314,    41,     6,    54,   196,   383,   257,   258,   315,
-       7,   191,    55,   120,     8,     1,   129,     2,     6,    58,
-     365,   360,   426,   105,   361,     7,   109,   547,   208,     8,
-     112,   125,   556,    44,    45,    46,    56,   120,    47,   523,
-     129,   524,   120,   -93,   427,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   133,   134,   116,   295,   299,
-     300,   120,   -93,   303,   129,   295,   334,   335,   336,   337,
-     259,    95,    96,    97,    98,    99,   100,   101,   459,   117,
-     461,   462,   463,   408,   120,   -93,   467,   129,   118,   432,
-     -60,   -60,   433,    72,    73,   473,   122,    74,   123,    75,
-     126,   410,   120,   -93,   541,   129,   447,   542,   -59,   -59,
-     309,   310,   311,   312,   313,   362,   541,   -61,   327,   545,
-     120,   327,   318,   319,   320,   321,   -58,   -58,   -62,   342,
-     343,   327,   345,   346,   327,   327,   327,   327,   327,   353,
-     354,   327,   327,   -57,   -57,   135,   136,   186,   197,   198,
-     121,   358,   359,    81,    82,   400,   137,   548,   201,   202,
-     400,   400,   203,   527,   528,   529,   400,   557,   208,   239,
-     250,   255,   240,   400,   241,   242,   243,   251,   369,   370,
-     252,   400,   400,   385,   253,   376,   222,   223,   254,   291,
-     301,   329,   307,   308,   363,   326,   188,   406,   407,   364,
-     372,   368,   373,   374,   379,   442,   375,   367,   377,   378,
-     380,   381,   382,   414,   188,   425,   327,   415,   416,   417,
-     295,   418,   419,   422,   423,   430,   431,   443,   322,   445,
-     488,   448,   444,   400,   400,   400,   440,   449,   458,   464,
-     465,   400,   470,   434,   435,   436,   437,   474,   438,   439,
-     476,   441,   400,   400,   475,   478,   477,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   479,   327,   460,   327,   327,   327,   481,   490,   466,
-     327,   400,   491,   400,   492,   496,   400,   493,   494,   327,
-     402,   403,   400,   400,   432,   498,   404,   500,   501,   507,
-     485,   471,   472,   412,   502,   512,   508,   513,   536,   515,
-     505,   420,   421,   522,   526,   532,   537,   539,   400,   400,
-     533,   400,   400,   482,   534,   538,   400,   506,   454,   546,
-     543,   552,   553,   559,   400,   560,   564,   565,   568,   566,
-     569,   282,   341,   193,   429,   509,   400,   510,   511,   518,
-     283,   486,   304,   205,   400,    38,   183,   327,   327,   327,
-     550,   535,   518,   450,   451,   452,   104,   284,   340,     0,
-     111,   457,   285,   456,   400,   530,     0,     0,   562,   400,
-       0,     0,   468,   469,     0,     0,     0,   400,     0,     0,
-       0,     0,   400,   482,     0,     0,   400,   400,   551,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   495,     0,   497,     0,     0,   499,     0,     0,     0,
-       0,     0,   503,   504,    60,    61,     0,    83,    63,    64,
-      65,    66,    67,    68,    69,    70,     0,     1,     0,     2,
-       0,     0,     0,     0,     0,    23,     0,     0,   516,   517,
-       0,   520,   521,     0,     0,     0,   525,    24,    25,     0,
-      60,    61,     0,    71,   531,    26,    27,    28,    29,    30,
-      31,    32,     0,     1,    33,     2,   540,   138,     0,     0,
-       0,     0,     0,     0,   544,     0,     0,     0,     0,     0,
-     139,   140,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   554,     0,     0,     0,     0,   558,
-       0,     0,     0,     0,     0,     0,     0,   563,     0,     0,
-       0,     0,   567,     0,     0,     0,   570,   571,     0,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      72,    73,     0,     0,    74,     0,    75,   204,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,     0,   168,   169,   170,   171,     0,   172,   173,   174,
-       0,     0,   120,     0,     0,   129,     0,   175,     0,     0,
-     176,     0,   177,     0,   178,    60,    61,     0,    83,    84,
-      85,    86,    87,    88,    89,    90,    70,     0,     1,     0,
-       2,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   388,
-     389,    60,    61,   390,    71,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     1,     0,     2,     0,   391,   392,
-     393,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   394,   395,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    60,    61,   396,    83,    84,    85,    86,    87,    88,
-      89,    90,    70,     0,     1,     0,     2,     0,     0,     0,
+      78,    13,   331,   362,   246,   248,   422,   405,   123,   436,
+     422,   189,    13,   327,   328,   329,   330,   555,   327,   328,
+     329,   330,   447,    60,    61,   449,    83,    63,    64,    65,
+      66,    67,    68,    69,    70,   332,     1,    21,     2,   105,
+     298,   299,   315,   315,   353,   354,   108,   396,   397,   128,
+     205,   129,   126,   398,    22,   350,     1,   399,     2,   131,
+     406,   206,    71,   448,   421,   316,   448,   324,   414,   415,
+      39,    16,    17,    18,   205,   418,   551,   337,    37,   187,
+     341,   342,   343,   344,   345,   295,   557,   348,   349,    94,
+      19,    23,   183,   307,   307,    24,    25,   197,   307,   353,
+     354,   126,   309,    24,    25,   310,   197,   482,    13,   505,
+      52,    26,    27,    28,    29,    30,    31,    32,   194,   421,
+      33,   444,   445,   446,   307,   195,   353,   354,   422,   451,
+     128,   308,   129,   190,   130,   325,    53,     1,   360,     2,
+     462,   463,   326,   128,   480,   129,   421,   542,    56,   359,
+     377,   124,   552,   353,   354,   113,   114,    72,   420,   516,
+      73,   517,    54,    74,   545,    75,   125,    55,   109,   488,
+      40,   490,    41,   128,   492,   129,    58,   407,   292,   293,
+     496,   497,   296,   112,   558,    44,    45,    46,   426,   256,
+      47,   105,   427,   402,   128,   422,   129,   422,    95,    96,
+      97,    98,    99,   100,   101,   509,   510,   535,   513,   514,
+     535,   536,   116,   518,   539,   453,   117,   455,   456,   457,
+     441,   524,   118,   461,   327,   328,   329,   330,   404,   128,
+     120,   129,   467,   534,   128,   320,   129,   474,   320,   132,
+     133,   538,   547,   -60,   -60,   549,   335,   336,   320,   338,
+     339,   320,   320,   320,   320,   320,   346,   347,   320,   320,
+     -59,   -59,   121,   550,   -58,   -58,   122,   197,   554,   -57,
+     -57,   -61,   543,   134,   135,   351,   352,   353,   354,    81,
+      82,   562,   563,   553,   -62,   136,   566,   185,   201,   568,
+     202,   302,   303,   304,   305,   306,   379,   238,   239,   520,
+     521,   522,   249,   311,   312,   313,   314,   240,   241,   187,
+     400,   401,   288,   242,   250,   251,   252,   253,   254,   394,
+     290,   291,   322,   297,   394,   394,   300,   187,   419,   320,
+     394,   294,   301,   319,   361,   366,   367,   394,   368,   373,
+     369,   371,   372,   374,   375,   394,   394,   376,   408,   409,
+     434,   416,   410,   363,   364,   411,   412,   413,   417,   424,
+     370,   425,    60,    61,   437,    83,    63,    64,    65,    66,
+      67,    68,    69,    70,   438,     1,   439,     2,   442,   443,
+     452,   458,   481,   459,  -172,   464,   320,   454,   320,   320,
+     320,   468,   469,   460,   320,   483,   470,   471,   394,   394,
+     394,    71,     1,   320,     2,     3,   394,   484,   486,   472,
+     473,     4,     5,   475,   479,   485,   487,   394,   394,   428,
+     429,   430,   431,   489,   432,   433,   426,   435,   491,   500,
+     493,     6,   494,   495,   498,   529,   508,   476,     7,   501,
+     515,   499,     8,   525,   519,   526,   394,   531,   394,   527,
+     532,   394,   533,   448,   540,   537,   541,   394,   394,   548,
+     556,   559,   511,   560,   561,   564,   565,   567,   279,   506,
+     320,   320,   320,   280,   333,   511,   281,   465,   466,   282,
+     192,   334,   394,   394,   357,   394,   394,   207,   204,   182,
+     394,    38,   104,   528,   111,   450,    72,     0,   394,    73,
+      60,    61,    74,     0,    75,   203,   476,  -171,     0,     0,
+     394,     0,   546,     1,   523,     2,     0,   137,   394,     0,
+       0,   502,     0,   503,   504,     1,     0,     2,     3,     0,
+     138,   139,     0,     0,     4,     5,     0,     0,     0,     0,
+     394,     0,     0,     0,     0,   394,     0,     0,     0,     0,
+       0,     0,     0,     0,     6,     0,     0,     0,   394,   394,
+       0,     7,     0,   394,     0,     8,   394,     0,     0,   140,
      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,     0,     0,     0,     0,     0,     0,
-      71,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    72,    73,     0,     0,    74,     0,    75,   248,   155,
+     151,   152,   153,     0,     0,     0,     0,    60,    61,     0,
+      83,    84,    85,    86,    87,    88,    89,    90,    70,     0,
+       1,     0,     2,     0,     0,     0,     0,     0,   154,   155,
      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,     0,   168,   169,   170,   171,     0,   172,   173,
-     174,     0,     0,   120,     0,     0,   129,     0,     0,     0,
-       0,   397,   388,   389,    60,    61,   390,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     1,     0,     2,
-       0,   391,   392,   393,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   394,   395,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    72,    73,     0,
-     244,    74,     0,    75,    60,    61,   396,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,     0,     1,     0,     2,
-       0,     0,     0,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,     0,     0,     0,
-       0,     0,     0,    71,     0,     0,     0,     0,     0,     0,
+     166,     0,   167,   168,   169,   170,    71,   171,   172,   173,
+       0,     0,     0,   128,     0,   129,     0,   174,     0,     0,
+     175,     0,   176,     0,   177,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,     0,     0,     0,     0,     0,
+     382,   383,    60,    61,   384,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     1,     0,     2,     0,   385,
+     386,   387,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   388,   389,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,     0,   168,   169,   170,   171,
-       0,   172,   173,   174,   388,   389,     0,     0,   390,     0,
-       0,     0,     0,     0,   397,     0,     0,     0,     0,     0,
-       0,     0,     0,   391,   392,   393,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   394,   395,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   396,     0,
-      72,    73,     0,     0,    74,     0,    75,     0,     0,     0,
-       0,     0,     0,     0,     0,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    60,    61,
-       0,    83,    63,    64,    65,    66,    67,    68,    69,    70,
-       0,     1,     0,     2,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   294,   168,   169,
-     170,   171,     0,   172,   173,   174,     0,    71,     0,     0,
-       0,     0,     0,     0,    60,    61,   397,    83,    63,    64,
-      65,    66,    67,    68,    69,    70,     0,     1,     0,     2,
-       0,    60,    61,     0,    83,    63,    64,    65,    66,    67,
-      68,    69,    70,   384,     1,     0,     2,     0,     0,     0,
-       0,     0,     0,    71,     0,     0,     0,     0,    60,    61,
-     428,    83,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,     1,     0,     2,     0,    60,    61,     0,    83,    84,
-      85,    86,    87,    88,    89,    90,    70,   484,     1,     0,
-       2,     0,     0,     0,     0,     0,     0,    71,     0,     0,
-       0,     0,     0,     0,    72,    73,     0,     0,    74,     0,
-      75,     0,     0,     0,    71,     0,    60,    61,     0,    83,
-      63,    64,    65,    66,    67,    68,    69,    70,     0,     1,
-       0,     2,     0,    60,    61,     0,   187,    63,    64,    65,
-      66,    67,    68,    69,    70,     0,     1,     0,     2,     0,
-      72,    73,     0,     0,    74,    71,    75,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    72,    73,     0,
-       0,    74,    71,    75,    60,    61,     0,   330,    63,    64,
+       0,     0,     0,     0,   390,     0,     0,     0,     0,     0,
+       0,    72,     0,     0,    73,     0,     0,    74,     0,    75,
+     247,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    60,    61,     0,    83,    63,    64,
       65,    66,    67,    68,    69,    70,     0,     1,     0,     2,
-       0,     0,     0,     0,    72,    73,     0,     0,    74,     0,
-      75,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    72,    73,    71,     0,    74,     0,    75,     0,     0,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   165,   166,   196,   167,   168,   169,   170,     0,   171,
+     172,   173,     0,    71,     0,   128,     0,   129,     0,     0,
+       0,     0,   391,   382,   383,    60,    61,   384,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
+       2,     0,   385,   386,   387,     0,     0,   221,   222,     0,
+       0,     0,     0,     0,     0,   388,   389,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   390,    60,    61,
+       0,    83,    84,    85,    86,    87,    88,    89,    90,    70,
+       0,     1,     0,     2,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,    72,     0,
+       0,    73,     0,     0,    74,     0,    75,    71,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,     0,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,     0,   167,   168,   169,
+     170,     0,   171,   172,   173,   382,   383,     0,     0,   384,
+       0,     0,     0,     0,     0,   391,     0,     0,     0,     0,
+       0,     0,     0,     0,   385,   386,   387,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   388,   389,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   390,
+       0,     0,    72,     0,     0,    73,     0,   243,    74,     0,
+      75,     0,     0,     0,     0,     0,   140,   141,   142,   143,
+     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    60,
+      61,     0,    83,    63,    64,    65,    66,    67,    68,    69,
+      70,     0,     1,     0,     2,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   356,   167,
+     168,   169,   170,     0,   171,   172,   173,     0,    71,     0,
+       0,     0,     0,     0,     0,    60,    61,   391,    83,    63,
+      64,    65,    66,    67,    68,    69,    70,     0,     1,     0,
+       2,     0,    60,    61,     0,    83,    63,    64,    65,    66,
+      67,    68,    69,    70,   378,     1,     0,     2,     0,     0,
+       0,     0,     0,     0,    71,     0,     0,     0,     0,    60,
+      61,   478,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,     1,     0,     2,    60,    61,     0,    83,    84,
+      85,    86,    87,    88,    89,    90,    70,     0,     1,     0,
+       2,     0,     0,     0,     0,     0,     0,     0,    71,     0,
+       0,     0,     0,    72,     0,     0,    73,     0,     0,    74,
+       0,    75,    60,    61,    71,    83,    63,    64,    65,    66,
+      67,    68,    69,    70,     0,     1,     0,     2,    60,    61,
+       0,   186,    63,    64,    65,    66,    67,    68,    69,    70,
+       0,     1,     0,     2,     0,     0,     0,     0,     0,    72,
+       0,    71,    73,     0,     0,    74,     0,    75,     0,     0,
+       0,     0,     0,     0,     0,     0,    72,    71,     0,    73,
+       0,     0,    74,     0,    75,    60,    61,     0,   323,    63,
+      64,    65,    66,    67,    68,    69,    70,     0,     1,     0,
+       2,     0,     0,    72,     0,     0,    73,     0,     0,    74,
+       0,    75,     0,     0,     0,     0,     0,     0,     0,    72,
+       0,     0,    73,     0,    71,    74,     0,    75,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   260,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    72,    73,   261,     0,    74,     0,    75,     0,
-       0,     0,     0,     0,   262,   263,     0,     0,     0,    72,
-      73,     0,     0,    74,     0,    75,     0,   264,   265,   266,
-     267,   268,   269,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   270,   271,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      72,    73,     0,     0,    74,     0,    75,   272,   273,   274,
-       0,     0,   275,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   276,   277,   169,   170,   171,
-     278,   279,   280,   281
+       0,     0,     0,   257,     0,     0,    72,     0,     0,    73,
+       0,     0,    74,     0,    75,     0,   258,     0,     0,     0,
+       0,     0,    72,     0,     0,    73,   259,   260,    74,     0,
+      75,     0,     0,     0,     0,     0,     0,     0,     0,   261,
+     262,   263,   264,   265,   266,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   267,   268,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    72,
+       0,     0,    73,     0,     0,    74,     0,    75,     0,   269,
+     270,   271,     0,     0,   272,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   273,   274,   168,
+     169,   170,   275,   276,   277,   278
 };
 
 static const short int yycheck[] =
 {
-      23,     0,    62,   199,   266,   176,   177,   343,     4,    25,
-     209,   210,    11,    10,    11,    12,    13,    19,    10,    11,
-      12,    13,   267,    83,    26,    12,    31,    36,    18,    12,
-      20,   115,   116,   339,    48,    49,    50,   136,   136,    51,
-      52,    93,   287,   136,    29,    30,   136,   264,    53,   148,
-     148,   357,    75,    67,   138,   148,   146,   274,   135,    82,
-     277,   278,   279,   280,   281,   136,    53,   284,   285,    57,
-      53,   137,    81,   139,   140,   146,     0,     5,     6,   102,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,     0,
-      18,     0,    20,     9,    18,   135,    20,    21,   137,   135,
-      16,   140,   125,    27,    28,   548,   135,   146,   107,    18,
-     137,    20,    21,   140,   557,   142,    44,   136,    27,    28,
-      41,   136,    43,    47,   135,   144,   325,   187,   188,   144,
-      54,   147,   135,   137,    58,    18,   140,    20,    47,    20,
-     144,   136,   359,    19,   139,    54,   148,   144,   138,    58,
-      20,   147,   144,    37,    38,    39,   142,   137,    42,   495,
-     140,   497,   137,   138,   360,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    23,    24,     4,   201,   202,
-     203,   137,   138,   206,   140,   208,    10,    11,    12,    13,
-     189,    60,    61,    62,    63,    64,    65,    66,   415,    20,
-     417,   418,   419,   136,   137,   138,   423,   140,    20,   136,
-       3,     4,   139,   141,   142,   432,     4,   145,     4,   147,
-     148,   136,   137,   138,   136,   140,   397,   139,     3,     4,
-     239,   240,   241,   242,   243,   295,   136,     7,   261,   139,
-     137,   264,   251,   252,   253,   254,     3,     4,     7,   272,
+      23,     0,   263,   297,   175,   176,   358,   336,     4,   379,
+     362,    25,    11,    10,    11,    12,    13,    33,    10,    11,
+      12,    13,    12,     5,     6,    12,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,   264,    18,   136,    20,    19,
+     208,   209,    31,    31,   115,   116,    26,   325,   326,   138,
+     137,   140,    75,   331,    57,   284,    18,   332,    20,    82,
+     338,   148,    44,    53,   135,    53,    53,   261,   346,   347,
+     136,    48,    49,    50,   137,   350,   543,   271,     0,   102,
+     274,   275,   276,   277,   278,   148,   553,   281,   282,    36,
+      67,    17,    93,   137,   137,    29,    30,   120,   137,   115,
+     116,   124,   146,    29,    30,   148,   129,   146,   107,   479,
+     136,    37,    38,    39,    40,    41,    42,    43,   137,   135,
+      46,   399,   400,   401,   137,   144,   115,   116,   480,   407,
+     138,   144,   140,   147,    81,     9,   136,    18,   146,    20,
+     418,   419,    16,   138,   438,   140,   135,   144,   142,   144,
+     318,   147,   144,   115,   116,    51,    52,   139,   352,   488,
+     142,   490,   136,   145,   534,   147,   148,   136,   148,   447,
+      41,   449,    43,   138,   452,   140,    20,   142,   201,   202,
+     458,   459,   205,    20,   554,    37,    38,    39,   137,   188,
+      42,    19,   141,   137,   138,   547,   140,   549,    60,    61,
+      62,    63,    64,    65,    66,   483,   484,   137,   486,   487,
+     137,   141,     4,   491,   141,   409,    20,   411,   412,   413,
+     391,   499,    20,   417,    10,    11,    12,    13,   137,   138,
+     140,   140,   426,   511,   138,   258,   140,   141,   261,    23,
+      24,   519,   536,     3,     4,   539,   269,   270,   271,   272,
      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,     3,     4,     3,     4,     4,   115,   116,
-     330,   111,   112,    34,    35,   327,     7,   539,   138,   143,
-     332,   333,   143,   500,   501,   502,   338,   549,   138,   138,
-      20,   136,   138,   345,   138,   138,   138,   138,   307,   308,
-     138,   353,   354,   326,   138,   314,    23,    24,   138,    20,
-     146,    55,   138,   138,   136,   138,   339,   340,   341,   139,
-     136,   139,   136,   136,    33,   385,   136,   146,   136,   136,
-     136,    20,     4,   136,   357,   358,   359,   136,   136,   136,
-     363,   136,   136,    33,   136,   136,   136,   136,    31,    59,
-      20,   136,   139,   405,   406,   407,   379,   136,   142,   136,
-     136,   413,   136,   372,   373,   374,   375,   136,   377,   378,
-     136,   380,   424,   425,   139,   139,   136,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   139,   415,   416,   417,   418,   419,   139,    16,   422,
-     423,   453,    16,   455,   138,     4,   458,   136,   136,   432,
-     332,   333,   464,   465,   136,   136,   338,   136,   136,   139,
-     443,   430,   431,   345,   136,   485,   139,    53,     4,   136,
-     138,   353,   354,   136,   136,   139,    20,   142,   490,   491,
-     139,   493,   494,   442,   139,   136,   498,   470,    53,    16,
-     144,    33,   144,    16,   506,   136,    16,   136,    16,    72,
-      16,   193,   271,   107,   363,   474,   518,   476,   477,   492,
-     193,   444,   208,   125,   526,    11,    93,   500,   501,   502,
-     540,   512,   505,   405,   406,   407,    48,   193,   270,    -1,
-      51,   413,   193,   412,   546,   505,    -1,    -1,   558,   551,
-      -1,    -1,   424,   425,    -1,    -1,    -1,   559,    -1,    -1,
-      -1,    -1,   564,   512,    -1,    -1,   568,   569,   541,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,    -1,
-      -1,    -1,   464,   465,     5,     6,    -1,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    -1,    18,    -1,    20,
-      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,   490,   491,
-      -1,   493,   494,    -1,    -1,    -1,   498,    29,    30,    -1,
-       5,     6,    -1,    44,   506,    37,    38,    39,    40,    41,
-      42,    43,    -1,    18,    46,    20,   518,    22,    -1,    -1,
-      -1,    -1,    -1,    -1,   526,    -1,    -1,    -1,    -1,    -1,
-      35,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   546,    -1,    -1,    -1,    -1,   551,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   559,    -1,    -1,
-      -1,    -1,   564,    -1,    -1,    -1,   568,   569,    -1,    74,
+       3,     4,     4,   541,     3,     4,     4,   290,   546,     3,
+       4,     7,   533,     3,     4,   111,   112,   115,   116,    34,
+      35,   559,   560,   544,     7,     7,   564,     4,   143,   567,
+     143,   238,   239,   240,   241,   242,   319,   140,   140,   493,
+     494,   495,    20,   250,   251,   252,   253,   140,   140,   332,
+     333,   334,    20,   140,   140,   140,   140,   140,   137,   320,
+     137,   141,    55,   141,   325,   326,   140,   350,   351,   352,
+     331,   146,   140,   140,   146,   137,   137,   338,   137,    33,
+     137,   137,   137,   137,    20,   346,   347,     4,   137,   137,
+     373,    33,   137,   300,   301,   137,   137,   137,   137,   137,
+     307,   137,     5,     6,   137,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,   141,    18,    59,    20,   137,   137,
+     142,   137,    20,   137,     0,   137,   409,   410,   411,   412,
+     413,   137,   141,   416,   417,    16,   137,   137,   399,   400,
+     401,    44,    18,   426,    20,    21,   407,    16,   137,   141,
+     141,    27,    28,   141,   437,   140,   137,   418,   419,   366,
+     367,   368,   369,     4,   371,   372,   137,   374,   137,   141,
+     137,    47,   137,   137,   140,    53,   137,   436,    54,   141,
+     137,   464,    58,   141,   137,   141,   447,    20,   449,   141,
+     137,   452,   142,    53,     4,   144,    16,   458,   459,   144,
+     137,    16,   485,    16,   137,    16,    72,    16,   192,   480,
+     493,   494,   495,   192,   267,   498,   192,   424,   425,   192,
+     107,   268,   483,   484,   290,   486,   487,   129,   124,    93,
+     491,    11,    48,   505,    51,   406,   139,    -1,   499,   142,
+       5,     6,   145,    -1,   147,   148,   505,     0,    -1,    -1,
+     511,    -1,   535,    18,   498,    20,    -1,    22,   519,    -1,
+      -1,   468,    -1,   470,   471,    18,    -1,    20,    21,    -1,
+      35,    36,    -1,    -1,    27,    28,    -1,    -1,    -1,    -1,
+     541,    -1,    -1,    -1,    -1,   546,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,   559,   560,
+      -1,    54,    -1,   564,    -1,    58,   567,    -1,    -1,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     141,   142,    -1,    -1,   145,    -1,   147,   148,   113,   114,
+      85,    86,    87,    -1,    -1,    -1,    -1,     5,     6,    -1,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    -1,
+      18,    -1,    20,    -1,    -1,    -1,    -1,    -1,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,    -1,   127,   128,   129,   130,    -1,   132,   133,   134,
-      -1,    -1,   137,    -1,    -1,   140,    -1,   142,    -1,    -1,
-     145,    -1,   147,    -1,   149,     5,     6,    -1,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    -1,    18,    -1,
-      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
-       4,     5,     6,     7,    44,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    18,    -1,    20,    -1,    22,    23,
-      24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    35,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     125,    -1,   127,   128,   129,   130,    44,   132,   133,   134,
+      -1,    -1,    -1,   138,    -1,   140,    -1,   142,    -1,    -1,
+     145,    -1,   147,    -1,   149,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    -1,    -1,    -1,    -1,    -1,
+       3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    18,    -1,    20,    -1,    22,
+      23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    35,    36,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     5,     6,    57,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    -1,    18,    -1,    20,    -1,    -1,    -1,
-      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
-      44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   141,   142,    -1,    -1,   145,    -1,   147,   148,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,    -1,   127,   128,   129,   130,    -1,   132,   133,
-     134,    -1,    -1,   137,    -1,    -1,   140,    -1,    -1,    -1,
-      -1,   145,     3,     4,     5,     6,     7,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,    -1,    20,
-      -1,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    35,    36,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,   142,    -1,
-     144,   145,    -1,   147,     5,     6,    57,     8,     9,    10,
+      -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
+      -1,   139,    -1,    -1,   142,    -1,    -1,   145,    -1,   147,
+     148,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,     5,     6,    -1,     8,     9,    10,
       11,    12,    13,    14,    15,    16,    -1,    18,    -1,    20,
-      -1,    -1,    -1,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,    34,   127,   128,   129,   130,    -1,   132,
+     133,   134,    -1,    44,    -1,   138,    -1,   140,    -1,    -1,
+      -1,    -1,   145,     3,     4,     5,     6,     7,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,    -1,
+      20,    -1,    22,    23,    24,    -1,    -1,    23,    24,    -1,
+      -1,    -1,    -1,    -1,    -1,    35,    36,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
-      -1,   132,   133,   134,     3,     4,    -1,    -1,     7,    -1,
-      -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    22,    23,    24,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
-     141,   142,    -1,    -1,   145,    -1,   147,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,     5,     6,
       -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      -1,    18,    -1,    20,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,    34,   127,   128,
-     129,   130,    -1,   132,   133,   134,    -1,    44,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,   145,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    -1,    18,    -1,    20,
-      -1,     5,     6,    -1,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    34,    18,    -1,    20,    -1,    -1,    -1,
-      -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,     5,     6,
-      34,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      44,    18,    -1,    20,    -1,     5,     6,    -1,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    34,    18,    -1,
-      20,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,
-      -1,    -1,    -1,    -1,   141,   142,    -1,    -1,   145,    -1,
-     147,    -1,    -1,    -1,    44,    -1,     5,     6,    -1,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    -1,    18,
-      -1,    20,    -1,     5,     6,    -1,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    -1,    18,    -1,    20,    -1,
-     141,   142,    -1,    -1,   145,    44,   147,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,   142,    -1,
-      -1,   145,    44,   147,     5,     6,    -1,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    -1,    18,    -1,    20,
-      -1,    -1,    -1,    -1,   141,   142,    -1,    -1,   145,    -1,
-     147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   141,   142,    44,    -1,   145,    -1,   147,    -1,    -1,
+      -1,    18,    -1,    20,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,   139,    -1,
+      -1,   142,    -1,    -1,   145,    -1,   147,    44,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,    -1,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
+     130,    -1,   132,   133,   134,     3,     4,    -1,    -1,     7,
+      -1,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    22,    23,    24,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
+      -1,    -1,   139,    -1,    -1,   142,    -1,   144,   145,    -1,
+     147,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
+       6,    -1,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    -1,    18,    -1,    20,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,    34,   127,
+     128,   129,   130,    -1,   132,   133,   134,    -1,    44,    -1,
+      -1,    -1,    -1,    -1,    -1,     5,     6,   145,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    -1,    18,    -1,
+      20,    -1,     5,     6,    -1,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    34,    18,    -1,    20,    -1,    -1,
+      -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,     5,
+       6,    34,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    44,    18,    -1,    20,     5,     6,    -1,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    -1,    18,    -1,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
+      -1,    -1,    -1,   139,    -1,    -1,   142,    -1,    -1,   145,
+      -1,   147,     5,     6,    44,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    -1,    18,    -1,    20,     5,     6,
+      -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      -1,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,   139,
+      -1,    44,   142,    -1,    -1,   145,    -1,   147,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   139,    44,    -1,   142,
+      -1,    -1,   145,    -1,   147,     5,     6,    -1,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    -1,    18,    -1,
+      20,    -1,    -1,   139,    -1,    -1,   142,    -1,    -1,   145,
+      -1,   147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,
+      -1,    -1,   142,    -1,    44,   145,    -1,   147,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   141,   142,    45,    -1,   145,    -1,   147,    -1,
-      -1,    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,   141,
-     142,    -1,    -1,   145,    -1,   147,    -1,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     141,   142,    -1,    -1,   145,    -1,   147,   108,   109,   110,
-      -1,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134
+      -1,    -1,    -1,    32,    -1,    -1,   139,    -1,    -1,   142,
+      -1,    -1,   145,    -1,   147,    -1,    45,    -1,    -1,    -1,
+      -1,    -1,   139,    -1,    -1,   142,    55,    56,   145,    -1,
+     147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,
+      -1,    -1,   142,    -1,    -1,   145,    -1,   147,    -1,   108,
+     109,   110,    -1,    -1,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   134
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2290,63 +2271,62 @@
 static const unsigned char yystos[] =
 {
        0,    18,    20,    21,    27,    28,    47,    54,    58,   160,
-     186,   187,   188,   199,   190,   189,    48,    49,    50,    67,
-     196,   135,    57,    17,    29,    30,    37,    38,    39,    40,
-      41,    42,    43,    46,   161,   162,   185,     0,   188,   135,
-      41,    43,   163,   208,    37,    38,    39,    42,   164,   205,
-     207,   214,   135,   135,   135,   135,   142,   197,    20,   194,
+     187,   188,   189,   200,   191,   190,    48,    49,    50,    67,
+     197,   136,    57,    17,    29,    30,    37,    38,    39,    40,
+      41,    42,    43,    46,   161,   162,   186,     0,   189,   136,
+      41,    43,   163,   209,    37,    38,    39,    42,   164,   206,
+     208,   215,   136,   136,   136,   136,   142,   198,    20,   195,
        5,     6,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    44,   141,   142,   145,   147,   151,   175,   176,   199,
-     211,   185,   185,     8,     9,    10,    11,    12,    13,    14,
-      15,   158,   159,   176,   182,    60,    61,    62,    63,    64,
-      65,    66,   165,   203,   203,    19,   215,   216,    26,   148,
-     206,   215,    20,    51,    52,   195,     4,    20,    20,   198,
-     137,   168,     4,     4,     4,   147,   148,   176,   181,   140,
-     168,   182,   176,    23,    24,     3,     4,     7,    22,    35,
-      36,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   127,   128,
-     129,   130,   132,   133,   134,   142,   145,   147,   149,   152,
-     153,   154,   155,   183,   211,   191,     4,     8,   176,   178,
-      25,   147,   204,   160,   219,   136,   144,   115,   116,   138,
-     166,   138,   143,   143,   148,   181,   136,   148,   138,   192,
-     193,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,   156,    23,    24,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   157,   138,
-     138,   138,   138,   138,   144,   182,   184,   184,   148,   184,
-      20,   138,   138,   138,   138,   136,   173,   168,   168,   199,
-      32,    45,    55,    56,    68,    69,    70,    71,    72,    73,
-      86,    87,   108,   109,   110,   113,   126,   127,   131,   132,
-     133,   134,   152,   153,   154,   155,   217,   223,   224,   225,
-     226,    20,   166,   167,    34,   176,   177,   179,   180,   176,
-     176,   146,   148,   176,   180,   173,   173,   138,   138,   182,
-     182,   182,   182,   182,   136,   144,   146,   148,   182,   182,
-     182,   182,    31,    53,   171,   174,   138,   176,   213,    55,
-       8,   213,     9,    16,    10,    11,    12,    13,   158,   165,
-     156,   157,   176,   176,   213,   176,   176,   220,   213,   213,
-     213,   213,   213,   176,   176,   213,   213,   165,   111,   112,
-     136,   139,   168,   136,   139,   144,   146,   146,   139,   182,
-     182,   222,   136,   136,   136,   136,   182,   136,   136,    33,
-     136,    20,     4,   173,    34,   176,   201,   202,     3,     4,
-       7,    22,    23,    24,    35,    36,    57,   145,   183,   210,
-     211,   212,   212,   212,   212,   178,   176,   176,   136,   170,
-     136,   170,   212,   142,   136,   136,   136,   136,   136,   136,
-     212,   212,    33,   136,   178,   176,   213,   166,    34,   177,
-     136,   136,   136,   139,   182,   182,   182,   182,   182,   182,
-     176,   182,   168,   136,   139,    59,   209,   184,   136,   136,
-     212,   212,   212,    12,    53,    12,   222,   212,   142,   213,
-     176,   213,   213,   213,   136,   136,   176,   213,   212,   212,
-     136,   182,   182,   213,   136,   139,   136,   136,   139,   139,
-     139,   139,   199,   200,    34,   176,   171,   172,    20,   146,
-      16,    16,   138,   136,   136,   212,     4,   212,   136,   212,
-     136,   136,   136,   212,   212,   138,   176,   139,   139,   182,
-     182,   182,   168,    53,   169,   136,   212,   212,   176,   221,
-     212,   212,   136,   170,   170,   212,   136,   213,   213,   213,
-     221,   212,   139,   139,   139,   200,     4,    20,   136,   142,
-     212,   136,   139,   144,   212,   139,    16,   144,   158,   218,
-     168,   176,    33,   144,   212,   210,   144,   158,   212,    16,
-     136,   210,   168,   212,    16,   136,    72,   212,    16,    16,
-     212,   212
+      16,    44,   139,   142,   145,   147,   151,   176,   177,   200,
+     212,   186,   186,     8,     9,    10,    11,    12,    13,    14,
+      15,   158,   159,   177,   183,    60,    61,    62,    63,    64,
+      65,    66,   165,   204,   204,    19,   216,   217,    26,   148,
+     207,   216,    20,    51,    52,   196,     4,    20,    20,   199,
+     140,     4,     4,     4,   147,   148,   177,   182,   138,   140,
+     183,   177,    23,    24,     3,     4,     7,    22,    35,    36,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   127,   128,   129,
+     130,   132,   133,   134,   142,   145,   147,   149,   152,   153,
+     154,   155,   184,   212,   192,     4,     8,   177,   179,    25,
+     147,   205,   160,   220,   137,   144,    34,   177,   178,   180,
+     181,   143,   143,   148,   182,   137,   148,   181,   193,   194,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+     156,    23,    24,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   157,   140,   140,
+     140,   140,   140,   144,   183,   185,   185,   148,   185,    20,
+     140,   140,   140,   140,   137,   174,   200,    32,    45,    55,
+      56,    68,    69,    70,    71,    72,    73,    86,    87,   108,
+     109,   110,   113,   126,   127,   131,   132,   133,   134,   152,
+     153,   154,   155,   218,   224,   225,   226,   227,    20,   167,
+     137,   141,   177,   177,   146,   148,   177,   141,   174,   174,
+     140,   140,   183,   183,   183,   183,   183,   137,   144,   146,
+     148,   183,   183,   183,   183,    31,    53,   172,   175,   140,
+     177,   214,    55,     8,   214,     9,    16,    10,    11,    12,
+      13,   158,   165,   156,   157,   177,   177,   214,   177,   177,
+     221,   214,   214,   214,   214,   214,   177,   177,   214,   214,
+     165,   111,   112,   115,   116,   166,    34,   178,   169,   144,
+     146,   146,   169,   183,   183,   223,   137,   137,   137,   137,
+     183,   137,   137,    33,   137,    20,     4,   174,    34,   177,
+     202,   203,     3,     4,     7,    22,    23,    24,    35,    36,
+      57,   145,   184,   211,   212,   213,   213,   213,   213,   179,
+     177,   177,   137,   171,   137,   171,   213,   142,   137,   137,
+     137,   137,   137,   137,   213,   213,    33,   137,   179,   177,
+     214,   135,   166,   168,   137,   137,   137,   141,   183,   183,
+     183,   183,   183,   183,   177,   183,   167,   137,   141,    59,
+     210,   185,   137,   137,   213,   213,   213,    12,    53,    12,
+     223,   213,   142,   214,   177,   214,   214,   214,   137,   137,
+     177,   214,   213,   213,   137,   183,   183,   214,   137,   141,
+     137,   137,   141,   141,   141,   141,   200,   201,    34,   177,
+     169,    20,   146,    16,    16,   140,   137,   137,   213,     4,
+     213,   137,   213,   137,   137,   137,   213,   213,   140,   177,
+     141,   141,   183,   183,   183,   167,   172,   173,   137,   213,
+     213,   177,   222,   213,   213,   137,   171,   171,   213,   137,
+     214,   214,   214,   222,   213,   141,   141,   141,   201,    53,
+     170,    20,   137,   142,   213,   137,   141,   144,   213,   141,
+       4,    16,   144,   158,   219,   167,   177,   169,   144,   169,
+     213,   211,   144,   158,   213,    33,   137,   211,   167,    16,
+      16,   137,   213,   213,    16,    72,   213,    16,   213
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -3016,7 +2996,7 @@
   switch (yyn)
     {
         case 3:
-#line 1036 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1039 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
     GEN_ERROR("Value too large for type!");
@@ -3026,137 +3006,137 @@
     break;
 
   case 31:
-#line 1052 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1055 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 32:
-#line 1052 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1055 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 33:
-#line 1053 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1056 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 34:
-#line 1053 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1056 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 35:
-#line 1054 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1057 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 36:
-#line 1054 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1057 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 37:
-#line 1055 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1058 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 38:
-#line 1055 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1058 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 39:
-#line 1056 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1059 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 40:
-#line 1056 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1059 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 41:
-#line 1060 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1063 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 42:
-#line 1060 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1063 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 43:
-#line 1061 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1064 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 44:
-#line 1061 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1064 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 45:
-#line 1062 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1065 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 46:
-#line 1062 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1065 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 47:
-#line 1063 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1066 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 48:
-#line 1063 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1066 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 49:
-#line 1064 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1067 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 50:
-#line 1064 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1067 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 51:
-#line 1065 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1068 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 52:
-#line 1065 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1068 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 53:
-#line 1066 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1069 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 54:
-#line 1066 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1069 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 55:
-#line 1067 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1070 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 56:
-#line 1068 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1071 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 63:
-#line 1077 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1080 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
@@ -3164,7 +3144,7 @@
     break;
 
   case 64:
-#line 1081 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1084 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3172,122 +3152,122 @@
     break;
 
   case 65:
-#line 1087 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1090 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 66:
-#line 1088 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1091 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 67:
-#line 1089 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1092 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 68:
-#line 1090 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1093 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 69:
-#line 1091 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1094 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 70:
-#line 1095 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1098 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 71:
-#line 1096 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1099 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 72:
-#line 1097 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1100 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 73:
-#line 1101 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1104 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 74:
-#line 1102 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1105 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 75:
-#line 1103 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1106 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 76:
-#line 1107 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1110 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 77:
-#line 1108 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 78:
-#line 1109 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1112 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 79:
-#line 1110 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1113 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 80:
-#line 1111 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1114 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 81:
-#line 1114 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1117 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 82:
-#line 1115 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1118 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 83:
-#line 1116 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1119 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::CSRet; ;}
     break;
 
   case 84:
-#line 1117 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1120 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 85:
-#line 1118 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1121 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 86:
-#line 1119 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1122 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
   case 87:
-#line 1120 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1123 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
   case 88:
-#line 1121 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1124 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
                      GEN_ERROR("Calling conv too large!");
@@ -3297,49 +3277,51 @@
     break;
 
   case 89:
-#line 1128 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1131 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::ZExtAttribute; ;}
     break;
 
   case 90:
-#line 1129 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1132 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::SExtAttribute; ;}
     break;
 
   case 91:
-#line 1132 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = (yyvsp[0].ParamAttrs); ;}
+#line 1135 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
     break;
 
   case 92:
-#line 1133 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1136 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-2].ParamAttrs) | (yyvsp[0].ParamAttrs));
+                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
               ;}
     break;
 
   case 93:
-#line 1138 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
-    break;
-
-  case 94:
-#line 1139 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = (yyvsp[0].ParamAttrs); ;}
+#line 1141 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoReturnAttribute; ;}
     break;
 
   case 95:
-#line 1140 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = (yyvsp[-1].ParamAttrs); ;}
+#line 1145 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
     break;
 
   case 96:
-#line 1145 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.UIntVal) = 0; ;}
+#line 1146 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
+              ;}
     break;
 
   case 97:
-#line 1146 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 1153 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 98:
+#line 1154 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3348,13 +3330,13 @@
 ;}
     break;
 
-  case 98:
-#line 1152 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 99:
+#line 1160 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
-  case 99:
-#line 1153 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 100:
+#line 1161 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3363,8 +3345,8 @@
 ;}
     break;
 
-  case 100:
-#line 1161 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 101:
+#line 1169 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
     if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -3374,28 +3356,28 @@
 ;}
     break;
 
-  case 101:
-#line 1169 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 102:
+#line 1177 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 102:
-#line 1170 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 103:
+#line 1178 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
-  case 103:
-#line 1175 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 104:
+#line 1183 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
-  case 104:
-#line 1176 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 105:
+#line 1184 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
-  case 105:
-#line 1177 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 106:
+#line 1185 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3403,8 +3385,8 @@
   ;}
     break;
 
-  case 106:
-#line 1182 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 107:
+#line 1190 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two!");
@@ -3413,24 +3395,24 @@
   ;}
     break;
 
-  case 115:
-#line 1198 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 116:
+#line 1206 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 116:
-#line 1202 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 117:
+#line 1210 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 117:
-#line 1206 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 118:
+#line 1214 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -3440,8 +3422,8 @@
   ;}
     break;
 
-  case 118:
-#line 1213 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 119:
+#line 1221 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -3449,8 +3431,8 @@
   ;}
     break;
 
-  case 119:
-#line 1218 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 120:
+#line 1226 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -3461,13 +3443,13 @@
   ;}
     break;
 
-  case 120:
-#line 1226 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 121:
+#line 1234 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back((yyvsp[-3].ParamAttrs));
-    for (TypeWithAttrsList::iterator I=(yyvsp[-1].TypeWithAttrsList)->begin(), E=(yyvsp[-1].TypeWithAttrsList)->end(); I != E; ++I) {
+    Attrs.push_back((yyvsp[0].ParamAttrs));
+    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -3476,20 +3458,20 @@
     if (isVarArg) Params.pop_back();
 
     FunctionType *FT = FunctionType::get(*(yyvsp[-4].TypeVal), Params, isVarArg, Attrs);
-    delete (yyvsp[-1].TypeWithAttrsList);      // Delete the argument list
+    delete (yyvsp[-2].TypeWithAttrsList);      // Delete the argument list
     delete (yyvsp[-4].TypeVal);   // Delete the return type handle
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 121:
-#line 1244 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 122:
+#line 1252 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back((yyvsp[-3].ParamAttrs));
-    for (TypeWithAttrsList::iterator I=(yyvsp[-1].TypeWithAttrsList)->begin(), E=(yyvsp[-1].TypeWithAttrsList)->end(); I != E; ++I) {
+    Attrs.push_back((yyvsp[0].ParamAttrs));
+    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -3498,14 +3480,14 @@
     if (isVarArg) Params.pop_back();
 
     FunctionType *FT = FunctionType::get((yyvsp[-4].PrimType), Params, isVarArg, Attrs);
-    delete (yyvsp[-1].TypeWithAttrsList);      // Delete the argument list
+    delete (yyvsp[-2].TypeWithAttrsList);      // Delete the argument list
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 122:
-#line 1262 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 123:
+#line 1270 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {          // Sized array type?
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
     delete (yyvsp[-1].TypeVal);
@@ -3513,8 +3495,8 @@
   ;}
     break;
 
-  case 123:
-#line 1267 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 124:
+#line 1275 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {          // Packed array type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -3529,8 +3511,8 @@
   ;}
     break;
 
-  case 124:
-#line 1279 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 125:
+#line 1287 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3543,16 +3525,16 @@
   ;}
     break;
 
-  case 125:
-#line 1289 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 126:
+#line 1297 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 126:
-#line 1293 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 127:
+#line 1301 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -3565,44 +3547,42 @@
   ;}
     break;
 
-  case 127:
-#line 1303 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 128:
+#line 1311 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                         // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 128:
-#line 1310 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 129:
+#line 1318 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { 
     (yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal); 
     (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs); 
   ;}
     break;
 
-  case 129:
-#line 1317 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
-    { 
+  case 130:
+#line 1325 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
-    if (!(*(yyvsp[-1].TypeVal))->isFirstClassType())
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    if (!(*(yyvsp[0].TypeVal))->isFirstClassType())
       GEN_ERROR("LLVM functions cannot return aggregate types!");
-    (yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal);
-    (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs);
+    (yyval.TypeVal) = (yyvsp[0].TypeVal);
   ;}
     break;
 
-  case 130:
-#line 1325 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 131:
+#line 1332 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    (yyval.TypeWithAttrs).Ty = new PATypeHolder(Type::VoidTy);
-    (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs);
+    (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
   ;}
     break;
 
-  case 131:
-#line 1331 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 132:
+#line 1337 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     (yyval.TypeWithAttrsList)->push_back((yyvsp[0].TypeWithAttrs));
@@ -3610,16 +3590,16 @@
   ;}
     break;
 
-  case 132:
-#line 1336 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 133:
+#line 1342 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList))->push_back((yyvsp[0].TypeWithAttrs));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 134:
-#line 1344 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 135:
+#line 1350 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList);
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
@@ -3629,8 +3609,8 @@
   ;}
     break;
 
-  case 135:
-#line 1351 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 136:
+#line 1357 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
@@ -3640,16 +3620,16 @@
   ;}
     break;
 
-  case 136:
-#line 1358 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 137:
+#line 1364 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 137:
-#line 1366 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 138:
+#line 1372 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
@@ -3657,16 +3637,16 @@
   ;}
     break;
 
-  case 138:
-#line 1371 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 139:
+#line 1377 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 139:
-#line 1382 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 140:
+#line 1388 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3697,8 +3677,8 @@
   ;}
     break;
 
-  case 140:
-#line 1410 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 141:
+#line 1416 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3717,8 +3697,8 @@
   ;}
     break;
 
-  case 141:
-#line 1426 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 142:
+#line 1432 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3750,8 +3730,8 @@
   ;}
     break;
 
-  case 142:
-#line 1455 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 143:
+#line 1461 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3782,8 +3762,8 @@
   ;}
     break;
 
-  case 143:
-#line 1483 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 144:
+#line 1489 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
@@ -3807,8 +3787,8 @@
   ;}
     break;
 
-  case 144:
-#line 1504 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 145:
+#line 1510 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3826,8 +3806,8 @@
   ;}
     break;
 
-  case 145:
-#line 1519 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 146:
+#line 1525 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3842,8 +3822,8 @@
   ;}
     break;
 
-  case 146:
-#line 1531 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 147:
+#line 1537 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3853,8 +3833,8 @@
   ;}
     break;
 
-  case 147:
-#line 1538 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 148:
+#line 1544 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3920,8 +3900,8 @@
   ;}
     break;
 
-  case 148:
-#line 1601 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 149:
+#line 1607 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3934,8 +3914,8 @@
   ;}
     break;
 
-  case 149:
-#line 1611 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 150:
+#line 1617 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3948,8 +3928,8 @@
   ;}
     break;
 
-  case 150:
-#line 1621 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 151:
+#line 1627 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
@@ -3958,8 +3938,8 @@
   ;}
     break;
 
-  case 151:
-#line 1627 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 152:
+#line 1633 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
@@ -3968,24 +3948,24 @@
   ;}
     break;
 
-  case 152:
-#line 1633 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 153:
+#line 1639 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
     (yyval.ConstVal) = ConstantBool::getTrue();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 153:
-#line 1637 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 154:
+#line 1643 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
     (yyval.ConstVal) = ConstantBool::getFalse();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 154:
-#line 1641 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 155:
+#line 1647 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
       GEN_ERROR("Floating point constant invalid for type!!");
@@ -3994,8 +3974,8 @@
   ;}
     break;
 
-  case 155:
-#line 1649 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 156:
+#line 1655 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4012,8 +3992,8 @@
   ;}
     break;
 
-  case 156:
-#line 1663 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 157:
+#line 1669 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand!");
@@ -4037,8 +4017,8 @@
   ;}
     break;
 
-  case 157:
-#line 1684 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 158:
+#line 1690 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy)
       GEN_ERROR("Select condition must be of boolean type!");
@@ -4049,8 +4029,8 @@
   ;}
     break;
 
-  case 158:
-#line 1692 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 159:
+#line 1698 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match!");
@@ -4059,8 +4039,8 @@
   ;}
     break;
 
-  case 159:
-#line 1698 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 160:
+#line 1704 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match!");
@@ -4074,8 +4054,8 @@
   ;}
     break;
 
-  case 160:
-#line 1709 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 161:
+#line 1715 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match!");
@@ -4083,8 +4063,8 @@
   ;}
     break;
 
-  case 161:
-#line 1714 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 162:
+#line 1720 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match!");
@@ -4092,8 +4072,8 @@
   ;}
     break;
 
-  case 162:
-#line 1719 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 163:
+#line 1725 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-1].ConstVal)->getType() != Type::Int8Ty)
       GEN_ERROR("Shift count for shift constant must be i8 type!");
@@ -4105,8 +4085,8 @@
   ;}
     break;
 
-  case 163:
-#line 1728 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 164:
+#line 1734 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid extractelement operands!");
@@ -4115,8 +4095,8 @@
   ;}
     break;
 
-  case 164:
-#line 1734 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 165:
+#line 1740 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid insertelement operands!");
@@ -4125,8 +4105,8 @@
   ;}
     break;
 
-  case 165:
-#line 1740 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 166:
+#line 1746 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands!");
@@ -4135,16 +4115,16 @@
   ;}
     break;
 
-  case 166:
-#line 1749 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 167:
+#line 1755 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 167:
-#line 1753 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 168:
+#line 1759 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4152,18 +4132,18 @@
   ;}
     break;
 
-  case 168:
-#line 1761 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 169:
+#line 1767 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
-  case 169:
-#line 1761 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 170:
+#line 1767 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
-  case 170:
-#line 1772 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 171:
+#line 1778 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4171,8 +4151,8 @@
   ;}
     break;
 
-  case 171:
-#line 1777 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 172:
+#line 1783 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4180,40 +4160,40 @@
   ;}
     break;
 
-  case 174:
-#line 1790 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 175:
+#line 1796 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = false ;}
     break;
 
-  case 175:
-#line 1790 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 176:
+#line 1796 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 176:
-#line 1794 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 177:
+#line 1800 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
-  case 177:
-#line 1794 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 178:
+#line 1800 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 178:
-#line 1797 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 179:
+#line 1803 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 179:
-#line 1800 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 180:
+#line 1806 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     // Emit an error if there are any unresolved types left.
     if (!CurModule.LateResolveTypes.empty()) {
@@ -4228,8 +4208,8 @@
   ;}
     break;
 
-  case 180:
-#line 1812 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 181:
+#line 1818 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4256,8 +4236,8 @@
   ;}
     break;
 
-  case 181:
-#line 1836 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 182:
+#line 1842 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     ResolveTypeTo((yyvsp[-2].StrVal), (yyvsp[0].PrimType));
 
@@ -4271,8 +4251,8 @@
   ;}
     break;
 
-  case 182:
-#line 1847 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 183:
+#line 1853 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { /* "Externally Visible" Linkage */
     if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant!");
@@ -4282,15 +4262,15 @@
   ;}
     break;
 
-  case 183:
-#line 1853 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 184:
+#line 1859 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
-  case 184:
-#line 1856 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 185:
+#line 1862 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant!");
@@ -4299,15 +4279,15 @@
   ;}
     break;
 
-  case 185:
-#line 1861 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 186:
+#line 1867 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
-  case 186:
-#line 1864 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 187:
+#line 1870 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4317,30 +4297,30 @@
   ;}
     break;
 
-  case 187:
-#line 1870 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 188:
+#line 1876 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 188:
-#line 1874 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 189:
+#line 1880 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { 
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 189:
-#line 1877 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 190:
+#line 1883 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 190:
-#line 1883 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 191:
+#line 1889 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4355,26 +4335,26 @@
 ;}
     break;
 
-  case 191:
-#line 1896 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 192:
+#line 1902 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Endianness) = Module::BigEndian; ;}
     break;
 
-  case 192:
-#line 1897 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 193:
+#line 1903 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Endianness) = Module::LittleEndian; ;}
     break;
 
-  case 193:
-#line 1899 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 194:
+#line 1905 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 194:
-#line 1903 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 195:
+#line 1909 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) == 32)
       CurModule.CurrentModule->setPointerSize(Module::Pointer32);
@@ -4386,24 +4366,24 @@
   ;}
     break;
 
-  case 195:
-#line 1912 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 196:
+#line 1918 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
   ;}
     break;
 
-  case 196:
-#line 1916 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 197:
+#line 1922 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
   ;}
     break;
 
-  case 198:
-#line 1923 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 199:
+#line 1929 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4411,8 +4391,8 @@
         ;}
     break;
 
-  case 199:
-#line 1928 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 200:
+#line 1934 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4420,20 +4400,20 @@
         ;}
     break;
 
-  case 200:
-#line 1933 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 201:
+#line 1939 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
-  case 204:
-#line 1943 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 205:
+#line 1949 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 205:
-#line 1945 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 206:
+#line 1951 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4446,8 +4426,8 @@
   ;}
     break;
 
-  case 206:
-#line 1955 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 207:
+#line 1961 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4460,16 +4440,16 @@
   ;}
     break;
 
-  case 207:
-#line 1966 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 208:
+#line 1972 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[0].ArgList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 208:
-#line 1970 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 209:
+#line 1976 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     struct ArgListEntry E;
@@ -4481,8 +4461,8 @@
   ;}
     break;
 
-  case 209:
-#line 1979 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 210:
+#line 1985 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
@@ -4494,31 +4474,31 @@
   ;}
     break;
 
-  case 210:
-#line 1988 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 211:
+#line 1994 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 211:
-#line 1994 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 212:
+#line 2000 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  UnEscapeLexed((yyvsp[-5].StrVal));
-  std::string FunctionName((yyvsp[-5].StrVal));
-  free((yyvsp[-5].StrVal));  // Free strdup'd memory!
+  UnEscapeLexed((yyvsp[-6].StrVal));
+  std::string FunctionName((yyvsp[-6].StrVal));
+  free((yyvsp[-6].StrVal));  // Free strdup'd memory!
   
   // Check the function result for abstractness if this is a define. We should
   // have no abstract types at this point
-  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved((yyvsp[-6].TypeWithAttrs).Ty))
-    GEN_ERROR("Reference to abstract result: "+ (yyvsp[-6].TypeWithAttrs).Ty->get()->getDescription());
+  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved((yyvsp[-7].TypeVal)))
+    GEN_ERROR("Reference to abstract result: "+ (yyvsp[-7].TypeVal)->get()->getDescription());
 
   std::vector<const Type*> ParamTypeList;
   std::vector<FunctionType::ParameterAttributes> ParamAttrs;
-  ParamAttrs.push_back((yyvsp[-6].TypeWithAttrs).Attrs);
-  if ((yyvsp[-3].ArgList)) {   // If there are arguments...
-    for (ArgListType::iterator I = (yyvsp[-3].ArgList)->begin(); I != (yyvsp[-3].ArgList)->end(); ++I) {
+  ParamAttrs.push_back((yyvsp[-2].ParamAttrs));
+  if ((yyvsp[-4].ArgList)) {   // If there are arguments...
+    for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin(); I != (yyvsp[-4].ArgList)->end(); ++I) {
       const Type* Ty = I->Ty->get();
       if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(I->Ty))
         GEN_ERROR("Reference to abstract argument: " + Ty->getDescription());
@@ -4531,10 +4511,10 @@
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  FunctionType *FT = FunctionType::get(*(yyvsp[-6].TypeWithAttrs).Ty, ParamTypeList, isVarArg,
+  FunctionType *FT = FunctionType::get(*(yyvsp[-7].TypeVal), ParamTypeList, isVarArg,
                                        ParamAttrs);
   const PointerType *PFT = PointerType::get(FT);
-  delete (yyvsp[-6].TypeWithAttrs).Ty;
+  delete (yyvsp[-7].TypeVal);
 
   ValID ID;
   if (!FunctionName.empty()) {
@@ -4578,7 +4558,7 @@
     // another function.
     Fn->setLinkage(CurFun.Linkage);
   }
-  Fn->setCallingConv((yyvsp[-7].UIntVal));
+  Fn->setCallingConv((yyvsp[-8].UIntVal));
   Fn->setAlignment((yyvsp[0].UIntVal));
   if ((yyvsp[-1].StrVal)) {
     Fn->setSection((yyvsp[-1].StrVal));
@@ -4586,16 +4566,16 @@
   }
 
   // Add all of the arguments we parsed to the function...
-  if ((yyvsp[-3].ArgList)) {                     // Is null if empty...
+  if ((yyvsp[-4].ArgList)) {                     // Is null if empty...
     if (isVarArg) {  // Nuke the last entry
-      assert((yyvsp[-3].ArgList)->back().Ty->get() == Type::VoidTy && (yyvsp[-3].ArgList)->back().Name == 0&&
+      assert((yyvsp[-4].ArgList)->back().Ty->get() == Type::VoidTy && (yyvsp[-4].ArgList)->back().Name == 0&&
              "Not a varargs marker!");
-      delete (yyvsp[-3].ArgList)->back().Ty;
-      (yyvsp[-3].ArgList)->pop_back();  // Delete the last entry
+      delete (yyvsp[-4].ArgList)->back().Ty;
+      (yyvsp[-4].ArgList)->pop_back();  // Delete the last entry
     }
     Function::arg_iterator ArgIt = Fn->arg_begin();
     unsigned Idx = 1;
-    for (ArgListType::iterator I = (yyvsp[-3].ArgList)->begin(); I != (yyvsp[-3].ArgList)->end(); ++I, ++ArgIt) {
+    for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin(); I != (yyvsp[-4].ArgList)->end(); ++I, ++ArgIt) {
       delete I->Ty;                          // Delete the typeholder...
       setValueName(ArgIt, I->Name);           // Insert arg into symtab...
       CHECK_FOR_ERROR
@@ -4603,14 +4583,14 @@
       Idx++;
     }
 
-    delete (yyvsp[-3].ArgList);                     // We're now done with the argument list
+    delete (yyvsp[-4].ArgList);                     // We're now done with the argument list
   }
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 214:
-#line 2100 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 215:
+#line 2106 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -4620,16 +4600,16 @@
 ;}
     break;
 
-  case 217:
-#line 2110 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 218:
+#line 2116 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 218:
-#line 2115 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 219:
+#line 2121 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.CurrentFunction->setLinkage((yyvsp[-1].Linkage));
     (yyval.FunctionVal) = CurFun.CurrentFunction;
@@ -4638,88 +4618,88 @@
   ;}
     break;
 
-  case 219:
-#line 2126 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 220:
+#line 2132 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 220:
-#line 2130 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 221:
+#line 2136 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 221:
-#line 2135 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 222:
+#line 2141 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 222:
-#line 2139 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 223:
+#line 2145 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 223:
-#line 2143 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 224:
+#line 2149 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 224:
-#line 2147 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 225:
+#line 2153 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 225:
-#line 2151 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 226:
+#line 2157 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 226:
-#line 2155 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 227:
+#line 2161 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 227:
-#line 2159 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 228:
+#line 2165 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 228:
-#line 2163 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 229:
+#line 2169 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 229:
-#line 2167 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 230:
+#line 2173 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -4747,16 +4727,16 @@
   ;}
     break;
 
-  case 230:
-#line 2192 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 231:
+#line 2198 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 231:
-#line 2196 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 232:
+#line 2202 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -4769,24 +4749,24 @@
   ;}
     break;
 
-  case 232:
-#line 2210 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 233:
+#line 2216 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 233:
-#line 2214 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 234:
+#line 2220 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 236:
-#line 2226 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 237:
+#line 2232 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4796,24 +4776,24 @@
   ;}
     break;
 
-  case 237:
-#line 2235 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 238:
+#line 2241 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 238:
-#line 2239 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 239:
+#line 2245 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 239:
-#line 2248 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 240:
+#line 2254 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     CHECK_FOR_ERROR
@@ -4826,8 +4806,8 @@
   ;}
     break;
 
-  case 240:
-#line 2259 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 241:
+#line 2265 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -4839,8 +4819,8 @@
   ;}
     break;
 
-  case 241:
-#line 2268 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 242:
+#line 2274 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
     CHECK_FOR_ERROR
@@ -4855,8 +4835,8 @@
   ;}
     break;
 
-  case 242:
-#line 2280 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 243:
+#line 2286 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
     CHECK_FOR_ERROR
@@ -4871,24 +4851,24 @@
   ;}
     break;
 
-  case 243:
-#line 2293 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 244:
+#line 2299 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 244:
-#line 2297 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 245:
+#line 2303 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                                       // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 245:
-#line 2301 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 246:
+#line 2307 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                         // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -4896,8 +4876,8 @@
   ;}
     break;
 
-  case 246:
-#line 2306 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 247:
+#line 2312 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {  
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
@@ -4909,8 +4889,8 @@
   ;}
     break;
 
-  case 247:
-#line 2315 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 248:
+#line 2321 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
@@ -4932,8 +4912,8 @@
   ;}
     break;
 
-  case 248:
-#line 2334 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 249:
+#line 2340 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
@@ -4945,20 +4925,20 @@
   ;}
     break;
 
-  case 249:
-#line 2344 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 250:
+#line 2350 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-10].TypeWithAttrs).Ty->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-11].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back((yyvsp[-10].TypeWithAttrs).Attrs);
-      for (ValueRefList::iterator I = (yyvsp[-7].ValueRefList)->begin(), E = (yyvsp[-7].ValueRefList)->end(); I != E; ++I) {
+      ParamAttrs.push_back((yyvsp[-6].ParamAttrs));
+      for (ValueRefList::iterator I = (yyvsp[-8].ValueRefList)->begin(), E = (yyvsp[-8].ValueRefList)->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
@@ -4966,11 +4946,11 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get((yyvsp[-10].TypeWithAttrs).Ty->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get((yyvsp[-11].TypeVal)->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, (yyvsp[-9].ValIDVal));   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-10].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
     BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
@@ -4979,7 +4959,7 @@
 
     // Check the arguments
     ValueList Args;
-    if ((yyvsp[-7].ValueRefList)->empty()) {                                   // Has no arguments?
+    if ((yyvsp[-8].ValueRefList)->empty()) {                                   // Has no arguments?
       // Make sure no arguments is a good thing!
       if (Ty->getNumParams() != 0)
         GEN_ERROR("No arguments passed to a function that "
@@ -4989,7 +4969,7 @@
       // correctly!
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      ValueRefList::iterator ArgI = (yyvsp[-7].ValueRefList)->begin(), ArgE = (yyvsp[-7].ValueRefList)->end();
+      ValueRefList::iterator ArgI = (yyvsp[-8].ValueRefList)->begin(), ArgE = (yyvsp[-8].ValueRefList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I) {
         if (ArgI->Val->getType() != *I)
@@ -5008,31 +4988,31 @@
 
     // Create the InvokeInst
     InvokeInst *II = new InvokeInst(V, Normal, Except, Args);
-    II->setCallingConv((yyvsp[-11].UIntVal));
+    II->setCallingConv((yyvsp[-12].UIntVal));
     (yyval.TermInstVal) = II;
-    delete (yyvsp[-7].ValueRefList);
+    delete (yyvsp[-8].ValueRefList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 250:
-#line 2410 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 251:
+#line 2416 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 251:
-#line 2414 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 252:
+#line 2420 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 252:
-#line 2421 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 253:
+#line 2427 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5046,8 +5026,8 @@
   ;}
     break;
 
-  case 253:
-#line 2432 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 254:
+#line 2438 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5062,8 +5042,8 @@
   ;}
     break;
 
-  case 254:
-#line 2445 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 255:
+#line 2451 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   // Is this definition named?? if so, assign the name...
   setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
@@ -5074,8 +5054,8 @@
 ;}
     break;
 
-  case 255:
-#line 2454 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 256:
+#line 2460 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-5].TypeVal))->getDescription());
@@ -5089,8 +5069,8 @@
   ;}
     break;
 
-  case 256:
-#line 2465 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 257:
+#line 2471 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5101,8 +5081,8 @@
   ;}
     break;
 
-  case 257:
-#line 2475 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 258:
+#line 2481 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {    
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5113,8 +5093,8 @@
   ;}
     break;
 
-  case 258:
-#line 2483 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 259:
+#line 2489 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5125,18 +5105,18 @@
   ;}
     break;
 
-  case 259:
-#line 2491 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 260:
+#line 2497 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueRefList) = new ValueRefList(); ;}
     break;
 
-  case 260:
-#line 2494 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 261:
+#line 2500 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = new std::vector<Value*>(); ;}
     break;
 
-  case 261:
-#line 2495 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 262:
+#line 2501 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5144,24 +5124,24 @@
   ;}
     break;
 
-  case 262:
-#line 2502 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 263:
+#line 2508 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 263:
-#line 2506 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 264:
+#line 2512 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 264:
-#line 2511 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 265:
+#line 2517 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5185,8 +5165,8 @@
   ;}
     break;
 
-  case 265:
-#line 2532 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 266:
+#line 2538 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5206,8 +5186,8 @@
   ;}
     break;
 
-  case 266:
-#line 2549 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 267:
+#line 2555 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5223,8 +5203,8 @@
   ;}
     break;
 
-  case 267:
-#line 2562 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 268:
+#line 2568 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5240,8 +5220,8 @@
   ;}
     break;
 
-  case 268:
-#line 2575 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 269:
+#line 2581 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     cerr << "WARNING: Use of eliminated 'not' instruction:"
          << " Replacing with 'xor'.\n";
@@ -5257,8 +5237,8 @@
   ;}
     break;
 
-  case 269:
-#line 2588 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 270:
+#line 2594 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ValueVal)->getType() != Type::Int8Ty)
       GEN_ERROR("Shift amount must be i8 type!");
@@ -5270,8 +5250,8 @@
   ;}
     break;
 
-  case 270:
-#line 2597 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 271:
+#line 2603 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5287,8 +5267,8 @@
   ;}
     break;
 
-  case 271:
-#line 2610 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 272:
+#line 2616 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy)
       GEN_ERROR("select condition must be boolean!");
@@ -5299,8 +5279,8 @@
   ;}
     break;
 
-  case 272:
-#line 2618 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 273:
+#line 2624 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5310,8 +5290,8 @@
   ;}
     break;
 
-  case 273:
-#line 2625 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 274:
+#line 2631 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands!");
@@ -5320,8 +5300,8 @@
   ;}
     break;
 
-  case 274:
-#line 2631 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 275:
+#line 2637 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands!");
@@ -5330,8 +5310,8 @@
   ;}
     break;
 
-  case 275:
-#line 2637 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 276:
+#line 2643 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands!");
@@ -5340,8 +5320,8 @@
   ;}
     break;
 
-  case 276:
-#line 2643 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 277:
+#line 2649 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5359,20 +5339,20 @@
   ;}
     break;
 
-  case 277:
-#line 2658 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 278:
+#line 2665 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-4].TypeWithAttrs).Ty->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-5].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back((yyvsp[-4].TypeWithAttrs).Attrs);
-      for (ValueRefList::iterator I = (yyvsp[-1].ValueRefList)->begin(), E = (yyvsp[-1].ValueRefList)->end(); I != E; ++I) {
+      ParamAttrs.push_back((yyvsp[0].ParamAttrs));
+      for (ValueRefList::iterator I = (yyvsp[-2].ValueRefList)->begin(), E = (yyvsp[-2].ValueRefList)->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
@@ -5380,16 +5360,16 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get((yyvsp[-4].TypeWithAttrs).Ty->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get((yyvsp[-5].TypeVal)->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, (yyvsp[-3].ValIDVal));   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-4].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
 
     // Check the arguments 
     ValueList Args;
-    if ((yyvsp[-1].ValueRefList)->empty()) {                                   // Has no arguments?
+    if ((yyvsp[-2].ValueRefList)->empty()) {                                   // Has no arguments?
       // Make sure no arguments is a good thing!
       if (Ty->getNumParams() != 0)
         GEN_ERROR("No arguments passed to a function that "
@@ -5400,7 +5380,7 @@
       //
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      ValueRefList::iterator ArgI = (yyvsp[-1].ValueRefList)->begin(), ArgE = (yyvsp[-1].ValueRefList)->end();
+      ValueRefList::iterator ArgI = (yyvsp[-2].ValueRefList)->begin(), ArgE = (yyvsp[-2].ValueRefList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I) {
         if (ArgI->Val->getType() != *I)
@@ -5417,40 +5397,40 @@
     }
     // Create the call node
     CallInst *CI = new CallInst(V, Args);
-    CI->setTailCall((yyvsp[-6].BoolVal));
-    CI->setCallingConv((yyvsp[-5].UIntVal));
+    CI->setTailCall((yyvsp[-7].BoolVal));
+    CI->setCallingConv((yyvsp[-6].UIntVal));
     (yyval.InstVal) = CI;
-    delete (yyvsp[-1].ValueRefList);
+    delete (yyvsp[-2].ValueRefList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 278:
-#line 2720 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 279:
+#line 2727 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 279:
-#line 2725 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 280:
+#line 2732 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 280:
-#line 2729 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 281:
+#line 2736 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 281:
-#line 2736 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 282:
+#line 2743 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5460,8 +5440,8 @@
   ;}
     break;
 
-  case 282:
-#line 2743 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 283:
+#line 2750 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5472,8 +5452,8 @@
   ;}
     break;
 
-  case 283:
-#line 2751 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 284:
+#line 2758 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5483,8 +5463,8 @@
   ;}
     break;
 
-  case 284:
-#line 2758 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 285:
+#line 2765 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5495,8 +5475,8 @@
   ;}
     break;
 
-  case 285:
-#line 2766 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 286:
+#line 2773 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " + 
@@ -5506,8 +5486,8 @@
   ;}
     break;
 
-  case 286:
-#line 2774 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 287:
+#line 2781 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5524,8 +5504,8 @@
   ;}
     break;
 
-  case 287:
-#line 2788 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 288:
+#line 2795 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5545,8 +5525,8 @@
   ;}
     break;
 
-  case 288:
-#line 2805 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+  case 289:
+#line 2812 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5569,7 +5549,7 @@
     }
 
 /* Line 1126 of yacc.c.  */
-#line 5573 "llvmAsmParser.tab.c"
+#line 5553 "llvmAsmParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5837,7 +5817,7 @@
 }
 
 
-#line 2822 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 2829 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
 
 
 // common code from the two 'RunVMAsmParser' functions


Index: llvm/lib/AsmParser/llvmAsmParser.h.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.34 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.35
--- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.34	Tue Jan  2 15:54:12 2007
+++ llvm/lib/AsmParser/llvmAsmParser.h.cvs	Fri Jan  5 11:07:23 2007
@@ -160,7 +160,8 @@
      VAARG = 386,
      EXTRACTELEMENT = 387,
      INSERTELEMENT = 388,
-     SHUFFLEVECTOR = 389
+     SHUFFLEVECTOR = 389,
+     NORETURN = 390
    };
 #endif
 /* Tokens.  */
@@ -296,6 +297,7 @@
 #define EXTRACTELEMENT 387
 #define INSERTELEMENT 388
 #define SHUFFLEVECTOR 389
+#define NORETURN 390
 
 
 
@@ -348,7 +350,7 @@
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
 /* Line 1447 of yacc.c.  */
-#line 352 "llvmAsmParser.tab.h"
+#line 354 "llvmAsmParser.tab.h"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1


Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.45 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.46
--- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.45	Wed Jan  3 20:57:52 2007
+++ llvm/lib/AsmParser/llvmAsmParser.y.cvs	Fri Jan  5 11:07:23 2007
@@ -951,7 +951,7 @@
 %type <ValueList>     IndexList         // For GEP indices
 %type <TypeList>      TypeListI 
 %type <TypeWithAttrsList> ArgTypeList ArgTypeListI
-%type <TypeWithAttrs> ArgType ResultType
+%type <TypeWithAttrs> ArgType
 %type <JumpTable>     JumpTable
 %type <BoolVal>       GlobalType                  // GLOBAL or CONSTANT?
 %type <BoolVal>       OptVolatile                 // 'volatile' or not
@@ -978,7 +978,7 @@
 %token  <FPVal>     FPVAL     // Float or Double constant
 
 // Built in types...
-%type  <TypeVal> Types
+%type  <TypeVal> Types ResultTypes
 %type  <PrimType> IntType FPType PrimType           // Classifications
 %token <PrimType> VOID BOOL INT8 INT16 INT32 INT64
 %token <PrimType> FLOAT DOUBLE LABEL
@@ -999,7 +999,8 @@
 %token X86_STDCALLCC_TOK X86_FASTCALLCC_TOK
 %token DATALAYOUT
 %type <UIntVal> OptCallingConv
-%type <ParamAttrs> OptParamAttrs ParamAttrList ParamAttr
+%type <ParamAttrs> OptParamAttrs ParamAttr 
+%type <ParamAttrs> OptFuncAttrs  FuncAttr
 
 // Basic Block Terminating Operators
 %token <TermOpVal> RET BR SWITCH INVOKE UNWIND UNREACHABLE
@@ -1026,6 +1027,8 @@
 %token <OtherOpVal> PHI_TOK SELECT SHL LSHR ASHR VAARG
 %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
 
+// Function Attributes
+%token NORETURN
 
 %start Module
 %%
@@ -1129,15 +1132,20 @@
               | SEXT { $$ = FunctionType::SExtAttribute; }
               ;
 
-ParamAttrList : ParamAttr    { $$ = $1; }
-              | ParamAttrList ',' ParamAttr {
-                $$ = FunctionType::ParameterAttributes($1 | $3);
+OptParamAttrs : /* empty */  { $$ = FunctionType::NoAttributeSet; }
+              | OptParamAttrs ParamAttr {
+                $$ = FunctionType::ParameterAttributes($1 | $2);
               }
               ;
 
-OptParamAttrs : /* empty */  { $$ = FunctionType::NoAttributeSet; }
-              | '@' ParamAttr { $$ = $2; }
-              | '@' '(' ParamAttrList ')' { $$ = $3; }
+FuncAttr      : NORETURN { $$ = FunctionType::NoReturnAttribute; }
+              | ParamAttr
+              ;
+
+OptFuncAttrs  : /* empty */ { $$ = FunctionType::NoAttributeSet; }
+              | OptFuncAttrs FuncAttr {
+                $$ = FunctionType::ParameterAttributes($1 | $2);
+              }
               ;
 
 // OptAlign/OptCAlign - An optional alignment, and an optional alignment with
@@ -1223,11 +1231,11 @@
     UR_OUT("New Upreference!\n");
     CHECK_FOR_ERROR
   }
-  | Types OptParamAttrs '(' ArgTypeListI ')' {
+  | Types '(' ArgTypeListI ')' OptFuncAttrs {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back($2);
-    for (TypeWithAttrsList::iterator I=$4->begin(), E=$4->end(); I != E; ++I) {
+    Attrs.push_back($5);
+    for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -1236,16 +1244,16 @@
     if (isVarArg) Params.pop_back();
 
     FunctionType *FT = FunctionType::get(*$1, Params, isVarArg, Attrs);
-    delete $4;      // Delete the argument list
+    delete $3;      // Delete the argument list
     delete $1;   // Delete the return type handle
     $$ = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
   }
-  | VOID OptParamAttrs '(' ArgTypeListI ')' {
+  | VOID '(' ArgTypeListI ')' OptFuncAttrs {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back($2);
-    for (TypeWithAttrsList::iterator I=$4->begin(), E=$4->end(); I != E; ++I) {
+    Attrs.push_back($5);
+    for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -1254,7 +1262,7 @@
     if (isVarArg) Params.pop_back();
 
     FunctionType *FT = FunctionType::get($1, Params, isVarArg, Attrs);
-    delete $4;      // Delete the argument list
+    delete $3;      // Delete the argument list
     $$ = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
   }
@@ -1313,18 +1321,16 @@
   }
   ;
 
-ResultType 
-  : Types OptParamAttrs { 
+ResultTypes
+  : Types {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*$1)->getDescription());
     if (!(*$1)->isFirstClassType())
       GEN_ERROR("LLVM functions cannot return aggregate types!");
-    $$.Ty = $1;
-    $$.Attrs = $2;
+    $$ = $1;
   }
-  | VOID OptParamAttrs {
-    $$.Ty = new PATypeHolder(Type::VoidTy);
-    $$.Attrs = $2;
+  | VOID {
+    $$ = new PATypeHolder(Type::VoidTy);
   }
   ;
 
@@ -1990,20 +1996,20 @@
     CHECK_FOR_ERROR
   };
 
-FunctionHeaderH : OptCallingConv ResultType Name '(' ArgList ')' 
-                  OptSection OptAlign {
+FunctionHeaderH : OptCallingConv ResultTypes Name '(' ArgList ')' 
+                  OptFuncAttrs OptSection OptAlign {
   UnEscapeLexed($3);
   std::string FunctionName($3);
   free($3);  // Free strdup'd memory!
   
   // Check the function result for abstractness if this is a define. We should
   // have no abstract types at this point
-  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved($2.Ty))
-    GEN_ERROR("Reference to abstract result: "+ $2.Ty->get()->getDescription());
+  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved($2))
+    GEN_ERROR("Reference to abstract result: "+ $2->get()->getDescription());
 
   std::vector<const Type*> ParamTypeList;
   std::vector<FunctionType::ParameterAttributes> ParamAttrs;
-  ParamAttrs.push_back($2.Attrs);
+  ParamAttrs.push_back($7);
   if ($5) {   // If there are arguments...
     for (ArgListType::iterator I = $5->begin(); I != $5->end(); ++I) {
       const Type* Ty = I->Ty->get();
@@ -2018,10 +2024,10 @@
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  FunctionType *FT = FunctionType::get(*$2.Ty, ParamTypeList, isVarArg,
+  FunctionType *FT = FunctionType::get(*$2, ParamTypeList, isVarArg,
                                        ParamAttrs);
   const PointerType *PFT = PointerType::get(FT);
-  delete $2.Ty;
+  delete $2;
 
   ValID ID;
   if (!FunctionName.empty()) {
@@ -2066,10 +2072,10 @@
     Fn->setLinkage(CurFun.Linkage);
   }
   Fn->setCallingConv($1);
-  Fn->setAlignment($8);
-  if ($7) {
-    Fn->setSection($7);
-    free($7);
+  Fn->setAlignment($9);
+  if ($8) {
+    Fn->setSection($8);
+    free($8);
   }
 
   // Add all of the arguments we parsed to the function...
@@ -2340,18 +2346,18 @@
     $$ = S;
     CHECK_FOR_ERROR
   }
-  | INVOKE OptCallingConv ResultType ValueRef '(' ValueRefList ')' 
+  | INVOKE OptCallingConv ResultTypes ValueRef '(' ValueRefList ')' OptFuncAttrs
     TO LABEL ValueRef UNWIND LABEL ValueRef {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>($3.Ty->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>($3->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back($3.Attrs);
+      ParamAttrs.push_back($8);
       for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
@@ -2360,15 +2366,15 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get($3.Ty->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 
     Value *V = getVal(PFTy, $4);   // Get the function we're calling...
     CHECK_FOR_ERROR
-    BasicBlock *Normal = getBBVal($10);
+    BasicBlock *Normal = getBBVal($11);
     CHECK_FOR_ERROR
-    BasicBlock *Except = getBBVal($13);
+    BasicBlock *Except = getBBVal($14);
     CHECK_FOR_ERROR
 
     // Check the arguments
@@ -2655,17 +2661,18 @@
     delete $2;  // Free the list...
     CHECK_FOR_ERROR
   }
-  | OptTailCall OptCallingConv ResultType ValueRef '(' ValueRefList ')' {
+  | OptTailCall OptCallingConv ResultTypes ValueRef '(' ValueRefList ')' 
+    OptFuncAttrs {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>($3.Ty->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>($3->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back($3.Attrs);
+      ParamAttrs.push_back($8);
       for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
@@ -2674,7 +2681,7 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get($3.Ty->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 






More information about the llvm-commits mailing list