forked from OSchip/llvm-project
[NFC] clean up the AsmPrinter::emitLinkage for AIX part
SUMMARY: Since we deal with aix emitLinkage in the PPCAIXAsmPrinter::emitLinkage() in the patch https://reviews.llvm.org/D75866. It do not go to AsmPrinter::emitLinkage() any more, we clean up some aix related code in the AsmPrinter::emitLinkage() Reviewers: Jason liu Differential Revision: https://reviews.llvm.org/D81613
This commit is contained in:
parent
5a33ba52b6
commit
c6be3ea524
|
@ -311,10 +311,6 @@ protected:
|
|||
/// false.
|
||||
bool HasAltEntry = false;
|
||||
|
||||
/// True if this target supports the XCOFF .extern directive. Defaults to
|
||||
/// false.
|
||||
bool HasDotExternDirective = false;
|
||||
|
||||
/// Used to declare a global as being a weak symbol. Defaults to ".weak".
|
||||
const char *WeakDirective;
|
||||
|
||||
|
@ -335,10 +331,6 @@ protected:
|
|||
/// Defaults to false.
|
||||
bool AvoidWeakIfComdat = false;
|
||||
|
||||
/// True if we have a .lglobl directive, which is used to emit the information
|
||||
/// of a static symbol into the symbol table. Defaults to false.
|
||||
bool HasDotLGloblDirective = false;
|
||||
|
||||
/// This attribute, if not MCSA_Invalid, is used to declare a symbol as having
|
||||
/// hidden visibility. Defaults to MCSA_Hidden.
|
||||
MCSymbolAttr HiddenVisibilityAttr = MCSA_Hidden;
|
||||
|
@ -594,7 +586,6 @@ public:
|
|||
bool hasIdentDirective() const { return HasIdentDirective; }
|
||||
bool hasNoDeadStrip() const { return HasNoDeadStrip; }
|
||||
bool hasAltEntry() const { return HasAltEntry; }
|
||||
bool hasDotExternDirective() const { return HasDotExternDirective; }
|
||||
const char *getWeakDirective() const { return WeakDirective; }
|
||||
const char *getWeakRefDirective() const { return WeakRefDirective; }
|
||||
bool hasWeakDefDirective() const { return HasWeakDefDirective; }
|
||||
|
@ -605,8 +596,6 @@ public:
|
|||
|
||||
bool avoidWeakIfComdat() const { return AvoidWeakIfComdat; }
|
||||
|
||||
bool hasDotLGloblDirective() const { return HasDotLGloblDirective; }
|
||||
|
||||
MCSymbolAttr getHiddenVisibilityAttr() const { return HiddenVisibilityAttr; }
|
||||
|
||||
MCSymbolAttr getHiddenDeclarationVisibilityAttr() const {
|
||||
|
|
|
@ -395,9 +395,6 @@ void AsmPrinter::emitLinkage(const GlobalValue *GV, MCSymbol *GVSym) const {
|
|||
GlobalValue::LinkageTypes Linkage = GV->getLinkage();
|
||||
switch (Linkage) {
|
||||
case GlobalValue::CommonLinkage:
|
||||
assert(!TM.getTargetTriple().isOSBinFormatXCOFF() &&
|
||||
"CommonLinkage of XCOFF should not come to this path.");
|
||||
LLVM_FALLTHROUGH;
|
||||
case GlobalValue::LinkOnceAnyLinkage:
|
||||
case GlobalValue::LinkOnceODRLinkage:
|
||||
case GlobalValue::WeakAnyLinkage:
|
||||
|
@ -421,29 +418,13 @@ void AsmPrinter::emitLinkage(const GlobalValue *GV, MCSymbol *GVSym) const {
|
|||
}
|
||||
return;
|
||||
case GlobalValue::ExternalLinkage:
|
||||
if (MAI->hasDotExternDirective() && GV->isDeclaration())
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_Extern);
|
||||
else
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_Global);
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_Global);
|
||||
return;
|
||||
case GlobalValue::PrivateLinkage:
|
||||
return;
|
||||
case GlobalValue::InternalLinkage:
|
||||
if (MAI->hasDotLGloblDirective())
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_LGlobal);
|
||||
return;
|
||||
case GlobalValue::ExternalWeakLinkage:
|
||||
if (TM.getTargetTriple().isOSBinFormatXCOFF()) {
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_Weak);
|
||||
return;
|
||||
}
|
||||
LLVM_FALLTHROUGH;
|
||||
case GlobalValue::AvailableExternallyLinkage:
|
||||
if (MAI->hasDotExternDirective()) {
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_Extern);
|
||||
return;
|
||||
}
|
||||
LLVM_FALLTHROUGH;
|
||||
case GlobalValue::AppendingLinkage:
|
||||
llvm_unreachable("Should never emit this");
|
||||
}
|
||||
|
|
|
@ -32,8 +32,6 @@ MCAsmInfoXCOFF::MCAsmInfoXCOFF() {
|
|||
COMMDirectiveAlignmentIsInBytes = false;
|
||||
LCOMMDirectiveAlignmentType = LCOMM::Log2Alignment;
|
||||
HasDotTypeDotSizeDirective = false;
|
||||
HasDotExternDirective = true;
|
||||
HasDotLGloblDirective = true;
|
||||
SymbolsHaveSMC = true;
|
||||
UseIntegratedAssembler = false;
|
||||
NeedsFunctionDescriptors = true;
|
||||
|
|
|
@ -1603,8 +1603,6 @@ void PPCAIXAsmPrinter::emitLinkage(const GlobalValue *GV,
|
|||
case GlobalValue::PrivateLinkage:
|
||||
return;
|
||||
case GlobalValue::InternalLinkage:
|
||||
assert(MAI->hasDotLGloblDirective() &&
|
||||
"Expecting .lglobl to be supported for AIX.");
|
||||
OutStreamer->emitSymbolAttribute(GVSym, MCSA_LGlobal);
|
||||
return;
|
||||
case GlobalValue::AppendingLinkage:
|
||||
|
|
Loading…
Reference in New Issue