[llvm-commits] [llvm] r77632 - /llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp

David Goodwin david_goodwin at apple.com
Thu Jul 30 15:45:53 PDT 2009


Author: david_goodwin
Date: Thu Jul 30 17:45:52 2009
New Revision: 77632

URL: http://llvm.org/viewvc/llvm-project?rev=77632&view=rev
Log:
Remove redundant match for frame index from imm8 addrmode, it is handled by the imm12 addrmode.

Modified:
    llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp?rev=77632&r1=77631&r2=77632&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp Thu Jul 30 17:45:52 2009
@@ -630,31 +630,21 @@
 bool ARMDAGToDAGISel::SelectT2AddrModeImm8(SDValue Op, SDValue N,
                                            SDValue &Base, SDValue &OffImm) {
   // Match simple R - imm8 operands.
-
-  // Match frame index...
-  if ((N.getOpcode() != ISD::ADD) && (N.getOpcode() != ISD::SUB)) {
-    if (N.getOpcode() == ISD::FrameIndex) {
-      int FI = cast<FrameIndexSDNode>(N)->getIndex();
-      Base = CurDAG->getTargetFrameIndex(FI, TLI.getPointerTy());
-      OffImm  = CurDAG->getTargetConstant(0, MVT::i32);
-      return true;
-    }
-    return false;
-  }
-
-  if (ConstantSDNode *RHS = dyn_cast<ConstantSDNode>(N.getOperand(1))) {
-    int RHSC = (int)RHS->getSExtValue();
-    if (N.getOpcode() == ISD::SUB)
-      RHSC = -RHSC;
-    
-    if ((RHSC >= -255) && (RHSC <= 0)) { // 8 bits (always negative)
-      Base   = N.getOperand(0);
-      if (Base.getOpcode() == ISD::FrameIndex) {
-        int FI = cast<FrameIndexSDNode>(Base)->getIndex();
-        Base = CurDAG->getTargetFrameIndex(FI, TLI.getPointerTy());
+  if ((N.getOpcode() == ISD::ADD) || (N.getOpcode() == ISD::SUB)) {
+    if (ConstantSDNode *RHS = dyn_cast<ConstantSDNode>(N.getOperand(1))) {
+      int RHSC = (int)RHS->getSExtValue();
+      if (N.getOpcode() == ISD::SUB)
+        RHSC = -RHSC;
+      
+      if ((RHSC >= -255) && (RHSC <= 0)) { // 8 bits (always negative)
+        Base   = N.getOperand(0);
+        if (Base.getOpcode() == ISD::FrameIndex) {
+          int FI = cast<FrameIndexSDNode>(Base)->getIndex();
+          Base = CurDAG->getTargetFrameIndex(FI, TLI.getPointerTy());
+        }
+        OffImm = CurDAG->getTargetConstant(RHSC, MVT::i32);
+        return true;
       }
-      OffImm = CurDAG->getTargetConstant(RHSC, MVT::i32);
-      return true;
     }
   }
 





More information about the llvm-commits mailing list