mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 02:24:22 +00:00
Switch all register list clients to the new MC*Iterator interface.
No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157854 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -71,7 +71,7 @@ MachineCopyPropagation::SourceNoLongerAvailable(unsigned Reg,
|
||||
unsigned MappedDef = *I;
|
||||
// Source of copy is no longer available for propagation.
|
||||
if (AvailCopyMap.erase(MappedDef)) {
|
||||
for (const uint16_t *SR = TRI->getSubRegisters(MappedDef); *SR; ++SR)
|
||||
for (MCSubRegIterator SR(MappedDef, TRI); SR.isValid(); ++SR)
|
||||
AvailCopyMap.erase(*SR);
|
||||
}
|
||||
}
|
||||
@ -196,13 +196,13 @@ bool MachineCopyPropagation::CopyPropagateBlock(MachineBasicBlock &MBB) {
|
||||
|
||||
// Remember Def is defined by the copy.
|
||||
// ... Make sure to clear the def maps of aliases first.
|
||||
for (const uint16_t *AS = TRI->getAliasSet(Def); *AS; ++AS) {
|
||||
CopyMap.erase(*AS);
|
||||
AvailCopyMap.erase(*AS);
|
||||
for (MCRegAliasIterator AI(Def, TRI, false); AI.isValid(); ++AI) {
|
||||
CopyMap.erase(*AI);
|
||||
AvailCopyMap.erase(*AI);
|
||||
}
|
||||
CopyMap[Def] = MI;
|
||||
AvailCopyMap[Def] = MI;
|
||||
for (const uint16_t *SR = TRI->getSubRegisters(Def); *SR; ++SR) {
|
||||
for (MCSubRegIterator SR(Def, TRI); SR.isValid(); ++SR) {
|
||||
CopyMap[*SR] = MI;
|
||||
AvailCopyMap[*SR] = MI;
|
||||
}
|
||||
|
Reference in New Issue
Block a user