[llvm] [RISCV] Add a getTargetStreamer helper to RISCVAsmPrinter. NFC (PR #193250)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 21 08:53:15 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-risc-v
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
This avoids a repeated static_cast to RISCVTargetStreamer.
---
Full diff: https://github.com/llvm/llvm-project/pull/193250.diff
1 Files Affected:
- (modified) llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp (+13-16)
``````````diff
diff --git a/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp b/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
index 1c79d65db9cd4..d71fd640be7bc 100644
--- a/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+++ b/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
@@ -70,6 +70,11 @@ class RISCVAsmPrinter : public AsmPrinter {
StringRef getPassName() const override { return "RISC-V Assembly Printer"; }
+ RISCVTargetStreamer &getTargetStreamer() const {
+ return static_cast<RISCVTargetStreamer &>(
+ *OutStreamer->getTargetStreamer());
+ }
+
void LowerSTACKMAP(MCStreamer &OutStreamer, StackMaps &SM,
const MachineInstr &MI);
@@ -454,8 +459,7 @@ bool RISCVAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
}
bool RISCVAsmPrinter::emitDirectiveOptionArch() {
- RISCVTargetStreamer &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
SmallVector<RISCVOptionArchArg> NeedEmitStdOptionArgs;
const MCSubtargetInfo &MCSTI = *TM.getMCSubtargetInfo();
for (const auto &Feature : RISCVFeatureKV) {
@@ -480,8 +484,7 @@ bool RISCVAsmPrinter::emitDirectiveOptionArch() {
bool RISCVAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
STI = &MF.getSubtarget<RISCVSubtarget>();
- RISCVTargetStreamer &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
bool EmittedOptionArch = emitDirectiveOptionArch();
@@ -552,8 +555,7 @@ void RISCVAsmPrinter::emitSled(const MachineInstr *MI, SledKind Kind) {
void RISCVAsmPrinter::emitStartOfAsmFile(Module &M) {
assert(OutStreamer->getTargetStreamer() &&
"target streamer is uninitialized");
- RISCVTargetStreamer &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
if (const MDString *ModuleTargetABI =
dyn_cast_or_null<MDString>(M.getModuleFlag("target-abi")))
RTS.setTargetABI(RISCVABI::getTargetABI(ModuleTargetABI->getString()));
@@ -586,8 +588,7 @@ void RISCVAsmPrinter::emitStartOfAsmFile(Module &M) {
}
void RISCVAsmPrinter::emitEndOfAsmFile(Module &M) {
- RISCVTargetStreamer &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
if (TM.getTargetTriple().isOSBinFormatELF()) {
RTS.finishAttributeSection();
@@ -597,8 +598,7 @@ void RISCVAsmPrinter::emitEndOfAsmFile(Module &M) {
}
void RISCVAsmPrinter::emitAttributes(const MCSubtargetInfo &SubtargetInfo) {
- RISCVTargetStreamer &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
// Use MCSubtargetInfo from TargetMachine. Individual functions may have
// attributes that differ from other functions in the module and we have no
// way to know which function is correct.
@@ -608,8 +608,7 @@ void RISCVAsmPrinter::emitAttributes(const MCSubtargetInfo &SubtargetInfo) {
void RISCVAsmPrinter::emitFunctionEntryLabel() {
const auto *RMFI = MF->getInfo<RISCVMachineFunctionInfo>();
if (RMFI->isVectorCall()) {
- auto &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
RTS.emitDirectiveVariantCC(*CurrentFnSym);
}
return AsmPrinter::emitFunctionEntryLabel();
@@ -744,8 +743,7 @@ void RISCVAsmPrinter::EmitHwasanMemaccessSymbols(Module &M) {
OutContext.getOrCreateSymbol("__hwasan_tag_mismatch_v2");
// Annotate symbol as one having incompatible calling convention, so
// run-time linkers can instead eagerly bind this function.
- auto &RTS =
- static_cast<RISCVTargetStreamer &>(*OutStreamer->getTargetStreamer());
+ RISCVTargetStreamer &RTS = getTargetStreamer();
RTS.emitDirectiveVariantCC(*HwasanTagMismatchV2Sym);
const MCSymbolRefExpr *HwasanTagMismatchV2Ref =
@@ -958,8 +956,7 @@ void RISCVAsmPrinter::emitNoteGnuProperty(const Module &M) {
assert(TM.getTargetTriple().isOSBinFormatELF() && "invalid binary format");
if (const Metadata *const Flag = M.getModuleFlag("cf-protection-return");
Flag && !mdconst::extract<ConstantInt>(Flag)->isZero()) {
- RISCVTargetELFStreamer &RTS = static_cast<RISCVTargetELFStreamer &>(
- *OutStreamer->getTargetStreamer());
+ auto &RTS = static_cast<RISCVTargetELFStreamer &>(getTargetStreamer());
RTS.emitNoteGnuPropertySection(ELF::GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS);
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/193250
More information about the llvm-commits
mailing list