[llvm-branch-commits] [llvm-branch] r100507 - in /llvm/branches/Apple/Hermes: lib/Target/TargetLoweringObjectFile.cpp test/CodeGen/X86/global-sections.ll

Jim Grosbach grosbach at apple.com
Mon Apr 5 17:46:34 PDT 2010


Author: grosbach
Date: Mon Apr  5 19:46:34 2010
New Revision: 100507

URL: http://llvm.org/viewvc/llvm-project?rev=100507&view=rev
Log:
merge 97845 97895

Modified:
    llvm/branches/Apple/Hermes/lib/Target/TargetLoweringObjectFile.cpp
    llvm/branches/Apple/Hermes/test/CodeGen/X86/global-sections.ll

Modified: llvm/branches/Apple/Hermes/lib/Target/TargetLoweringObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Hermes/lib/Target/TargetLoweringObjectFile.cpp?rev=100507&r1=100506&r2=100507&view=diff
==============================================================================
--- llvm/branches/Apple/Hermes/lib/Target/TargetLoweringObjectFile.cpp (original)
+++ llvm/branches/Apple/Hermes/lib/Target/TargetLoweringObjectFile.cpp Mon Apr  5 19:46:34 2010
@@ -902,16 +902,16 @@
   }
 
   // FIXME: Alignment check should be handled by section classifier.
-  if (Kind.isMergeable1ByteCString() ||
-      Kind.isMergeable2ByteCString()) {
-    if (TM.getTargetData()->getPreferredAlignment(
-                                              cast<GlobalVariable>(GV)) < 32) {
-      if (Kind.isMergeable1ByteCString())
-        return CStringSection;
-      assert(Kind.isMergeable2ByteCString());
-      return UStringSection;
-    }
-  }
+  if (Kind.isMergeable1ByteCString() &&
+      TM.getTargetData()->getPreferredAlignment(cast<GlobalVariable>(GV)) < 32)
+    return CStringSection;
+
+  // Do not put 16-bit arrays in the UString section if they have an
+  // externally visible label, this runs into issues with certain linker
+  // versions.
+  if (Kind.isMergeable2ByteCString() && !GV->hasExternalLinkage() &&
+      TM.getTargetData()->getPreferredAlignment(cast<GlobalVariable>(GV)) < 32)
+    return UStringSection;
 
   if (Kind.isMergeableConst()) {
     if (Kind.isMergeableConst4())

Modified: llvm/branches/Apple/Hermes/test/CodeGen/X86/global-sections.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Hermes/test/CodeGen/X86/global-sections.ll?rev=100507&r1=100506&r2=100507&view=diff
==============================================================================
--- llvm/branches/Apple/Hermes/test/CodeGen/X86/global-sections.ll (original)
+++ llvm/branches/Apple/Hermes/test/CodeGen/X86/global-sections.ll Mon Apr  5 19:46:34 2010
@@ -100,7 +100,7 @@
 
 @G8 = constant [4 x i16] [ i16 1, i16 2, i16 3, i16 0 ]
 
-; DARWIN:	.section	__TEXT,__ustring
+; DARWIN:	.section	__TEXT,__const
 ; DARWIN:	.globl _G8
 ; DARWIN: _G8:
 
@@ -110,7 +110,6 @@
 
 @G9 = constant [4 x i32] [ i32 1, i32 2, i32 3, i32 0 ]
 
-; DARWIN:	.section        __TEXT,__const
 ; DARWIN:	.globl _G9
 ; DARWIN: _G9:
 





More information about the llvm-branch-commits mailing list