comparison gen/tollvm.cpp @ 1554:d6e8d5db259f

LLVMContext changes up to r77366
author Benjamin Kramer <benny.kra@gmail.com>
date Thu, 30 Jul 2009 15:25:10 +0200
parents 259b031f3d22
children 1d5c3354b3c2
comparison
equal deleted inserted replaced
1553:f55ca8a1598c 1554:d6e8d5db259f
529 529
530 ////////////////////////////////////////////////////////////////////////////////////////// 530 //////////////////////////////////////////////////////////////////////////////////////////
531 531
532 llvm::ConstantInt* DtoConstSize_t(uint64_t i) 532 llvm::ConstantInt* DtoConstSize_t(uint64_t i)
533 { 533 {
534 return gIR->context().getConstantInt(DtoSize_t(), i, false); 534 return LLConstantInt::get(DtoSize_t(), i, false);
535 } 535 }
536 llvm::ConstantInt* DtoConstUint(unsigned i) 536 llvm::ConstantInt* DtoConstUint(unsigned i)
537 { 537 {
538 return gIR->context().getConstantInt(LLType::Int32Ty, i, false); 538 return LLConstantInt::get(LLType::Int32Ty, i, false);
539 } 539 }
540 llvm::ConstantInt* DtoConstInt(int i) 540 llvm::ConstantInt* DtoConstInt(int i)
541 { 541 {
542 return gIR->context().getConstantInt(LLType::Int32Ty, i, true); 542 return LLConstantInt::get(LLType::Int32Ty, i, true);
543 } 543 }
544 LLConstant* DtoConstBool(bool b) 544 LLConstant* DtoConstBool(bool b)
545 { 545 {
546 return gIR->context().getConstantInt(LLType::Int1Ty, b, false); 546 return LLConstantInt::get(LLType::Int1Ty, b, false);
547 } 547 }
548 llvm::ConstantInt* DtoConstUbyte(unsigned char i) 548 llvm::ConstantInt* DtoConstUbyte(unsigned char i)
549 { 549 {
550 return gIR->context().getConstantInt(LLType::Int8Ty, i, false); 550 return LLConstantInt::get(LLType::Int8Ty, i, false);
551 } 551 }
552 552
553 LLConstant* DtoConstFP(Type* t, long double value) 553 LLConstant* DtoConstFP(Type* t, long double value)
554 { 554 {
555 const LLType* llty = DtoType(t); 555 const LLType* llty = DtoType(t);
556 assert(llty->isFloatingPoint()); 556 assert(llty->isFloatingPoint());
557 557
558 if(llty == LLType::FloatTy || llty == LLType::DoubleTy) 558 if(llty == LLType::FloatTy || llty == LLType::DoubleTy)
559 return gIR->context().getConstantFP(llty, value); 559 return LLConstantFP::get(llty, value);
560 else if(llty == LLType::X86_FP80Ty) { 560 else if(llty == LLType::X86_FP80Ty) {
561 uint64_t bits[] = {0, 0}; 561 uint64_t bits[] = {0, 0};
562 bits[0] = *(uint64_t*)&value; 562 bits[0] = *(uint64_t*)&value;
563 bits[1] = *(uint16_t*)((uint64_t*)&value + 1); 563 bits[1] = *(uint16_t*)((uint64_t*)&value + 1);
564 return gIR->context().getConstantFP(APFloat(APInt(80, 2, bits))); 564 return LLConstantFP::get(gIR->context(), APFloat(APInt(80, 2, bits)));
565 } else { 565 } else {
566 assert(0 && "Unknown floating point type encountered"); 566 assert(0 && "Unknown floating point type encountered");
567 } 567 }
568 } 568 }
569 569
570 ////////////////////////////////////////////////////////////////////////////////////////// 570 //////////////////////////////////////////////////////////////////////////////////////////
571 571
572 LLConstant* DtoConstString(const char* str) 572 LLConstant* DtoConstString(const char* str)
573 { 573 {
574 std::string s(str?str:""); 574 std::string s(str?str:"");
575 LLConstant* init = gIR->context().getConstantArray(s, true); 575 LLConstant* init = LLConstantArray::get(s, true);
576 llvm::GlobalVariable* gvar = new llvm::GlobalVariable( 576 llvm::GlobalVariable* gvar = new llvm::GlobalVariable(
577 *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str"); 577 *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str");
578 LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; 578 LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) };
579 return DtoConstSlice( 579 return DtoConstSlice(
580 DtoConstSize_t(s.length()), 580 DtoConstSize_t(s.length()),
582 ); 582 );
583 } 583 }
584 LLConstant* DtoConstStringPtr(const char* str, const char* section) 584 LLConstant* DtoConstStringPtr(const char* str, const char* section)
585 { 585 {
586 std::string s(str); 586 std::string s(str);
587 LLConstant* init = gIR->context().getConstantArray(s, true); 587 LLConstant* init = LLConstantArray::get(s, true);
588 llvm::GlobalVariable* gvar = new llvm::GlobalVariable( 588 llvm::GlobalVariable* gvar = new llvm::GlobalVariable(
589 *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str"); 589 *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str");
590 if (section) gvar->setSection(section); 590 if (section) gvar->setSection(section);
591 LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; 591 LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) };
592 return llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2); 592 return llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2);