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

Reid Spencer reid at x10sys.com
Sun Apr 8 23:13:46 PDT 2007



Changes in directory llvm/lib/AsmParser:

Lexer.cpp.cvs updated: 1.37 -> 1.38
llvmAsmParser.cpp.cvs updated: 1.81 -> 1.82
llvmAsmParser.h.cvs updated: 1.63 -> 1.64
llvmAsmParser.y.cvs updated: 1.82 -> 1.83
---
Log message:

Regenerate

---
Diffs of the changes:  (+569 -499)

 Lexer.cpp.cvs         |  282 ++++++++++-----------
 llvmAsmParser.cpp.cvs |  661 ++++++++++++++++++++++++++------------------------
 llvmAsmParser.h.cvs   |    4 
 llvmAsmParser.y.cvs   |  121 +++++----
 4 files changed, 569 insertions(+), 499 deletions(-)


Index: llvm/lib/AsmParser/Lexer.cpp.cvs
diff -u llvm/lib/AsmParser/Lexer.cpp.cvs:1.37 llvm/lib/AsmParser/Lexer.cpp.cvs:1.38
--- llvm/lib/AsmParser/Lexer.cpp.cvs:1.37	Sun Apr  8 20:56:05 2007
+++ llvm/lib/AsmParser/Lexer.cpp.cvs	Mon Apr  9 01:13:29 2007
@@ -20,7 +20,7 @@
 /* A lexical scanner generated by flex*/
 
 /* Scanner skeleton version:
- * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.37 2007/04/09 01:56:05 reid Exp $
+ * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.38 2007/04/09 06:13:29 reid Exp $
  */
 
 #define FLEX_SCANNER
@@ -869,7 +869,7 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 1 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 #define INITIAL 0
 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
 //
@@ -884,7 +884,7 @@
 //
 //===----------------------------------------------------------------------===*/
 #define YY_NEVER_INTERACTIVE 1
-#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 28 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 #include "ParserInternals.h"
 #include "llvm/Module.h"
 #include <list>
@@ -1168,7 +1168,7 @@
 	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
 
-#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 190 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 
 
 #line 1175 "Lexer.cpp"
@@ -1264,257 +1264,257 @@
 	{ /* beginning of action switch */
 case 1:
 YY_RULE_SETUP
-#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 192 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { /* Ignore comments for now */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 194 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return BEGINTOK; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 195 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ENDTOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 196 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TRUETOK;  }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 197 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return FALSETOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 198 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DECLARE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 199 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DEFINE; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 200 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return GLOBAL; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 201 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return CONSTANT; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 202 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return INTERNAL; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 203 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return LINKONCE; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 204 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return WEAK; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 205 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return APPENDING; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 206 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DLLIMPORT; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 207 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DLLEXPORT; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 208 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return HIDDEN; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 209 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return EXTERN_WEAK; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 210 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return EXTERNAL; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 211 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ZEROINITIALIZER; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 212 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DOTDOTDOT; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 213 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UNDEF; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 214 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return NULL_TOK; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 215 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TO; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 216 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TAIL; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 217 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TARGET; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 218 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TRIPLE; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 219 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DEPLIBS; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 220 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 220 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return DATALAYOUT; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 221 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return VOLATILE; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 222 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ALIGN;  }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 223 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SECTION; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 224 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return MODULE; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 225 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ASM_TOK; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 226 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SIDEEFFECT; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 228 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return CC_TOK; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 229 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return CCC_TOK; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 230 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return FASTCC_TOK; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 231 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return COLDCC_TOK; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 232 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return X86_STDCALLCC_TOK; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 233 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return X86_FASTCALLCC_TOK; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 235 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return INREG; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 236 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SRET;  }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 237 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 237 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return NOUNWIND; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 238 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return NORETURN; }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 240 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TY(Type::VoidTy,  VOID);  }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 241 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TY(Type::FloatTy, FLOAT); }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 242 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TY(Type::DoubleTy,DOUBLE);}
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 243 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TY(Type::LabelTy, LABEL); }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 244 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return TYPE;   }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 245 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OPAQUE; }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 246 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { uint64_t NumBits = atoull(yytext+1);
                   if (NumBits < IntegerType::MIN_INT_BITS || 
                       NumBits > IntegerType::MAX_INT_BITS)
@@ -1525,347 +1525,347 @@
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 254 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Add, ADD); }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 255 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Sub, SUB); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 256 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Mul, MUL); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 257 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, UDiv, UDIV); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 258 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, SDiv, SDIV); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 259 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, FDiv, FDIV); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 260 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, URem, UREM); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 261 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, SRem, SREM); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 262 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, FRem, FREM); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 263 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Shl, SHL); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 264 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, LShr, LSHR); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 265 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, AShr, ASHR); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 266 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, And, AND); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 267 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Or , OR ); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 268 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Xor, XOR); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 269 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 270 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal,  FCmp,  FCMP); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 272 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return EQ;  }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 273 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return NE;  }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 274 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SLT; }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 275 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SGT; }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 276 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SLE; }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 277 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return SGE; }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 278 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ULT; }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 279 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UGT; }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 280 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ULE; }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 281 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UGE; }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 282 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OEQ; }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 283 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ONE; }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 284 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OLT; }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 285 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OGT; }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 286 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OLE; }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 287 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return OGE; }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 288 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return ORD; }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 289 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UNO; }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 290 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UEQ; }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 291 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return UNE; }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 293 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 294 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, Call, CALL); }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 295 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, Trunc, TRUNC); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 296 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, ZExt, ZEXT); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 297 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, SExt, SEXT); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 298 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 299 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, FPExt, FPEXT); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 300 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, UIToFP, UITOFP); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 301 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, SIToFP, SITOFP); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 302 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, FPToUI, FPTOUI); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 303 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, FPToSI, FPTOSI); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 304 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 305 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 306 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(CastOpVal, BitCast, BITCAST); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 307 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, Select, SELECT); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 308 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 308 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, VAArg , VAARG); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 309 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Ret, RET); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 310 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Br, BR); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 311 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Switch, SWITCH); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 312 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 312 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Invoke, INVOKE); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 313 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 313 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Unwind, UNWIND); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 314 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 316 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 316 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Malloc, MALLOC); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 317 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 317 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Alloca, ALLOCA); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 318 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Free, FREE); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 319 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 319 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Load, LOAD); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 320 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 320 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Store, STORE); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 321 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 321 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 323 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 323 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 324 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 324 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 325 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 325 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 328 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 328 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   UnEscapeLexed(yytext+1);
                   llvmAsmlval.StrVal = strdup(yytext+1);             // Skip %
@@ -1874,7 +1874,7 @@
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 333 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 333 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   UnEscapeLexed(yytext+1);
                   llvmAsmlval.StrVal = strdup(yytext+1);             // Skip @
@@ -1883,7 +1883,7 @@
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 338 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 338 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-1] = 0;  // nuke colon
                   UnEscapeLexed(yytext);
@@ -1893,7 +1893,7 @@
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 344 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 344 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
                   UnEscapeLexed(yytext+1);
@@ -1903,7 +1903,7 @@
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 351 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 351 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { // Note that we cannot unescape a string constant here!  The
                    // string constant might contain a \00 which would not be
                    // understood by the string stuff.  It is valid to make a
@@ -1916,7 +1916,7 @@
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 360 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 360 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                      yytext[strlen(yytext)-1] = 0;           // nuke end quote
                      llvmAsmlval.StrVal = strdup(yytext+2);  // Nuke @, quote
@@ -1925,7 +1925,7 @@
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 366 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 366 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { int len = strlen(yytext); 
                   uint32_t numBits = ((len * 64) / 19) + 1;
                   APInt Tmp(numBits, yytext, len, 10);
@@ -1943,7 +1943,7 @@
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 380 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 380 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { int len = strlen(yytext); 
                   uint32_t numBits = (((len-1) * 64) / 19) + 2;
                   APInt Tmp(numBits, yytext, len, 10);
@@ -1961,7 +1961,7 @@
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 395 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 395 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { int len = strlen(yytext+3) - 3;
                    uint32_t bits = len * 4;
                    APInt Tmp(bits, yytext+3, len, 16);
@@ -1982,7 +1982,7 @@
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 413 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 413 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
@@ -1993,7 +1993,7 @@
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 420 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 420 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
@@ -2004,16 +2004,16 @@
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 428 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 428 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 429 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 429 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 431 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
@@ -2024,17 +2024,17 @@
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 439 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 439 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { /* Ignore whitespace */ }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 440 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 440 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 { return yytext[0]; }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 442 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 442 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
 #line 2041 "Lexer.cpp"
@@ -2915,5 +2915,5 @@
 	return 0;
 	}
 #endif
-#line 442 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 442 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
 


Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.81 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.82
--- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.81	Sun Apr  8 20:56:05 2007
+++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs	Mon Apr  9 01:13:29 2007
@@ -334,7 +334,7 @@
 
 
 /* Copy the first part of user declarations.  */
-#line 14 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
 
 #include "ParserInternals.h"
 #include "llvm/CallingConv.h"
@@ -524,8 +524,6 @@
     }
     return false;
   }
-
-
 } CurModule;
 
 static struct PerFunctionInfo {
@@ -1279,7 +1277,7 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 939 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 937 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1306,7 +1304,7 @@
 
   llvm::GlobalValue::LinkageTypes         Linkage;
   llvm::GlobalValue::VisibilityTypes      Visibility;
-  llvm::FunctionType::ParameterAttributes ParamAttrs;
+  uint16_t                          ParamAttrs;
   llvm::APInt                       *APIntVal;
   int64_t                           SInt64Val;
   uint64_t                          UInt64Val;
@@ -1327,7 +1325,7 @@
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1331 "llvmAsmParser.tab.c"
+#line 1329 "llvmAsmParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1339,7 +1337,7 @@
 
 
 /* Line 219 of yacc.c.  */
-#line 1343 "llvmAsmParser.tab.c"
+#line 1341 "llvmAsmParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -1687,35 +1685,35 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1093,  1093,  1093,  1093,  1093,  1093,  1093,  1093,  1093,
-    1093,  1094,  1094,  1094,  1094,  1094,  1094,  1095,  1095,  1095,
-    1095,  1095,  1095,  1096,  1096,  1096,  1096,  1096,  1096,  1099,
-    1099,  1100,  1100,  1101,  1101,  1102,  1102,  1103,  1103,  1107,
-    1107,  1108,  1108,  1109,  1109,  1110,  1110,  1111,  1111,  1112,
-    1112,  1113,  1113,  1114,  1115,  1120,  1121,  1121,  1123,  1123,
-    1124,  1124,  1128,  1132,  1137,  1137,  1139,  1143,  1149,  1150,
-    1151,  1152,  1153,  1157,  1158,  1159,  1163,  1164,  1168,  1169,
-    1170,  1174,  1175,  1176,  1177,  1178,  1181,  1182,  1183,  1184,
-    1185,  1186,  1187,  1194,  1195,  1196,  1197,  1200,  1201,  1206,
-    1207,  1208,  1211,  1212,  1219,  1220,  1226,  1227,  1235,  1243,
-    1244,  1249,  1250,  1251,  1256,  1269,  1269,  1269,  1269,  1272,
-    1276,  1280,  1287,  1292,  1300,  1319,  1338,  1343,  1355,  1365,
-    1369,  1379,  1386,  1393,  1400,  1405,  1410,  1417,  1418,  1425,
-    1432,  1440,  1446,  1458,  1486,  1502,  1531,  1559,  1584,  1603,
-    1629,  1649,  1661,  1668,  1734,  1744,  1754,  1760,  1770,  1776,
-    1786,  1791,  1796,  1804,  1816,  1838,  1846,  1852,  1863,  1868,
-    1873,  1879,  1885,  1894,  1898,  1906,  1906,  1917,  1922,  1930,
-    1931,  1935,  1935,  1939,  1939,  1942,  1945,  1969,  1980,  1980,
-    1990,  1990,  1998,  1998,  2008,  2011,  2017,  2030,  2034,  2039,
-    2041,  2046,  2051,  2060,  2070,  2081,  2085,  2094,  2103,  2108,
-    2220,  2220,  2222,  2231,  2231,  2233,  2238,  2250,  2254,  2259,
-    2263,  2267,  2271,  2275,  2279,  2283,  2287,  2291,  2316,  2320,
-    2334,  2338,  2342,  2346,  2352,  2352,  2358,  2367,  2371,  2380,
-    2389,  2398,  2402,  2407,  2411,  2415,  2420,  2430,  2449,  2458,
-    2527,  2531,  2538,  2549,  2562,  2572,  2583,  2593,  2602,  2611,
-    2614,  2615,  2622,  2626,  2631,  2652,  2669,  2683,  2697,  2709,
-    2717,  2724,  2730,  2736,  2742,  2757,  2821,  2826,  2830,  2837,
-    2844,  2852,  2859,  2867,  2875,  2889,  2906
+       0,  1091,  1091,  1091,  1091,  1091,  1091,  1091,  1091,  1091,
+    1091,  1092,  1092,  1092,  1092,  1092,  1092,  1093,  1093,  1093,
+    1093,  1093,  1093,  1094,  1094,  1094,  1094,  1094,  1094,  1097,
+    1097,  1098,  1098,  1099,  1099,  1100,  1100,  1101,  1101,  1105,
+    1105,  1106,  1106,  1107,  1107,  1108,  1108,  1109,  1109,  1110,
+    1110,  1111,  1111,  1112,  1113,  1118,  1119,  1119,  1121,  1121,
+    1122,  1122,  1126,  1130,  1135,  1135,  1137,  1141,  1147,  1148,
+    1149,  1150,  1151,  1155,  1156,  1157,  1161,  1162,  1166,  1167,
+    1168,  1172,  1173,  1174,  1175,  1176,  1179,  1180,  1181,  1182,
+    1183,  1184,  1185,  1192,  1193,  1194,  1195,  1198,  1199,  1204,
+    1205,  1206,  1209,  1210,  1217,  1218,  1224,  1225,  1233,  1241,
+    1242,  1247,  1248,  1249,  1254,  1267,  1267,  1267,  1267,  1270,
+    1274,  1278,  1285,  1290,  1298,  1324,  1351,  1356,  1368,  1378,
+    1382,  1392,  1399,  1406,  1413,  1418,  1423,  1430,  1431,  1438,
+    1445,  1453,  1459,  1471,  1499,  1515,  1544,  1572,  1597,  1616,
+    1642,  1662,  1674,  1681,  1747,  1757,  1767,  1773,  1783,  1789,
+    1799,  1804,  1809,  1817,  1829,  1851,  1859,  1865,  1876,  1881,
+    1886,  1892,  1898,  1907,  1911,  1919,  1919,  1930,  1935,  1943,
+    1944,  1948,  1948,  1952,  1952,  1955,  1958,  1982,  1993,  1993,
+    2003,  2003,  2011,  2011,  2021,  2024,  2030,  2043,  2047,  2052,
+    2054,  2059,  2064,  2073,  2083,  2094,  2098,  2107,  2116,  2121,
+    2240,  2240,  2242,  2251,  2251,  2253,  2258,  2270,  2274,  2279,
+    2283,  2287,  2291,  2295,  2299,  2303,  2307,  2311,  2336,  2340,
+    2354,  2358,  2362,  2366,  2372,  2372,  2378,  2387,  2391,  2400,
+    2409,  2418,  2422,  2427,  2431,  2435,  2440,  2450,  2469,  2478,
+    2554,  2558,  2565,  2576,  2589,  2599,  2610,  2620,  2629,  2638,
+    2641,  2642,  2649,  2653,  2658,  2679,  2696,  2710,  2724,  2736,
+    2744,  2751,  2757,  2763,  2769,  2784,  2856,  2861,  2865,  2872,
+    2879,  2887,  2894,  2902,  2910,  2924,  2941
 };
 #endif
 
@@ -3041,142 +3039,142 @@
   switch (yyn)
     {
         case 29:
-#line 1099 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1097 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 30:
-#line 1099 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1097 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 31:
-#line 1100 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 32:
-#line 1100 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 33:
-#line 1101 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 34:
-#line 1101 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 35:
-#line 1102 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 36:
-#line 1102 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 37:
-#line 1103 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 38:
-#line 1103 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 39:
-#line 1107 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 40:
-#line 1107 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 41:
-#line 1108 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 42:
-#line 1108 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 43:
-#line 1109 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 44:
-#line 1109 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 45:
-#line 1110 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 46:
-#line 1110 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 47:
-#line 1111 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 48:
-#line 1111 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 49:
-#line 1112 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 50:
-#line 1112 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 51:
-#line 1113 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 52:
-#line 1113 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 53:
-#line 1114 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1112 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 54:
-#line 1115 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1113 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 61:
-#line 1124 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1122 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 62:
-#line 1128 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1126 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
@@ -3184,7 +3182,7 @@
     break;
 
   case 63:
-#line 1132 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1130 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3192,7 +3190,7 @@
     break;
 
   case 66:
-#line 1139 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1137 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
@@ -3200,7 +3198,7 @@
     break;
 
   case 67:
-#line 1143 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1141 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3208,127 +3206,127 @@
     break;
 
   case 68:
-#line 1149 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1147 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 69:
-#line 1150 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1148 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 70:
-#line 1151 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1149 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 71:
-#line 1152 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1150 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 72:
-#line 1153 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 73:
-#line 1157 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1155 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 74:
-#line 1158 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1156 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 75:
-#line 1159 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1157 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 76:
-#line 1163 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1161 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
     break;
 
   case 77:
-#line 1164 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1162 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::HiddenVisibility;  ;}
     break;
 
   case 78:
-#line 1168 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1166 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 79:
-#line 1169 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1167 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 80:
-#line 1170 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 81:
-#line 1174 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1172 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 82:
-#line 1175 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1173 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 83:
-#line 1176 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1174 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 84:
-#line 1177 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1175 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 85:
-#line 1178 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1176 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 86:
-#line 1181 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1179 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 87:
-#line 1182 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1180 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 88:
-#line 1183 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 89:
-#line 1184 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1182 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 90:
-#line 1185 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1183 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
   case 91:
-#line 1186 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1184 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
   case 92:
-#line 1187 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1185 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
                      GEN_ERROR("Calling conv too large");
@@ -3338,66 +3336,66 @@
     break;
 
   case 93:
-#line 1194 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::ZExtAttribute;      ;}
+#line 1192 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = ZExtAttribute;      ;}
     break;
 
   case 94:
-#line 1195 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::SExtAttribute;      ;}
+#line 1193 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = SExtAttribute;      ;}
     break;
 
   case 95:
-#line 1196 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::InRegAttribute;     ;}
+#line 1194 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = InRegAttribute;     ;}
     break;
 
   case 96:
-#line 1197 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::StructRetAttribute; ;}
+#line 1195 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = StructRetAttribute; ;}
     break;
 
   case 97:
-#line 1200 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
+#line 1198 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = NoAttributeSet; ;}
     break;
 
   case 98:
-#line 1201 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1199 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
-                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
+                (yyval.ParamAttrs) = (yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs);
               ;}
     break;
 
   case 99:
-#line 1206 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::NoReturnAttribute; ;}
+#line 1204 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = NoReturnAttribute; ;}
     break;
 
   case 100:
-#line 1207 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::NoUnwindAttribute; ;}
+#line 1205 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = NoUnwindAttribute; ;}
     break;
 
   case 102:
-#line 1211 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
-    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
+#line 1209 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = NoAttributeSet; ;}
     break;
 
   case 103:
-#line 1212 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
-                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
+                (yyval.ParamAttrs) = (yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs);
               ;}
     break;
 
   case 104:
-#line 1219 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1217 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 105:
-#line 1220 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1218 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3407,12 +3405,12 @@
     break;
 
   case 106:
-#line 1226 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1224 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 107:
-#line 1227 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1225 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3422,7 +3420,7 @@
     break;
 
   case 108:
-#line 1235 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1233 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
     if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -3433,27 +3431,27 @@
     break;
 
   case 109:
-#line 1243 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 110:
-#line 1244 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1242 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
   case 111:
-#line 1249 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1247 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 112:
-#line 1250 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 113:
-#line 1251 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1249 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3462,7 +3460,7 @@
     break;
 
   case 114:
-#line 1256 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1254 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two");
@@ -3472,7 +3470,7 @@
     break;
 
   case 119:
-#line 1272 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1270 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
@@ -3480,7 +3478,7 @@
     break;
 
   case 120:
-#line 1276 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1274 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
@@ -3488,7 +3486,7 @@
     break;
 
   case 121:
-#line 1280 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1278 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -3499,7 +3497,7 @@
     break;
 
   case 122:
-#line 1287 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1285 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -3508,7 +3506,7 @@
     break;
 
   case 123:
-#line 1292 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1290 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -3520,21 +3518,28 @@
     break;
 
   case 124:
-#line 1300 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1298 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
-    std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back((yyvsp[0].ParamAttrs));
-    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
+    ParamAttrsList Attrs;
+    if ((yyvsp[0].ParamAttrs) != NoAttributeSet)
+      Attrs.addAttributes(0, (yyvsp[0].ParamAttrs));
+    unsigned index = 1;
+    TypeWithAttrsList::iterator I = (yyvsp[-2].TypeWithAttrsList)->begin(), E = (yyvsp[-2].TypeWithAttrsList)->end();
+    for (; I != E; ++I, ++index) {
       const Type *Ty = I->Ty->get();
       Params.push_back(Ty);
       if (Ty != Type::VoidTy)
-        Attrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          Attrs.addAttributes(index, I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get(*(yyvsp[-4].TypeVal), Params, isVarArg, Attrs);
+    ParamAttrsList *ActualAttrs = 0;
+    if (!Attrs.empty())
+      ActualAttrs = new ParamAttrsList(Attrs);
+    FunctionType *FT = FunctionType::get(*(yyvsp[-4].TypeVal), Params, isVarArg, ActualAttrs);
     delete (yyvsp[-2].TypeWithAttrsList);   // Delete the argument list
     delete (yyvsp[-4].TypeVal);   // Delete the return type handle
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
@@ -3543,21 +3548,29 @@
     break;
 
   case 125:
-#line 1319 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1324 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
-    std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back((yyvsp[0].ParamAttrs));
-    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
+    ParamAttrsList Attrs;
+    if ((yyvsp[0].ParamAttrs) != NoAttributeSet)
+      Attrs.addAttributes(0, (yyvsp[0].ParamAttrs));
+    TypeWithAttrsList::iterator I = (yyvsp[-2].TypeWithAttrsList)->begin(), E = (yyvsp[-2].TypeWithAttrsList)->end();
+    unsigned index = 1;
+    for ( ; I != E; ++I, ++index) {
       const Type* Ty = I->Ty->get();
       Params.push_back(Ty);
       if (Ty != Type::VoidTy)
-        Attrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          Attrs.addAttributes(index, I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get((yyvsp[-4].PrimType), Params, isVarArg, Attrs);
+    ParamAttrsList *ActualAttrs = 0;
+    if (!Attrs.empty())
+      ActualAttrs = new ParamAttrsList(Attrs);
+
+    FunctionType *FT = FunctionType::get((yyvsp[-4].PrimType), Params, isVarArg, ActualAttrs);
     delete (yyvsp[-2].TypeWithAttrsList);      // Delete the argument list
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
@@ -3565,7 +3578,7 @@
     break;
 
   case 126:
-#line 1338 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1351 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Sized array type?
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
     delete (yyvsp[-1].TypeVal);
@@ -3574,7 +3587,7 @@
     break;
 
   case 127:
-#line 1343 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1356 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Vector type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -3590,7 +3603,7 @@
     break;
 
   case 128:
-#line 1355 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1368 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3604,7 +3617,7 @@
     break;
 
   case 129:
-#line 1365 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1378 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
@@ -3612,7 +3625,7 @@
     break;
 
   case 130:
-#line 1369 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1382 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -3626,7 +3639,7 @@
     break;
 
   case 131:
-#line 1379 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1392 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                         // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
     CHECK_FOR_ERROR
@@ -3634,7 +3647,7 @@
     break;
 
   case 132:
-#line 1386 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1399 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     (yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal); 
     (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs); 
@@ -3642,7 +3655,7 @@
     break;
 
   case 133:
-#line 1393 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1406 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -3653,14 +3666,14 @@
     break;
 
   case 134:
-#line 1400 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1413 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
   ;}
     break;
 
   case 135:
-#line 1405 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1418 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     (yyval.TypeWithAttrsList)->push_back((yyvsp[0].TypeWithAttrs));
@@ -3669,7 +3682,7 @@
     break;
 
   case 136:
-#line 1410 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1423 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList))->push_back((yyvsp[0].TypeWithAttrs));
     CHECK_FOR_ERROR
@@ -3677,10 +3690,10 @@
     break;
 
   case 138:
-#line 1418 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1431 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList);
-    TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
+    TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
     (yyval.TypeWithAttrsList)->push_back(TWA);
     CHECK_FOR_ERROR
@@ -3688,10 +3701,10 @@
     break;
 
   case 139:
-#line 1425 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1438 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
-    TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
+    TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
     (yyval.TypeWithAttrsList)->push_back(TWA);
     CHECK_FOR_ERROR
@@ -3699,7 +3712,7 @@
     break;
 
   case 140:
-#line 1432 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1445 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
@@ -3707,7 +3720,7 @@
     break;
 
   case 141:
-#line 1440 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1453 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); 
@@ -3717,7 +3730,7 @@
     break;
 
   case 142:
-#line 1446 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); 
     delete (yyvsp[0].TypeVal);
@@ -3726,7 +3739,7 @@
     break;
 
   case 143:
-#line 1458 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1471 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3758,7 +3771,7 @@
     break;
 
   case 144:
-#line 1486 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1499 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3778,7 +3791,7 @@
     break;
 
   case 145:
-#line 1502 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1515 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3811,7 +3824,7 @@
     break;
 
   case 146:
-#line 1531 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1544 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3843,7 +3856,7 @@
     break;
 
   case 147:
-#line 1559 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
@@ -3872,7 +3885,7 @@
     break;
 
   case 148:
-#line 1584 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1597 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3895,7 +3908,7 @@
     break;
 
   case 149:
-#line 1603 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1616 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal)->get());
     if (STy == 0)
@@ -3925,7 +3938,7 @@
     break;
 
   case 150:
-#line 1629 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -3949,7 +3962,7 @@
     break;
 
   case 151:
-#line 1649 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1662 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3965,7 +3978,7 @@
     break;
 
   case 152:
-#line 1661 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1674 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3976,7 +3989,7 @@
     break;
 
   case 153:
-#line 1668 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1681 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4046,7 +4059,7 @@
     break;
 
   case 154:
-#line 1734 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1747 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4060,7 +4073,7 @@
     break;
 
   case 155:
-#line 1744 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1757 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4074,7 +4087,7 @@
     break;
 
   case 156:
-#line 1754 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1767 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type");
@@ -4084,7 +4097,7 @@
     break;
 
   case 157:
-#line 1760 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1773 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
     if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4098,7 +4111,7 @@
     break;
 
   case 158:
-#line 1770 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1783 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type");
@@ -4108,7 +4121,7 @@
     break;
 
   case 159:
-#line 1776 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1789 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
     if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4122,7 +4135,7 @@
     break;
 
   case 160:
-#line 1786 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1799 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
     assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
     (yyval.ConstVal) = ConstantInt::getTrue();
@@ -4131,7 +4144,7 @@
     break;
 
   case 161:
-#line 1791 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
     assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
     (yyval.ConstVal) = ConstantInt::getFalse();
@@ -4140,7 +4153,7 @@
     break;
 
   case 162:
-#line 1796 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1809 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
       GEN_ERROR("Floating point constant invalid for type");
@@ -4150,7 +4163,7 @@
     break;
 
   case 163:
-#line 1804 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1817 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4166,7 +4179,7 @@
     break;
 
   case 164:
-#line 1816 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1829 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand");
@@ -4192,7 +4205,7 @@
     break;
 
   case 165:
-#line 1838 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1851 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-5].ConstVal)->getType() != Type::Int1Ty)
       GEN_ERROR("Select condition must be of boolean type");
@@ -4204,7 +4217,7 @@
     break;
 
   case 166:
-#line 1846 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1859 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match");
@@ -4214,7 +4227,7 @@
     break;
 
   case 167:
-#line 1852 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1865 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match");
@@ -4229,7 +4242,7 @@
     break;
 
   case 168:
-#line 1863 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1876 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match");
@@ -4238,7 +4251,7 @@
     break;
 
   case 169:
-#line 1868 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1881 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match");
@@ -4247,7 +4260,7 @@
     break;
 
   case 170:
-#line 1873 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1886 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -4257,7 +4270,7 @@
     break;
 
   case 171:
-#line 1879 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1892 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -4267,7 +4280,7 @@
     break;
 
   case 172:
-#line 1885 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1898 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -4277,7 +4290,7 @@
     break;
 
   case 173:
-#line 1894 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1907 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
@@ -4285,7 +4298,7 @@
     break;
 
   case 174:
-#line 1898 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1911 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4294,17 +4307,17 @@
     break;
 
   case 175:
-#line 1906 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1919 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 176:
-#line 1906 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1919 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 177:
-#line 1917 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1930 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4313,7 +4326,7 @@
     break;
 
   case 178:
-#line 1922 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1935 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4322,12 +4335,12 @@
     break;
 
   case 181:
-#line 1935 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1948 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = false; ;}
     break;
 
   case 182:
-#line 1935 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1948 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
@@ -4335,26 +4348,26 @@
     break;
 
   case 183:
-#line 1939 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1952 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 184:
-#line 1939 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1952 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 185:
-#line 1942 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1955 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 186:
-#line 1945 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4382,7 +4395,7 @@
     break;
 
   case 187:
-#line 1969 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1982 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ResolveTypeTo((yyvsp[-2].StrVal), (yyvsp[0].PrimType));
 
@@ -4397,7 +4410,7 @@
     break;
 
   case 188:
-#line 1980 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 1993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     /* "Externally Visible" Linkage */
     if ((yyvsp[0].ConstVal) == 0) 
@@ -4409,14 +4422,14 @@
     break;
 
   case 189:
-#line 1987 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2000 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 190:
-#line 1990 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2003 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant");
@@ -4426,14 +4439,14 @@
     break;
 
   case 191:
-#line 1995 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2008 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 192:
-#line 1998 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2011 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4444,7 +4457,7 @@
     break;
 
   case 193:
-#line 2004 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
@@ -4452,21 +4465,21 @@
     break;
 
   case 194:
-#line 2008 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 195:
-#line 2011 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2024 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 196:
-#line 2017 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4482,7 +4495,7 @@
     break;
 
   case 197:
-#line 2030 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2043 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4490,7 +4503,7 @@
     break;
 
   case 198:
-#line 2034 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2047 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4498,7 +4511,7 @@
     break;
 
   case 200:
-#line 2041 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4507,7 +4520,7 @@
     break;
 
   case 201:
-#line 2046 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4516,14 +4529,14 @@
     break;
 
   case 202:
-#line 2051 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
   case 203:
-#line 2060 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2073 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4537,7 +4550,7 @@
     break;
 
   case 204:
-#line 2070 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2083 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4551,7 +4564,7 @@
     break;
 
   case 205:
-#line 2081 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[0].ArgList);
     CHECK_FOR_ERROR
@@ -4559,33 +4572,33 @@
     break;
 
   case 206:
-#line 2085 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
-    E.Attrs = FunctionType::NoAttributeSet;
+    E.Attrs = NoAttributeSet;
     (yyval.ArgList)->push_back(E);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 207:
-#line 2094 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
-    E.Attrs = FunctionType::NoAttributeSet;
+    E.Attrs = NoAttributeSet;
     (yyval.ArgList)->push_back(E);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 208:
-#line 2103 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2116 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
@@ -4593,7 +4606,7 @@
     break;
 
   case 209:
-#line 2109 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2122 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   UnEscapeLexed((yyvsp[-6].StrVal));
   std::string FunctionName((yyvsp[-6].StrVal));
@@ -4605,24 +4618,31 @@
     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[-2].ParamAttrs));
+  ParamAttrsList ParamAttrs;
+  if ((yyvsp[-2].ParamAttrs) != NoAttributeSet)
+    ParamAttrs.addAttributes(0, (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) {
+    unsigned index = 1;
+    for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin(); I != (yyvsp[-4].ArgList)->end(); ++I, ++index) {
       const Type* Ty = I->Ty->get();
       if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(I->Ty))
         GEN_ERROR("Reference to abstract argument: " + Ty->getDescription());
       ParamTypeList.push_back(Ty);
       if (Ty != Type::VoidTy)
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
     }
   }
 
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  FunctionType *FT = FunctionType::get(*(yyvsp[-7].TypeVal), ParamTypeList, isVarArg,
-                                       ParamAttrs);
+  ParamAttrsList *ActualAttrs = 0;
+  if (!ParamAttrs.empty())
+    ActualAttrs = new ParamAttrsList(ParamAttrs);
+
+  FunctionType *FT = FunctionType::get(*(yyvsp[-7].TypeVal), ParamTypeList, isVarArg, 
+                                       ActualAttrs);
   const PointerType *PFT = PointerType::get(FT);
   delete (yyvsp[-7].TypeVal);
 
@@ -4707,7 +4727,7 @@
     break;
 
   case 212:
-#line 2222 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2242 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -4719,7 +4739,7 @@
     break;
 
   case 215:
-#line 2233 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2253 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
@@ -4727,7 +4747,7 @@
     break;
 
   case 216:
-#line 2238 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2258 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.CurrentFunction->setLinkage((yyvsp[-2].Linkage));
     CurFun.CurrentFunction->setVisibility((yyvsp[-1].Visibility));
@@ -4738,7 +4758,7 @@
     break;
 
   case 217:
-#line 2250 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2270 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -4746,7 +4766,7 @@
     break;
 
   case 218:
-#line 2254 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2274 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -4754,7 +4774,7 @@
     break;
 
   case 219:
-#line 2259 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2279 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
@@ -4762,7 +4782,7 @@
     break;
 
   case 220:
-#line 2263 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2283 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
@@ -4770,7 +4790,7 @@
     break;
 
   case 221:
-#line 2267 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2287 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
     CHECK_FOR_ERROR
@@ -4778,7 +4798,7 @@
     break;
 
   case 222:
-#line 2271 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2291 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
     CHECK_FOR_ERROR
@@ -4786,7 +4806,7 @@
     break;
 
   case 223:
-#line 2275 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2295 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
     CHECK_FOR_ERROR
@@ -4794,7 +4814,7 @@
     break;
 
   case 224:
-#line 2279 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2299 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
@@ -4802,7 +4822,7 @@
     break;
 
   case 225:
-#line 2283 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2303 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
@@ -4810,7 +4830,7 @@
     break;
 
   case 226:
-#line 2287 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2307 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
@@ -4818,7 +4838,7 @@
     break;
 
   case 227:
-#line 2291 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2311 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -4847,7 +4867,7 @@
     break;
 
   case 228:
-#line 2316 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2336 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
@@ -4855,7 +4875,7 @@
     break;
 
   case 229:
-#line 2320 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2340 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -4869,7 +4889,7 @@
     break;
 
   case 230:
-#line 2334 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2354 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::createLocalID((yyvsp[0].UIntVal));
     CHECK_FOR_ERROR
@@ -4877,7 +4897,7 @@
     break;
 
   case 231:
-#line 2338 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2358 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[0].UIntVal));
     CHECK_FOR_ERROR
@@ -4885,7 +4905,7 @@
     break;
 
   case 232:
-#line 2342 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2362 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createLocalName((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
@@ -4893,7 +4913,7 @@
     break;
 
   case 233:
-#line 2346 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2366 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createGlobalName((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
@@ -4901,7 +4921,7 @@
     break;
 
   case 236:
-#line 2358 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2378 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4912,7 +4932,7 @@
     break;
 
   case 237:
-#line 2367 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2387 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
@@ -4920,7 +4940,7 @@
     break;
 
   case 238:
-#line 2371 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2391 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
@@ -4928,7 +4948,7 @@
     break;
 
   case 239:
-#line 2380 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2400 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     CHECK_FOR_ERROR
@@ -4940,7 +4960,7 @@
     break;
 
   case 240:
-#line 2389 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2409 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -4953,7 +4973,7 @@
     break;
 
   case 241:
-#line 2398 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2418 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Empty space between instruction lists
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalID(CurFun.NextValNum));
     CHECK_FOR_ERROR
@@ -4961,7 +4981,7 @@
     break;
 
   case 242:
-#line 2402 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2422 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {             // Labelled (named) basic block
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName((yyvsp[0].StrVal)));
     CHECK_FOR_ERROR
@@ -4969,7 +4989,7 @@
     break;
 
   case 243:
-#line 2407 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2427 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
@@ -4977,7 +4997,7 @@
     break;
 
   case 244:
-#line 2411 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2431 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                                    // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
     CHECK_FOR_ERROR
@@ -4985,7 +5005,7 @@
     break;
 
   case 245:
-#line 2415 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                           // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -4994,7 +5014,7 @@
     break;
 
   case 246:
-#line 2420 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2440 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {  
     assert(cast<IntegerType>((yyvsp[-7].PrimType))->getBitWidth() == 1 && "Not Bool?");
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
@@ -5008,7 +5028,7 @@
     break;
 
   case 247:
-#line 2430 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2450 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
@@ -5031,7 +5051,7 @@
     break;
 
   case 248:
-#line 2449 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2469 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
@@ -5044,7 +5064,7 @@
     break;
 
   case 249:
-#line 2459 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2479 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -5054,17 +5074,24 @@
         !(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[-6].ParamAttrs));
-      for (ValueRefList::iterator I = (yyvsp[-8].ValueRefList)->begin(), E = (yyvsp[-8].ValueRefList)->end(); I != E; ++I) {
+      ParamAttrsList ParamAttrs;
+      if ((yyvsp[-6].ParamAttrs) != NoAttributeSet)
+        ParamAttrs.addAttributes(0, (yyvsp[-6].ParamAttrs));
+      ValueRefList::iterator I = (yyvsp[-8].ValueRefList)->begin(), E = (yyvsp[-8].ValueRefList)->end();
+      unsigned index = 1;
+      for (; I != E; ++I, ++index) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
         ParamTypes.push_back(Ty);
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
       }
 
-      Ty = FunctionType::get((yyvsp[-11].TypeVal)->get(), ParamTypes, false, ParamAttrs);
+      ParamAttrsList *Attrs = 0;
+      if (!ParamAttrs.empty())
+        Attrs = new ParamAttrsList(ParamAttrs);
+      Ty = FunctionType::get((yyvsp[-11].TypeVal)->get(), ParamTypes, false, Attrs);
       PFTy = PointerType::get(Ty);
     }
 
@@ -5116,7 +5143,7 @@
     break;
 
   case 250:
-#line 2527 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2554 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
@@ -5124,7 +5151,7 @@
     break;
 
   case 251:
-#line 2531 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2558 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
@@ -5132,7 +5159,7 @@
     break;
 
   case 252:
-#line 2538 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2565 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5147,7 +5174,7 @@
     break;
 
   case 253:
-#line 2549 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2576 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5163,7 +5190,7 @@
     break;
 
   case 254:
-#line 2562 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2589 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     // Is this definition named?? if so, assign the name...
     setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
@@ -5175,7 +5202,7 @@
     break;
 
   case 255:
-#line 2572 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2599 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-5].TypeVal))->getDescription());
@@ -5190,7 +5217,7 @@
     break;
 
   case 256:
-#line 2583 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2610 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5202,7 +5229,7 @@
     break;
 
   case 257:
-#line 2593 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2620 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5215,7 +5242,7 @@
     break;
 
   case 258:
-#line 2602 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2629 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5228,17 +5255,17 @@
     break;
 
   case 259:
-#line 2611 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2638 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueRefList) = new ValueRefList(); ;}
     break;
 
   case 260:
-#line 2614 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2641 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = new std::vector<Value*>(); ;}
     break;
 
   case 261:
-#line 2615 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2642 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5247,7 +5274,7 @@
     break;
 
   case 262:
-#line 2622 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2649 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -5255,7 +5282,7 @@
     break;
 
   case 263:
-#line 2626 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2653 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -5263,7 +5290,7 @@
     break;
 
   case 264:
-#line 2631 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2658 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5288,7 +5315,7 @@
     break;
 
   case 265:
-#line 2652 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2679 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5309,7 +5336,7 @@
     break;
 
   case 266:
-#line 2669 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2696 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5327,7 +5354,7 @@
     break;
 
   case 267:
-#line 2683 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2710 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5345,7 +5372,7 @@
     break;
 
   case 268:
-#line 2697 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5361,7 +5388,7 @@
     break;
 
   case 269:
-#line 2709 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2736 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-4].ValueVal)->getType() != Type::Int1Ty)
       GEN_ERROR("select condition must be boolean");
@@ -5373,7 +5400,7 @@
     break;
 
   case 270:
-#line 2717 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2744 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5384,7 +5411,7 @@
     break;
 
   case 271:
-#line 2724 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2751 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -5394,7 +5421,7 @@
     break;
 
   case 272:
-#line 2730 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2757 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -5404,7 +5431,7 @@
     break;
 
   case 273:
-#line 2736 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2763 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -5414,7 +5441,7 @@
     break;
 
   case 274:
-#line 2742 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2769 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5433,7 +5460,7 @@
     break;
 
   case 275:
-#line 2758 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2785 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -5443,17 +5470,25 @@
         !(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[0].ParamAttrs));
-      for (ValueRefList::iterator I = (yyvsp[-2].ValueRefList)->begin(), E = (yyvsp[-2].ValueRefList)->end(); I != E; ++I) {
+      ParamAttrsList ParamAttrs;
+      if ((yyvsp[0].ParamAttrs) != NoAttributeSet)
+        ParamAttrs.addAttributes(0, (yyvsp[0].ParamAttrs));
+      unsigned index = 1;
+      ValueRefList::iterator I = (yyvsp[-2].ValueRefList)->begin(), E = (yyvsp[-2].ValueRefList)->end();
+      for (; I != E; ++I, ++index) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
         ParamTypes.push_back(Ty);
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
       }
 
-      Ty = FunctionType::get((yyvsp[-5].TypeVal)->get(), ParamTypes, false, ParamAttrs);
+      ParamAttrsList *Attrs = 0;
+      if (!ParamAttrs.empty())
+        Attrs = new ParamAttrsList(ParamAttrs);
+
+      Ty = FunctionType::get((yyvsp[-5].TypeVal)->get(), ParamTypes, false, Attrs);
       PFTy = PointerType::get(Ty);
     }
 
@@ -5500,7 +5535,7 @@
     break;
 
   case 276:
-#line 2821 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2856 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
     CHECK_FOR_ERROR
@@ -5508,7 +5543,7 @@
     break;
 
   case 277:
-#line 2826 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2861 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -5516,7 +5551,7 @@
     break;
 
   case 278:
-#line 2830 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2865 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -5524,7 +5559,7 @@
     break;
 
   case 279:
-#line 2837 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2872 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5535,7 +5570,7 @@
     break;
 
   case 280:
-#line 2844 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2879 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5547,7 +5582,7 @@
     break;
 
   case 281:
-#line 2852 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2887 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5558,7 +5593,7 @@
     break;
 
   case 282:
-#line 2859 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2894 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5570,7 +5605,7 @@
     break;
 
   case 283:
-#line 2867 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2902 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " + 
@@ -5581,7 +5616,7 @@
     break;
 
   case 284:
-#line 2875 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2910 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5599,7 +5634,7 @@
     break;
 
   case 285:
-#line 2889 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2924 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5620,7 +5655,7 @@
     break;
 
   case 286:
-#line 2906 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2941 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5643,7 +5678,7 @@
     }
 
 /* Line 1126 of yacc.c.  */
-#line 5647 "llvmAsmParser.tab.c"
+#line 5682 "llvmAsmParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5911,7 +5946,7 @@
 }
 
 
-#line 2923 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 2958 "/proj/llvm/llvm-1/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.63 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.64
--- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.63	Sun Apr  8 20:56:05 2007
+++ llvm/lib/AsmParser/llvmAsmParser.h.cvs	Mon Apr  9 01:13:29 2007
@@ -299,7 +299,7 @@
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 939 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+#line 937 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -326,7 +326,7 @@
 
   llvm::GlobalValue::LinkageTypes         Linkage;
   llvm::GlobalValue::VisibilityTypes      Visibility;
-  llvm::FunctionType::ParameterAttributes ParamAttrs;
+  uint16_t                          ParamAttrs;
   llvm::APInt                       *APIntVal;
   int64_t                           SInt64Val;
   uint64_t                          UInt64Val;


Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.82 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.83
--- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.82	Sun Apr  8 20:56:05 2007
+++ llvm/lib/AsmParser/llvmAsmParser.y.cvs	Mon Apr  9 01:13:29 2007
@@ -200,8 +200,6 @@
     }
     return false;
   }
-
-
 } CurModule;
 
 static struct PerFunctionInfo {
@@ -962,7 +960,7 @@
 
   llvm::GlobalValue::LinkageTypes         Linkage;
   llvm::GlobalValue::VisibilityTypes      Visibility;
-  llvm::FunctionType::ParameterAttributes ParamAttrs;
+  uint16_t                          ParamAttrs;
   llvm::APInt                       *APIntVal;
   int64_t                           SInt64Val;
   uint64_t                          UInt64Val;
@@ -1191,26 +1189,26 @@
                   CHECK_FOR_ERROR
                  };
 
-ParamAttr     : ZEXT  { $$ = FunctionType::ZExtAttribute;      }
-              | SEXT  { $$ = FunctionType::SExtAttribute;      }
-              | INREG { $$ = FunctionType::InRegAttribute;     }
-              | SRET  { $$ = FunctionType::StructRetAttribute; }
+ParamAttr     : ZEXT  { $$ = ZExtAttribute;      }
+              | SEXT  { $$ = SExtAttribute;      }
+              | INREG { $$ = InRegAttribute;     }
+              | SRET  { $$ = StructRetAttribute; }
               ;
 
-OptParamAttrs : /* empty */  { $$ = FunctionType::NoAttributeSet; }
+OptParamAttrs : /* empty */  { $$ = NoAttributeSet; }
               | OptParamAttrs ParamAttr {
-                $$ = FunctionType::ParameterAttributes($1 | $2);
+                $$ = $1 | $2;
               }
               ;
 
-FuncAttr      : NORETURN { $$ = FunctionType::NoReturnAttribute; }
-              | NOUNWIND { $$ = FunctionType::NoUnwindAttribute; }
+FuncAttr      : NORETURN { $$ = NoReturnAttribute; }
+              | NOUNWIND { $$ = NoUnwindAttribute; }
               | ParamAttr
               ;
 
-OptFuncAttrs  : /* empty */ { $$ = FunctionType::NoAttributeSet; }
+OptFuncAttrs  : /* empty */ { $$ = NoAttributeSet; }
               | OptFuncAttrs FuncAttr {
-                $$ = FunctionType::ParameterAttributes($1 | $2);
+                $$ = $1 | $2;
               }
               ;
 
@@ -1299,18 +1297,25 @@
   }
   | Types '(' ArgTypeListI ')' OptFuncAttrs {
     std::vector<const Type*> Params;
-    std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back($5);
-    for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
+    ParamAttrsList Attrs;
+    if ($5 != NoAttributeSet)
+      Attrs.addAttributes(0, $5);
+    unsigned index = 1;
+    TypeWithAttrsList::iterator I = $3->begin(), E = $3->end();
+    for (; I != E; ++I, ++index) {
       const Type *Ty = I->Ty->get();
       Params.push_back(Ty);
       if (Ty != Type::VoidTy)
-        Attrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          Attrs.addAttributes(index, I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get(*$1, Params, isVarArg, Attrs);
+    ParamAttrsList *ActualAttrs = 0;
+    if (!Attrs.empty())
+      ActualAttrs = new ParamAttrsList(Attrs);
+    FunctionType *FT = FunctionType::get(*$1, Params, isVarArg, ActualAttrs);
     delete $3;   // Delete the argument list
     delete $1;   // Delete the return type handle
     $$ = new PATypeHolder(HandleUpRefs(FT)); 
@@ -1318,18 +1323,26 @@
   }
   | VOID '(' ArgTypeListI ')' OptFuncAttrs {
     std::vector<const Type*> Params;
-    std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back($5);
-    for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
+    ParamAttrsList Attrs;
+    if ($5 != NoAttributeSet)
+      Attrs.addAttributes(0, $5);
+    TypeWithAttrsList::iterator I = $3->begin(), E = $3->end();
+    unsigned index = 1;
+    for ( ; I != E; ++I, ++index) {
       const Type* Ty = I->Ty->get();
       Params.push_back(Ty);
       if (Ty != Type::VoidTy)
-        Attrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          Attrs.addAttributes(index, I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get($1, Params, isVarArg, Attrs);
+    ParamAttrsList *ActualAttrs = 0;
+    if (!Attrs.empty())
+      ActualAttrs = new ParamAttrsList(Attrs);
+
+    FunctionType *FT = FunctionType::get($1, Params, isVarArg, ActualAttrs);
     delete $3;      // Delete the argument list
     $$ = new PATypeHolder(HandleUpRefs(FT)); 
     CHECK_FOR_ERROR
@@ -1417,14 +1430,14 @@
   : ArgTypeList
   | ArgTypeList ',' DOTDOTDOT {
     $$=$1;
-    TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
+    TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
     $$->push_back(TWA);
     CHECK_FOR_ERROR
   }
   | DOTDOTDOT {
     $$ = new TypeWithAttrsList;
-    TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
+    TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
     $$->push_back(TWA);
     CHECK_FOR_ERROR
@@ -2087,7 +2100,7 @@
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
-    E.Attrs = FunctionType::NoAttributeSet;
+    E.Attrs = NoAttributeSet;
     $$->push_back(E);
     CHECK_FOR_ERROR
   }
@@ -2096,7 +2109,7 @@
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
-    E.Attrs = FunctionType::NoAttributeSet;
+    E.Attrs = NoAttributeSet;
     $$->push_back(E);
     CHECK_FOR_ERROR
   }
@@ -2117,24 +2130,31 @@
     GEN_ERROR("Reference to abstract result: "+ $2->get()->getDescription());
 
   std::vector<const Type*> ParamTypeList;
-  std::vector<FunctionType::ParameterAttributes> ParamAttrs;
-  ParamAttrs.push_back($7);
+  ParamAttrsList ParamAttrs;
+  if ($7 != NoAttributeSet)
+    ParamAttrs.addAttributes(0, $7);
   if ($5) {   // If there are arguments...
-    for (ArgListType::iterator I = $5->begin(); I != $5->end(); ++I) {
+    unsigned index = 1;
+    for (ArgListType::iterator I = $5->begin(); I != $5->end(); ++I, ++index) {
       const Type* Ty = I->Ty->get();
       if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(I->Ty))
         GEN_ERROR("Reference to abstract argument: " + Ty->getDescription());
       ParamTypeList.push_back(Ty);
       if (Ty != Type::VoidTy)
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
     }
   }
 
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  FunctionType *FT = FunctionType::get(*$2, ParamTypeList, isVarArg,
-                                       ParamAttrs);
+  ParamAttrsList *ActualAttrs = 0;
+  if (!ParamAttrs.empty())
+    ActualAttrs = new ParamAttrsList(ParamAttrs);
+
+  FunctionType *FT = FunctionType::get(*$2, ParamTypeList, isVarArg, 
+                                       ActualAttrs);
   const PointerType *PFT = PointerType::get(FT);
   delete $2;
 
@@ -2465,17 +2485,24 @@
         !(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($8);
-      for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
+      ParamAttrsList ParamAttrs;
+      if ($8 != NoAttributeSet)
+        ParamAttrs.addAttributes(0, $8);
+      ValueRefList::iterator I = $6->begin(), E = $6->end();
+      unsigned index = 1;
+      for (; I != E; ++I, ++index) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
         ParamTypes.push_back(Ty);
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
       }
 
-      Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
+      ParamAttrsList *Attrs = 0;
+      if (!ParamAttrs.empty())
+        Attrs = new ParamAttrsList(ParamAttrs);
+      Ty = FunctionType::get($3->get(), ParamTypes, false, Attrs);
       PFTy = PointerType::get(Ty);
     }
 
@@ -2764,17 +2791,25 @@
         !(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($8);
-      for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
+      ParamAttrsList ParamAttrs;
+      if ($8 != NoAttributeSet)
+        ParamAttrs.addAttributes(0, $8);
+      unsigned index = 1;
+      ValueRefList::iterator I = $6->begin(), E = $6->end();
+      for (; I != E; ++I, ++index) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
         ParamTypes.push_back(Ty);
-        ParamAttrs.push_back(I->Attrs);
+        if (I->Attrs != NoAttributeSet)
+          ParamAttrs.addAttributes(index, I->Attrs);
       }
 
-      Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
+      ParamAttrsList *Attrs = 0;
+      if (!ParamAttrs.empty())
+        Attrs = new ParamAttrsList(ParamAttrs);
+
+      Ty = FunctionType::get($3->get(), ParamTypes, false, Attrs);
       PFTy = PointerType::get(Ty);
     }
 






More information about the llvm-commits mailing list