summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-13 22:48:46 +0000
committerChris Lattner <sabre@nondot.org>2009-07-13 22:48:46 +0000
commitec8efcb44ee07e0de80a2ada44aee9cc97e62748 (patch)
tree7b8b23b0e3fc9c9ebf5e04bb4be00a7daf754121
parent9efced9817a4675bb90accb33dcddc6017f6ea2f (diff)
downloadbcm5719-llvm-ec8efcb44ee07e0de80a2ada44aee9cc97e62748.tar.gz
bcm5719-llvm-ec8efcb44ee07e0de80a2ada44aee9cc97e62748.zip
Two changes:
1) unique globals with the existing "Count" local in Mangler, not with atomic nonsense. Using atomics will give us nondeterminstic output from the compiler when using multiple threads, which is bad. 2) Do not mangle an unknown global name with a type suffix. We don't need this anymore now that llvm ir doesn't have type planes. llvm-svn: 75541
-rw-r--r--llvm/lib/VMCore/Mangler.cpp11
-rw-r--r--llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll3
2 files changed, 3 insertions, 11 deletions
diff --git a/llvm/lib/VMCore/Mangler.cpp b/llvm/lib/VMCore/Mangler.cpp
index 1a68b890542..50724f4e424 100644
--- a/llvm/lib/VMCore/Mangler.cpp
+++ b/llvm/lib/VMCore/Mangler.cpp
@@ -14,7 +14,6 @@
#include "llvm/Support/Mangler.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
-#include "llvm/System/Atomic.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
@@ -151,7 +150,7 @@ std::string Mangler::getValueName(const Value *V) {
}
-std::string Mangler::getValueName(const GlobalValue *GV, const char * Suffix) {
+std::string Mangler::getValueName(const GlobalValue *GV, const char *Suffix) {
// Check to see whether we've already named V.
std::string &Name = Memo[GV];
if (!Name.empty())
@@ -164,13 +163,7 @@ std::string Mangler::getValueName(const GlobalValue *GV, const char * Suffix) {
Name = GV->getNameStart(); // Is an intrinsic function
} else if (!GV->hasName()) {
// Must mangle the global into a unique ID.
- unsigned TypeUniqueID = getTypeID(GV->getType());
- static uint32_t GlobalID = 0;
-
- unsigned OldID = GlobalID;
- sys::AtomicIncrement(&GlobalID);
-
- Name = "__unnamed_" + utostr(TypeUniqueID) + "_" + utostr(OldID);
+ Name = "__unnamed_" + utostr(Count++);
} else {
if (GV->hasPrivateLinkage())
Name = makeNameProper(GV->getName() + Suffix, Prefix, PrivatePrefix);
diff --git a/llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll b/llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll
index fff75ff660a..4d8838bf997 100644
--- a/llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll
+++ b/llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll
@@ -1,5 +1,4 @@
-; RUN: llvm-as < %s | llc | grep unnamed_1_0.eh
-; ModuleID = '<stdin>'
+; RUN: llvm-as < %s | llc | grep unnamed_0.eh
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i386-apple-darwin8"
OpenPOWER on IntegriCloud