Remove some dead code from the days llvm had type planes.

There might be more dead code, but with llvm-gcc bootstrap broken on linux x86-64 it is had to test :-(



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62088 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2009-01-12 15:53:25 +00:00
parent 1f1d6e4bfc
commit c775ea1376
2 changed files with 1 additions and 51 deletions

View File

@ -51,11 +51,6 @@ class Mangler {
DenseMap<const Type*, unsigned> TypeMap; DenseMap<const Type*, unsigned> TypeMap;
unsigned TypeCounter; unsigned TypeCounter;
/// This keeps track of which global values have had their names
/// mangled in the current module.
///
SmallPtrSet<const GlobalValue*, 16> MangledGlobals;
/// AcceptableChars - This bitfield contains a one for each character that is /// AcceptableChars - This bitfield contains a one for each character that is
/// allowed to be part of an unmangled name. /// allowed to be part of an unmangled name.
unsigned AcceptableChars[256/32]; unsigned AcceptableChars[256/32];

View File

@ -145,49 +145,13 @@ std::string Mangler::getValueName(const GlobalValue *GV, const char * Suffix) {
unsigned TypeUniqueID = getTypeID(GV->getType()); unsigned TypeUniqueID = getTypeID(GV->getType());
static unsigned GlobalID = 0; static unsigned GlobalID = 0;
Name = "__unnamed_" + utostr(TypeUniqueID) + "_" + utostr(GlobalID++); Name = "__unnamed_" + utostr(TypeUniqueID) + "_" + utostr(GlobalID++);
} else if (!MangledGlobals.count(GV)) {
Name = makeNameProper(GV->getName() + Suffix, Prefix);
} else { } else {
unsigned TypeUniqueID = getTypeID(GV->getType()); Name = makeNameProper(GV->getName() + Suffix, Prefix);
Name = "l" + utostr(TypeUniqueID) + "_" + makeNameProper(GV->getName());
} }
return Name; return Name;
} }
static void InsertName(GlobalValue *GV, StringMap<GlobalValue*> &Names,
SmallPtrSet<const GlobalValue*, 16> &MangledGlobals) {
if (!GV->hasName()) // We must mangle unnamed globals.
return;
// Figure out if this is already used.
GlobalValue *&ExistingValue = Names[GV->getNameStart()];
if (!ExistingValue) {
ExistingValue = GV;
return;
}
// If GV is external but the existing one is static, mangle the existing one
if ((GV->hasExternalLinkage() || GV->hasDLLImportLinkage()) &&
!(ExistingValue->hasExternalLinkage()
|| ExistingValue->hasDLLImportLinkage())) {
MangledGlobals.insert(ExistingValue);
ExistingValue = GV;
} else if ((GV->hasExternalLinkage() ||
GV->hasDLLImportLinkage()) &&
(ExistingValue->hasExternalLinkage() ||
ExistingValue->hasDLLImportLinkage()) &&
GV->isDeclaration() &&
ExistingValue->isDeclaration()) {
// If the two globals both have external inkage, and are both external,
// don't mangle either of them, we just have some silly type mismatch.
} else {
// Otherwise, mangle GV
MangledGlobals.insert(GV);
}
}
Mangler::Mangler(Module &M, const char *prefix) Mangler::Mangler(Module &M, const char *prefix)
: Prefix(prefix), UseQuotes(false), PreserveAsmNames(false), : Prefix(prefix), UseQuotes(false), PreserveAsmNames(false),
Count(0), TypeCounter(0) { Count(0), TypeCounter(0) {
@ -205,13 +169,4 @@ Mangler::Mangler(Module &M, const char *prefix)
markCharAcceptable('_'); markCharAcceptable('_');
markCharAcceptable('$'); markCharAcceptable('$');
markCharAcceptable('.'); markCharAcceptable('.');
// Calculate which global values have names that will collide when we throw
// away type information.
StringMap<GlobalValue*> Names;
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
InsertName(I, Names, MangledGlobals);
for (Module::global_iterator I = M.global_begin(), E = M.global_end();
I != E; ++I)
InsertName(I, Names, MangledGlobals);
} }