[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