[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp

Andrew Lenharth alenhar2 at cs.uiuc.edu
Sun Jan 1 14:14:05 PST 2006



Changes in directory llvm/lib/Target/Alpha:

AlphaRegisterInfo.cpp updated: 1.30 -> 1.31
---
Log message:

clean this function up some

---
Diffs of the changes:  (+26 -37)

 AlphaRegisterInfo.cpp |   63 ++++++++++++++++++++------------------------------
 1 files changed, 26 insertions(+), 37 deletions(-)


Index: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
diff -u llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.30 llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.31
--- llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.30	Wed Nov  9 13:17:08 2005
+++ llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp	Sun Jan  1 16:13:54 2006
@@ -126,43 +126,32 @@
 MachineInstr *AlphaRegisterInfo::foldMemoryOperand(MachineInstr *MI,
                                                  unsigned OpNum,
                                                  int FrameIndex) const {
-  // Make sure this is a reg-reg copy.
-  unsigned Opc = MI->getOpcode();
-  
-  if ((Opc == Alpha::BIS &&
-       MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
-    if (OpNum == 0) {  // move -> store
-      unsigned InReg = MI->getOperand(1).getReg();
-      return BuildMI(Alpha::STQ, 3).addReg(InReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    } else {           // load -> move
-      unsigned OutReg = MI->getOperand(0).getReg();
-      return BuildMI(Alpha::LDQ, 2, OutReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    }
-  } else if ((Opc == Alpha::CPYSS &&
-              MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
-    if (OpNum == 0) {  // move -> store
-      unsigned InReg = MI->getOperand(1).getReg();
-      return BuildMI(Alpha::STS, 3).addReg(InReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    } else {           // load -> move
-      unsigned OutReg = MI->getOperand(0).getReg();
-      return BuildMI(Alpha::LDS, 2, OutReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    }
-  } else if ((Opc == Alpha::CPYST &&
-              MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
-    if (OpNum == 0) {  // move -> store
-      unsigned InReg = MI->getOperand(1).getReg();
-      return BuildMI(Alpha::STT, 3).addReg(InReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    } else {           // load -> move
-      unsigned OutReg = MI->getOperand(0).getReg();
-      return BuildMI(Alpha::LDT, 2, OutReg).addFrameIndex(FrameIndex)
-        .addReg(Alpha::F31);
-    }
-  }
+   // Make sure this is a reg-reg copy.
+   unsigned Opc = MI->getOpcode();
+
+   switch(Opc) {
+   default:
+     break;
+   case Alpha::BIS:
+   case Alpha::CPYSS:
+   case Alpha::CPYST:
+     if (MI->getOperand(1).getReg() == MI->getOperand(2).getReg()) {
+       if (OpNum == 0) {  // move -> store
+	 unsigned InReg = MI->getOperand(1).getReg();
+	 Opc = (Opc == Alpha::BIS) ? Alpha::STQ : 
+	   ((Opc == Alpha::CPYSS) ? Alpha::STS : Alpha::STT);
+	 return BuildMI(Opc, 3).addReg(InReg).addFrameIndex(FrameIndex)
+	   .addReg(Alpha::F31);
+       } else {           // load -> move
+	 unsigned OutReg = MI->getOperand(0).getReg();
+	 Opc = (Opc == Alpha::BIS) ? Alpha::LDQ : 
+	   ((Opc == Alpha::CPYSS) ? Alpha::LDS : Alpha::LDT);
+	 return BuildMI(Opc, 2, OutReg).addFrameIndex(FrameIndex)
+	   .addReg(Alpha::F31);
+       }
+     }
+     break;
+   }
   return 0;
 }
 






More information about the llvm-commits mailing list