Skip to content

Commit

Permalink
[RISCV] Merge emitDirectiveOptionArchPlus and emitDirectiveOptionArch…
Browse files Browse the repository at this point in the history
…Minus into a single interface. NFC

Probably going to do some other refactors after this, but this one
was easy and clearly reduces duplicate code.

Reviewed By: StephenFan

Differential Revision: https://reviews.llvm.org/D151771
  • Loading branch information
topperc committed May 31, 2023
1 parent 0706a53 commit ac1df22
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 31 deletions.
8 changes: 4 additions & 4 deletions llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2782,8 +2782,8 @@ bool RISCVAsmParser::parseDirectiveOption() {

return Error(Loc, OutputErrMsg.str());
}
getTargetStreamer().emitDirectiveOptionArchPlus(Ext->Key, PrefixEmitted,
HasComma);
getTargetStreamer().emitDirectiveOptionArchPlusOrMinus(
Ext->Key, /*Enable*/ true, PrefixEmitted, HasComma);
} else {
// It is invalid to disable an extension that there are other enabled
// extensions depend on it.
Expand All @@ -2798,8 +2798,8 @@ bool RISCVAsmParser::parseDirectiveOption() {
}

clearFeatureBits(Ext->Value, Ext->Key);
getTargetStreamer().emitDirectiveOptionArchMinus(
Ext->Key, PrefixEmitted, HasComma);
getTargetStreamer().emitDirectiveOptionArchPlusOrMinus(
Ext->Key, /*Enable*/ false, PrefixEmitted, HasComma);
}

if (!HasComma)
Expand Down
26 changes: 8 additions & 18 deletions llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,10 @@ void RISCVTargetStreamer::emitDirectiveOptionRelax() {}
void RISCVTargetStreamer::emitDirectiveOptionNoRelax() {}
void RISCVTargetStreamer::emitDirectiveVariantCC(MCSymbol &Symbol) {}
void RISCVTargetStreamer::emitDirectiveOptionArchFullArch(StringRef Value,
bool &hasDotOption) {}
void RISCVTargetStreamer::emitDirectiveOptionArchPlus(StringRef Value,
bool &hasDotOption,
bool EmitComma) {}
void RISCVTargetStreamer::emitDirectiveOptionArchMinus(StringRef Value,
bool &hasDotOption,
bool EmitComma) {}
bool &PrefixEmitted) {
}
void RISCVTargetStreamer::emitDirectiveOptionArchPlusOrMinus(
StringRef Value, bool Enable, bool &PrefixEmitted, bool EmitComma) {}
void RISCVTargetStreamer::emitAttribute(unsigned Attribute, unsigned Value) {}
void RISCVTargetStreamer::finishAttributeSection() {}
void RISCVTargetStreamer::emitTextAttribute(unsigned Attribute,
Expand Down Expand Up @@ -147,18 +144,11 @@ void RISCVTargetAsmStreamer::emitDirectiveOptionArchFullArch(
OS << Value;
emitCommaOrNextLine(OS, false);
}
void RISCVTargetAsmStreamer::emitDirectiveOptionArchPlus(StringRef Value,
bool &PrefixEmitted,
bool EmitComma) {
emitDirectiveOptionArchPrefix(OS, PrefixEmitted);
OS << "+" << Value;
emitCommaOrNextLine(OS, EmitComma);
}
void RISCVTargetAsmStreamer::emitDirectiveOptionArchMinus(StringRef Value,
bool &PrefixEmitted,
bool EmitComma) {

void RISCVTargetAsmStreamer::emitDirectiveOptionArchPlusOrMinus(
StringRef Value, bool Enable, bool &PrefixEmitted, bool EmitComma) {
emitDirectiveOptionArchPrefix(OS, PrefixEmitted);
OS << "-" << Value;
OS << (Enable ? "+" : "-") << Value;
emitCommaOrNextLine(OS, EmitComma);
}

Expand Down
15 changes: 6 additions & 9 deletions llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,9 @@ class RISCVTargetStreamer : public MCTargetStreamer {
virtual void emitDirectiveVariantCC(MCSymbol &Symbol);
virtual void emitDirectiveOptionArchFullArch(StringRef Value,
bool &PrefixEmitted);
virtual void emitDirectiveOptionArchPlus(StringRef Value, bool &PrefixEmitted,
bool EmitComma);
virtual void emitDirectiveOptionArchMinus(StringRef Value,
bool &PrefixEmitted,
bool EmitComma);
virtual void emitDirectiveOptionArchPlusOrMinus(StringRef Value, bool Enable,
bool &PrefixEmitted,
bool EmitComma);
virtual void emitAttribute(unsigned Attribute, unsigned Value);
virtual void finishAttributeSection();
virtual void emitTextAttribute(unsigned Attribute, StringRef String);
Expand Down Expand Up @@ -76,10 +74,9 @@ class RISCVTargetAsmStreamer : public RISCVTargetStreamer {
void emitDirectiveVariantCC(MCSymbol &Symbol) override;
void emitDirectiveOptionArchFullArch(StringRef Value,
bool &PrefixEmitted) override;
void emitDirectiveOptionArchPlus(StringRef Value, bool &PrefixEmitted,
bool EmitComma) override;
void emitDirectiveOptionArchMinus(StringRef Value, bool &PrefixEmitted,
bool EmitComma) override;
void emitDirectiveOptionArchPlusOrMinus(StringRef Value, bool Enable,
bool &PrefixEmitted,
bool EmitComma) override;
};

}
Expand Down

0 comments on commit ac1df22

Please sign in to comment.