diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineCopyPropagation.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineCopyPropagation.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/MachineCopyPropagation.cpp b/llvm/lib/CodeGen/MachineCopyPropagation.cpp index 030db43..61f56ff 100644 --- a/llvm/lib/CodeGen/MachineCopyPropagation.cpp +++ b/llvm/lib/CodeGen/MachineCopyPropagation.cpp @@ -275,20 +275,18 @@ void MachineCopyPropagation::CopyPropagateBlock(MachineBasicBlock &MBB) { ClobberRegister(Reg); } - if (!MI->getOperand(0).isDead() && !MI->getOperand(1).isUndef()) { - // Remember Def is defined by the copy. - for (MCSubRegIterator SR(Def, TRI, /*IncludeSelf=*/true); SR.isValid(); - ++SR) { - CopyMap[*SR] = MI; - AvailCopyMap[*SR] = MI; - } + // Remember Def is defined by the copy. + for (MCSubRegIterator SR(Def, TRI, /*IncludeSelf=*/true); SR.isValid(); + ++SR) { + CopyMap[*SR] = MI; + AvailCopyMap[*SR] = MI; + } - // Remember source that's copied to Def. Once it's clobbered, then - // it's no longer available for copy propagation. - RegList &DestList = SrcMap[Src]; - if (!is_contained(DestList, Def)) + // Remember source that's copied to Def. Once it's clobbered, then + // it's no longer available for copy propagation. + RegList &DestList = SrcMap[Src]; + if (!is_contained(DestList, Def)) DestList.push_back(Def); - } continue; } |