summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2003-10-21 12:29:45 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2003-10-21 12:29:45 +0000
commitd248652b8beaef52b1b256fa52092967f1b0f6ef (patch)
tree0a42b916ec3d7442d3aeb8054f1bbd3d91f87798
parent472c3046fe7b12fa9e8dd4c1bd98d0efad51e7f8 (diff)
downloadllvm-d248652b8beaef52b1b256fa52092967f1b0f6ef.tar.gz
llvm-d248652b8beaef52b1b256fa52092967f1b0f6ef.tar.bz2
llvm-d248652b8beaef52b1b256fa52092967f1b0f6ef.tar.xz
When opcodes like ADD were split into reg. and immed. versions (ADDi and ADDr),
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
-rw-r--r--lib/Target/SparcV9/SparcV9PeepholeOpts.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/SparcV9/SparcV9PeepholeOpts.cpp b/lib/Target/SparcV9/SparcV9PeepholeOpts.cpp
index 2b22558e6d..9d50f35f54 100644
--- a/lib/Target/SparcV9/SparcV9PeepholeOpts.cpp
+++ b/lib/Target/SparcV9/SparcV9PeepholeOpts.cpp
@@ -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)