forked from OSchip/llvm-project
				
			
							parent
							
								
									5948fdf68b
								
							
						
					
					
						commit
						9f211fb4fa
					
				| 
						 | 
				
			
			@ -50,7 +50,7 @@ BuildDescriptorBlockDecl(bool BlockHasCopyDispose, uint64_t Size,
 | 
			
		|||
 | 
			
		||||
  C = llvm::ConstantStruct::get(Elts);
 | 
			
		||||
 | 
			
		||||
  C = new llvm::GlobalVariable(C->getType(), true,
 | 
			
		||||
  C = new llvm::GlobalVariable(CGM.getModule().getContext(), C->getType(), true,
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               C, "__block_descriptor_tmp", &CGM.getModule());
 | 
			
		||||
  return C;
 | 
			
		||||
| 
						 | 
				
			
			@ -165,7 +165,8 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) {
 | 
			
		|||
 | 
			
		||||
      char Name[32];
 | 
			
		||||
      sprintf(Name, "__block_holder_tmp_%d", CGM.getGlobalUniqueCount());
 | 
			
		||||
      C = new llvm::GlobalVariable(C->getType(), true,
 | 
			
		||||
      C = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                   C->getType(), true,
 | 
			
		||||
                                   llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                                   C, Name, &CGM.getModule());
 | 
			
		||||
      QualType BPT = BE->getType();
 | 
			
		||||
| 
						 | 
				
			
			@ -513,7 +514,8 @@ BlockModule::GetAddrOfGlobalBlock(const BlockExpr *BE, const char * n) {
 | 
			
		|||
    llvm::ConstantStruct::get(&DescriptorFields[0], 2);
 | 
			
		||||
 | 
			
		||||
  llvm::GlobalVariable *Descriptor =
 | 
			
		||||
    new llvm::GlobalVariable(DescriptorStruct->getType(), true,
 | 
			
		||||
    new llvm::GlobalVariable(getModule().getContext(),
 | 
			
		||||
                             DescriptorStruct->getType(), true,
 | 
			
		||||
                             llvm::GlobalVariable::InternalLinkage,
 | 
			
		||||
                             DescriptorStruct, "__block_descriptor_global",
 | 
			
		||||
                             &getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -555,7 +557,8 @@ BlockModule::GetAddrOfGlobalBlock(const BlockExpr *BE, const char * n) {
 | 
			
		|||
    llvm::ConstantStruct::get(&LiteralFields[0], 5);
 | 
			
		||||
 | 
			
		||||
  llvm::GlobalVariable *BlockLiteral =
 | 
			
		||||
    new llvm::GlobalVariable(BlockLiteralStruct->getType(), true,
 | 
			
		||||
    new llvm::GlobalVariable(getModule().getContext(), 
 | 
			
		||||
                             BlockLiteralStruct->getType(), true,
 | 
			
		||||
                             llvm::GlobalVariable::InternalLinkage,
 | 
			
		||||
                             BlockLiteralStruct, "__block_literal_global",
 | 
			
		||||
                             &getModule());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,7 @@
 | 
			
		|||
#include "clang/AST/Decl.h"
 | 
			
		||||
#include "clang/AST/DeclCXX.h"
 | 
			
		||||
#include "clang/AST/DeclObjC.h"
 | 
			
		||||
#include "llvm/Module.h"
 | 
			
		||||
#include "llvm/ADT/StringExtras.h"
 | 
			
		||||
using namespace clang;
 | 
			
		||||
using namespace CodeGen;
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +39,8 @@ CodeGenFunction::GenerateStaticCXXBlockVarDeclInit(const VarDecl &D,
 | 
			
		|||
  
 | 
			
		||||
  // Create the guard variable.
 | 
			
		||||
  llvm::GlobalValue *GuardV = 
 | 
			
		||||
    new llvm::GlobalVariable(llvm::Type::Int64Ty, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(), 
 | 
			
		||||
                             llvm::Type::Int64Ty, false,
 | 
			
		||||
                             GV->getLinkage(),
 | 
			
		||||
                             llvm::Constant::getNullValue(llvm::Type::Int64Ty),
 | 
			
		||||
                             GuardVName.c_str(),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,8 @@ CodeGenFunction::CreateStaticBlockVarDecl(const VarDecl &D,
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  const llvm::Type *LTy = CGM.getTypes().ConvertTypeForMem(Ty);
 | 
			
		||||
  return new llvm::GlobalVariable(LTy, Ty.isConstant(getContext()), Linkage,
 | 
			
		||||
  return new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                  LTy, Ty.isConstant(getContext()), Linkage,
 | 
			
		||||
                                  llvm::Constant::getNullValue(LTy), Name,
 | 
			
		||||
                                  &CGM.getModule(), D.isThreadSpecified(),
 | 
			
		||||
                                  Ty.getAddressSpace());
 | 
			
		||||
| 
						 | 
				
			
			@ -149,7 +150,8 @@ void CodeGenFunction::EmitStaticBlockVarDecl(const VarDecl &D) {
 | 
			
		|||
      if (GV->getType() != Init->getType()) {
 | 
			
		||||
        llvm::GlobalVariable *OldGV = GV;
 | 
			
		||||
        
 | 
			
		||||
        GV = new llvm::GlobalVariable(Init->getType(), OldGV->isConstant(),
 | 
			
		||||
        GV = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                      Init->getType(), OldGV->isConstant(),
 | 
			
		||||
                                      OldGV->getLinkage(), Init, "",
 | 
			
		||||
                                      &CGM.getModule(), D.isThreadSpecified(),
 | 
			
		||||
                                      D.getType().getAddressSpace());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -394,7 +394,7 @@ public:
 | 
			
		|||
      llvm::Constant* C = Visit(CLE->getInitializer());
 | 
			
		||||
      // FIXME: "Leaked" on failure.
 | 
			
		||||
      if (C)
 | 
			
		||||
        C = new llvm::GlobalVariable(C->getType(),
 | 
			
		||||
        C = new llvm::GlobalVariable(CGM.getModule().getContext(), C->getType(),
 | 
			
		||||
                                     E->getType().isConstQualified(), 
 | 
			
		||||
                                     llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                                     C, ".compoundliteral", &CGM.getModule());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,10 +184,10 @@ void CGObjCGNU::EmitClassRef(const std::string &className){
 | 
			
		|||
  std::string symbolName = "__objc_class_name_" + className;
 | 
			
		||||
  llvm::GlobalVariable *ClassSymbol = TheModule.getGlobalVariable(symbolName);
 | 
			
		||||
  if (!ClassSymbol) {
 | 
			
		||||
    ClassSymbol = new llvm::GlobalVariable(LongTy, false,
 | 
			
		||||
        llvm::GlobalValue::ExternalLinkage, 0, symbolName, &TheModule);
 | 
			
		||||
    ClassSymbol = new llvm::GlobalVariable(TheModule.getContext(), LongTy, 
 | 
			
		||||
        false, llvm::GlobalValue::ExternalLinkage, 0, symbolName, &TheModule);
 | 
			
		||||
  }
 | 
			
		||||
  new llvm::GlobalVariable(ClassSymbol->getType(), true,
 | 
			
		||||
  new llvm::GlobalVariable(TheModule.getContext(), ClassSymbol->getType(), true,
 | 
			
		||||
    llvm::GlobalValue::CommonLinkage, ClassSymbol, symbolRef,  &TheModule);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -291,7 +291,8 @@ llvm::Value *CGObjCGNU::GetSelector(CGBuilderTy &Builder, const ObjCMethodDecl
 | 
			
		|||
llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str,
 | 
			
		||||
                                              const std::string &Name) {
 | 
			
		||||
  llvm::Constant * ConstStr = llvm::ConstantArray::get(Str);
 | 
			
		||||
  ConstStr = new llvm::GlobalVariable(ConstStr->getType(), true, 
 | 
			
		||||
  ConstStr = new llvm::GlobalVariable(TheModule.getContext(),
 | 
			
		||||
                               ConstStr->getType(), true, 
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               ConstStr, Name, &TheModule);
 | 
			
		||||
  return llvm::ConstantExpr::getGetElementPtr(ConstStr, Zeros, 2);
 | 
			
		||||
| 
						 | 
				
			
			@ -299,13 +300,13 @@ llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str,
 | 
			
		|||
llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::StructType *Ty,
 | 
			
		||||
    std::vector<llvm::Constant*> &V, const std::string &Name) {
 | 
			
		||||
  llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
 | 
			
		||||
  return new llvm::GlobalVariable(Ty, false,
 | 
			
		||||
  return new llvm::GlobalVariable(TheModule.getContext(), Ty, false,
 | 
			
		||||
      llvm::GlobalValue::InternalLinkage, C, Name, &TheModule);
 | 
			
		||||
}
 | 
			
		||||
llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::ArrayType *Ty,
 | 
			
		||||
    std::vector<llvm::Constant*> &V, const std::string &Name) {
 | 
			
		||||
  llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
 | 
			
		||||
  return new llvm::GlobalVariable(Ty, false,
 | 
			
		||||
  return new llvm::GlobalVariable(TheModule.getContext(), Ty, false,
 | 
			
		||||
      llvm::GlobalValue::InternalLinkage, C, Name, &TheModule);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -868,7 +869,8 @@ void CGObjCGNU::GenerateClass(const ObjCImplementationDecl *OID) {
 | 
			
		|||
      TheModule.getGlobalVariable(classSymbolName)) {
 | 
			
		||||
    symbol->setInitializer(llvm::ConstantInt::get(LongTy, 0));
 | 
			
		||||
  } else {
 | 
			
		||||
    new llvm::GlobalVariable(LongTy, false, llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
    new llvm::GlobalVariable(TheModule.getContext(), LongTy, false,
 | 
			
		||||
                             llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
    llvm::ConstantInt::get(LongTy, 0), classSymbolName, &TheModule);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
| 
						 | 
				
			
			@ -1100,8 +1102,8 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() {
 | 
			
		|||
     iter != iterEnd; ++iter) {
 | 
			
		||||
    llvm::Constant *Idxs[] = {Zeros[0],
 | 
			
		||||
      llvm::ConstantInt::get(llvm::Type::Int32Ty, index++), Zeros[0]};
 | 
			
		||||
    llvm::Constant *SelPtr = new llvm::GlobalVariable(SelStructPtrTy,
 | 
			
		||||
        true, llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
    llvm::Constant *SelPtr = new llvm::GlobalVariable(TheModule.getContext(),
 | 
			
		||||
        SelStructPtrTy, true, llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
        llvm::ConstantExpr::getGetElementPtr(SelectorList, Idxs, 2),
 | 
			
		||||
        ".objc_sel_ptr", &TheModule);
 | 
			
		||||
    // If selectors are defined as an opaque type, cast the pointer to this
 | 
			
		||||
| 
						 | 
				
			
			@ -1117,8 +1119,8 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() {
 | 
			
		|||
      iter != iterEnd; iter++) {
 | 
			
		||||
    llvm::Constant *Idxs[] = {Zeros[0],
 | 
			
		||||
      llvm::ConstantInt::get(llvm::Type::Int32Ty, index++), Zeros[0]};
 | 
			
		||||
    llvm::Constant *SelPtr = new llvm::GlobalVariable(SelStructPtrTy, true,
 | 
			
		||||
        llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
    llvm::Constant *SelPtr = new llvm::GlobalVariable(TheModule.getContext(),
 | 
			
		||||
        SelStructPtrTy, true, llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
        llvm::ConstantExpr::getGetElementPtr(SelectorList, Idxs, 2),
 | 
			
		||||
        ".objc_sel_ptr", &TheModule);
 | 
			
		||||
    // If selectors are defined as an opaque type, cast the pointer to this
 | 
			
		||||
| 
						 | 
				
			
			@ -1566,8 +1568,8 @@ llvm::GlobalVariable *CGObjCGNU::ObjCIvarOffsetVariable(
 | 
			
		|||
    uint64_t Offset = ComputeIvarBaseOffset(CGM, ID, Ivar);
 | 
			
		||||
    llvm::ConstantInt *OffsetGuess =
 | 
			
		||||
      llvm::ConstantInt::get(LongTy, Offset, "ivar");
 | 
			
		||||
    IvarOffsetGV = new llvm::GlobalVariable(LongTy, false,
 | 
			
		||||
        llvm::GlobalValue::CommonLinkage, OffsetGuess, Name, &TheModule);
 | 
			
		||||
    IvarOffsetGV = new llvm::GlobalVariable(TheModule.getContext(), LongTy, 
 | 
			
		||||
        false, llvm::GlobalValue::CommonLinkage, OffsetGuess, Name, &TheModule);
 | 
			
		||||
  }
 | 
			
		||||
  return IvarOffsetGV;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1646,7 +1646,8 @@ llvm::Constant *CGObjCMac::GetOrEmitProtocol(const ObjCProtocolDecl *PD) {
 | 
			
		|||
    Entry->setInitializer(Init);
 | 
			
		||||
  } else {
 | 
			
		||||
    Entry = 
 | 
			
		||||
      new llvm::GlobalVariable(ObjCTypes.ProtocolTy, false,
 | 
			
		||||
      new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                               ObjCTypes.ProtocolTy, false,
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               Init, 
 | 
			
		||||
                               std::string("\01L_OBJC_PROTOCOL_")+ProtocolName,
 | 
			
		||||
| 
						 | 
				
			
			@ -1669,7 +1670,8 @@ llvm::Constant *CGObjCMac::GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) {
 | 
			
		|||
    // reference or not. At module finalization we add the empty
 | 
			
		||||
    // contents for protocols which were referenced but never defined.
 | 
			
		||||
    Entry = 
 | 
			
		||||
      new llvm::GlobalVariable(ObjCTypes.ProtocolTy, false,
 | 
			
		||||
      new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                               ObjCTypes.ProtocolTy, false,
 | 
			
		||||
                               llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                               0,
 | 
			
		||||
                               "\01L_OBJC_PROTOCOL_" + PD->getNameAsString(),
 | 
			
		||||
| 
						 | 
				
			
			@ -2100,7 +2102,8 @@ llvm::Constant *CGObjCMac::EmitMetaClass(const ObjCImplementationDecl *ID,
 | 
			
		|||
    GV->setLinkage(llvm::GlobalValue::InternalLinkage);
 | 
			
		||||
    GV->setInitializer(Init);
 | 
			
		||||
  } else {
 | 
			
		||||
    GV = new llvm::GlobalVariable(ObjCTypes.ClassTy, false,
 | 
			
		||||
    GV = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                  ObjCTypes.ClassTy, false,
 | 
			
		||||
                                  llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                                  Init, Name,
 | 
			
		||||
                                  &CGM.getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -2130,7 +2133,8 @@ llvm::Constant *CGObjCMac::EmitMetaClassRef(const ObjCInterfaceDecl *ID) {
 | 
			
		|||
  } else {
 | 
			
		||||
    // Generate as an external reference to keep a consistent
 | 
			
		||||
    // module. This will be patched up when we emit the metaclass.
 | 
			
		||||
    return new llvm::GlobalVariable(ObjCTypes.ClassTy, false,
 | 
			
		||||
    return new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                    ObjCTypes.ClassTy, false,
 | 
			
		||||
                                    llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                                    0,
 | 
			
		||||
                                    Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -2311,7 +2315,7 @@ CGObjCCommonMac::CreateMetadataVar(const std::string &Name,
 | 
			
		|||
                                   bool AddToUsed) {
 | 
			
		||||
  const llvm::Type *Ty = Init->getType();
 | 
			
		||||
  llvm::GlobalVariable *GV = 
 | 
			
		||||
    new llvm::GlobalVariable(Ty, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(), Ty, false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Init,
 | 
			
		||||
                             Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -4071,7 +4075,8 @@ void CGObjCNonFragileABIMac::AddModuleClassList(const
 | 
			
		|||
                             Symbols);
 | 
			
		||||
  
 | 
			
		||||
  llvm::GlobalVariable *GV =
 | 
			
		||||
    new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(), 
 | 
			
		||||
                             Init->getType(), false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Init,
 | 
			
		||||
                             SymbolName,
 | 
			
		||||
| 
						 | 
				
			
			@ -4117,7 +4122,8 @@ void CGObjCNonFragileABIMac::FinishNonFragileABIModule() {
 | 
			
		|||
                                      llvm::ArrayType::get(ObjCTypes.IntTy, 2),
 | 
			
		||||
                                      Values);   
 | 
			
		||||
  llvm::GlobalVariable *IMGV =
 | 
			
		||||
    new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(), 
 | 
			
		||||
                             Init->getType(), false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Init,
 | 
			
		||||
                             "\01L_OBJC_IMAGE_INFO",
 | 
			
		||||
| 
						 | 
				
			
			@ -4261,7 +4267,8 @@ llvm::GlobalVariable * CGObjCNonFragileABIMac::BuildClassRoTInitializer(
 | 
			
		|||
  llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassRonfABITy,
 | 
			
		||||
                                                   Values);
 | 
			
		||||
  llvm::GlobalVariable *CLASS_RO_GV =
 | 
			
		||||
  new llvm::GlobalVariable(ObjCTypes.ClassRonfABITy, false,
 | 
			
		||||
  new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                           ObjCTypes.ClassRonfABITy, false,
 | 
			
		||||
                           llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                           Init,
 | 
			
		||||
                           (flags & CLS_META) ?
 | 
			
		||||
| 
						 | 
				
			
			@ -4336,6 +4343,7 @@ void CGObjCNonFragileABIMac::GenerateClass(const ObjCImplementationDecl *ID) {
 | 
			
		|||
  std::string ClassName = ID->getNameAsString();
 | 
			
		||||
  if (!ObjCEmptyCacheVar) {
 | 
			
		||||
    ObjCEmptyCacheVar = new llvm::GlobalVariable(
 | 
			
		||||
                                            CGM.getModule().getContext(),
 | 
			
		||||
                                            ObjCTypes.CacheTy,
 | 
			
		||||
                                            false,
 | 
			
		||||
                                            llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
| 
						 | 
				
			
			@ -4344,6 +4352,7 @@ void CGObjCNonFragileABIMac::GenerateClass(const ObjCImplementationDecl *ID) {
 | 
			
		|||
                                            &CGM.getModule());
 | 
			
		||||
    
 | 
			
		||||
    ObjCEmptyVtableVar = new llvm::GlobalVariable(
 | 
			
		||||
                            CGM.getModule().getContext(),
 | 
			
		||||
                            ObjCTypes.ImpnfABITy,
 | 
			
		||||
                            false,
 | 
			
		||||
                            llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
| 
						 | 
				
			
			@ -4453,6 +4462,7 @@ llvm::Value *CGObjCNonFragileABIMac::GenerateProtocolRef(CGBuilderTy &Builder,
 | 
			
		|||
  if (PTGV)
 | 
			
		||||
    return Builder.CreateLoad(PTGV, false, "tmp");
 | 
			
		||||
  PTGV = new llvm::GlobalVariable(
 | 
			
		||||
                                CGM.getModule().getContext(),
 | 
			
		||||
                                Init->getType(), false,
 | 
			
		||||
                                llvm::GlobalValue::WeakAnyLinkage,
 | 
			
		||||
                                Init,
 | 
			
		||||
| 
						 | 
				
			
			@ -4538,7 +4548,8 @@ void CGObjCNonFragileABIMac::GenerateCategory(const ObjCCategoryImplDecl *OCD) {
 | 
			
		|||
    llvm::ConstantStruct::get(ObjCTypes.CategorynfABITy, 
 | 
			
		||||
                              Values);
 | 
			
		||||
  llvm::GlobalVariable *GCATV
 | 
			
		||||
    = new llvm::GlobalVariable(ObjCTypes.CategorynfABITy, 
 | 
			
		||||
    = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                               ObjCTypes.CategorynfABITy, 
 | 
			
		||||
                               false,
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               Init,
 | 
			
		||||
| 
						 | 
				
			
			@ -4601,7 +4612,8 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitMethodList(
 | 
			
		|||
  llvm::Constant *Init = llvm::ConstantStruct::get(Values);
 | 
			
		||||
  
 | 
			
		||||
  llvm::GlobalVariable *GV =
 | 
			
		||||
    new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             Init->getType(), false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Init,
 | 
			
		||||
                             Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -4630,7 +4642,7 @@ llvm::GlobalVariable * CGObjCNonFragileABIMac::ObjCIvarOffsetVariable(
 | 
			
		|||
    CGM.getModule().getGlobalVariable(Name);
 | 
			
		||||
  if (!IvarOffsetGV)
 | 
			
		||||
    IvarOffsetGV = 
 | 
			
		||||
      new llvm::GlobalVariable(ObjCTypes.LongTy,
 | 
			
		||||
      new llvm::GlobalVariable(CGM.getModule().getContext(), ObjCTypes.LongTy,
 | 
			
		||||
                               false,
 | 
			
		||||
                               llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                               0,
 | 
			
		||||
| 
						 | 
				
			
			@ -4729,7 +4741,8 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitIvarList(
 | 
			
		|||
  llvm::Constant *Init = llvm::ConstantStruct::get(Values);
 | 
			
		||||
  const char *Prefix = "\01l_OBJC_$_INSTANCE_VARIABLES_";
 | 
			
		||||
  llvm::GlobalVariable *GV =
 | 
			
		||||
    new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             Init->getType(), false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Init,
 | 
			
		||||
                             Prefix + OID->getNameAsString(),
 | 
			
		||||
| 
						 | 
				
			
			@ -4752,7 +4765,8 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
 | 
			
		|||
    // reference or not. At module finalization we add the empty
 | 
			
		||||
    // contents for protocols which were referenced but never defined.
 | 
			
		||||
    Entry = 
 | 
			
		||||
    new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             ObjCTypes.ProtocolnfABITy, false,
 | 
			
		||||
                             llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                             0,
 | 
			
		||||
                             "\01l_OBJC_PROTOCOL_$_" + PD->getNameAsString(),
 | 
			
		||||
| 
						 | 
				
			
			@ -4856,7 +4870,8 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
 | 
			
		|||
    Entry->setInitializer(Init);
 | 
			
		||||
  } else {
 | 
			
		||||
    Entry = 
 | 
			
		||||
    new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             ObjCTypes.ProtocolnfABITy, false,
 | 
			
		||||
                             llvm::GlobalValue::WeakAnyLinkage,
 | 
			
		||||
                             Init, 
 | 
			
		||||
                             std::string("\01l_OBJC_PROTOCOL_$_")+ProtocolName,
 | 
			
		||||
| 
						 | 
				
			
			@ -4870,6 +4885,7 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
 | 
			
		|||
  // Use this protocol meta-data to build protocol list table in section
 | 
			
		||||
  // __DATA, __objc_protolist
 | 
			
		||||
  llvm::GlobalVariable *PTGV = new llvm::GlobalVariable(
 | 
			
		||||
                                      CGM.getModule().getContext(),
 | 
			
		||||
                                      ObjCTypes.ProtocolnfABIPtrTy, false,
 | 
			
		||||
                                      llvm::GlobalValue::WeakAnyLinkage,
 | 
			
		||||
                                      Entry, 
 | 
			
		||||
| 
						 | 
				
			
			@ -4923,7 +4939,8 @@ CGObjCNonFragileABIMac::EmitProtocolList(const std::string &Name,
 | 
			
		|||
                                                  ProtocolRefs);
 | 
			
		||||
  
 | 
			
		||||
  llvm::Constant *Init = llvm::ConstantStruct::get(Values);
 | 
			
		||||
  GV = new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
  GV = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                Init->getType(), false,
 | 
			
		||||
                                llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                                Init,
 | 
			
		||||
                                Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -5066,7 +5083,8 @@ CodeGen::RValue CGObjCNonFragileABIMac::EmitMessageSend(
 | 
			
		|||
    Values[0] = Fn;
 | 
			
		||||
    Values[1] = GetMethodVarName(Sel);
 | 
			
		||||
    llvm::Constant *Init = llvm::ConstantStruct::get(Values);
 | 
			
		||||
    GV =  new llvm::GlobalVariable(Init->getType(), false,
 | 
			
		||||
    GV =  new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                   Init->getType(), false,
 | 
			
		||||
                                   llvm::GlobalValue::WeakAnyLinkage,
 | 
			
		||||
                                   Init,
 | 
			
		||||
                                   Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -5114,7 +5132,8 @@ CGObjCNonFragileABIMac::GetClassGlobal(const std::string &Name) {
 | 
			
		|||
  llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name);
 | 
			
		||||
 | 
			
		||||
  if (!GV) {
 | 
			
		||||
    GV = new llvm::GlobalVariable(ObjCTypes.ClassnfABITy, false,
 | 
			
		||||
    GV = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                  ObjCTypes.ClassnfABITy, false,
 | 
			
		||||
                                  llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                                  0, Name, &CGM.getModule());
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -5130,7 +5149,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitClassRef(CGBuilderTy &Builder,
 | 
			
		|||
    std::string ClassName(getClassSymbolPrefix() + ID->getNameAsString());
 | 
			
		||||
    llvm::GlobalVariable *ClassGV = GetClassGlobal(ClassName);
 | 
			
		||||
    Entry = 
 | 
			
		||||
      new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
      new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                               ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               ClassGV, 
 | 
			
		||||
                               "\01L_OBJC_CLASSLIST_REFERENCES_$_",
 | 
			
		||||
| 
						 | 
				
			
			@ -5154,7 +5174,8 @@ CGObjCNonFragileABIMac::EmitSuperClassRef(CGBuilderTy &Builder,
 | 
			
		|||
    std::string ClassName(getClassSymbolPrefix() + ID->getNameAsString());
 | 
			
		||||
    llvm::GlobalVariable *ClassGV = GetClassGlobal(ClassName);
 | 
			
		||||
    Entry = 
 | 
			
		||||
      new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
      new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                               ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
                               llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                               ClassGV, 
 | 
			
		||||
                               "\01L_OBJC_CLASSLIST_SUP_REFS_$_",
 | 
			
		||||
| 
						 | 
				
			
			@ -5181,7 +5202,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitMetaClassRef(CGBuilderTy &Builder,
 | 
			
		|||
  std::string MetaClassName(getMetaclassSymbolPrefix() + ID->getNameAsString());
 | 
			
		||||
  llvm::GlobalVariable *MetaClassGV = GetClassGlobal(MetaClassName);
 | 
			
		||||
  Entry = 
 | 
			
		||||
    new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             ObjCTypes.ClassnfABIPtrTy, false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             MetaClassGV, 
 | 
			
		||||
                             "\01L_OBJC_CLASSLIST_SUP_REFS_$_",
 | 
			
		||||
| 
						 | 
				
			
			@ -5269,7 +5291,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitSelector(CGBuilderTy &Builder,
 | 
			
		|||
    llvm::ConstantExpr::getBitCast(GetMethodVarName(Sel),
 | 
			
		||||
                                   ObjCTypes.SelectorPtrTy);
 | 
			
		||||
    Entry = 
 | 
			
		||||
    new llvm::GlobalVariable(ObjCTypes.SelectorPtrTy, false,
 | 
			
		||||
    new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                             ObjCTypes.SelectorPtrTy, false,
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             Casted, "\01L_OBJC_SELECTOR_REFERENCES_",
 | 
			
		||||
                             &CGM.getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -5469,7 +5492,8 @@ CGObjCNonFragileABIMac::EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF,
 | 
			
		|||
            CGM.getModule().getGlobalVariable("OBJC_EHTYPE_id");
 | 
			
		||||
          if (!IDEHType)
 | 
			
		||||
            IDEHType = 
 | 
			
		||||
              new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false,
 | 
			
		||||
              new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                       ObjCTypes.EHTypeTy, false,
 | 
			
		||||
                                       llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                                       0, "OBJC_EHTYPE_id", &CGM.getModule());
 | 
			
		||||
          SelectorArgs.push_back(IDEHType);
 | 
			
		||||
| 
						 | 
				
			
			@ -5686,7 +5710,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID,
 | 
			
		|||
    // attribute, emit an external reference.
 | 
			
		||||
    if (hasObjCExceptionAttribute(CGM.getContext(), ID))
 | 
			
		||||
      return Entry = 
 | 
			
		||||
        new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false,
 | 
			
		||||
        new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                 ObjCTypes.EHTypeTy, false,
 | 
			
		||||
                                 llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                                 0, 
 | 
			
		||||
                                 (std::string("OBJC_EHTYPE_$_") + 
 | 
			
		||||
| 
						 | 
				
			
			@ -5702,7 +5727,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID,
 | 
			
		|||
  llvm::GlobalVariable *VTableGV = 
 | 
			
		||||
    CGM.getModule().getGlobalVariable(VTableName);
 | 
			
		||||
  if (!VTableGV)
 | 
			
		||||
    VTableGV = new llvm::GlobalVariable(ObjCTypes.Int8PtrTy, false,
 | 
			
		||||
    VTableGV = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                        ObjCTypes.Int8PtrTy, false,
 | 
			
		||||
                                        llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                                        0, VTableName, &CGM.getModule());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -5717,7 +5743,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID,
 | 
			
		|||
  if (Entry) {
 | 
			
		||||
    Entry->setInitializer(Init);
 | 
			
		||||
  } else {
 | 
			
		||||
    Entry = new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false,
 | 
			
		||||
    Entry = new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                     ObjCTypes.EHTypeTy, false,
 | 
			
		||||
                                     llvm::GlobalValue::WeakAnyLinkage,
 | 
			
		||||
                                     Init, 
 | 
			
		||||
                                     (std::string("OBJC_EHTYPE_$_") + 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -216,7 +216,7 @@ void CodeGenModule::EmitCtorList(const CtorList &Fns, const char *GlobalName) {
 | 
			
		|||
 | 
			
		||||
  if (!Ctors.empty()) {
 | 
			
		||||
    llvm::ArrayType *AT = llvm::ArrayType::get(CtorStructTy, Ctors.size());
 | 
			
		||||
    new llvm::GlobalVariable(AT, false,
 | 
			
		||||
    new llvm::GlobalVariable(TheModule.getContext(), AT, false,
 | 
			
		||||
                             llvm::GlobalValue::AppendingLinkage,
 | 
			
		||||
                             llvm::ConstantArray::get(AT, Ctors),
 | 
			
		||||
                             GlobalName, 
 | 
			
		||||
| 
						 | 
				
			
			@ -234,7 +234,7 @@ void CodeGenModule::EmitAnnotations() {
 | 
			
		|||
                                                Annotations.size()),
 | 
			
		||||
                           Annotations);
 | 
			
		||||
  llvm::GlobalValue *gv = 
 | 
			
		||||
  new llvm::GlobalVariable(Array->getType(), false,  
 | 
			
		||||
  new llvm::GlobalVariable(TheModule.getContext(), Array->getType(), false,  
 | 
			
		||||
                           llvm::GlobalValue::AppendingLinkage, Array, 
 | 
			
		||||
                           "llvm.global.annotations", &TheModule);
 | 
			
		||||
  gv->setSection("llvm.metadata");
 | 
			
		||||
| 
						 | 
				
			
			@ -436,7 +436,7 @@ void CodeGenModule::EmitLLVMUsed() {
 | 
			
		|||
  llvm::ArrayType *ATy = llvm::ArrayType::get(i8PTy, UsedArray.size());
 | 
			
		||||
  
 | 
			
		||||
  llvm::GlobalVariable *GV = 
 | 
			
		||||
    new llvm::GlobalVariable(ATy, false, 
 | 
			
		||||
    new llvm::GlobalVariable(getModule().getContext(), ATy, false, 
 | 
			
		||||
                             llvm::GlobalValue::AppendingLinkage,
 | 
			
		||||
                             llvm::ConstantArray::get(ATy, UsedArray),
 | 
			
		||||
                             "llvm.used", &getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -494,12 +494,12 @@ llvm::Constant *CodeGenModule::EmitAnnotateAttr(llvm::GlobalValue *GV,
 | 
			
		|||
  // created to hold the bytes of the strings.
 | 
			
		||||
  const char *StringPrefix = getContext().Target.getStringSymbolPrefix(true);
 | 
			
		||||
  llvm::GlobalValue *annoGV = 
 | 
			
		||||
  new llvm::GlobalVariable(anno->getType(), false,
 | 
			
		||||
  new llvm::GlobalVariable(M->getContext(), anno->getType(), false,
 | 
			
		||||
                           llvm::GlobalValue::InternalLinkage, anno,
 | 
			
		||||
                           GV->getName() + StringPrefix, M);
 | 
			
		||||
  // translation unit name string, emitted into the llvm.metadata section.
 | 
			
		||||
  llvm::GlobalValue *unitGV =
 | 
			
		||||
  new llvm::GlobalVariable(unit->getType(), false,
 | 
			
		||||
  new llvm::GlobalVariable(M->getContext(), unit->getType(), false,
 | 
			
		||||
                           llvm::GlobalValue::InternalLinkage, unit, 
 | 
			
		||||
                           StringPrefix, M);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -719,7 +719,8 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMGlobal(const char *MangledName,
 | 
			
		|||
  }
 | 
			
		||||
  
 | 
			
		||||
  llvm::GlobalVariable *GV = 
 | 
			
		||||
    new llvm::GlobalVariable(Ty->getElementType(), false, 
 | 
			
		||||
    new llvm::GlobalVariable(getModule().getContext(), 
 | 
			
		||||
                             Ty->getElementType(), false, 
 | 
			
		||||
                             llvm::GlobalValue::ExternalLinkage,
 | 
			
		||||
                             0, "", &getModule(), 
 | 
			
		||||
                             false, Ty->getAddressSpace());
 | 
			
		||||
| 
						 | 
				
			
			@ -1245,7 +1246,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) {
 | 
			
		|||
    // likely see an opaque error message. This is a general issue with relying
 | 
			
		||||
    // on particular names.
 | 
			
		||||
    llvm::GlobalVariable *GV = 
 | 
			
		||||
      new llvm::GlobalVariable(Ty, false,
 | 
			
		||||
      new llvm::GlobalVariable(getModule().getContext(), Ty, false,
 | 
			
		||||
                               llvm::GlobalVariable::ExternalLinkage, 0, 
 | 
			
		||||
                               "__CFConstantStringClassReference", 
 | 
			
		||||
                               &getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -1299,7 +1300,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) {
 | 
			
		|||
    isConstant = true;
 | 
			
		||||
  }
 | 
			
		||||
  llvm::GlobalVariable *GV = 
 | 
			
		||||
    new llvm::GlobalVariable(C->getType(), isConstant, 
 | 
			
		||||
    new llvm::GlobalVariable(getModule().getContext(), C->getType(), isConstant, 
 | 
			
		||||
                             llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                             C, Prefix, &getModule());
 | 
			
		||||
  if (Sect)
 | 
			
		||||
| 
						 | 
				
			
			@ -1321,7 +1322,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) {
 | 
			
		|||
  
 | 
			
		||||
  // The struct.
 | 
			
		||||
  C = llvm::ConstantStruct::get(STy, Fields);
 | 
			
		||||
  GV = new llvm::GlobalVariable(C->getType(), true, 
 | 
			
		||||
  GV = new llvm::GlobalVariable(getModule().getContext(), C->getType(), true, 
 | 
			
		||||
                                llvm::GlobalVariable::InternalLinkage, C, 
 | 
			
		||||
                                getContext().Target.getCFStringSymbolPrefix(), 
 | 
			
		||||
                                &getModule());
 | 
			
		||||
| 
						 | 
				
			
			@ -1382,7 +1383,8 @@ static llvm::Constant *GenerateStringLiteral(const std::string &str,
 | 
			
		|||
  llvm::Constant *C = llvm::ConstantArray::get(str, false);
 | 
			
		||||
  
 | 
			
		||||
  // Create a global variable for this string
 | 
			
		||||
  return new llvm::GlobalVariable(C->getType(), constant, 
 | 
			
		||||
  return new llvm::GlobalVariable(CGM.getModule().getContext(),
 | 
			
		||||
                                  C->getType(), constant, 
 | 
			
		||||
                                  llvm::GlobalValue::InternalLinkage,
 | 
			
		||||
                                  C, GlobalName, &CGM.getModule());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue