[PATCH] D19635: LTO: Don't bother trying to mangle unnamed globals, as they can't be preserved with MustPreserveSymbols.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 27 16:54:00 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL267820: LTO: Don't bother trying to mangle unnamed globals, as they can't be… (authored by pcc).

Changed prior to commit:
  http://reviews.llvm.org/D19635?vs=55341&id=55360#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19635

Files:
  llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
  llvm/trunk/test/LTO/X86/unnamed.ll

Index: llvm/trunk/test/LTO/X86/unnamed.ll
===================================================================
--- llvm/trunk/test/LTO/X86/unnamed.ll
+++ llvm/trunk/test/LTO/X86/unnamed.ll
@@ -0,0 +1,10 @@
+; RUN: llvm-as -o %t.bc %s
+; RUN: llvm-lto -save-merged-module -o %t2 %t.bc
+; RUN: llvm-dis -o - %t2.merged.bc | FileCheck %s
+
+; CHECK-NOT: global i32
+
+target triple = "x86_64-unknown-linux-gnu"
+
+ at 0 = private global i32 42
+ at foo = constant i32* @0
Index: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
===================================================================
--- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
+++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
@@ -381,6 +381,10 @@
   // candidate GlobalValue if it can be internalized or not.
   SmallString<64> MangledName;
   auto mustPreserveGV = [&](const GlobalValue &GV) -> bool {
+    // Unnamed globals can't be mangled, but they can't be preserved either.
+    if (!GV.hasName())
+      return false;
+
     // Need to mangle the GV as the "MustPreserveSymbols" StringSet is filled
     // with the linker supplied name, which on Darwin includes a leading
     // underscore.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19635.55360.patch
Type: text/x-patch
Size: 1140 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160427/e2495bc0/attachment.bin>


More information about the llvm-commits mailing list