[llvm-commits] [llvm-gcc-4.2] r123444 - in /llvm-gcc-4.2/trunk/gcc: llvm-backend.cpp llvm-convert.cpp llvm-types.cpp

Rafael Espindola rafael.espindola at gmail.com
Fri Jan 14 08:36:59 PST 2011


Author: rafael
Date: Fri Jan 14 10:36:59 2011
New Revision: 123444

URL: http://llvm.org/viewvc/llvm-project?rev=123444&view=rev
Log:
Add unnamed_addr to as many global variables as possible. This
makes sure that llvm-gcc will not be affected by future changes
to constant merging.

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
    llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
    llvm-gcc-4.2/trunk/gcc/llvm-types.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=123444&r1=123443&r2=123444&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Fri Jan 14 10:36:59 2011
@@ -311,10 +311,11 @@
   Constant *LLVMValuesTable = ConstantStruct::get(Context, ValuesForPCH, false);
 
   // Create variable to hold this string table.
-  new GlobalVariable(*TheModule, LLVMValuesTable->getType(), true,
-                     GlobalValue::ExternalLinkage,
-                     LLVMValuesTable,
-                     "llvm.pch.values");
+  GlobalVariable *GV = new GlobalVariable(*TheModule, LLVMValuesTable->getType(),
+					  true, GlobalValue::ExternalLinkage,
+					  LLVMValuesTable,
+					  "llvm.pch.values");
+  GV->setUnnamedAddr(true);
 
   if (TheDebugInfo && TheDebugInfo->getCU().Verify()) {
     NamedMDNode *NMD = TheModule->getOrInsertNamedMetadata("llvm.dbg.pch.cu");
@@ -866,9 +867,10 @@
   }
   Constant *Array = ConstantArray::get(
     ArrayType::get(InitList[0]->getType(), InitList.size()), InitList);
-  new GlobalVariable(*TheModule, Array->getType(), false,
-                     GlobalValue::AppendingLinkage,
-                     Array, Name);
+  GlobalVariable *GV = new GlobalVariable(*TheModule, Array->getType(), false,
+					  GlobalValue::AppendingLinkage,
+					  Array, Name);
+  GV->setUnnamedAddr(true);
 }
 
 /// llvm_asm_file_end - Finish the .s file.
@@ -948,6 +950,7 @@
     GlobalValue *gv = new GlobalVariable(*TheModule, AT, false,
                                          GlobalValue::AppendingLinkage, Init,
                                          "llvm.used");
+    gv->setUnnamedAddr(true);
     gv->setSection("llvm.metadata");
     AttributeUsedGlobals.clear();
   }
@@ -967,6 +970,7 @@
     GlobalValue *gv = new GlobalVariable(*TheModule, AT, false,
                                          GlobalValue::AppendingLinkage, Init,
                                          "llvm.compiler.used");
+    gv->setUnnamedAddr(true);
     gv->setSection("llvm.metadata");
     AttributeCompilerUsedGlobals.clear();
   }
@@ -980,6 +984,7 @@
     GlobalValue *gv = new GlobalVariable(*TheModule, Array->getType(), false,
                                          GlobalValue::AppendingLinkage, Array,
                                          "llvm.global.annotations");
+    gv->setUnnamedAddr(true);
     gv->setSection("llvm.metadata");
     AttributeAnnotateGlobals.clear();
   }
@@ -1235,6 +1240,7 @@
                                           GlobalVariable::PrivateLinkage,
                                           Init, ".str");
   GV->setSection("llvm.metadata");
+  GV->setUnnamedAddr(true);
   Slot = GV;
   return GV;
   
@@ -1313,6 +1319,7 @@
 
   // Set the initializer.
   GV->setInitializer(Init);
+  GV->setUnnamedAddr(true);
 }
   
 /// reset_type_and_initializer_llvm - Change the type and initializer for 
@@ -1333,6 +1340,7 @@
 
   // Temporary to avoid infinite recursion (see comments emit_global_to_llvm)
   GV->setInitializer(UndefValue::get(GV->getType()->getElementType()));
+  GV->setUnnamedAddr(true);
 
   // Convert the initializer over.
   Constant *Init = TreeConstantToLLVM::Convert(DECL_INITIAL(decl));
@@ -1347,6 +1355,7 @@
                                              GV->isConstant(),
                                              GV->getLinkage(), 0,
                                              GV->getName());
+    NGV->setUnnamedAddr(true);
     NGV->setVisibility(GV->getVisibility());
     NGV->setSection(GV->getSection());
     NGV->setAlignment(GV->getAlignment());
@@ -1360,6 +1369,7 @@
 
   // Set the initializer.
   GV->setInitializer(Init);
+  GV->setUnnamedAddr(true);
 }
   
 /// emit_global_to_llvm - Emit the specified VAR_DECL or aggregate CONST_DECL to
@@ -1411,6 +1421,7 @@
     // this can happen for things like void *G = &G;
     //
     GV->setInitializer(UndefValue::get(GV->getType()->getElementType()));
+    GV->setUnnamedAddr(true);
     Init = TreeConstantToLLVM::Convert(DECL_INITIAL(decl));
   }
 
@@ -1424,6 +1435,7 @@
                                              GV->isConstant(),
                                              GlobalValue::ExternalLinkage, 0,
                                              GV->getName());
+    NGV->setUnnamedAddr(true);
     GV->replaceAllUsesWith(TheFolder->CreateBitCast(NGV, GV->getType()));
     changeLLVMConstant(GV, NGV);
     delete GV;
@@ -1433,6 +1445,7 @@
  
   // Set the initializer.
   GV->setInitializer(Init);
+  GV->setUnnamedAddr(true);
 
   // Set thread local (TLS)
   if (TREE_CODE(decl) == VAR_DECL && DECL_THREAD_LOCAL_P(decl))
@@ -1734,6 +1747,7 @@
     if (Name[0] == 0) {   // Global has no name.
       GV = new GlobalVariable(*TheModule, Ty, false, 
                               GlobalValue::ExternalLinkage, 0, "");
+      GV->setUnnamedAddr(true);
 
       // Check for external weak linkage.
       if (DECL_EXTERNAL(decl) && DECL_WEAK(decl))

Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=123444&r1=123443&r2=123444&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Fri Jan 14 10:36:59 2011
@@ -2174,6 +2174,7 @@
     CatchAll = new GlobalVariable(*TheModule, Init->getType(), true,
                                   GlobalVariable::LinkOnceAnyLinkage,
                                   Init, "llvm.eh.catch.all.value");
+    CatchAll->setUnnamedAddr(true);
     CatchAll->setSection("llvm.metadata");
     AttributeUsedGlobals.insert(CatchAll);
   }
@@ -8747,6 +8748,7 @@
   // Create a new complex global.
   Slot = new GlobalVariable(*TheModule, Init->getType(), true,
                             GlobalVariable::PrivateLinkage, Init, ".cpx");
+  Slot->setUnnamedAddr(true);
   return Slot;
 }
 
@@ -8781,6 +8783,7 @@
   GlobalVariable *GV = new GlobalVariable(*TheModule, Init->getType(),
                                           StringIsConstant, Linkage, Init,
                                           ".str");
+  GV->setUnnamedAddr(true);
   GV->setAlignment(get_constant_alignment(exp) / 8);
 
   if (SlotP) *SlotP = GV;

Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=123444&r1=123443&r2=123444&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Fri Jan 14 10:36:59 2011
@@ -208,6 +208,7 @@
                                           GlobalValue::ExternalLinkage, 
                                           LTypesNameTable,
                                           "llvm.pch.types");
+  GV->setUnnamedAddr(true);
 }
 
 //===----------------------------------------------------------------------===//





More information about the llvm-commits mailing list