comparison gen/statements.cpp @ 632:df196c8dea26

Updated to latest LLVM trunk, function notes have been removed and merged with parameter attributes, which have been renamed to just attributes. Nothing seems to have broke!
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 01 Oct 2008 23:17:14 +0200
parents 26fce59fe80a
children c8fcde3337b0
comparison
equal deleted inserted replaced
629:607b6b5819a7 632:df196c8dea26
703 } 703 }
704 assert(llval->getType() == fn->getFunctionType()->getParamType(1)); 704 assert(llval->getType() == fn->getFunctionType()->getParamType(1));
705 705
706 CallOrInvoke* call = gIR->CreateCallOrInvoke2(fn, table, llval, "tmp"); 706 CallOrInvoke* call = gIR->CreateCallOrInvoke2(fn, table, llval, "tmp");
707 707
708 llvm::PAListPtr palist; 708 llvm::AttrListPtr palist;
709 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); 709 palist = palist.addAttr(1, llvm::Attribute::ByVal);
710 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); 710 palist = palist.addAttr(2, llvm::Attribute::ByVal);
711 call->setParamAttrs(palist); 711 call->setAttributes(palist);
712 712
713 return call->get(); 713 return call->get();
714 } 714 }
715 715
716 void SwitchStatement::toIR(IRState* p) 716 void SwitchStatement::toIR(IRState* p)
1253 LOG_SCOPE; 1253 LOG_SCOPE;
1254 1254
1255 llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_switch_error"); 1255 llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_switch_error");
1256 1256
1257 // param attrs 1257 // param attrs
1258 llvm::PAListPtr palist; 1258 llvm::AttrListPtr palist;
1259 int idx = 1; 1259 int idx = 1;
1260 1260
1261 std::vector<LLValue*> args; 1261 std::vector<LLValue*> args;
1262 LLConstant* c; 1262 LLConstant* c;
1263 1263
1274 DtoStore(c->getOperand(0), ptr); 1274 DtoStore(c->getOperand(0), ptr);
1275 ptr = DtoGEPi(alloc, 0,1, "tmp"); 1275 ptr = DtoGEPi(alloc, 0,1, "tmp");
1276 DtoStore(c->getOperand(1), ptr); 1276 DtoStore(c->getOperand(1), ptr);
1277 1277
1278 args.push_back(alloc); 1278 args.push_back(alloc);
1279 palist = palist.addAttr(idx++, llvm::ParamAttr::ByVal); 1279 palist = palist.addAttr(idx++, llvm::Attribute::ByVal);
1280 1280
1281 // line param 1281 // line param
1282 c = DtoConstUint(loc.linnum); 1282 c = DtoConstUint(loc.linnum);
1283 args.push_back(c); 1283 args.push_back(c);
1284 1284
1285 // call 1285 // call
1286 CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end()); 1286 CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end());
1287 call->setParamAttrs(palist); 1287 call->setAttributes(palist);
1288 1288
1289 gIR->ir->CreateUnreachable(); 1289 gIR->ir->CreateUnreachable();
1290 } 1290 }
1291 1291
1292 ////////////////////////////////////////////////////////////////////////////// 1292 //////////////////////////////////////////////////////////////////////////////