[llvm] c438603 - [RISCV] Use cached SubtargetInfo in AsmPrinter (NFC) (#147269)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 04:55:03 PDT 2025
Author: Petr Vesely
Date: 2025-07-07T12:54:59+01:00
New Revision: c4386031ac0164e178d68f69417a9f256bc3af32
URL: https://github.com/llvm/llvm-project/commit/c4386031ac0164e178d68f69417a9f256bc3af32
DIFF: https://github.com/llvm/llvm-project/commit/c4386031ac0164e178d68f69417a9f256bc3af32.diff
LOG: [RISCV] Use cached SubtargetInfo in AsmPrinter (NFC) (#147269)
Avoids having to keep fetching to SubtargetInfo from machine function,
if it's already cached in AsmPrinter.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp b/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
index b078b9268c984..d4f5d8fcad6bc 100644
--- a/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+++ b/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
@@ -305,8 +305,7 @@ void RISCVAsmPrinter::emitNTLHint(const MachineInstr *MI) {
}
void RISCVAsmPrinter::emitInstruction(const MachineInstr *MI) {
- RISCV_MC::verifyInstructionPredicates(MI->getOpcode(),
- getSubtargetInfo().getFeatureBits());
+ RISCV_MC::verifyInstructionPredicates(MI->getOpcode(), STI->getFeatureBits());
emitNTLHint(MI);
@@ -517,12 +516,9 @@ void RISCVAsmPrinter::emitSled(const MachineInstr *MI, SledKind Kind) {
// Assuming we're using JAL to jump to .tmpN, then we only need
// (68 - 4)/2 = 32 NOPs for RV64 and (44 - 4)/2 = 20 for RV32. However, there
// is a chance that we'll use C.JAL instead, so an additional NOP is needed.
- const uint8_t NoopsInSledCount =
- MI->getParent()->getParent()->getSubtarget<RISCVSubtarget>().is64Bit()
- ? 33
- : 21;
+ const uint8_t NoopsInSledCount = STI->is64Bit() ? 33 : 21;
- OutStreamer->emitCodeAlignment(Align(4), &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(4), STI);
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
OutStreamer->emitLabel(CurSled);
auto Target = OutContext.createTempSymbol();
@@ -1070,7 +1066,8 @@ bool RISCVAsmPrinter::lowerOperand(const MachineOperand &MO,
}
static bool lowerRISCVVMachineInstrToMCInst(const MachineInstr *MI,
- MCInst &OutMI) {
+ MCInst &OutMI,
+ const RISCVSubtarget *STI) {
const RISCVVPseudosTable::PseudoInfo *RVV =
RISCVVPseudosTable::getPseudoInfo(MI->getOpcode());
if (!RVV)
@@ -1078,14 +1075,8 @@ static bool lowerRISCVVMachineInstrToMCInst(const MachineInstr *MI,
OutMI.setOpcode(RVV->BaseInstr);
- const MachineBasicBlock *MBB = MI->getParent();
- assert(MBB && "MI expected to be in a basic block");
- const MachineFunction *MF = MBB->getParent();
- assert(MF && "MBB expected to be in a machine function");
-
- const RISCVSubtarget &Subtarget = MF->getSubtarget<RISCVSubtarget>();
- const TargetInstrInfo *TII = Subtarget.getInstrInfo();
- const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo();
+ const TargetInstrInfo *TII = STI->getInstrInfo();
+ const TargetRegisterInfo *TRI = STI->getRegisterInfo();
assert(TRI && "TargetRegisterInfo expected");
const MCInstrDesc &MCID = MI->getDesc();
@@ -1182,7 +1173,7 @@ static bool lowerRISCVVMachineInstrToMCInst(const MachineInstr *MI,
}
bool RISCVAsmPrinter::lowerToMCInst(const MachineInstr *MI, MCInst &OutMI) {
- if (lowerRISCVVMachineInstrToMCInst(MI, OutMI))
+ if (lowerRISCVVMachineInstrToMCInst(MI, OutMI, STI))
return false;
OutMI.setOpcode(MI->getOpcode());
More information about the llvm-commits
mailing list