diff options
Diffstat (limited to 'clang/lib/CodeGen/CGObjCMac.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 2ea7e92e8e5..827055de4d2 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -3577,14 +3577,8 @@ void CGObjCCommonMac::EmitImageInfo() { // We never allow @synthesize of a superclass property. flags |= eImageInfo_CorrectedSynthesize; - llvm::Type *Int32Ty = llvm::Type::getInt32Ty(VMContext); - // Emitted as int[2]; - llvm::Constant *values[2] = { - llvm::ConstantInt::get(Int32Ty, version), - llvm::ConstantInt::get(Int32Ty, flags) - }; - llvm::ArrayType *AT = llvm::ArrayType::get(Int32Ty, 2); + uint32_t Values[2] = { version, flags }; const char *Section; if (ObjCABI == 1) @@ -3593,10 +3587,8 @@ void CGObjCCommonMac::EmitImageInfo() { Section = "__DATA, __objc_imageinfo, regular, no_dead_strip"; llvm::GlobalVariable *GV = CreateMetadataVar("\01L_OBJC_IMAGE_INFO", - llvm::ConstantArray::get(AT, values), - Section, - 0, - true); + llvm::ConstantDataArray::get(VMContext, Values), + Section, 0, true); GV->setConstant(true); } @@ -3643,7 +3635,7 @@ llvm::Constant *CGObjCMac::EmitModuleSymbols() { // The runtime expects exactly the list of defined classes followed // by the list of defined categories, in a single array. - std::vector<llvm::Constant*> Symbols(NumClasses + NumCategories); + SmallVector<llvm::Constant*, 8> Symbols(NumClasses + NumCategories); for (unsigned i=0; i<NumClasses; i++) Symbols[i] = llvm::ConstantExpr::getBitCast(DefinedClasses[i], ObjCTypes.Int8PtrTy); @@ -3654,7 +3646,7 @@ llvm::Constant *CGObjCMac::EmitModuleSymbols() { Values[4] = llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.Int8PtrTy, - NumClasses + NumCategories), + Symbols.size()), Symbols); llvm::Constant *Init = llvm::ConstantStruct::getAnon(Values); @@ -4131,7 +4123,7 @@ llvm::Constant *CGObjCCommonMac::BuildIvarLayout( llvm::Constant *CGObjCCommonMac::GetMethodVarName(Selector Sel) { llvm::GlobalVariable *&Entry = MethodVarNames[Sel]; - // FIXME: Avoid std::string copying. + // FIXME: Avoid std::string in "Sel.getAsString()" if (!Entry) Entry = CreateMetadataVar("\01L_OBJC_METH_VAR_NAME_", llvm::ConstantDataArray::getString(VMContext, Sel.getAsString()), @@ -4754,13 +4746,13 @@ void CGObjCNonFragileABIMac::AddModuleClassList(const if (!NumClasses) return; - std::vector<llvm::Constant*> Symbols(NumClasses); + SmallVector<llvm::Constant*, 8> Symbols(NumClasses); for (unsigned i=0; i<NumClasses; i++) Symbols[i] = llvm::ConstantExpr::getBitCast(Container[i], ObjCTypes.Int8PtrTy); - llvm::Constant* Init = + llvm::Constant *Init = llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.Int8PtrTy, - NumClasses), + Symbols.size()), Symbols); llvm::GlobalVariable *GV = |