diff --git a/llvm/lib/AsmParser/Lexer.cpp.cvs b/llvm/lib/AsmParser/Lexer.cpp.cvs index 0092f7f367f4..cbf22872cf74 100644 --- a/llvm/lib/AsmParser/Lexer.cpp.cvs +++ b/llvm/lib/AsmParser/Lexer.cpp.cvs @@ -869,7 +869,7 @@ goto find_rule; \ #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 @@ char *yytext; // //===----------------------------------------------------------------------===*/ #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 @@ -1168,7 +1168,7 @@ YY_DECL 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 @@ do_action: /* This label is used only to access EOF actions. */ { /* 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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_RULE_SETUP 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 @@ case YY_STATE_EOF(INITIAL): 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 @@ int main() return 0; } #endif -#line 442 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l" +#line 442 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l" diff --git a/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs b/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs index 9deb8cf256e2..f73f2ee5a448 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -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 @@ static struct PerModuleInfo { } return false; } - - } CurModule; static struct PerFunctionInfo { @@ -1279,7 +1277,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { #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 @@ typedef union YYSTYPE { 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 @@ typedef union YYSTYPE { 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 @@ typedef union YYSTYPE { /* 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 @@ static const short int yyrhs[] = /* 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 Params; - std::vector 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 @@ yyreduce: 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 Params; - std::vector 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 Elements; for (std::list::iterator I = (yyvsp[-1].TypeList)->begin(), @@ -3604,7 +3617,7 @@ yyreduce: 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())); CHECK_FOR_ERROR @@ -3612,7 +3625,7 @@ yyreduce: 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 Elements; for (std::list::iterator I = (yyvsp[-2].TypeList)->begin(), @@ -3626,7 +3639,7 @@ yyreduce: 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(), true)); CHECK_FOR_ERROR @@ -3634,7 +3647,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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(); (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); @@ -3717,7 +3730,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-3].TypeVal)->get()); if (STy == 0) @@ -3872,7 +3885,7 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-5].TypeVal)->get()); if (STy == 0) @@ -3925,7 +3938,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-1].PrimType))->getBitWidth(); if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) { @@ -4098,7 +4111,7 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-1].PrimType))->getBitWidth(); if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) { @@ -4122,7 +4135,7 @@ yyreduce: 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((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?"); (yyval.ConstVal) = ConstantInt::getTrue(); @@ -4131,7 +4144,7 @@ yyreduce: 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((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?"); (yyval.ConstVal) = ConstantInt::getFalse(); @@ -4140,7 +4153,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-2].ConstVal)->getType())) GEN_ERROR("GetElementPtr requires a pointer operand"); @@ -4192,7 +4205,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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(); (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); @@ -4294,17 +4307,17 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: GEN_ERROR("Reference to abstract result: "+ (yyvsp[-7].TypeVal)->get()->getDescription()); std::vector ParamTypeList; - std::vector 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[0].InstVal))) if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) @@ -4953,7 +4973,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[-7].PrimType))->getBitWidth() == 1 && "Not Bool?"); BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal)); @@ -5008,7 +5028,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5147,7 +5174,7 @@ yyreduce: 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 >(); Constant *V = cast(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal))); @@ -5163,7 +5190,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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(); ;} 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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((yyvsp[0].ValueVal)->getType())) GEN_ERROR("Trying to free nonpointer type " + @@ -5581,7 +5616,7 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: 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 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 5647 "llvmAsmParser.tab.c" +#line 5682 "llvmAsmParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -5911,7 +5946,7 @@ yyreturn: } -#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 diff --git a/llvm/lib/AsmParser/llvmAsmParser.h.cvs b/llvm/lib/AsmParser/llvmAsmParser.h.cvs index d76286c2dba4..4abbca579376 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.h.cvs +++ b/llvm/lib/AsmParser/llvmAsmParser.h.cvs @@ -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 @@ typedef union YYSTYPE { llvm::GlobalValue::LinkageTypes Linkage; llvm::GlobalValue::VisibilityTypes Visibility; - llvm::FunctionType::ParameterAttributes ParamAttrs; + uint16_t ParamAttrs; llvm::APInt *APIntVal; int64_t SInt64Val; uint64_t UInt64Val; diff --git a/llvm/lib/AsmParser/llvmAsmParser.y.cvs b/llvm/lib/AsmParser/llvmAsmParser.y.cvs index 030e057b712d..92d06a75c569 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.y.cvs +++ b/llvm/lib/AsmParser/llvmAsmParser.y.cvs @@ -200,8 +200,6 @@ static struct PerModuleInfo { } return false; } - - } CurModule; static struct PerFunctionInfo { @@ -962,7 +960,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { 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 @@ OptCallingConv : /*empty*/ { $$ = CallingConv::C; } | 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 } | Types '(' ArgTypeListI ')' OptFuncAttrs { std::vector Params; - std::vector 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 @@ Types } | VOID '(' ArgTypeListI ')' OptFuncAttrs { std::vector Params; - std::vector 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 @@ ArgTypeListI : 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 @@ ArgList : ArgListH { 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 @@ ArgList : ArgListH { 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 @@ FunctionHeaderH : OptCallingConv ResultTypes GlobalName '(' ArgList ')' GEN_ERROR("Reference to abstract result: "+ $2->get()->getDescription()); std::vector ParamTypeList; - std::vector 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 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result... !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector 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 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef { !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector 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); } diff --git a/llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs index a53944163ecd..2eebb7108b33 100644 --- a/llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs +++ b/llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs @@ -377,6 +377,7 @@ #include "llvm/InlineAsm.h" #include "llvm/Instructions.h" #include "llvm/Module.h" +#include "llvm/ParameterAttributes.h" #include "llvm/ValueSymbolTable.h" #include "llvm/Support/GetElementPtrTypeIterator.h" #include "llvm/ADT/STLExtras.h" @@ -737,14 +738,21 @@ static Signedness getElementSign(const ConstInfo& CI, static bool FuncTysDifferOnlyBySRet(const FunctionType *F1, const FunctionType *F2) { if (F1->getReturnType() != F2->getReturnType() || - F1->getNumParams() != F2->getNumParams() || - F1->getParamAttrs(0) != F2->getParamAttrs(0)) + F1->getNumParams() != F2->getNumParams()) return false; - unsigned SRetMask = ~unsigned(FunctionType::StructRetAttribute); + ParamAttrsList PAL1; + if (F1->getParamAttrs()) + PAL1 = *F1->getParamAttrs(); + ParamAttrsList PAL2; + if (F2->getParamAttrs()) + PAL2 = *F2->getParamAttrs(); + if (PAL1.getParamAttrs(0) != PAL2.getParamAttrs(0)) + return false; + unsigned SRetMask = ~unsigned(StructRetAttribute); for (unsigned i = 0; i < F1->getNumParams(); ++i) { if (F1->getParamType(i) != F2->getParamType(i) || - unsigned(F1->getParamAttrs(i+1)) & SRetMask != - unsigned(F2->getParamAttrs(i+1)) & SRetMask) + unsigned(PAL1.getParamAttrs(i+1)) & SRetMask != + unsigned(PAL2.getParamAttrs(i+1)) & SRetMask) return false; } return true; @@ -783,13 +791,15 @@ static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) { if (PF1 && PF2) { const FunctionType *FT1 = dyn_cast(PF1->getElementType()); const FunctionType *FT2 = dyn_cast(PF2->getElementType()); - if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) - if (FT2->paramHasAttr(1, FunctionType::StructRetAttribute)) + if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) { + const ParamAttrsList *PAL2 = FT2->getParamAttrs(); + if (PAL2 && PAL2->paramHasAttr(1, StructRetAttribute)) return V; else if (Constant *C = dyn_cast(V)) return ConstantExpr::getBitCast(C, PF1); else return new BitCastInst(V, PF1, "upgrd.cast", CurBB); + } } return 0; @@ -2107,7 +2117,7 @@ using namespace llvm; #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 1731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -2150,7 +2160,7 @@ typedef union YYSTYPE { llvm::Module::Endianness Endianness; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 2154 "UpgradeParser.tab.c" +#line 2164 "UpgradeParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -2162,7 +2172,7 @@ typedef union YYSTYPE { /* Line 219 of yacc.c. */ -#line 2166 "UpgradeParser.tab.c" +#line 2176 "UpgradeParser.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -2522,38 +2532,38 @@ static const short int yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 1871, 1871, 1872, 1880, 1881, 1891, 1891, 1891, 1891, - 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1895, 1895, 1895, - 1899, 1899, 1899, 1899, 1899, 1899, 1903, 1903, 1904, 1904, - 1905, 1905, 1906, 1906, 1907, 1907, 1911, 1911, 1912, 1912, - 1913, 1913, 1914, 1914, 1915, 1915, 1916, 1916, 1917, 1917, - 1918, 1919, 1922, 1922, 1922, 1922, 1926, 1926, 1926, 1926, - 1926, 1926, 1926, 1927, 1927, 1927, 1927, 1927, 1927, 1933, - 1933, 1933, 1933, 1937, 1937, 1937, 1937, 1941, 1941, 1945, - 1945, 1950, 1953, 1958, 1959, 1960, 1961, 1962, 1963, 1964, - 1965, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1986, - 1987, 1995, 1996, 2004, 2013, 2014, 2021, 2022, 2026, 2030, - 2046, 2047, 2054, 2055, 2062, 2070, 2070, 2070, 2070, 2070, - 2070, 2070, 2071, 2071, 2071, 2071, 2071, 2076, 2080, 2084, - 2089, 2098, 2116, 2122, 2135, 2146, 2150, 2163, 2167, 2181, - 2185, 2192, 2193, 2199, 2206, 2218, 2248, 2261, 2284, 2312, - 2334, 2345, 2367, 2378, 2387, 2392, 2451, 2458, 2466, 2473, - 2480, 2484, 2488, 2497, 2512, 2525, 2534, 2562, 2575, 2584, - 2590, 2596, 2607, 2613, 2619, 2630, 2631, 2640, 2641, 2653, - 2662, 2663, 2664, 2665, 2666, 2682, 2702, 2704, 2706, 2706, - 2713, 2713, 2721, 2721, 2729, 2729, 2738, 2740, 2742, 2747, - 2761, 2762, 2766, 2769, 2777, 2781, 2788, 2792, 2796, 2800, - 2808, 2808, 2812, 2813, 2817, 2825, 2830, 2838, 2839, 2846, - 2853, 2857, 3038, 3038, 3042, 3042, 3052, 3052, 3056, 3061, - 3062, 3063, 3067, 3068, 3067, 3080, 3081, 3086, 3087, 3088, - 3089, 3093, 3097, 3098, 3099, 3100, 3121, 3125, 3139, 3140, - 3145, 3145, 3153, 3163, 3166, 3175, 3186, 3191, 3200, 3211, - 3211, 3214, 3218, 3222, 3227, 3237, 3255, 3264, 3332, 3336, - 3343, 3355, 3370, 3400, 3410, 3420, 3424, 3431, 3432, 3436, - 3439, 3445, 3464, 3482, 3498, 3512, 3526, 3537, 3555, 3564, - 3573, 3580, 3601, 3625, 3631, 3637, 3643, 3659, 3746, 3754, - 3755, 3759, 3760, 3764, 3770, 3777, 3783, 3790, 3797, 3810, - 3836 + 0, 1881, 1881, 1882, 1890, 1891, 1901, 1901, 1901, 1901, + 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1905, 1905, 1905, + 1909, 1909, 1909, 1909, 1909, 1909, 1913, 1913, 1914, 1914, + 1915, 1915, 1916, 1916, 1917, 1917, 1921, 1921, 1922, 1922, + 1923, 1923, 1924, 1924, 1925, 1925, 1926, 1926, 1927, 1927, + 1928, 1929, 1932, 1932, 1932, 1932, 1936, 1936, 1936, 1936, + 1936, 1936, 1936, 1937, 1937, 1937, 1937, 1937, 1937, 1943, + 1943, 1943, 1943, 1947, 1947, 1947, 1947, 1951, 1951, 1955, + 1955, 1960, 1963, 1968, 1969, 1970, 1971, 1972, 1973, 1974, + 1975, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1996, + 1997, 2005, 2006, 2014, 2023, 2024, 2031, 2032, 2036, 2040, + 2056, 2057, 2064, 2065, 2072, 2080, 2080, 2080, 2080, 2080, + 2080, 2080, 2081, 2081, 2081, 2081, 2081, 2086, 2090, 2094, + 2099, 2108, 2126, 2132, 2145, 2156, 2160, 2173, 2177, 2191, + 2195, 2202, 2203, 2209, 2216, 2228, 2258, 2271, 2294, 2322, + 2344, 2355, 2377, 2388, 2397, 2402, 2461, 2468, 2476, 2483, + 2490, 2494, 2498, 2507, 2522, 2535, 2544, 2572, 2585, 2594, + 2600, 2606, 2617, 2623, 2629, 2640, 2641, 2650, 2651, 2663, + 2672, 2673, 2674, 2675, 2676, 2692, 2712, 2714, 2716, 2716, + 2723, 2723, 2731, 2731, 2739, 2739, 2748, 2750, 2752, 2757, + 2771, 2772, 2776, 2779, 2787, 2791, 2798, 2802, 2806, 2810, + 2818, 2818, 2822, 2823, 2827, 2835, 2840, 2848, 2849, 2856, + 2863, 2867, 3049, 3049, 3053, 3053, 3063, 3063, 3067, 3072, + 3073, 3074, 3078, 3079, 3078, 3091, 3092, 3097, 3098, 3099, + 3100, 3104, 3108, 3109, 3110, 3111, 3132, 3136, 3150, 3151, + 3156, 3156, 3164, 3174, 3177, 3186, 3197, 3202, 3211, 3222, + 3222, 3225, 3229, 3233, 3238, 3248, 3266, 3275, 3345, 3349, + 3356, 3368, 3383, 3413, 3423, 3433, 3437, 3444, 3445, 3449, + 3452, 3458, 3477, 3495, 3511, 3525, 3539, 3550, 3568, 3577, + 3586, 3593, 3614, 3638, 3644, 3650, 3656, 3672, 3762, 3770, + 3771, 3775, 3776, 3780, 3786, 3793, 3799, 3806, 3813, 3826, + 3852 }; #endif @@ -3943,7 +3953,7 @@ yyreduce: switch (yyn) { case 3: -#line 1872 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! error("Value too large for type"); @@ -3952,7 +3962,7 @@ yyreduce: break; case 5: -#line 1881 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1891 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! error("Value too large for type"); @@ -3961,226 +3971,226 @@ yyreduce: break; case 26: -#line 1903 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_EQ; ;} break; case 27: -#line 1903 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_NE; ;} break; case 28: -#line 1904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SLT; ;} break; case 29: -#line 1904 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SGT; ;} break; case 30: -#line 1905 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SLE; ;} break; case 31: -#line 1905 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_SGE; ;} break; case 32: -#line 1906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_ULT; ;} break; case 33: -#line 1906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_UGT; ;} break; case 34: -#line 1907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_ULE; ;} break; case 35: -#line 1907 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.IPred) = ICmpInst::ICMP_UGE; ;} break; case 36: -#line 1911 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1921 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OEQ; ;} break; case 37: -#line 1911 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1921 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ONE; ;} break; case 38: -#line 1912 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1922 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OLT; ;} break; case 39: -#line 1912 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1922 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OGT; ;} break; case 40: -#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OLE; ;} break; case 41: -#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1923 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_OGE; ;} break; case 42: -#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ORD; ;} break; case 43: -#line 1914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1924 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UNO; ;} break; case 44: -#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UEQ; ;} break; case 45: -#line 1915 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UNE; ;} break; case 46: -#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ULT; ;} break; case 47: -#line 1916 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1926 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UGT; ;} break; case 48: -#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1927 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_ULE; ;} break; case 49: -#line 1917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1927 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_UGE; ;} break; case 50: -#line 1918 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1928 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_TRUE; ;} break; case 51: -#line 1919 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1929 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FPred) = FCmpInst::FCMP_FALSE; ;} break; case 81: -#line 1950 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1960 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = (yyvsp[-1].StrVal); ;} break; case 82: -#line 1953 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1963 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = 0; ;} break; case 83: -#line 1958 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1968 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} break; case 84: -#line 1959 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1969 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} break; case 85: -#line 1960 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1970 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} break; case 86: -#line 1961 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} break; case 87: -#line 1962 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1972 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 88: -#line 1963 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1973 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} break; case 89: -#line 1964 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 90: -#line 1965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1975 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 91: -#line 1969 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1979 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::C; ;} break; case 92: -#line 1970 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1980 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::C; ;} break; case 93: -#line 1971 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1981 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::CSRet; ;} break; case 94: -#line 1972 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1982 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::Fast; ;} break; case 95: -#line 1973 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1983 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::Cold; ;} break; case 96: -#line 1974 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1984 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::X86_StdCall; ;} break; case 97: -#line 1975 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1985 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = OldCallingConv::X86_FastCall; ;} break; case 98: -#line 1976 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val)) error("Calling conv too large"); @@ -4189,12 +4199,12 @@ yyreduce: break; case 99: -#line 1986 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = 0; ;} break; case 100: -#line 1987 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1997 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -4203,12 +4213,12 @@ yyreduce: break; case 101: -#line 1995 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2005 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = 0; ;} break; case 102: -#line 1996 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2006 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.UIntVal) = (yyvsp[0].UInt64Val); if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) @@ -4217,7 +4227,7 @@ yyreduce: break; case 103: -#line 2004 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i) if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\') @@ -4227,27 +4237,27 @@ yyreduce: break; case 104: -#line 2013 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2023 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = 0; ;} break; case 105: -#line 2014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2024 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = (yyvsp[0].StrVal); ;} break; case 106: -#line 2021 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2031 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" {;} break; case 107: -#line 2022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2032 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" {;} break; case 108: -#line 2026 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2036 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV->setSection((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -4255,7 +4265,7 @@ yyreduce: break; case 109: -#line 2030 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2040 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val))) error("Alignment must be a power of two"); @@ -4265,7 +4275,7 @@ yyreduce: break; case 111: -#line 2047 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2057 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S.makeSignless(); @@ -4273,7 +4283,7 @@ yyreduce: break; case 113: -#line 2055 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2065 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S.makeSignless(); @@ -4281,7 +4291,7 @@ yyreduce: break; case 114: -#line 2062 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2072 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!UpRefs.empty()) error("Invalid upreference in type: " + (*(yyvsp[0].TypeVal).PAT)->getDescription()); @@ -4290,7 +4300,7 @@ yyreduce: break; case 127: -#line 2076 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2086 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).PAT = new PATypeHolder((yyvsp[0].PrimType).T); (yyval.TypeVal).S.copy((yyvsp[0].PrimType).S); @@ -4298,7 +4308,7 @@ yyreduce: break; case 128: -#line 2080 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2090 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeVal).PAT = new PATypeHolder(OpaqueType::get()); (yyval.TypeVal).S.makeSignless(); @@ -4306,7 +4316,7 @@ yyreduce: break; case 129: -#line 2084 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Named types are also simple types... (yyval.TypeVal).S.copy(getTypeSign((yyvsp[0].ValIDVal))); const Type* tmp = getType((yyvsp[0].ValIDVal)); @@ -4315,7 +4325,7 @@ yyreduce: break; case 130: -#line 2089 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Type UpReference if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) error("Value out of range"); @@ -4328,7 +4338,7 @@ yyreduce: break; case 131: -#line 2098 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2108 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function derived type? (yyval.TypeVal).S.makeComposite((yyvsp[-3].TypeVal).S); std::vector Params; @@ -4337,20 +4347,20 @@ yyreduce: Params.push_back(I->PAT->get()); (yyval.TypeVal).S.add(I->S); } - FunctionType::ParamAttrsList ParamAttrs; bool isVarArg = Params.size() && Params.back() == Type::VoidTy; if (isVarArg) Params.pop_back(); - (yyval.TypeVal).PAT = new PATypeHolder( - HandleUpRefs(FunctionType::get((yyvsp[-3].TypeVal).PAT->get(), Params, isVarArg, - ParamAttrs), (yyval.TypeVal).S)); + const FunctionType *FTy = + FunctionType::get((yyvsp[-3].TypeVal).PAT->get(), Params, isVarArg, 0); + + (yyval.TypeVal).PAT = new PATypeHolder( HandleUpRefs(FTy, (yyval.TypeVal).S) ); delete (yyvsp[-3].TypeVal).PAT; // Delete the return type handle delete (yyvsp[-1].TypeList); // Delete the argument list ;} break; case 132: -#line 2116 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2126 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Sized array type? (yyval.TypeVal).S.makeComposite((yyvsp[-1].TypeVal).S); (yyval.TypeVal).PAT = new PATypeHolder(HandleUpRefs(ArrayType::get((yyvsp[-1].TypeVal).PAT->get(), @@ -4360,7 +4370,7 @@ yyreduce: break; case 133: -#line 2122 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2132 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Vector type? const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).PAT->get(); if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val)) @@ -4377,7 +4387,7 @@ yyreduce: break; case 134: -#line 2135 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2145 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Structure type? std::vector Elements; (yyval.TypeVal).S.makeComposite(); @@ -4392,7 +4402,7 @@ yyreduce: break; case 135: -#line 2146 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2156 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty structure type? (yyval.TypeVal).PAT = new PATypeHolder(StructType::get(std::vector())); (yyval.TypeVal).S.makeComposite(); @@ -4400,7 +4410,7 @@ yyreduce: break; case 136: -#line 2150 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2160 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Packed Structure type? (yyval.TypeVal).S.makeComposite(); std::vector Elements; @@ -4417,7 +4427,7 @@ yyreduce: break; case 137: -#line 2163 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2173 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Empty packed structure type? (yyval.TypeVal).PAT = new PATypeHolder(StructType::get(std::vector(),true)); (yyval.TypeVal).S.makeComposite(); @@ -4425,7 +4435,7 @@ yyreduce: break; case 138: -#line 2167 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2177 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Pointer type? if ((yyvsp[-1].TypeVal).PAT->get() == Type::LabelTy) error("Cannot form a pointer to a basic block"); @@ -4437,7 +4447,7 @@ yyreduce: break; case 139: -#line 2181 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list(); (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); @@ -4445,14 +4455,14 @@ yyreduce: break; case 140: -#line 2185 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2195 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal)); ;} break; case 142: -#line 2193 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2203 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { PATypeInfo VoidTI; VoidTI.PAT = new PATypeHolder(Type::VoidTy); @@ -4462,7 +4472,7 @@ yyreduce: break; case 143: -#line 2199 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2209 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list(); PATypeInfo VoidTI; @@ -4473,14 +4483,14 @@ yyreduce: break; case 144: -#line 2206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2216 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TypeList) = new std::list(); ;} break; case 145: -#line 2218 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast((yyvsp[-3].TypeVal).PAT->get()); if (ATy == 0) @@ -4514,7 +4524,7 @@ yyreduce: break; case 146: -#line 2248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal).PAT->get()); if (ATy == 0) @@ -4531,7 +4541,7 @@ yyreduce: break; case 147: -#line 2261 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2271 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const ArrayType *ATy = dyn_cast((yyvsp[-2].TypeVal).PAT->get()); if (ATy == 0) @@ -4558,7 +4568,7 @@ yyreduce: break; case 148: -#line 2284 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2294 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized arr const VectorType *PTy = dyn_cast((yyvsp[-3].TypeVal).PAT->get()); if (PTy == 0) @@ -4590,7 +4600,7 @@ yyreduce: break; case 149: -#line 2312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast((yyvsp[-3].TypeVal).PAT->get()); if (STy == 0) @@ -4616,7 +4626,7 @@ yyreduce: break; case 150: -#line 2334 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast((yyvsp[-2].TypeVal).PAT->get()); if (STy == 0) @@ -4631,7 +4641,7 @@ yyreduce: break; case 151: -#line 2345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2355 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast((yyvsp[-5].TypeVal).PAT->get()); if (STy == 0) @@ -4657,7 +4667,7 @@ yyreduce: break; case 152: -#line 2367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2377 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const StructType *STy = dyn_cast((yyvsp[-4].TypeVal).PAT->get()); if (STy == 0) @@ -4672,7 +4682,7 @@ yyreduce: break; case 153: -#line 2378 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const PointerType *PTy = dyn_cast((yyvsp[-1].TypeVal).PAT->get()); if (PTy == 0) @@ -4685,7 +4695,7 @@ yyreduce: break; case 154: -#line 2387 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2397 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ConstVal).C = UndefValue::get((yyvsp[-1].TypeVal).PAT->get()); (yyval.ConstVal).S.copy((yyvsp[-1].TypeVal).S); @@ -4694,7 +4704,7 @@ yyreduce: break; case 155: -#line 2392 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const PointerType *Ty = dyn_cast((yyvsp[-1].TypeVal).PAT->get()); if (Ty == 0) @@ -4757,7 +4767,7 @@ yyreduce: break; case 156: -#line 2451 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2461 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].TypeVal).PAT->get() != (yyvsp[0].ConstVal).C->getType()) error("Mismatched types for constant expression"); @@ -4768,7 +4778,7 @@ yyreduce: break; case 157: -#line 2458 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2468 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).PAT->get(); if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) @@ -4780,7 +4790,7 @@ yyreduce: break; case 158: -#line 2466 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants const Type *Ty = (yyvsp[-1].PrimType).T; if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].SInt64Val))) @@ -4791,7 +4801,7 @@ yyreduce: break; case 159: -#line 2473 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2483 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // integral constants const Type *Ty = (yyvsp[-1].PrimType).T; if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].UInt64Val))) @@ -4802,7 +4812,7 @@ yyreduce: break; case 160: -#line 2480 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2490 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, true); (yyval.ConstVal).S.makeUnsigned(); @@ -4810,7 +4820,7 @@ yyreduce: break; case 161: -#line 2484 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2494 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Boolean constants (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, false); (yyval.ConstVal).S.makeUnsigned(); @@ -4818,7 +4828,7 @@ yyreduce: break; case 162: -#line 2488 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType).T, (yyvsp[0].FPVal))) error("Floating point constant invalid for type"); @@ -4828,7 +4838,7 @@ yyreduce: break; case 163: -#line 2497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2507 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* SrcTy = (yyvsp[-3].ConstVal).C->getType(); const Type* DstTy = (yyvsp[-1].TypeVal).PAT->get(); @@ -4847,7 +4857,7 @@ yyreduce: break; case 164: -#line 2512 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2522 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-2].ConstVal).C->getType(); if (!isa(Ty)) @@ -4864,7 +4874,7 @@ yyreduce: break; case 165: -#line 2525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2535 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-5].ConstVal).C->getType()->isInteger() || cast((yyvsp[-5].ConstVal).C->getType())->getBitWidth() != 1) @@ -4877,7 +4887,7 @@ yyreduce: break; case 166: -#line 2534 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2544 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-3].ConstVal).C->getType(); if (Ty != (yyvsp[-1].ConstVal).C->getType()) @@ -4909,7 +4919,7 @@ yyreduce: break; case 167: -#line 2562 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* Ty = (yyvsp[-3].ConstVal).C->getType(); if (Ty != (yyvsp[-1].ConstVal).C->getType()) @@ -4926,7 +4936,7 @@ yyreduce: break; case 168: -#line 2575 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2585 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* Ty = (yyvsp[-3].ConstVal).C->getType(); if (Ty != (yyvsp[-1].ConstVal).C->getType()) @@ -4939,7 +4949,7 @@ yyreduce: break; case 169: -#line 2584 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2594 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) error("icmp operand types must match"); @@ -4949,7 +4959,7 @@ yyreduce: break; case 170: -#line 2590 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2600 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) error("fcmp operand types must match"); @@ -4959,7 +4969,7 @@ yyreduce: break; case 171: -#line 2596 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2606 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-1].ConstVal).C->getType()->isInteger() || cast((yyvsp[-1].ConstVal).C->getType())->getBitWidth() != 8) @@ -4974,7 +4984,7 @@ yyreduce: break; case 172: -#line 2607 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2617 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C)) error("Invalid extractelement operands"); @@ -4984,7 +4994,7 @@ yyreduce: break; case 173: -#line 2613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C)) error("Invalid insertelement operands"); @@ -4994,7 +5004,7 @@ yyreduce: break; case 174: -#line 2619 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2629 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C)) error("Invalid shufflevector operands"); @@ -5004,12 +5014,12 @@ yyreduce: break; case 175: -#line 2630 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2640 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); ;} break; case 176: -#line 2631 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2641 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ConstVector) = new std::vector(); (yyval.ConstVector)->push_back((yyvsp[0].ConstVal)); @@ -5017,17 +5027,17 @@ yyreduce: break; case 177: -#line 2640 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = false; ;} break; case 178: -#line 2641 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2651 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = true; ;} break; case 179: -#line 2653 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2663 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal); CurModule.ModuleDone(); @@ -5035,27 +5045,27 @@ yyreduce: break; case 180: -#line 2662 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); ;} break; case 181: -#line 2663 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;} break; case 182: -#line 2664 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); ;} break; case 183: -#line 2665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2675 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;} break; case 184: -#line 2666 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2676 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ModuleVal) = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -5071,7 +5081,7 @@ yyreduce: break; case 185: -#line 2682 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2692 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -5095,19 +5105,19 @@ yyreduce: break; case 186: -#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Function prototypes can be in const pool ;} break; case 187: -#line 2704 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2714 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Asm blocks can be in the const pool ;} break; case 188: -#line 2706 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2716 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].ConstVal).C == 0) error("Global value initializer is not a constant"); @@ -5116,14 +5126,14 @@ yyreduce: break; case 189: -#line 2710 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2720 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV = 0; ;} break; case 190: -#line 2713 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[0].TypeVal).PAT->get(); CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), Ty, 0, @@ -5133,14 +5143,14 @@ yyreduce: break; case 191: -#line 2718 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV = 0; ;} break; case 192: -#line 2721 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[0].TypeVal).PAT->get(); CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), Ty, 0, @@ -5150,14 +5160,14 @@ yyreduce: break; case 193: -#line 2726 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2736 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV = 0; ;} break; case 194: -#line 2729 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[0].TypeVal).PAT->get(); CurGV = @@ -5168,32 +5178,32 @@ yyreduce: break; case 195: -#line 2735 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2745 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurGV = 0; ;} break; case 196: -#line 2738 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2748 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 197: -#line 2740 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2750 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 198: -#line 2742 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 199: -#line 2747 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2757 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true); @@ -5208,24 +5218,24 @@ yyreduce: break; case 200: -#line 2761 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Endianness) = Module::BigEndian; ;} break; case 201: -#line 2762 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2772 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Endianness) = Module::LittleEndian; ;} break; case 202: -#line 2766 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2776 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurModule.setEndianness((yyvsp[0].Endianness)); ;} break; case 203: -#line 2769 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2779 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].UInt64Val) == 32) CurModule.setPointerSize(Module::Pointer32); @@ -5237,7 +5247,7 @@ yyreduce: break; case 204: -#line 2777 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2787 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -5245,7 +5255,7 @@ yyreduce: break; case 205: -#line 2781 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2791 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -5253,7 +5263,7 @@ yyreduce: break; case 207: -#line 2792 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2802 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -5261,7 +5271,7 @@ yyreduce: break; case 208: -#line 2796 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2806 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal)); free((yyvsp[0].StrVal)); @@ -5269,17 +5279,17 @@ yyreduce: break; case 209: -#line 2800 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2810 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ;} break; case 213: -#line 2813 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2823 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.StrVal) = 0; ;} break; case 214: -#line 2817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2827 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[-1].TypeVal).PAT->get() == Type::VoidTy) error("void typed arguments are invalid"); @@ -5288,7 +5298,7 @@ yyreduce: break; case 215: -#line 2825 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2835 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -5297,7 +5307,7 @@ yyreduce: break; case 216: -#line 2830 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2840 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = new std::vector >(); (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal)); @@ -5306,12 +5316,12 @@ yyreduce: break; case 217: -#line 2838 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2848 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = (yyvsp[0].ArgList); ;} break; case 218: -#line 2839 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2849 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = (yyvsp[-2].ArgList); PATypeInfo VoidTI; @@ -5322,7 +5332,7 @@ yyreduce: break; case 219: -#line 2846 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = new std::vector >(); PATypeInfo VoidTI; @@ -5333,12 +5343,12 @@ yyreduce: break; case 220: -#line 2853 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2863 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ArgList) = 0; ;} break; case 221: -#line 2857 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 2867 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { UnEscapeLexed((yyvsp[-5].StrVal)); std::string FunctionName((yyvsp[-5].StrVal)); @@ -5376,14 +5386,15 @@ yyreduce: // Convert the CSRet calling convention into the corresponding parameter // attribute. - FunctionType::ParamAttrsList ParamAttrs; + ParamAttrsList *ParamAttrs = 0; if ((yyvsp[-7].UIntVal) == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); // result - ParamAttrs.push_back(FunctionType::StructRetAttribute); // first arg + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // result + ParamAttrs->addAttributes(1, StructRetAttribute); // first arg } - const FunctionType *FT = FunctionType::get(RetTy, ParamTyList, isVarArg, - ParamAttrs); + const FunctionType *FT = + FunctionType::get(RetTy, ParamTyList, isVarArg, ParamAttrs); const PointerType *PFT = PointerType::get(FT); delete (yyvsp[-6].TypeVal).PAT; @@ -5520,12 +5531,12 @@ yyreduce: break; case 224: -#line 3042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurFun.Linkage = (yyvsp[0].Linkage); ;} break; case 225: -#line 3042 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3053 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; @@ -5536,39 +5547,39 @@ yyreduce: break; case 228: -#line 3056 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); ;} break; case 229: -#line 3061 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3072 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} break; case 230: -#line 3062 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3073 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} break; case 231: -#line 3063 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} break; case 232: -#line 3067 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3078 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurFun.isDeclare = true; ;} break; case 233: -#line 3068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3079 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { CurFun.Linkage = (yyvsp[0].Linkage); ;} break; case 234: -#line 3068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3079 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FunctionVal) = CurFun.CurrentFunction; CurFun.FunctionDone(); @@ -5577,32 +5588,32 @@ yyreduce: break; case 235: -#line 3080 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3091 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = false; ;} break; case 236: -#line 3081 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3092 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = true; ;} break; case 237: -#line 3086 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3097 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); ;} break; case 238: -#line 3087 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3098 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); ;} break; case 239: -#line 3088 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); ;} break; case 240: -#line 3089 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, true)); (yyval.ValIDVal).S.makeUnsigned(); @@ -5610,7 +5621,7 @@ yyreduce: break; case 241: -#line 3093 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3104 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, false)); (yyval.ValIDVal).S.makeUnsigned(); @@ -5618,22 +5629,22 @@ yyreduce: break; case 242: -#line 3097 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3108 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::createNull(); ;} break; case 243: -#line 3098 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3109 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::createUndef(); ;} break; case 244: -#line 3099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3110 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::createZeroInit(); ;} break; case 245: -#line 3100 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3111 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Nonempty unsized packed vector const Type *ETy = (*(yyvsp[-1].ConstVector))[0].C->getType(); int NumElements = (yyvsp[-1].ConstVector)->size(); @@ -5658,7 +5669,7 @@ yyreduce: break; case 246: -#line 3121 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3132 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal).C); (yyval.ValIDVal).S.copy((yyvsp[0].ConstVal).S); @@ -5666,7 +5677,7 @@ yyreduce: break; case 247: -#line 3125 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3136 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { char *End = UnEscapeLexed((yyvsp[-2].StrVal), true); std::string AsmStr = std::string((yyvsp[-2].StrVal), End); @@ -5679,17 +5690,17 @@ yyreduce: break; case 248: -#line 3139 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3150 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); (yyval.ValIDVal).S.makeSignless(); ;} break; case 249: -#line 3140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3151 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); (yyval.ValIDVal).S.makeSignless(); ;} break; case 252: -#line 3153 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).PAT->get(); (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S); @@ -5700,21 +5711,21 @@ yyreduce: break; case 253: -#line 3163 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3174 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); ;} break; case 254: -#line 3166 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3177 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Do not allow functions with 0 basic blocks (yyval.FunctionVal) = (yyvsp[-1].FunctionVal); ;} break; case 255: -#line 3175 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { ValueInfo VI; VI.V = (yyvsp[0].TermInstVal).TI; VI.S.copy((yyvsp[0].TermInstVal).S); setValueName(VI, (yyvsp[-1].StrVal)); @@ -5726,7 +5737,7 @@ yyreduce: break; case 256: -#line 3186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3197 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if ((yyvsp[0].InstVal).I) (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal).I); @@ -5735,7 +5746,7 @@ yyreduce: break; case 257: -#line 3191 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++),true); // Make sure to move the basic block to the correct location in the @@ -5748,7 +5759,7 @@ yyreduce: break; case 258: -#line 3200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3211 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true); // Make sure to move the basic block to the correct location in the @@ -5761,7 +5772,7 @@ yyreduce: break; case 261: -#line 3214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3225 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with a result... (yyval.TermInstVal).TI = new ReturnInst((yyvsp[0].ValueVal).V); (yyval.TermInstVal).S.makeSignless(); @@ -5769,7 +5780,7 @@ yyreduce: break; case 262: -#line 3218 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3229 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Return with no result... (yyval.TermInstVal).TI = new ReturnInst(); (yyval.TermInstVal).S.makeSignless(); @@ -5777,7 +5788,7 @@ yyreduce: break; case 263: -#line 3222 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Unconditional Branch... BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal)); (yyval.TermInstVal).TI = new BranchInst(tmpBB); @@ -5786,7 +5797,7 @@ yyreduce: break; case 264: -#line 3227 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-3].ValIDVal).S.makeSignless(); (yyvsp[0].ValIDVal).S.makeSignless(); @@ -5800,7 +5811,7 @@ yyreduce: break; case 265: -#line 3237 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-6].ValIDVal).S.copy((yyvsp[-7].PrimType).S); Value* tmpVal = getVal((yyvsp[-7].PrimType).T, (yyvsp[-6].ValIDVal)); @@ -5822,7 +5833,7 @@ yyreduce: break; case 266: -#line 3255 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3266 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-5].ValIDVal).S.copy((yyvsp[-6].PrimType).S); Value* tmpVal = getVal((yyvsp[-6].PrimType).T, (yyvsp[-5].ValIDVal)); @@ -5835,7 +5846,7 @@ yyreduce: break; case 267: -#line 3265 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3276 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -5853,10 +5864,11 @@ yyreduce: FTySign.add(I->S); } } - FunctionType::ParamAttrsList ParamAttrs; + ParamAttrsList *ParamAttrs = 0; if ((yyvsp[-11].UIntVal) == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); - ParamAttrs.push_back(FunctionType::StructRetAttribute); + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // Function result + ParamAttrs->addAttributes(1, StructRetAttribute); // first param } bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); @@ -5870,6 +5882,7 @@ yyreduce: // and then the 0th element again to get the result type. (yyval.TermInstVal).S.copy((yyvsp[-10].TypeVal).S.get(0).get(0)); } + (yyvsp[-9].ValIDVal).S.makeComposite(FTySign); Value *V = getVal(PFTy, (yyvsp[-9].ValIDVal)); // Get the function we're calling... BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal)); @@ -5906,7 +5919,7 @@ yyreduce: break; case 268: -#line 3332 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TermInstVal).TI = new UnwindInst(); (yyval.TermInstVal).S.makeSignless(); @@ -5914,7 +5927,7 @@ yyreduce: break; case 269: -#line 3336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3349 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.TermInstVal).TI = new UnreachableInst(); (yyval.TermInstVal).S.makeSignless(); @@ -5922,7 +5935,7 @@ yyreduce: break; case 270: -#line 3343 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3356 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.JumpTable) = (yyvsp[-5].JumpTable); (yyvsp[-3].ValIDVal).S.copy((yyvsp[-4].PrimType).S); @@ -5938,7 +5951,7 @@ yyreduce: break; case 271: -#line 3355 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.JumpTable) = new std::vector >(); (yyvsp[-3].ValIDVal).S.copy((yyvsp[-4].PrimType).S); @@ -5954,7 +5967,7 @@ yyreduce: break; case 272: -#line 3370 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { bool omit = false; if ((yyvsp[-1].StrVal)) @@ -5987,7 +6000,7 @@ yyreduce: break; case 273: -#line 3400 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3413 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for PHI nodes (yyval.PHIList).P = new std::list >(); (yyval.PHIList).S.copy((yyvsp[-5].TypeVal).S); @@ -6001,7 +6014,7 @@ yyreduce: break; case 274: -#line 3410 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3423 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.PHIList) = (yyvsp[-6].PHIList); (yyvsp[-3].ValIDVal).S.copy((yyvsp[-6].PHIList).S); @@ -6013,7 +6026,7 @@ yyreduce: break; case 275: -#line 3420 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3433 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Used for call statements, and memory insts... (yyval.ValueList) = new std::vector(); (yyval.ValueList)->push_back((yyvsp[0].ValueVal)); @@ -6021,7 +6034,7 @@ yyreduce: break; case 276: -#line 3424 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3437 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValueList) = (yyvsp[-2].ValueList); (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal)); @@ -6029,26 +6042,26 @@ yyreduce: break; case 278: -#line 3432 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3445 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValueList) = 0; ;} break; case 279: -#line 3436 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3449 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = true; ;} break; case 280: -#line 3439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3452 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = false; ;} break; case 281: -#line 3445 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3458 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); @@ -6071,7 +6084,7 @@ yyreduce: break; case 282: -#line 3464 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3477 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); @@ -6093,7 +6106,7 @@ yyreduce: break; case 283: -#line 3482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3495 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); @@ -6113,7 +6126,7 @@ yyreduce: break; case 284: -#line 3498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3511 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); @@ -6131,7 +6144,7 @@ yyreduce: break; case 285: -#line 3512 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-2].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); (yyvsp[0].ValIDVal).S.copy((yyvsp[-3].TypeVal).S); @@ -6149,7 +6162,7 @@ yyreduce: break; case 286: -#line 3526 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { warning("Use of obsolete 'not' instruction: Replacing with 'xor"); const Type *Ty = (yyvsp[0].ValueVal).V->getType(); @@ -6164,7 +6177,7 @@ yyreduce: break; case 287: -#line 3537 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3550 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[0].ValueVal).V->getType()->isInteger() || cast((yyvsp[0].ValueVal).V->getType())->getBitWidth() != 8) @@ -6186,7 +6199,7 @@ yyreduce: break; case 288: -#line 3555 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3568 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *DstTy = (yyvsp[0].TypeVal).PAT->get(); if (!DstTy->isFirstClassType()) @@ -6199,7 +6212,7 @@ yyreduce: break; case 289: -#line 3564 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!(yyvsp[-4].ValueVal).V->getType()->isInteger() || cast((yyvsp[-4].ValueVal).V->getType())->getBitWidth() != 1) @@ -6212,7 +6225,7 @@ yyreduce: break; case 290: -#line 3573 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3586 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[0].TypeVal).PAT->get(); NewVarArgs = true; @@ -6223,7 +6236,7 @@ yyreduce: break; case 291: -#line 3580 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3593 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType(); const Type* DstTy = (yyvsp[0].TypeVal).PAT->get(); @@ -6248,7 +6261,7 @@ yyreduce: break; case 292: -#line 3601 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType(); const Type* DstTy = (yyvsp[0].TypeVal).PAT->get(); @@ -6276,7 +6289,7 @@ yyreduce: break; case 293: -#line 3625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3638 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V)) error("Invalid extractelement operands"); @@ -6286,7 +6299,7 @@ yyreduce: break; case 294: -#line 3631 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3644 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V)) error("Invalid insertelement operands"); @@ -6296,7 +6309,7 @@ yyreduce: break; case 295: -#line 3637 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3650 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V)) error("Invalid shufflevector operands"); @@ -6306,7 +6319,7 @@ yyreduce: break; case 296: -#line 3643 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3656 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[0].PHIList).P->front().first->getType(); if (!Ty->isFirstClassType()) @@ -6326,7 +6339,7 @@ yyreduce: break; case 297: -#line 3659 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { // Handle the short call syntax const PointerType *PFTy; @@ -6345,11 +6358,6 @@ yyreduce: } } - FunctionType::ParamAttrsList ParamAttrs; - if ((yyvsp[-5].UIntVal) == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); - ParamAttrs.push_back(FunctionType::StructRetAttribute); - } bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); @@ -6357,6 +6365,14 @@ yyreduce: if (!RetTy->isFirstClassType() && RetTy != Type::VoidTy) error("Functions cannot return aggregate types"); + // Deal with CSRetCC + ParamAttrsList *ParamAttrs = 0; + if ((yyvsp[-5].UIntVal) == OldCallingConv::CSRet) { + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // function result + ParamAttrs->addAttributes(1, StructRetAttribute); // first parameter + } + FTy = FunctionType::get(RetTy, ParamTypes, isVarArg, ParamAttrs); PFTy = PointerType::get(FTy); (yyval.InstVal).S.copy((yyvsp[-4].TypeVal).S); @@ -6417,34 +6433,34 @@ yyreduce: break; case 298: -#line 3746 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3762 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.InstVal) = (yyvsp[0].InstVal); ;} break; case 299: -#line 3754 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValueList) = (yyvsp[0].ValueList); ;} break; case 300: -#line 3755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.ValueList) = new std::vector(); ;} break; case 301: -#line 3759 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3775 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = true; ;} break; case 302: -#line 3760 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3776 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyval.BoolVal) = false; ;} break; case 303: -#line 3764 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3780 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).PAT->get(); (yyval.InstVal).S.makeComposite((yyvsp[-1].TypeVal).S); @@ -6454,7 +6470,7 @@ yyreduce: break; case 304: -#line 3770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3786 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-4].TypeVal).PAT->get(); (yyvsp[-1].ValIDVal).S.makeUnsigned(); @@ -6465,7 +6481,7 @@ yyreduce: break; case 305: -#line 3777 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-1].TypeVal).PAT->get(); (yyval.InstVal).S.makeComposite((yyvsp[-1].TypeVal).S); @@ -6475,7 +6491,7 @@ yyreduce: break; case 306: -#line 3783 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3799 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *Ty = (yyvsp[-4].TypeVal).PAT->get(); (yyvsp[-1].ValIDVal).S.makeUnsigned(); @@ -6486,7 +6502,7 @@ yyreduce: break; case 307: -#line 3790 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3806 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type *PTy = (yyvsp[0].ValueVal).V->getType(); if (!isa(PTy)) @@ -6497,7 +6513,7 @@ yyreduce: break; case 308: -#line 3797 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3813 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { const Type* Ty = (yyvsp[-1].TypeVal).PAT->get(); (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S); @@ -6514,7 +6530,7 @@ yyreduce: break; case 309: -#line 3810 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[0].ValIDVal).S.copy((yyvsp[-1].TypeVal).S); const PointerType *PTy = dyn_cast((yyvsp[-1].TypeVal).PAT->get()); @@ -6544,7 +6560,7 @@ yyreduce: break; case 310: -#line 3836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3852 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" { (yyvsp[-1].ValIDVal).S.copy((yyvsp[-2].TypeVal).S); const Type* Ty = (yyvsp[-2].TypeVal).PAT->get(); @@ -6568,7 +6584,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 6572 "UpgradeParser.tab.c" +#line 6588 "UpgradeParser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -6836,7 +6852,7 @@ yyreturn: } -#line 3854 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 3870 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" int yyerror(const char *ErrorMsg) { diff --git a/llvm/tools/llvm-upgrade/UpgradeParser.h.cvs b/llvm/tools/llvm-upgrade/UpgradeParser.h.cvs index 905879023ed4..279a087bc77e 100644 --- a/llvm/tools/llvm-upgrade/UpgradeParser.h.cvs +++ b/llvm/tools/llvm-upgrade/UpgradeParser.h.cvs @@ -335,7 +335,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 1731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" +#line 1741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y" typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; diff --git a/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs b/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs index c344a5ada8e1..dfc86c615d8c 100644 --- a/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs +++ b/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs @@ -17,6 +17,7 @@ #include "llvm/InlineAsm.h" #include "llvm/Instructions.h" #include "llvm/Module.h" +#include "llvm/ParameterAttributes.h" #include "llvm/ValueSymbolTable.h" #include "llvm/Support/GetElementPtrTypeIterator.h" #include "llvm/ADT/STLExtras.h" @@ -377,14 +378,21 @@ static Signedness getElementSign(const ConstInfo& CI, static bool FuncTysDifferOnlyBySRet(const FunctionType *F1, const FunctionType *F2) { if (F1->getReturnType() != F2->getReturnType() || - F1->getNumParams() != F2->getNumParams() || - F1->getParamAttrs(0) != F2->getParamAttrs(0)) + F1->getNumParams() != F2->getNumParams()) return false; - unsigned SRetMask = ~unsigned(FunctionType::StructRetAttribute); + ParamAttrsList PAL1; + if (F1->getParamAttrs()) + PAL1 = *F1->getParamAttrs(); + ParamAttrsList PAL2; + if (F2->getParamAttrs()) + PAL2 = *F2->getParamAttrs(); + if (PAL1.getParamAttrs(0) != PAL2.getParamAttrs(0)) + return false; + unsigned SRetMask = ~unsigned(StructRetAttribute); for (unsigned i = 0; i < F1->getNumParams(); ++i) { if (F1->getParamType(i) != F2->getParamType(i) || - unsigned(F1->getParamAttrs(i+1)) & SRetMask != - unsigned(F2->getParamAttrs(i+1)) & SRetMask) + unsigned(PAL1.getParamAttrs(i+1)) & SRetMask != + unsigned(PAL2.getParamAttrs(i+1)) & SRetMask) return false; } return true; @@ -423,13 +431,15 @@ static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) { if (PF1 && PF2) { const FunctionType *FT1 = dyn_cast(PF1->getElementType()); const FunctionType *FT2 = dyn_cast(PF2->getElementType()); - if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) - if (FT2->paramHasAttr(1, FunctionType::StructRetAttribute)) + if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) { + const ParamAttrsList *PAL2 = FT2->getParamAttrs(); + if (PAL2 && PAL2->paramHasAttr(1, StructRetAttribute)) return V; else if (Constant *C = dyn_cast(V)) return ConstantExpr::getBitCast(C, PF1); else return new BitCastInst(V, PF1, "upgrd.cast", CurBB); + } } return 0; @@ -2103,13 +2113,13 @@ UpRTypes Params.push_back(I->PAT->get()); $$.S.add(I->S); } - FunctionType::ParamAttrsList ParamAttrs; bool isVarArg = Params.size() && Params.back() == Type::VoidTy; if (isVarArg) Params.pop_back(); - $$.PAT = new PATypeHolder( - HandleUpRefs(FunctionType::get($1.PAT->get(), Params, isVarArg, - ParamAttrs), $$.S)); + const FunctionType *FTy = + FunctionType::get($1.PAT->get(), Params, isVarArg, 0); + + $$.PAT = new PATypeHolder( HandleUpRefs(FTy, $$.S) ); delete $1.PAT; // Delete the return type handle delete $3; // Delete the argument list } @@ -2891,14 +2901,15 @@ FunctionHeaderH // Convert the CSRet calling convention into the corresponding parameter // attribute. - FunctionType::ParamAttrsList ParamAttrs; + ParamAttrsList *ParamAttrs = 0; if ($1 == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); // result - ParamAttrs.push_back(FunctionType::StructRetAttribute); // first arg + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // result + ParamAttrs->addAttributes(1, StructRetAttribute); // first arg } - const FunctionType *FT = FunctionType::get(RetTy, ParamTyList, isVarArg, - ParamAttrs); + const FunctionType *FT = + FunctionType::get(RetTy, ParamTyList, isVarArg, ParamAttrs); const PointerType *PFT = PointerType::get(FT); delete $2.PAT; @@ -3279,10 +3290,11 @@ BBTerminatorInst FTySign.add(I->S); } } - FunctionType::ParamAttrsList ParamAttrs; + ParamAttrsList *ParamAttrs = 0; if ($2 == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); - ParamAttrs.push_back(FunctionType::StructRetAttribute); + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // Function result + ParamAttrs->addAttributes(1, StructRetAttribute); // first param } bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); @@ -3296,6 +3308,7 @@ BBTerminatorInst // and then the 0th element again to get the result type. $$.S.copy($3.S.get(0).get(0)); } + $4.S.makeComposite(FTySign); Value *V = getVal(PFTy, $4); // Get the function we're calling... BasicBlock *Normal = getBBVal($10); @@ -3656,7 +3669,7 @@ InstVal $$.S.copy($2.S); delete $2.P; // Free the list... } - | OptTailCall OptCallingConv TypesV ValueRef '(' ValueRefListE ')' { + | OptTailCall OptCallingConv TypesV ValueRef '(' ValueRefListE ')' { // Handle the short call syntax const PointerType *PFTy; const FunctionType *FTy; @@ -3674,11 +3687,6 @@ InstVal } } - FunctionType::ParamAttrsList ParamAttrs; - if ($2 == OldCallingConv::CSRet) { - ParamAttrs.push_back(FunctionType::NoAttributeSet); - ParamAttrs.push_back(FunctionType::StructRetAttribute); - } bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); @@ -3686,6 +3694,14 @@ InstVal if (!RetTy->isFirstClassType() && RetTy != Type::VoidTy) error("Functions cannot return aggregate types"); + // Deal with CSRetCC + ParamAttrsList *ParamAttrs = 0; + if ($2 == OldCallingConv::CSRet) { + ParamAttrs = new ParamAttrsList(); + ParamAttrs->addAttributes(0, NoAttributeSet); // function result + ParamAttrs->addAttributes(1, StructRetAttribute); // first parameter + } + FTy = FunctionType::get(RetTy, ParamTypes, isVarArg, ParamAttrs); PFTy = PointerType::get(FTy); $$.S.copy($3.S);