diff --git a/llvm/include/llvm/Target/TargetAsmInfo.h b/llvm/include/llvm/Target/TargetAsmInfo.h index a89b90669a59..9d76f3c058c4 100644 --- a/llvm/include/llvm/Target/TargetAsmInfo.h +++ b/llvm/include/llvm/Target/TargetAsmInfo.h @@ -239,10 +239,10 @@ namespace llvm { /// have names in the .o file. This is often "." or "L". const char *PrivateGlobalPrefix; // Defaults to "." - /// LessPrivateGlobalPrefix - This prefix is used for symbols that should + /// LinkerPrivateGlobalPrefix - This prefix is used for symbols that should /// be passed through the assembler but be removed by the linker. This /// is "l" on Darwin, currently used for some ObjC metadata. - const char *LessPrivateGlobalPrefix; // Defaults to "" + const char *LinkerPrivateGlobalPrefix; // Defaults to "" /// JumpTableSpecialLabelPrefix - If not null, a extra (dead) label is /// emitted before jump tables with the specified prefix. @@ -708,8 +708,8 @@ namespace llvm { const char *getPrivateGlobalPrefix() const { return PrivateGlobalPrefix; } - const char *getLessPrivateGlobalPrefix() const { - return LessPrivateGlobalPrefix; + const char *getLinkerPrivateGlobalPrefix() const { + return LinkerPrivateGlobalPrefix; } const char *getJumpTableSpecialLabelPrefix() const { return JumpTableSpecialLabelPrefix; diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index ad6cf77b767e..08eab53cf29c 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -155,7 +155,7 @@ void AsmPrinter::getAnalysisUsage(AnalysisUsage &AU) const { bool AsmPrinter::doInitialization(Module &M) { Mang = new Mangler(M, TAI->getGlobalPrefix(), TAI->getPrivateGlobalPrefix(), - TAI->getLessPrivateGlobalPrefix()); + TAI->getLinkerPrivateGlobalPrefix()); if (TAI->doesAllowQuotesInName()) Mang->setUseQuotes(true); diff --git a/llvm/lib/CodeGen/MachOWriter.cpp b/llvm/lib/CodeGen/MachOWriter.cpp index a6a439a226ae..0ce9044e858a 100644 --- a/llvm/lib/CodeGen/MachOWriter.cpp +++ b/llvm/lib/CodeGen/MachOWriter.cpp @@ -747,6 +747,7 @@ MachOSym::MachOSym(const GlobalValue *gv, std::string name, uint8_t sect, GV(gv), n_strx(0), n_type(sect == NO_SECT ? N_UNDF : N_SECT), n_sect(sect), n_desc(0), n_value(0) { + // FIXME: This is completely broken, it should use the mangler interface. switch (GV->getLinkage()) { default: llvm_unreachable("Unexpected linkage type!"); @@ -765,7 +766,7 @@ MachOSym::MachOSym(const GlobalValue *gv, std::string name, uint8_t sect, GVName = TAI->getPrivateGlobalPrefix() + name; break; case GlobalValue::LinkerPrivateLinkage: - GVName = TAI->getLessPrivateGlobalPrefix() + name; + GVName = TAI->getLinkerPrivateGlobalPrefix() + name; break; case GlobalValue::InternalLinkage: GVName = TAI->getGlobalPrefix() + name; diff --git a/llvm/lib/Target/DarwinTargetAsmInfo.cpp b/llvm/lib/Target/DarwinTargetAsmInfo.cpp index 6540edd97aec..31c29a72bdff 100644 --- a/llvm/lib/Target/DarwinTargetAsmInfo.cpp +++ b/llvm/lib/Target/DarwinTargetAsmInfo.cpp @@ -57,7 +57,7 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) // Syntax: GlobalPrefix = "_"; PrivateGlobalPrefix = "L"; - LessPrivateGlobalPrefix = "l"; // Marker for some ObjC metadata + LinkerPrivateGlobalPrefix = "l"; // Marker for some ObjC metadata NeedsSet = true; NeedsIndirectEncoding = true; AllowQuotesInName = true; @@ -105,17 +105,18 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) } /// emitUsedDirectiveFor - On Darwin, internally linked data beginning with -/// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the +/// the PrivateGlobalPrefix or the LinkerPrivateGlobalPrefix does not have the /// directive emitted (this occurs in ObjC metadata). bool DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV, Mangler *Mang) const { if (!GV) return false; - // Check whether the mangled name has the "Private" or "LessPrivate" prefix. + // Check whether the mangled name has the "Private" or "LinkerPrivate" prefix. if (GV->hasLocalLinkage() && !isa(GV)) { const std::string &Name = Mang->getMangledName(GV); + // FIXME: Always "L" and "l", simplify! const char *PGPrefix = getPrivateGlobalPrefix(); - const char *LPGPrefix = getLessPrivateGlobalPrefix(); + const char *LPGPrefix = getLinkerPrivateGlobalPrefix(); unsigned PGPLen = strlen(PGPrefix); unsigned LPGPLen = strlen(LPGPrefix); diff --git a/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp b/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp index 6cc5dedc1561..f6da3f301967 100644 --- a/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp +++ b/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp @@ -82,7 +82,7 @@ FunctionPass *llvm::createMSP430CodePrinterPass(formatted_raw_ostream &o, bool MSP430AsmPrinter::doInitialization(Module &M) { Mang = new Mangler(M, "", TAI->getPrivateGlobalPrefix(), - TAI->getLessPrivateGlobalPrefix()); + TAI->getLinkerPrivateGlobalPrefix()); return false; // success } diff --git a/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp b/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp index ba7fd4c62c8a..383ba8f0144b 100644 --- a/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp +++ b/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp @@ -452,7 +452,7 @@ bool MipsAsmPrinter:: doInitialization(Module &M) { Mang = new Mangler(M, "", TAI->getPrivateGlobalPrefix(), - TAI->getLessPrivateGlobalPrefix()); + TAI->getLinkerPrivateGlobalPrefix()); // Tell the assembler which ABI we are using O << "\t.section .mdebug." << emitCurrentABIString() << '\n'; diff --git a/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp b/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp index 71394e8ad7e8..771081940510 100644 --- a/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp +++ b/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp @@ -224,7 +224,7 @@ void SparcAsmPrinter::printCCOperand(const MachineInstr *MI, int opNum) { bool SparcAsmPrinter::doInitialization(Module &M) { Mang = new Mangler(M, "", TAI->getPrivateGlobalPrefix(), - TAI->getLessPrivateGlobalPrefix()); + TAI->getLinkerPrivateGlobalPrefix()); return false; // success } diff --git a/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp b/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp index 7b0989fce354..f4f181c307bf 100644 --- a/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp +++ b/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp @@ -93,7 +93,7 @@ FunctionPass *llvm::createSystemZCodePrinterPass(formatted_raw_ostream &o, bool SystemZAsmPrinter::doInitialization(Module &M) { Mang = new Mangler(M, "", TAI->getPrivateGlobalPrefix(), - TAI->getLessPrivateGlobalPrefix()); + TAI->getLinkerPrivateGlobalPrefix()); return false; // success } diff --git a/llvm/lib/Target/TargetAsmInfo.cpp b/llvm/lib/Target/TargetAsmInfo.cpp index fc8d58abfc37..2a2e9876678b 100644 --- a/llvm/lib/Target/TargetAsmInfo.cpp +++ b/llvm/lib/Target/TargetAsmInfo.cpp @@ -49,7 +49,7 @@ TargetAsmInfo::TargetAsmInfo(const TargetMachine &tm) MaxOperandLength = 0; GlobalPrefix = ""; PrivateGlobalPrefix = "."; - LessPrivateGlobalPrefix = ""; + LinkerPrivateGlobalPrefix = ""; JumpTableSpecialLabelPrefix = 0; GlobalVarAddrPrefix = ""; GlobalVarAddrSuffix = "";