forked from OSchip/llvm-project
parent
9b3d627280
commit
9dff31c769
|
@ -275,21 +275,19 @@ 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 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);
|
||||
// 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))
|
||||
DestList.push_back(Def);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
# RUN: llc -o - %s -march=amdgcn -mcpu=fiji -run-pass=machine-cp -verify-machineinstrs | FileCheck -check-prefix=GCN %s
|
||||
|
||||
# GCN-LABEL: dead_copy
|
||||
# GCN: bb.0
|
||||
# GCN-NOT: dead %vgpr5 = COPY undef %vgpr11, implicit %exec
|
||||
# GCN: %vgpr5 = COPY %vgpr11, implicit %exec
|
||||
|
||||
---
|
||||
name: dead_copy
|
||||
|
||||
body: |
|
||||
|
||||
bb.0:
|
||||
liveins: %vgpr11, %sgpr0, %sgpr1, %vgpr6, %vgpr7, %vgpr4
|
||||
|
||||
dead %vgpr5 = COPY undef %vgpr11, implicit %exec
|
||||
|
||||
%vgpr5 = COPY %vgpr11, implicit %exec
|
||||
|
||||
%sgpr14 = S_ADD_U32 %sgpr0, target-flags(amdgpu-gotprel) 1136, implicit-def %scc
|
||||
%sgpr15 = S_ADDC_U32 %sgpr1, target-flags(amdgpu-gotprel32-lo) 0, implicit-def dead %scc, implicit %scc
|
||||
|
||||
%vgpr10 = COPY killed %sgpr14, implicit %exec
|
||||
%vgpr11 = COPY killed %sgpr15, implicit %exec
|
||||
|
||||
FLAT_STORE_DWORDX4 %vgpr10_vgpr11, %vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit %exec, implicit %flat_scr
|
||||
...
|
Loading…
Reference in New Issue