comparison gen/toobj.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
672 } 672 }
673 // has import array? 673 // has import array?
674 if (!importInits.empty()) 674 if (!importInits.empty())
675 { 675 {
676 const llvm::ArrayType* importArrTy = llvm::ArrayType::get(getPtrToType(moduleinfoTy), importInits.size()); 676 const llvm::ArrayType* importArrTy = llvm::ArrayType::get(getPtrToType(moduleinfoTy), importInits.size());
677 c = llvm::ConstantArray::get(importArrTy, importInits); 677 c = LLConstantArray::get(importArrTy, importInits);
678 std::string m_name("_D"); 678 std::string m_name("_D");
679 m_name.append(mangle()); 679 m_name.append(mangle());
680 m_name.append("9__importsZ"); 680 m_name.append("9__importsZ");
681 llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name); 681 llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name);
682 if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); 682 if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name);
723 } 723 }
724 // has class array? 724 // has class array?
725 if (!classInits.empty()) 725 if (!classInits.empty())
726 { 726 {
727 const llvm::ArrayType* classArrTy = llvm::ArrayType::get(getPtrToType(classinfoTy), classInits.size()); 727 const llvm::ArrayType* classArrTy = llvm::ArrayType::get(getPtrToType(classinfoTy), classInits.size());
728 c = llvm::ConstantArray::get(classArrTy, classInits); 728 c = LLConstantArray::get(classArrTy, classInits);
729 std::string m_name("_D"); 729 std::string m_name("_D");
730 m_name.append(mangle()); 730 m_name.append(mangle());
731 m_name.append("9__classesZ"); 731 m_name.append("9__classesZ");
732 assert(gIR->module->getGlobalVariable(m_name) == NULL); 732 assert(gIR->module->getGlobalVariable(m_name) == NULL);
733 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(*gIR->module, classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); 733 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(*gIR->module, classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name);
817 LLConstant* magicinit = LLConstantStruct::get(magicsty, magicconstants); 817 LLConstant* magicinit = LLConstantStruct::get(magicsty, magicconstants);
818 818
819 // declare the appending array 819 // declare the appending array
820 const llvm::ArrayType* appendArrTy = llvm::ArrayType::get(magicsty, 1); 820 const llvm::ArrayType* appendArrTy = llvm::ArrayType::get(magicsty, 1);
821 std::vector<LLConstant*> appendInits(1, magicinit); 821 std::vector<LLConstant*> appendInits(1, magicinit);
822 LLConstant* appendInit = llvm::ConstantArray::get(appendArrTy, appendInits); 822 LLConstant* appendInit = LLConstantArray::get(appendArrTy, appendInits);
823 std::string appendName("llvm.global_ctors"); 823 std::string appendName("llvm.global_ctors");
824 llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(*gIR->module, appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName); 824 llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(*gIR->module, appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName);
825 } 825 }