Skip to content

Commit 9fd32ac

Browse files
committed
Address most review comments
1 parent 126ad82 commit 9fd32ac

File tree

8 files changed

+76
-95
lines changed

8 files changed

+76
-95
lines changed

llvm/include/llvm/MC/MCGOFFStreamer.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ namespace llvm {
1616
class GOFFObjectWriter;
1717
class MCSymbolGOFF;
1818

19-
namespace goff {
20-
bool setSymbolAttribute(MCSymbolGOFF *Symbol, MCSymbolAttr Attribute);
21-
}
22-
2319
class MCGOFFStreamer : public MCObjectStreamer {
2420

2521
public:
@@ -35,8 +31,6 @@ class MCGOFFStreamer : public MCObjectStreamer {
3531

3632
GOFFObjectWriter &getWriter();
3733

38-
void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
39-
4034
bool emitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override;
4135

4236
void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,

llvm/include/llvm/MC/MCSymbolGOFF.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#define LLVM_MC_MCSYMBOLGOFF_H
1515

1616
#include "llvm/BinaryFormat/GOFF.h"
17+
#include "llvm/MC/MCDirectives.h"
1718
#include "llvm/MC/MCGOFFAttributes.h"
1819
#include "llvm/MC/MCSectionGOFF.h"
1920
#include "llvm/MC/MCSymbol.h"
@@ -64,7 +65,18 @@ class MCSymbolGOFF : public MCSymbol {
6465
void setLinkage(GOFF::ESDLinkageType Value) { Linkage = Value; }
6566
GOFF::ESDLinkageType getLinkage() const { return Linkage; }
6667

67-
GOFF::ESDBindingScope getBindingScope() const;
68+
GOFF::ESDBindingScope getBindingScope() const {
69+
return isExternal() ? (isExported() ? GOFF::ESD_BSC_ImportExport
70+
: GOFF::ESD_BSC_Library)
71+
: GOFF::ESD_BSC_Section;
72+
}
73+
74+
GOFF::ESDBindingStrength getBindingStrength() const {
75+
return isWeak() ? GOFF::ESDBindingStrength::ESD_BST_Weak
76+
: GOFF::ESDBindingStrength::ESD_BST_Strong;
77+
}
78+
79+
bool setSymbolAttribute(MCSymbolAttr Attribute);
6880
};
6981
} // end namespace llvm
7082

llvm/lib/MC/GOFFObjectWriter.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -342,11 +342,8 @@ void GOFFWriter::defineLabel(const MCSymbolGOFF &Symbol) {
342342
GOFFSymbol LD(Symbol.getName(), Symbol.getIndex(), Section.getOrdinal(),
343343
Section.getEDAttributes().NameSpace,
344344
GOFF::LDAttr{false, Symbol.getCodeData(),
345-
Symbol.isWeak()
346-
? GOFF::ESDBindingStrength::ESD_BST_Weak
347-
: GOFF::ESDBindingStrength::ESD_BST_Strong,
348-
Symbol.getLinkage(), GOFF::ESD_AMODE_64,
349-
Symbol.getBindingScope()});
345+
Symbol.getBindingStrength(), Symbol.getLinkage(),
346+
GOFF::ESD_AMODE_64, Symbol.getBindingScope()});
350347
if (Symbol.getADA())
351348
LD.ADAEsdId = Symbol.getADA()->getOrdinal();
352349
LD.Offset = Asm.getSymbolOffset(Symbol);
@@ -355,10 +352,7 @@ void GOFFWriter::defineLabel(const MCSymbolGOFF &Symbol) {
355352

356353
void GOFFWriter::defineExtern(const MCSymbolGOFF &Symbol) {
357354
GOFFSymbol ER(Symbol.getName(), Symbol.getIndex(), RootSD->getOrdinal(),
358-
GOFF::ERAttr{Symbol.getCodeData(),
359-
Symbol.isWeak()
360-
? GOFF::ESDBindingStrength::ESD_BST_Weak
361-
: GOFF::ESDBindingStrength::ESD_BST_Strong,
355+
GOFF::ERAttr{Symbol.getCodeData(), Symbol.getBindingStrength(),
362356
Symbol.getLinkage(), GOFF::ESD_AMODE_64,
363357
Symbol.getBindingScope()});
364358
writeSymbol(ER);

llvm/lib/MC/MCGOFFStreamer.cpp

Lines changed: 1 addition & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -24,68 +24,6 @@
2424

2525
using namespace llvm;
2626

27-
namespace llvm {
28-
namespace goff {
29-
bool setSymbolAttribute(MCSymbolGOFF *Symbol, MCSymbolAttr Attribute) {
30-
switch (Attribute) {
31-
case MCSA_Invalid:
32-
case MCSA_Cold:
33-
case MCSA_ELF_TypeIndFunction:
34-
case MCSA_ELF_TypeTLS:
35-
case MCSA_ELF_TypeCommon:
36-
case MCSA_ELF_TypeNoType:
37-
case MCSA_ELF_TypeGnuUniqueObject:
38-
case MCSA_LGlobal:
39-
case MCSA_Extern:
40-
case MCSA_Exported:
41-
case MCSA_IndirectSymbol:
42-
case MCSA_Internal:
43-
case MCSA_LazyReference:
44-
case MCSA_NoDeadStrip:
45-
case MCSA_SymbolResolver:
46-
case MCSA_AltEntry:
47-
case MCSA_PrivateExtern:
48-
case MCSA_Protected:
49-
case MCSA_Reference:
50-
case MCSA_WeakDefinition:
51-
case MCSA_WeakDefAutoPrivate:
52-
case MCSA_WeakAntiDep:
53-
case MCSA_Memtag:
54-
return false;
55-
56-
case MCSA_ELF_TypeFunction:
57-
Symbol->setCodeData(GOFF::ESDExecutable::ESD_EXE_CODE);
58-
break;
59-
case MCSA_ELF_TypeObject:
60-
Symbol->setCodeData(GOFF::ESDExecutable::ESD_EXE_DATA);
61-
break;
62-
case MCSA_OSLinkage:
63-
Symbol->setLinkage(GOFF::ESDLinkageType::ESD_LT_OS);
64-
break;
65-
case MCSA_XPLinkage:
66-
Symbol->setLinkage(GOFF::ESDLinkageType::ESD_LT_XPLink);
67-
break;
68-
case MCSA_Global:
69-
Symbol->setExternal(true);
70-
break;
71-
case MCSA_Local:
72-
Symbol->setExternal(false);
73-
break;
74-
case MCSA_Weak:
75-
case MCSA_WeakReference:
76-
Symbol->setExternal(true);
77-
Symbol->setWeak();
78-
break;
79-
case MCSA_Hidden:
80-
Symbol->setHidden(true);
81-
break;
82-
}
83-
84-
return true;
85-
}
86-
} // namespace goff
87-
} // namespace llvm
88-
8927
MCGOFFStreamer::MCGOFFStreamer(MCContext &Context,
9028
std::unique_ptr<MCAsmBackend> MAB,
9129
std::unique_ptr<MCObjectWriter> OW,
@@ -117,13 +55,9 @@ void MCGOFFStreamer::changeSection(MCSection *Section, uint32_t Subsection) {
11755
}
11856
}
11957

120-
void MCGOFFStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
121-
MCObjectStreamer::emitLabel(Symbol, Loc);
122-
}
123-
12458
bool MCGOFFStreamer::emitSymbolAttribute(MCSymbol *Sym,
12559
MCSymbolAttr Attribute) {
126-
return goff::setSymbolAttribute(static_cast<MCSymbolGOFF *>(Sym), Attribute);
60+
return static_cast<MCSymbolGOFF *>(Sym)->setSymbolAttribute(Attribute);
12761
}
12862

12963
MCStreamer *llvm::createGOFFStreamer(MCContext &Context,

llvm/lib/MC/MCSymbolGOFF.cpp

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@
1212

1313
using namespace llvm;
1414

15-
GOFF::ESDBindingScope MCSymbolGOFF::getBindingScope() const {
16-
return isExternal() ? (isExported() ? GOFF::ESD_BSC_ImportExport
17-
: GOFF::ESD_BSC_Library)
18-
: GOFF::ESD_BSC_Section;
19-
}
20-
2115
bool MCSymbolGOFF::hasLDAttributes() const {
2216
return !isTemporary() && isDefined() &&
2317
static_cast<MCSectionGOFF &>(getSection()).isED();
@@ -26,3 +20,61 @@ bool MCSymbolGOFF::hasLDAttributes() const {
2620
bool MCSymbolGOFF::hasERAttributes() const {
2721
return !isTemporary() && !isDefined() && isExternal();
2822
}
23+
24+
bool MCSymbolGOFF::setSymbolAttribute(MCSymbolAttr Attribute) {
25+
switch (Attribute) {
26+
case MCSA_Invalid:
27+
case MCSA_Cold:
28+
case MCSA_ELF_TypeIndFunction:
29+
case MCSA_ELF_TypeTLS:
30+
case MCSA_ELF_TypeCommon:
31+
case MCSA_ELF_TypeNoType:
32+
case MCSA_ELF_TypeGnuUniqueObject:
33+
case MCSA_LGlobal:
34+
case MCSA_Extern:
35+
case MCSA_Exported:
36+
case MCSA_IndirectSymbol:
37+
case MCSA_Internal:
38+
case MCSA_LazyReference:
39+
case MCSA_NoDeadStrip:
40+
case MCSA_SymbolResolver:
41+
case MCSA_AltEntry:
42+
case MCSA_PrivateExtern:
43+
case MCSA_Protected:
44+
case MCSA_Reference:
45+
case MCSA_WeakDefinition:
46+
case MCSA_WeakDefAutoPrivate:
47+
case MCSA_WeakAntiDep:
48+
case MCSA_Memtag:
49+
return false;
50+
51+
case MCSA_ELF_TypeFunction:
52+
setCodeData(GOFF::ESDExecutable::ESD_EXE_CODE);
53+
break;
54+
case MCSA_ELF_TypeObject:
55+
setCodeData(GOFF::ESDExecutable::ESD_EXE_DATA);
56+
break;
57+
case MCSA_OSLinkage:
58+
setLinkage(GOFF::ESDLinkageType::ESD_LT_OS);
59+
break;
60+
case MCSA_XPLinkage:
61+
setLinkage(GOFF::ESDLinkageType::ESD_LT_XPLink);
62+
break;
63+
case MCSA_Global:
64+
setExternal(true);
65+
break;
66+
case MCSA_Local:
67+
setExternal(false);
68+
break;
69+
case MCSA_Weak:
70+
case MCSA_WeakReference:
71+
setExternal(true);
72+
setWeak();
73+
break;
74+
case MCSA_Hidden:
75+
setHidden(true);
76+
break;
77+
}
78+
79+
return true;
80+
}

llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ void SystemZHLASMAsmStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
264264

265265
bool SystemZHLASMAsmStreamer::emitSymbolAttribute(MCSymbol *Sym,
266266
MCSymbolAttr Attribute) {
267-
return goff::setSymbolAttribute(static_cast<MCSymbolGOFF *>(Sym), Attribute);
267+
return static_cast<MCSymbolGOFF *>(Sym)->setSymbolAttribute(Attribute);
268268
}
269269

270270
void SystemZHLASMAsmStreamer::emitRawTextImpl(StringRef String) {

llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,3 @@ const MCExpr *SystemZTargetGOFFStreamer::createWordDiffExpr(
6161
MCSymbolRefExpr::create(Lo, Ctx), Ctx),
6262
MCConstantExpr::create(1, Ctx), Ctx);
6363
}
64-
65-
MCGOFFStreamer &SystemZTargetGOFFStreamer::getGOFFStreamer() {
66-
return static_cast<MCGOFFStreamer &>(getStreamer());
67-
}

llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ class SystemZTargetStreamer : public MCTargetStreamer {
6767
class SystemZTargetGOFFStreamer : public SystemZTargetStreamer {
6868
public:
6969
SystemZTargetGOFFStreamer(MCStreamer &S) : SystemZTargetStreamer(S) {}
70-
MCGOFFStreamer &getGOFFStreamer();
7170
const MCExpr *createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi,
7271
const MCSymbol *Lo) override;
7372
};

0 commit comments

Comments
 (0)