Mercurial > projects > ldc
comparison gen/runtime.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 | e6bcc4d9e5ff |
children | 669a2c84f4e4 |
comparison
equal
deleted
inserted
replaced
629:607b6b5819a7 | 632:df196c8dea26 |
---|---|
67 //return NULL; | 67 //return NULL; |
68 } | 68 } |
69 | 69 |
70 const llvm::FunctionType* fnty = fn->getFunctionType(); | 70 const llvm::FunctionType* fnty = fn->getFunctionType(); |
71 llvm::Function* resfn = llvm::cast<llvm::Function>(target->getOrInsertFunction(name, fnty)); | 71 llvm::Function* resfn = llvm::cast<llvm::Function>(target->getOrInsertFunction(name, fnty)); |
72 resfn->setParamAttrs(fn->getParamAttrs()); | 72 resfn->setAttributes(fn->getAttributes()); |
73 return resfn; | 73 return resfn; |
74 } | 74 } |
75 | 75 |
76 ////////////////////////////////////////////////////////////////////////////////////////////////// | 76 ////////////////////////////////////////////////////////////////////////////////////////////////// |
77 | 77 |
199 std::string fname3("_d_switch_error"); | 199 std::string fname3("_d_switch_error"); |
200 std::vector<const LLType*> types; | 200 std::vector<const LLType*> types; |
201 types.push_back(stringTy); | 201 types.push_back(stringTy); |
202 types.push_back(intTy); | 202 types.push_back(intTy); |
203 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 203 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
204 llvm::PAListPtr palist; | 204 llvm::AttrListPtr palist; |
205 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 205 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
206 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 206 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
207 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); | 207 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); |
208 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname3, M)->setParamAttrs(palist); | 208 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname3, M)->setAttributes(palist); |
209 } | 209 } |
210 | 210 |
211 // void _d_assert_msg( char[] msg, char[] file, uint line ) | 211 // void _d_assert_msg( char[] msg, char[] file, uint line ) |
212 { | 212 { |
213 std::string fname("_d_assert_msg"); | 213 std::string fname("_d_assert_msg"); |
214 std::vector<const LLType*> types; | 214 std::vector<const LLType*> types; |
215 types.push_back(stringTy); | 215 types.push_back(stringTy); |
216 types.push_back(stringTy); | 216 types.push_back(stringTy); |
217 types.push_back(intTy); | 217 types.push_back(intTy); |
218 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); | 218 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); |
219 llvm::PAListPtr palist; | 219 llvm::AttrListPtr palist; |
220 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 220 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
221 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 221 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
222 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 222 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
223 } | 223 } |
224 | 224 |
225 ///////////////////////////////////////////////////////////////////////////////////// | 225 ///////////////////////////////////////////////////////////////////////////////////// |
226 ///////////////////////////////////////////////////////////////////////////////////// | 226 ///////////////////////////////////////////////////////////////////////////////////// |
227 ///////////////////////////////////////////////////////////////////////////////////// | 227 ///////////////////////////////////////////////////////////////////////////////////// |
381 std::string fname2(b); \ | 381 std::string fname2(b); \ |
382 std::vector<const LLType*> types; \ | 382 std::vector<const LLType*> types; \ |
383 types.push_back(TY); \ | 383 types.push_back(TY); \ |
384 types.push_back(rt_dg1()); \ | 384 types.push_back(rt_dg1()); \ |
385 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ | 385 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ |
386 llvm::PAListPtr palist; \ | 386 llvm::AttrListPtr palist; \ |
387 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \ | 387 palist = palist.addAttr(1, llvm::Attribute::ByVal); \ |
388 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \ | 388 palist = palist.addAttr(2, llvm::Attribute::ByVal); \ |
389 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \ | 389 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \ |
390 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \ | 390 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \ |
391 } | 391 } |
392 STR_APPLY1(stringTy, "_aApplycw1", "_aApplycd1") | 392 STR_APPLY1(stringTy, "_aApplycw1", "_aApplycd1") |
393 STR_APPLY1(wstringTy, "_aApplywc1", "_aApplywd1") | 393 STR_APPLY1(wstringTy, "_aApplywc1", "_aApplywd1") |
394 STR_APPLY1(dstringTy, "_aApplydc1", "_aApplydw1") | 394 STR_APPLY1(dstringTy, "_aApplydc1", "_aApplydw1") |
395 #undef STR_APPLY | 395 #undef STR_APPLY |
401 std::string fname2(b); \ | 401 std::string fname2(b); \ |
402 std::vector<const LLType*> types; \ | 402 std::vector<const LLType*> types; \ |
403 types.push_back(TY); \ | 403 types.push_back(TY); \ |
404 types.push_back(rt_dg2()); \ | 404 types.push_back(rt_dg2()); \ |
405 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ | 405 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ |
406 llvm::PAListPtr palist; \ | 406 llvm::AttrListPtr palist; \ |
407 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \ | 407 palist = palist.addAttr(1, llvm::Attribute::ByVal); \ |
408 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \ | 408 palist = palist.addAttr(2, llvm::Attribute::ByVal); \ |
409 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \ | 409 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \ |
410 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \ | 410 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \ |
411 } | 411 } |
412 STR_APPLY2(stringTy, "_aApplycw2", "_aApplycd2") | 412 STR_APPLY2(stringTy, "_aApplycw2", "_aApplycd2") |
413 STR_APPLY2(wstringTy, "_aApplywc2", "_aApplywd2") | 413 STR_APPLY2(wstringTy, "_aApplywc2", "_aApplywd2") |
414 STR_APPLY2(dstringTy, "_aApplydc2", "_aApplydw2") | 414 STR_APPLY2(dstringTy, "_aApplydc2", "_aApplydw2") |
415 #undef STR_APPLY2 | 415 #undef STR_APPLY2 |
420 std::string fname2(b); \ | 420 std::string fname2(b); \ |
421 std::vector<const LLType*> types; \ | 421 std::vector<const LLType*> types; \ |
422 types.push_back(TY); \ | 422 types.push_back(TY); \ |
423 types.push_back(rt_dg1()); \ | 423 types.push_back(rt_dg1()); \ |
424 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ | 424 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ |
425 llvm::PAListPtr palist; \ | 425 llvm::AttrListPtr palist; \ |
426 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \ | 426 palist = palist.addAttr(1, llvm::Attribute::ByVal); \ |
427 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \ | 427 palist = palist.addAttr(2, llvm::Attribute::ByVal); \ |
428 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \ | 428 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \ |
429 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \ | 429 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \ |
430 } | 430 } |
431 STR_APPLY_R1(stringTy, "_aApplyRcw1", "_aApplyRcd1") | 431 STR_APPLY_R1(stringTy, "_aApplyRcw1", "_aApplyRcd1") |
432 STR_APPLY_R1(wstringTy, "_aApplyRwc1", "_aApplyRwd1") | 432 STR_APPLY_R1(wstringTy, "_aApplyRwc1", "_aApplyRwd1") |
433 STR_APPLY_R1(dstringTy, "_aApplyRdc1", "_aApplyRdw1") | 433 STR_APPLY_R1(dstringTy, "_aApplyRdc1", "_aApplyRdw1") |
434 #undef STR_APPLY | 434 #undef STR_APPLY |
439 std::string fname2(b); \ | 439 std::string fname2(b); \ |
440 std::vector<const LLType*> types; \ | 440 std::vector<const LLType*> types; \ |
441 types.push_back(TY); \ | 441 types.push_back(TY); \ |
442 types.push_back(rt_dg2()); \ | 442 types.push_back(rt_dg2()); \ |
443 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ | 443 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \ |
444 llvm::PAListPtr palist; \ | 444 llvm::AttrListPtr palist; \ |
445 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \ | 445 palist = palist.addAttr(1, llvm::Attribute::ByVal); \ |
446 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \ | 446 palist = palist.addAttr(2, llvm::Attribute::ByVal); \ |
447 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \ | 447 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \ |
448 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \ | 448 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \ |
449 } | 449 } |
450 STR_APPLY_R2(stringTy, "_aApplyRcw2", "_aApplyRcd2") | 450 STR_APPLY_R2(stringTy, "_aApplyRcw2", "_aApplyRcd2") |
451 STR_APPLY_R2(wstringTy, "_aApplyRwc2", "_aApplyRwd2") | 451 STR_APPLY_R2(wstringTy, "_aApplyRwc2", "_aApplyRwd2") |
452 STR_APPLY_R2(dstringTy, "_aApplyRdc2", "_aApplyRdw2") | 452 STR_APPLY_R2(dstringTy, "_aApplyRdc2", "_aApplyRdw2") |
453 #undef STR_APPLY2 | 453 #undef STR_APPLY2 |
531 std::string fname2("_adSortChar"); | 531 std::string fname2("_adSortChar"); |
532 std::vector<const LLType*> types; | 532 std::vector<const LLType*> types; |
533 types.push_back(stringTy); | 533 types.push_back(stringTy); |
534 types.push_back(stringTy); | 534 types.push_back(stringTy); |
535 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 535 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
536 llvm::PAListPtr palist; | 536 llvm::AttrListPtr palist; |
537 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 537 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
538 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 538 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
539 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); | 539 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); |
540 } | 540 } |
541 | 541 |
542 // wchar[] _adReverseWchar(wchar[] a) | 542 // wchar[] _adReverseWchar(wchar[] a) |
543 // wchar[] _adSortWchar(wchar[] a) | 543 // wchar[] _adSortWchar(wchar[] a) |
544 { | 544 { |
546 std::string fname2("_adSortWchar"); | 546 std::string fname2("_adSortWchar"); |
547 std::vector<const LLType*> types; | 547 std::vector<const LLType*> types; |
548 types.push_back(wstringTy); | 548 types.push_back(wstringTy); |
549 types.push_back(wstringTy); | 549 types.push_back(wstringTy); |
550 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 550 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
551 llvm::PAListPtr palist; | 551 llvm::AttrListPtr palist; |
552 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 552 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
553 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 553 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
554 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); | 554 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); |
555 } | 555 } |
556 | 556 |
557 // Array _adReverse(Array a, size_t szelem) | 557 // Array _adReverse(Array a, size_t szelem) |
558 { | 558 { |
559 std::string fname("_adReverse"); | 559 std::string fname("_adReverse"); |
560 std::vector<const LLType*> types; | 560 std::vector<const LLType*> types; |
561 types.push_back(rt_array(byteTy)); | 561 types.push_back(rt_array(byteTy)); |
562 types.push_back(rt_array(byteTy)); | 562 types.push_back(rt_array(byteTy)); |
563 types.push_back(sizeTy); | 563 types.push_back(sizeTy); |
564 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 564 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
565 llvm::PAListPtr palist; | 565 llvm::AttrListPtr palist; |
566 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 566 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
567 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 567 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
568 } | 568 } |
569 | 569 |
570 // Array _adDupT(TypeInfo ti, Array a) | 570 // Array _adDupT(TypeInfo ti, Array a) |
571 { | 571 { |
572 std::string fname("_adDupT"); | 572 std::string fname("_adDupT"); |
573 std::vector<const LLType*> types; | 573 std::vector<const LLType*> types; |
574 types.push_back(rt_array(byteTy)); | 574 types.push_back(rt_array(byteTy)); |
575 types.push_back(typeInfoTy); | 575 types.push_back(typeInfoTy); |
576 types.push_back(rt_array(byteTy)); | 576 types.push_back(rt_array(byteTy)); |
577 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 577 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
578 llvm::PAListPtr palist; | 578 llvm::AttrListPtr palist; |
579 palist = palist.addAttr(3, llvm::ParamAttr::ByVal); | 579 palist = palist.addAttr(3, llvm::Attribute::ByVal); |
580 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 580 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
581 } | 581 } |
582 | 582 |
583 // int _adEq(Array a1, Array a2, TypeInfo ti) | 583 // int _adEq(Array a1, Array a2, TypeInfo ti) |
584 // int _adCmp(Array a1, Array a2, TypeInfo ti) | 584 // int _adCmp(Array a1, Array a2, TypeInfo ti) |
585 { | 585 { |
588 std::vector<const LLType*> types; | 588 std::vector<const LLType*> types; |
589 types.push_back(rt_array(byteTy)); | 589 types.push_back(rt_array(byteTy)); |
590 types.push_back(rt_array(byteTy)); | 590 types.push_back(rt_array(byteTy)); |
591 types.push_back(typeInfoTy); | 591 types.push_back(typeInfoTy); |
592 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 592 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
593 llvm::PAListPtr palist; | 593 llvm::AttrListPtr palist; |
594 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 594 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
595 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 595 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
596 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 596 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
597 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); | 597 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); |
598 } | 598 } |
599 | 599 |
600 // int _adCmpChar(Array a1, Array a2) | 600 // int _adCmpChar(Array a1, Array a2) |
601 { | 601 { |
602 std::string fname("_adCmpChar"); | 602 std::string fname("_adCmpChar"); |
603 std::vector<const LLType*> types; | 603 std::vector<const LLType*> types; |
604 types.push_back(rt_array(byteTy)); | 604 types.push_back(rt_array(byteTy)); |
605 types.push_back(rt_array(byteTy)); | 605 types.push_back(rt_array(byteTy)); |
606 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 606 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
607 llvm::PAListPtr palist; | 607 llvm::AttrListPtr palist; |
608 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 608 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
609 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 609 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
610 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 610 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
611 } | 611 } |
612 | 612 |
613 // Array _adSort(Array a, TypeInfo ti) | 613 // Array _adSort(Array a, TypeInfo ti) |
614 { | 614 { |
615 std::string fname("_adSort"); | 615 std::string fname("_adSort"); |
616 std::vector<const LLType*> types; | 616 std::vector<const LLType*> types; |
617 types.push_back(rt_array(byteTy)); | 617 types.push_back(rt_array(byteTy)); |
618 types.push_back(rt_array(byteTy)); | 618 types.push_back(rt_array(byteTy)); |
619 types.push_back(typeInfoTy); | 619 types.push_back(typeInfoTy); |
620 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); | 620 const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false); |
621 llvm::PAListPtr palist; | 621 llvm::AttrListPtr palist; |
622 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 622 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
623 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 623 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
624 } | 624 } |
625 | 625 |
626 ///////////////////////////////////////////////////////////////////////////////////// | 626 ///////////////////////////////////////////////////////////////////////////////////// |
627 ///////////////////////////////////////////////////////////////////////////////////// | 627 ///////////////////////////////////////////////////////////////////////////////////// |
628 ///////////////////////////////////////////////////////////////////////////////////// | 628 ///////////////////////////////////////////////////////////////////////////////////// |
721 std::vector<const LLType*> types; | 721 std::vector<const LLType*> types; |
722 types.push_back(aaTy); | 722 types.push_back(aaTy); |
723 types.push_back(sizeTy); | 723 types.push_back(sizeTy); |
724 types.push_back(rt_dg1()); | 724 types.push_back(rt_dg1()); |
725 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 725 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
726 llvm::PAListPtr palist; | 726 llvm::AttrListPtr palist; |
727 palist = palist.addAttr(3, llvm::ParamAttr::ByVal); | 727 palist = palist.addAttr(3, llvm::Attribute::ByVal); |
728 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 728 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
729 } | 729 } |
730 | 730 |
731 // int _aaApply2(AA aa, size_t keysize, dg2_t dg) | 731 // int _aaApply2(AA aa, size_t keysize, dg2_t dg) |
732 { | 732 { |
733 std::string fname("_aaApply2"); | 733 std::string fname("_aaApply2"); |
734 std::vector<const LLType*> types; | 734 std::vector<const LLType*> types; |
735 types.push_back(aaTy); | 735 types.push_back(aaTy); |
736 types.push_back(sizeTy); | 736 types.push_back(sizeTy); |
737 types.push_back(rt_dg1()); | 737 types.push_back(rt_dg1()); |
738 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 738 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
739 llvm::PAListPtr palist; | 739 llvm::AttrListPtr palist; |
740 palist = palist.addAttr(3, llvm::ParamAttr::ByVal); | 740 palist = palist.addAttr(3, llvm::Attribute::ByVal); |
741 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 741 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
742 } | 742 } |
743 | 743 |
744 ///////////////////////////////////////////////////////////////////////////////////// | 744 ///////////////////////////////////////////////////////////////////////////////////// |
745 ///////////////////////////////////////////////////////////////////////////////////// | 745 ///////////////////////////////////////////////////////////////////////////////////// |
746 ///////////////////////////////////////////////////////////////////////////////////// | 746 ///////////////////////////////////////////////////////////////////////////////////// |
811 std::string fname("_d_switch_string"); | 811 std::string fname("_d_switch_string"); |
812 std::vector<const LLType*> types; | 812 std::vector<const LLType*> types; |
813 types.push_back(rt_array(rt_array2(byteTy))); | 813 types.push_back(rt_array(rt_array2(byteTy))); |
814 types.push_back(stringTy); | 814 types.push_back(stringTy); |
815 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 815 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
816 llvm::PAListPtr palist; | 816 llvm::AttrListPtr palist; |
817 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 817 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
818 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 818 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
819 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 819 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
820 } | 820 } |
821 | 821 |
822 // int _d_switch_ustring(wchar[][] table, wchar[] ca) | 822 // int _d_switch_ustring(wchar[][] table, wchar[] ca) |
823 { | 823 { |
824 std::string fname("_d_switch_ustring"); | 824 std::string fname("_d_switch_ustring"); |
825 std::vector<const LLType*> types; | 825 std::vector<const LLType*> types; |
826 types.push_back(rt_array(rt_array2(shortTy))); | 826 types.push_back(rt_array(rt_array2(shortTy))); |
827 types.push_back(wstringTy); | 827 types.push_back(wstringTy); |
828 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 828 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
829 llvm::PAListPtr palist; | 829 llvm::AttrListPtr palist; |
830 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 830 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
831 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 831 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
832 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 832 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
833 } | 833 } |
834 | 834 |
835 // int _d_switch_dstring(dchar[][] table, dchar[] ca) | 835 // int _d_switch_dstring(dchar[][] table, dchar[] ca) |
836 { | 836 { |
837 std::string fname("_d_switch_dstring"); | 837 std::string fname("_d_switch_dstring"); |
838 std::vector<const LLType*> types; | 838 std::vector<const LLType*> types; |
839 types.push_back(rt_array(rt_array2(intTy))); | 839 types.push_back(rt_array(rt_array2(intTy))); |
840 types.push_back(dstringTy); | 840 types.push_back(dstringTy); |
841 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); | 841 const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); |
842 llvm::PAListPtr palist; | 842 llvm::AttrListPtr palist; |
843 palist = palist.addAttr(1, llvm::ParamAttr::ByVal); | 843 palist = palist.addAttr(1, llvm::Attribute::ByVal); |
844 palist = palist.addAttr(2, llvm::ParamAttr::ByVal); | 844 palist = palist.addAttr(2, llvm::Attribute::ByVal); |
845 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); | 845 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); |
846 } | 846 } |
847 | 847 |
848 ///////////////////////////////////////////////////////////////////////////////////// | 848 ///////////////////////////////////////////////////////////////////////////////////// |
849 ///////////////////////////////////////////////////////////////////////////////////// | 849 ///////////////////////////////////////////////////////////////////////////////////// |
850 ///////////////////////////////////////////////////////////////////////////////////// | 850 ///////////////////////////////////////////////////////////////////////////////////// |