[llvm] 63d099a - [RISCV] Remove incorrect and untested FrameIndex support from SelectAddrRegImm9. (#148779)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 15 10:49:26 PDT 2025


Author: Craig Topper
Date: 2025-07-15T10:49:23-07:00
New Revision: 63d099af146a19bc8fd5a791d6184125e6cc42e7

URL: https://github.com/llvm/llvm-project/commit/63d099af146a19bc8fd5a791d6184125e6cc42e7
DIFF: https://github.com/llvm/llvm-project/commit/63d099af146a19bc8fd5a791d6184125e6cc42e7.diff

LOG: [RISCV] Remove incorrect and untested FrameIndex support from SelectAddrRegImm9. (#148779)

To fold a FrameIndex, we need to teach eliminateFrameIndex to respect
the uimm9 range.

Added: 
    

Modified: 
    llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
index 666c76b21e631..880e6b0d48892 100644
--- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
@@ -2936,8 +2936,8 @@ bool RISCVDAGToDAGISel::SelectAddrRegImm(SDValue Addr, SDValue &Base,
 /// Similar to SelectAddrRegImm, except that the offset is restricted to uimm9.
 bool RISCVDAGToDAGISel::SelectAddrRegImm9(SDValue Addr, SDValue &Base,
                                           SDValue &Offset) {
-  if (SelectAddrFrameIndex(Addr, Base, Offset))
-    return true;
+  // FIXME: Support FrameIndex. Need to teach eliminateFrameIndex that only
+  // a 9-bit immediate can be folded.
 
   SDLoc DL(Addr);
   MVT VT = Addr.getSimpleValueType();
@@ -2947,8 +2947,8 @@ bool RISCVDAGToDAGISel::SelectAddrRegImm9(SDValue Addr, SDValue &Base,
     if (isUInt<9>(CVal)) {
       Base = Addr.getOperand(0);
 
-      if (auto *FIN = dyn_cast<FrameIndexSDNode>(Base))
-        Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), VT);
+      // FIXME: Support FrameIndex. Need to teach eliminateFrameIndex that only
+      // a 9-bit immediate can be folded.
       Offset = CurDAG->getSignedTargetConstant(CVal, DL, VT);
       return true;
     }


        


More information about the llvm-commits mailing list