[llvm-commits] [llvm] r68747 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/CodeGen/AsmPrinter/DwarfWriter.cpp lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
Bill Wendling
isanbard at gmail.com
Thu Apr 9 17:12:50 PDT 2009
Author: void
Date: Thu Apr 9 19:12:49 2009
New Revision: 68747
URL: http://llvm.org/viewvc/llvm-project?rev=68747&view=rev
Log:
Pass in the std::string parameter instead of returning it by value.
Modified:
llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
llvm/trunk/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=68747&r1=68746&r2=68747&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
+++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Thu Apr 9 19:12:49 2009
@@ -153,7 +153,8 @@
/// getGlobalLinkName - Returns the asm/link name of of the specified
/// global variable. Should be overridden by each target asm printer to
/// generate the appropriate value.
- virtual const std::string getGlobalLinkName(const GlobalVariable *GV) const;
+ virtual const std::string &getGlobalLinkName(const GlobalVariable *GV,
+ std::string &LinkName) const;
/// EmitExternalGlobal - Emit the external reference to a global variable.
/// Should be overridden if an indirect reference should be used.
@@ -162,7 +163,8 @@
/// getCurrentFunctionEHName - Called to return (and cache) the
/// CurrentFnEHName.
///
- std::string getCurrentFunctionEHName(const MachineFunction *MF) const;
+ const std::string &getCurrentFunctionEHName(const MachineFunction *MF,
+ std::string &FuncEHName) const;
protected:
/// getAnalysisUsage - Record analysis usage.
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=68747&r1=68746&r2=68747&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Thu Apr 9 19:12:49 2009
@@ -186,11 +186,8 @@
SwitchToDataSection("");
for (std::set<const GlobalValue*>::iterator i = ExtWeakSymbols.begin(),
- e = ExtWeakSymbols.end(); i != e; ++i) {
- const GlobalValue *GV = *i;
- std::string Name = Mang->getValueName(GV);
- O << TAI->getWeakRefDirective() << Name << '\n';
- }
+ e = ExtWeakSymbols.end(); i != e; ++i)
+ O << TAI->getWeakRefDirective() << Mang->getValueName(*i) << '\n';
}
if (TAI->getSetDirective()) {
@@ -236,14 +233,16 @@
return false;
}
-std::string
-AsmPrinter::getCurrentFunctionEHName(const MachineFunction *MF) const {
+const std::string &
+AsmPrinter::getCurrentFunctionEHName(const MachineFunction *MF,
+ std::string &Name) const {
assert(MF && "No machine function?");
- std::string Name = MF->getFunction()->getName();
+ Name = MF->getFunction()->getName();
if (Name.empty())
Name = Mang->getValueName(MF->getFunction());
- return Mang->makeNameProper(TAI->getEHGlobalPrefix() +
+ Name = Mang->makeNameProper(TAI->getEHGlobalPrefix() +
Name + ".eh", TAI->getGlobalPrefix());
+ return Name;
}
void AsmPrinter::SetupMachineFunction(MachineFunction &MF) {
@@ -536,9 +535,8 @@
/// getGlobalLinkName - Returns the asm/link name of of the specified
/// global variable. Should be overridden by each target asm printer to
/// generate the appropriate value.
-const std::string AsmPrinter::getGlobalLinkName(const GlobalVariable *GV) const{
- std::string LinkName;
-
+const std::string &AsmPrinter::getGlobalLinkName(const GlobalVariable *GV,
+ std::string &LinkName) const {
if (isa<Function>(GV)) {
LinkName += TAI->getFunctionAddrPrefix();
LinkName += Mang->getValueName(GV);
@@ -555,7 +553,8 @@
/// EmitExternalGlobal - Emit the external reference to a global variable.
/// Should be overridden if an indirect reference should be used.
void AsmPrinter::EmitExternalGlobal(const GlobalVariable *GV) {
- O << getGlobalLinkName(GV);
+ std::string GLN;
+ O << getGlobalLinkName(GV, GLN);
}
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=68747&r1=68746&r2=68747&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Thu Apr 9 19:12:49 2009
@@ -2888,8 +2888,9 @@
// Add address.
DIEBlock *Block = new DIEBlock();
AddUInt(Block, 0, DW_FORM_data1, DW_OP_addr);
+ std::string GLN;
AddObjectLabel(Block, 0, DW_FORM_udata,
- Asm->getGlobalLinkName(DI_GV.getGlobal()));
+ Asm->getGlobalLinkName(DI_GV.getGlobal(), GLN));
AddBlock(VariableDie, DW_AT_location, 0, Block);
// Add to map.
@@ -4009,10 +4010,12 @@
PrintRelDirective();
- if (GV)
- O << Asm->getGlobalLinkName(GV);
- else
+ if (GV) {
+ std::string GLN;
+ O << Asm->getGlobalLinkName(GV, GLN);
+ } else {
O << "0";
+ }
Asm->EOL("TypeInfo");
}
@@ -4120,14 +4123,15 @@
EmitExceptionTable();
// Save EH frame information
- EHFrames.
- push_back(FunctionEHFrameInfo(getAsm()->getCurrentFunctionEHName(MF),
- SubprogramCount,
- MMI->getPersonalityIndex(),
- MF->getFrameInfo()->hasCalls(),
- !MMI->getLandingPads().empty(),
- MMI->getFrameMoves(),
- MF->getFunction()));
+ std::string Name;
+ EHFrames.push_back(
+ FunctionEHFrameInfo(getAsm()->getCurrentFunctionEHName(MF, Name),
+ SubprogramCount,
+ MMI->getPersonalityIndex(),
+ MF->getFrameInfo()->hasCalls(),
+ !MMI->getLandingPads().empty(),
+ MMI->getFrameMoves(),
+ MF->getFunction()));
}
if (TimePassesIsEnabled)
Modified: llvm/trunk/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp?rev=68747&r1=68746&r2=68747&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp Thu Apr 9 19:12:49 2009
@@ -423,7 +423,8 @@
/// EmitExternalGlobal - In this case we need to use the indirect symbol.
///
void PPCAsmPrinter::EmitExternalGlobal(const GlobalVariable *GV) {
- std::string Name = getGlobalLinkName(GV);
+ std::string Name;
+ getGlobalLinkName(GV, Name);
if (TM.getRelocationModel() != Reloc::Static) {
if (GV->hasHiddenVisibility())
HiddenGVStubs.insert(Name);
More information about the llvm-commits
mailing list