[cfe-commits] r63470 - /cfe/trunk/lib/CodeGen/CGObjCMac.cpp

Fariborz Jahanian fjahanian at apple.com
Fri Jan 30 18:43:27 PST 2009


Author: fjahanian
Date: Fri Jan 30 20:43:27 2009
New Revision: 63470

URL: http://llvm.org/viewvc/llvm-project?rev=63470&view=rev
Log:
Use target alignment API to set objc2's meta-data
alignment.

Modified:
    cfe/trunk/lib/CodeGen/CGObjCMac.cpp

Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=63470&r1=63469&r2=63470&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Fri Jan 30 20:43:27 2009
@@ -363,11 +363,6 @@
   /// defined. The return value has type ProtocolPtrTy.
   llvm::Constant *GetProtocolRef(const ObjCProtocolDecl *PD);
   
-  /// GetPointerAlign - get alignment of a pointer.
-  uint32_t GetPointerAlign(void) {
-    return CGM.getContext().getTypeAlign(CGM.getContext().VoidPtrTy) >> 3;
-  }
-  
 public:
   CGObjCCommonMac(CodeGen::CodeGenModule &cgm) : CGM(cgm)
   { }
@@ -3341,7 +3336,8 @@
                            std::string("\01l_OBJC_METACLASS_RO_$_")+ClassName :
                            std::string("\01l_OBJC_CLASS_RO_$_")+ClassName,
                            &CGM.getModule());
-  CLASS_RO_GV->setAlignment(GetPointerAlign());
+  CLASS_RO_GV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.ClassRonfABITy));
   CLASS_RO_GV->setSection("__DATA, __objc_const");
   UsedGlobals.push_back(CLASS_RO_GV);
   return CLASS_RO_GV;
@@ -3385,7 +3381,8 @@
                              ClassName,
                              &CGM.getModule());
   GV->setSection("__DATA, __objc_data");
-  GV->setAlignment(GetPointerAlign());
+  GV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.ClassnfABITy));
   if (HiddenVisibility)
     GV->setVisibility(llvm::GlobalValue::HiddenVisibility);
   UsedGlobals.push_back(GV);
@@ -3658,7 +3655,8 @@
                                Init,
                                ExtCatName,
                                &CGM.getModule());
-  GCATV->setAlignment(GetPointerAlign());
+  GCATV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.CategorynfABITy));
   GCATV->setSection("__DATA, __objc_const");
   UsedGlobals.push_back(GCATV);
   DefinedCategories.push_back(GCATV);
@@ -3715,7 +3713,8 @@
                              Init,
                              Name,
                              &CGM.getModule());
-  GV->setAlignment(GetPointerAlign());
+  GV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(Init->getType()));
   GV->setSection(Section);
   UsedGlobals.push_back(GV);
   return llvm::ConstantExpr::getBitCast(GV,
@@ -3735,6 +3734,8 @@
     CGM.getModule().getGlobalVariable(ExternalName);
   if (IvarOffsetGV) {
     // ivar offset symbol already built due to user code referencing it.
+    IvarOffsetGV->setAlignment(
+      CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.Int8PtrTy));
     IvarOffsetGV->setInitializer(Init);
     UsedGlobals.push_back(IvarOffsetGV);
     return IvarOffsetGV;
@@ -3747,6 +3748,8 @@
                              Init,
                              ExternalName,
                              &CGM.getModule());
+  IvarOffsetGV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.Int8PtrTy));
   // @private and @package have hidden visibility.
   bool globalVisibility = (Ivar->getAccessControl() == ObjCIvarDecl::Public ||
                            Ivar->getAccessControl() == ObjCIvarDecl::Protected);
@@ -3848,7 +3851,8 @@
                              Init,
                              Prefix + OID->getNameAsString(),
                              &CGM.getModule());
-  GV->setAlignment(GetPointerAlign()); 
+  GV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(Init->getType()));
   GV->setSection("__DATA, __objc_const");
                  
   UsedGlobals.push_back(GV);
@@ -3974,7 +3978,8 @@
                              Init, 
                              std::string("\01l_OBJC_PROTOCOL_$_")+ProtocolName,
                              &CGM.getModule());
-    Entry->setAlignment(GetPointerAlign());
+    Entry->setAlignment(
+      CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.ProtocolnfABITy));
     Entry->setSection("__DATA,__datacoal_nt,coalesced");
   }
   Entry->setVisibility(llvm::GlobalValue::HiddenVisibility);
@@ -3989,7 +3994,8 @@
                                       std::string("\01l_OBJC_LABEL_PROTOCOL_$_")
                                                   +ProtocolName,
                                       &CGM.getModule());
-  PTGV->setAlignment(GetPointerAlign());
+  PTGV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(ptype));
   PTGV->setSection("__DATA, __objc_protolist");
   PTGV->setVisibility(llvm::GlobalValue::HiddenVisibility);
   UsedGlobals.push_back(PTGV);
@@ -4038,7 +4044,8 @@
                                 Name,
                                 &CGM.getModule());
   GV->setSection("__DATA, __objc_const");
-  GV->setAlignment(GetPointerAlign());
+  GV->setAlignment(
+    CGM.getTargetData().getPrefTypeAlignment(Init->getType()));
   UsedGlobals.push_back(GV);
   return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListnfABIPtrTy);
 }





More information about the cfe-commits mailing list