diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-07-09 20:43:05 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-07-09 20:43:05 +0000 |
| commit | e9fdcaa68a1ad859a7ac6f764c324a8aedca4809 (patch) | |
| tree | 111aaf6ca0212f654942a92024630b31f57662d3 /llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp | |
| parent | c982c768d248b21b82fbd70b61a4cc824cd82ddc (diff) | |
| download | bcm5719-llvm-e9fdcaa68a1ad859a7ac6f764c324a8aedca4809.tar.gz bcm5719-llvm-e9fdcaa68a1ad859a7ac6f764c324a8aedca4809.zip | |
Remat uncoalescable COPY instrs
llvm-svn: 108010
Diffstat (limited to 'llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp b/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp index b547c1df743..e69d3e4fa78 100644 --- a/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp +++ b/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp @@ -781,6 +781,17 @@ SimpleRegisterCoalescing::UpdateRegDefsUses(const CoalescerPair &CP) { ReMaterializeTrivialDef(li_->getInterval(SrcReg), CopyDstReg, 0, UseMI)) continue; + + if (UseMI->isCopy() && + !UseMI->getOperand(1).getSubReg() && + !UseMI->getOperand(0).getSubReg() && + UseMI->getOperand(1).getReg() == SrcReg && + UseMI->getOperand(0).getReg() != SrcReg && + UseMI->getOperand(0).getReg() != DstReg && + !JoinedCopies.count(UseMI) && + ReMaterializeTrivialDef(li_->getInterval(SrcReg), + UseMI->getOperand(0).getReg(), 0, UseMI)) + continue; } SmallVector<unsigned,8> Ops; |

