Basic support for getGlobalLinkName.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30997 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey 2006-10-17 13:41:07 +00:00
parent f621abca9e
commit a1a19f803c
3 changed files with 20 additions and 3 deletions

View File

@ -99,6 +99,13 @@ namespace llvm {
/// specified global, returned in log form. This includes an explicitly
/// requested alignment (if the global has one).
unsigned getPreferredAlignmentLog(const GlobalVariable *GV) const;
/// 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 void getGlobalLinkName(const GlobalVariable *GV,
std::string &LinkName);
protected:
/// doInitialization - Set up the AsmPrinter when we are working on a new
/// module. If your pass overrides this, it must make sure to explicitly
@ -167,7 +174,7 @@ namespace llvm {
/// special global used by LLVM. If so, emit it and return true, otherwise
/// do nothing and return false.
bool EmitSpecialLLVMGlobal(const GlobalVariable *GV);
/// EmitAlignment - Emit an alignment directive to the specified power of
/// two boundary. For example, if you pass in 3 here, you will get an 8
/// byte alignment. If a global value is specified, and if that global has

View File

@ -349,6 +349,16 @@ unsigned AsmPrinter::getPreferredAlignmentLog(const GlobalVariable *GV) const {
return Alignment;
}
/// 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.
void AsmPrinter::getGlobalLinkName(const GlobalVariable *GV,
std::string &LinkName) {
// Default action is to use a global symbol.
LinkName = TAI->getGlobalPrefix();
LinkName += GV->getName();
}
// EmitAlignment - Emit an alignment directive to the specified power of two.
void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV) const {
if (GV && GV->getAlignment())

View File

@ -1634,8 +1634,8 @@ DIE *DwarfWriter::NewGlobalVariable(GlobalVariableDesc *GVD) {
AddSourceLine(VariableDie, UnitDesc, GVD->getLine());
// Work up linkage name.
std::string LinkageName(TAI->getGlobalPrefix());
LinkageName += GV->getName();
std::string LinkageName;
Asm->getGlobalLinkName(GV, LinkageName);
// Add address.
DIEBlock *Block = new DIEBlock();