When opcodes like ADD were split into reg. and immed. versions (ADDi and ADDr),
authorVikram S. Adve <vadve@cs.uiuc.edu>
Tue, 21 Oct 2003 12:29:45 +0000 (12:29 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Tue, 21 Oct 2003 12:29:45 +0000 (12:29 +0000)
this code wasn't fixed correctly so it missed copy operations that used ADDi.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9318 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9PeepholeOpts.cpp

index 2b22558e6dc2c536f5379f9464106bc7291d6d3b..9d50f35f5414213a8079d316f50b396ab44a01d0 100644 (file)
@@ -63,7 +63,8 @@ static bool IsUselessCopy(const TargetMachine &target, const MachineInstr* MI) {
     return (/* both operands are allocated to the same register */
             MI->getOperand(0).getAllocatedRegNum() == 
             MI->getOperand(1).getAllocatedRegNum());
-  } else if (MI->getOpCode() == V9::ADDr || MI->getOpCode() == V9::ORr) {
+  } else if (MI->getOpCode() == V9::ADDr || MI->getOpCode() == V9::ORr ||
+             MI->getOpCode() == V9::ADDi || MI->getOpCode() == V9::ORi) {
     unsigned srcWithDestReg;
     
     for (srcWithDestReg = 0; srcWithDestReg < 2; ++srcWithDestReg)