diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2003-10-21 12:29:45 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2003-10-21 12:29:45 +0000 |
commit | 8264e29e0199624f15ea9f19382f4980aa9d43e7 (patch) | |
tree | 94daea62672625be91b47e3a12997e4f7e45e353 | |
parent | 64e8a13b7b2599c69219deda884844506e87eef2 (diff) | |
download | bcm5719-llvm-8264e29e0199624f15ea9f19382f4980aa9d43e7.tar.gz bcm5719-llvm-8264e29e0199624f15ea9f19382f4980aa9d43e7.zip |
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.
llvm-svn: 9318
-rw-r--r-- | llvm/lib/Target/Sparc/PeepholeOpts.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/PeepholeOpts.cpp b/llvm/lib/Target/Sparc/PeepholeOpts.cpp index 2b22558e6dc..9d50f35f541 100644 --- a/llvm/lib/Target/Sparc/PeepholeOpts.cpp +++ b/llvm/lib/Target/Sparc/PeepholeOpts.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) |