[clang] [llvm] [RISCV] Xqccmp Code Generation (PR #128815)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 27 21:09:01 PST 2025


================
@@ -974,17 +974,20 @@ void RISCVFrameLowering::emitPrologue(MachineFunction &MF,
   emitCFIForCSI<CFISaveRegisterEmitter>(MBB, MBBI, getUnmanagedCSI(MF, CSI));
 
   // Generate new FP.
-  if (hasFP(MF) && RVFI->getPushPopKind(MF) !=
-                       RISCVMachineFunctionInfo::PushPopKind::VendorXqccmp) {
+  if (hasFP(MF)) {
     if (STI.isRegisterReservedByUser(FPReg))
       MF.getFunction().getContext().diagnose(DiagnosticInfoUnsupported{
           MF.getFunction(), "Frame pointer required, but has been reserved."});
     // The frame pointer does need to be reserved from register allocation.
     assert(MF.getRegInfo().isReserved(FPReg) && "FP not reserved");
 
-    RI->adjustReg(MBB, MBBI, DL, FPReg, SPReg,
-                  StackOffset::getFixed(RealStackSize - RVFI->getVarArgsSaveSize()),
-                  MachineInstr::FrameSetup, getStackAlign());
+    // Xqxxmp with hasFP will update FP using `qc.cm.pushfp`, so we don't need
----------------
topperc wrote:

Xqccmp*

https://github.com/llvm/llvm-project/pull/128815


More information about the llvm-commits mailing list