[llvm] r212351 - Ignore llvm.* globals.

Rafael Espindola rafael.espindola at gmail.com
Fri Jul 4 12:08:22 PDT 2014


Author: rafael
Date: Fri Jul  4 14:08:22 2014
New Revision: 212351

URL: http://llvm.org/viewvc/llvm-project?rev=212351&view=rev
Log:
Ignore llvm.* globals.

It is not clear if llvm.global_ctors should or should not be in llvm.metadata,
but in practice it is not and we need to ignore it for LTO.

Modified:
    llvm/trunk/lib/Object/IRObjectFile.cpp
    llvm/trunk/test/Object/Inputs/trivial.ll

Modified: llvm/trunk/lib/Object/IRObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/IRObjectFile.cpp?rev=212351&r1=212350&r2=212351&view=diff
==============================================================================
--- llvm/trunk/lib/Object/IRObjectFile.cpp (original)
+++ llvm/trunk/lib/Object/IRObjectFile.cpp Fri Jul  4 14:08:22 2014
@@ -238,16 +238,13 @@ uint32_t IRObjectFile::getSymbolFlags(Da
   if (GV->hasLinkOnceLinkage() || GV->hasWeakLinkage())
     Res |= BasicSymbolRef::SF_Weak;
 
-  if (auto *Var = dyn_cast<GlobalVariable>(GV)) {
+  if (GV->getName().startswith("llvm."))
+    Res |= BasicSymbolRef::SF_FormatSpecific;
+  else if (auto *Var = dyn_cast<GlobalVariable>(GV)) {
     if (Var->getSection() == StringRef("llvm.metadata"))
       Res |= BasicSymbolRef::SF_FormatSpecific;
   }
 
-  if (auto *F = dyn_cast<Function>(GV)) {
-    if (F->getName().startswith("llvm."))
-      Res |= BasicSymbolRef::SF_FormatSpecific;
-  }
-
   return Res;
 }
 

Modified: llvm/trunk/test/Object/Inputs/trivial.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Inputs/trivial.ll?rev=212351&r1=212350&r2=212351&view=diff
==============================================================================
--- llvm/trunk/test/Object/Inputs/trivial.ll (original)
+++ llvm/trunk/test/Object/Inputs/trivial.ll Fri Jul  4 14:08:22 2014
@@ -13,3 +13,4 @@ declare void @SomeOtherFunction(...)
 
 @var = global i32 0
 @llvm.used = appending global [1 x i8*] [i8* bitcast (i32* @var to i8*)], section "llvm.metadata"
+ at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* null, i8* null }]





More information about the llvm-commits mailing list