mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-03 10:54:42 +00:00
Fix for PR12090: clear def maps of aliases when visiting a copy. e.g.
%S5<def> = COPY %S0<kill> First clear def map of Q1, etc. No small test case available. llvm-svn: 151574
This commit is contained in:
parent
02bf78f5ca
commit
9627003887
@ -199,6 +199,11 @@ bool MachineCopyPropagation::CopyPropagateBlock(MachineBasicBlock &MBB) {
|
||||
SourceNoLongerAvailable(Def, SrcMap, AvailCopyMap);
|
||||
|
||||
// Remember Def is defined by the copy.
|
||||
// ... Make sure to clear the def maps of aliases first.
|
||||
for (const unsigned *AS = TRI->getAliasSet(Def); *AS; ++AS) {
|
||||
CopyMap.erase(*AS);
|
||||
AvailCopyMap.erase(*AS);
|
||||
}
|
||||
CopyMap[Def] = MI;
|
||||
AvailCopyMap[Def] = MI;
|
||||
for (const unsigned *SR = TRI->getSubRegisters(Def); *SR; ++SR) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user