From 1f316e321a8f2fa0e193c5444584a67a8aabe9a8 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Tue, 14 Jul 2009 16:25:11 +0000 Subject: [PATCH] Revert r7561{9,8,7,6}, which depend on r75610. --- Reverse-merging r75619 into '.': U lib/Target/DarwinTargetAsmInfo.cpp U lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- Reverse-merging r75618 into '.': U lib/CodeGen/ELFWriter.cpp U lib/CodeGen/MachOCodeEmitter.cpp U lib/CodeGen/MachOWriter.cpp --- Reverse-merging r75617 into '.': U lib/Target/CBackend/CBackend.cpp --- Reverse-merging r75616 into '.': U tools/bugpoint/Miscompilation.cpp U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75638 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 22 +++++++++++----------- lib/CodeGen/ELFWriter.cpp | 2 +- lib/CodeGen/MachOCodeEmitter.cpp | 2 +- lib/CodeGen/MachOWriter.cpp | 6 +++--- lib/Target/CBackend/CBackend.cpp | 2 +- lib/Target/DarwinTargetAsmInfo.cpp | 9 +++------ tools/bugpoint/Miscompilation.cpp | 4 ++-- tools/lto/LTOCodeGenerator.cpp | 4 ++-- tools/lto/LTOModule.cpp | 4 ++-- 9 files changed, 26 insertions(+), 29 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 00edcac24d1..867b00370c1 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -210,13 +210,13 @@ bool AsmPrinter::doFinalization(Module &M) { for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) { if (I->hasExternalWeakLinkage()) - O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n'; + O << TAI->getWeakRefDirective() << Mang->getValueName(I) << '\n'; } for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) { if (I->hasExternalWeakLinkage()) - O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n'; + O << TAI->getWeakRefDirective() << Mang->getValueName(I) << '\n'; } } @@ -227,10 +227,11 @@ bool AsmPrinter::doFinalization(Module &M) { O << '\n'; for (Module::const_alias_iterator I = M.alias_begin(), E = M.alias_end(); I != E; ++I) { - std::string Name = Mang->getMangledName(I); + std::string Name = Mang->getValueName(I); + std::string Target; const GlobalValue *GV = cast(I->getAliasedGlobal()); - std::string Target = Mang->getMangledName(GV); + Target = Mang->getValueName(GV); if (I->hasExternalLinkage() || !TAI->getWeakRefDirective()) O << "\t.globl\t" << Name << '\n'; @@ -269,16 +270,15 @@ AsmPrinter::getCurrentFunctionEHName(const MachineFunction *MF, assert(MF && "No machine function?"); Name = MF->getFunction()->getName(); if (Name.empty()) - Name = Mang->getMangledName(MF->getFunction()); + Name = Mang->getValueName(MF->getFunction()); - // FIXME: THIS SEEMS REALLY WRONG, it will get two prefixes. Name = Mang->makeNameProper(TAI->getEHGlobalPrefix() + Name + ".eh"); return Name; } void AsmPrinter::SetupMachineFunction(MachineFunction &MF) { // What's my mangled name? - CurrentFnName = Mang->getMangledName(MF.getFunction()); + CurrentFnName = Mang->getValueName(MF.getFunction()); IncrementFunctionNumber(); } @@ -576,11 +576,11 @@ const std::string &AsmPrinter::getGlobalLinkName(const GlobalVariable *GV, std::string &LinkName) const { if (isa(GV)) { LinkName += TAI->getFunctionAddrPrefix(); - LinkName += Mang->getMangledName(GV); + LinkName += Mang->getValueName(GV); LinkName += TAI->getFunctionAddrSuffix(); } else { LinkName += TAI->getGlobalVarAddrPrefix(); - LinkName += Mang->getMangledName(GV); + LinkName += Mang->getValueName(GV); LinkName += TAI->getGlobalVarAddrSuffix(); } @@ -858,11 +858,11 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) { // FunctionAddrPrefix/Suffix (these all default to "" ) if (isa(GV)) { O << TAI->getFunctionAddrPrefix() - << Mang->getMangledName(GV) + << Mang->getValueName(GV) << TAI->getFunctionAddrSuffix(); } else { O << TAI->getGlobalVarAddrPrefix() - << Mang->getMangledName(GV) + << Mang->getValueName(GV) << TAI->getGlobalVarAddrSuffix(); } } else if (const ConstantExpr *CE = dyn_cast(CV)) { diff --git a/lib/CodeGen/ELFWriter.cpp b/lib/CodeGen/ELFWriter.cpp index b79560e45a1..a26f93bb7d0 100644 --- a/lib/CodeGen/ELFWriter.cpp +++ b/lib/CodeGen/ELFWriter.cpp @@ -601,7 +601,7 @@ void ELFWriter::EmitStringTable() { // Use the name mangler to uniquify the LLVM symbol. std::string Name; - if (I->GV) Name.append(Mang->getMangledName(I->GV)); + if (I->GV) Name.append(Mang->getValueName(I->GV)); if (Name.empty()) { I->NameIdx = 0; diff --git a/lib/CodeGen/MachOCodeEmitter.cpp b/lib/CodeGen/MachOCodeEmitter.cpp index ccc801c063e..a076a3c4752 100644 --- a/lib/CodeGen/MachOCodeEmitter.cpp +++ b/lib/CodeGen/MachOCodeEmitter.cpp @@ -60,7 +60,7 @@ void MachOCodeEmitter::startFunction(MachineFunction &MF) { // Create symbol for function entry const GlobalValue *FuncV = MF.getFunction(); - MachOSym FnSym(FuncV, MOW.Mang->getMangledName(FuncV), MOS->Index, TAI); + MachOSym FnSym(FuncV, MOW.Mang->getValueName(FuncV), MOS->Index, TAI); FnSym.n_value = getCurrentPCOffset(); // add it to the symtab. diff --git a/lib/CodeGen/MachOWriter.cpp b/lib/CodeGen/MachOWriter.cpp index e2b2bea4b75..7542d9ed102 100644 --- a/lib/CodeGen/MachOWriter.cpp +++ b/lib/CodeGen/MachOWriter.cpp @@ -221,7 +221,7 @@ void MachOWriter::AddSymbolToSection(MachOSection *Sec, GlobalVariable *GV) { } // Globals without external linkage apparently do not go in the symbol table. if (!GV->hasLocalLinkage()) { - MachOSym Sym(GV, Mang->getMangledName(GV), Sec->Index, TAI); + MachOSym Sym(GV, Mang->getValueName(GV), Sec->Index, TAI); Sym.n_value = Sec->size(); SymbolTable.push_back(Sym); } @@ -255,7 +255,7 @@ void MachOWriter::EmitGlobal(GlobalVariable *GV) { // merged with other symbols. if (NoInit || GV->hasLinkOnceLinkage() || GV->hasWeakLinkage() || GV->hasCommonLinkage()) { - MachOSym ExtOrCommonSym(GV, Mang->getMangledName(GV), + MachOSym ExtOrCommonSym(GV, Mang->getValueName(GV), MachOSym::NO_SECT, TAI); // For undefined (N_UNDF) external (N_EXT) types, n_value is the size in // bytes of the symbol. @@ -454,7 +454,7 @@ void MachOWriter::BufferSymbolAndStringTable() { for (std::vector::iterator I = PendingGlobals.begin(), E = PendingGlobals.end(); I != E; ++I) { if (GVOffset[*I] == 0 && GVSection[*I] == 0) { - MachOSym UndfSym(*I, Mang->getMangledName(*I), MachOSym::NO_SECT, TAI); + MachOSym UndfSym(*I, Mang->getValueName(*I), MachOSym::NO_SECT, TAI); SymbolTable.push_back(UndfSym); GVOffset[*I] = -1; } diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 38ce21827ff..c3c2b0ed43f 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -1432,7 +1432,7 @@ void CWriter::printConstantWithCast(Constant* CPV, unsigned Opcode) { std::string CWriter::GetValueName(const Value *Operand) { // Mangle globals with the standard mangler interface for LLC compatibility. if (const GlobalValue *GV = dyn_cast(Operand)) - return Mang->getMangledName(GV); + return Mang->getValueName(GV); std::string Name = Operand->getName(); diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp index d33146764da..609497638a0 100644 --- a/lib/Target/DarwinTargetAsmInfo.cpp +++ b/lib/Target/DarwinTargetAsmInfo.cpp @@ -103,21 +103,18 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) /// emitUsedDirectiveFor - On Darwin, internally linked data beginning with /// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the /// directive emitted (this occurs in ObjC metadata). + bool DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV, Mangler *Mang) const { if (GV==0) return false; - - /// FIXME: WHAT IS THIS? - if (GV->hasLocalLinkage() && !isa(GV) && ((strlen(getPrivateGlobalPrefix()) != 0 && - Mang->getMangledName(GV).substr(0,strlen(getPrivateGlobalPrefix())) == + Mang->getValueName(GV).substr(0,strlen(getPrivateGlobalPrefix())) == getPrivateGlobalPrefix()) || (strlen(getLessPrivateGlobalPrefix()) != 0 && - Mang->getMangledName(GV).substr(0, - strlen(getLessPrivateGlobalPrefix())) == + Mang->getValueName(GV).substr(0,strlen(getLessPrivateGlobalPrefix())) == getLessPrivateGlobalPrefix()))) return false; return true; diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp index a3a1e29b9fc..5fffcc19dbb 100644 --- a/tools/bugpoint/Miscompilation.cpp +++ b/tools/bugpoint/Miscompilation.cpp @@ -244,9 +244,9 @@ static void DisambiguateGlobalSymbols(Module *M) { Mang.setPreserveAsmNames(true); for (Module::global_iterator I = M->global_begin(), E = M->global_end(); I != E; ++I) - I->setName(Mang.getMangledName(I)); + I->setName(Mang.getValueName(I)); for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) - I->setName(Mang.getMangledName(I)); + I->setName(Mang.getValueName(I)); } /// ExtractLoops - Given a reduced list of functions that still exposed the bug, diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp index 26effa55277..801707f8d98 100644 --- a/tools/lto/LTOCodeGenerator.cpp +++ b/tools/lto/LTOCodeGenerator.cpp @@ -371,13 +371,13 @@ void LTOCodeGenerator::applyScopeRestrictions() for (Module::iterator f = mergedModule->begin(), e = mergedModule->end(); f != e; ++f) { if ( !f->isDeclaration() - && _mustPreserveSymbols.count(mangler.getMangledName(f)) ) + && _mustPreserveSymbols.count(mangler.getValueName(f)) ) mustPreserveList.push_back(::strdup(f->getName().c_str())); } for (Module::global_iterator v = mergedModule->global_begin(), e = mergedModule->global_end(); v != e; ++v) { if ( !v->isDeclaration() - && _mustPreserveSymbols.count(mangler.getMangledName(v)) ) + && _mustPreserveSymbols.count(mangler.getValueName(v)) ) mustPreserveList.push_back(::strdup(v->getName().c_str())); } passes.add(createInternalizePass(mustPreserveList)); diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp index 38ee1cc7a28..c4980d6bf79 100644 --- a/tools/lto/LTOModule.cpp +++ b/tools/lto/LTOModule.cpp @@ -332,7 +332,7 @@ void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler, return; // string is owned by _defines - const char* symbolName = ::strdup(mangler.getMangledName(def).c_str()); + const char* symbolName = ::strdup(mangler.getValueName(def).c_str()); // set alignment part log2() can have rounding errors uint32_t align = def->getAlignment(); @@ -405,7 +405,7 @@ void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler) if (isa(decl)) return; - const char* name = mangler.getMangledName(decl).c_str(); + const char* name = mangler.getValueName(decl).c_str(); // we already have the symbol if (_undefines.find(name) != _undefines.end()) -- 2.11.0