diff options
author | Chad Rosier <mcrosier@apple.com> | 2013-05-22 17:26:26 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2013-05-22 17:26:26 +0000 |
commit | 0e1fae4cf22956f59d392b2fc1681075804596ba (patch) | |
tree | cdfcbce64074ef78d0848fe58ae85d770cc97151 /include/llvm/MC/MCRegisterInfo.h | |
parent | 284ffa3863bc58f18a3eb879e49e05fdbe792413 (diff) | |
download | external_llvm-0e1fae4cf22956f59d392b2fc1681075804596ba.zip external_llvm-0e1fae4cf22956f59d392b2fc1681075804596ba.tar.gz external_llvm-0e1fae4cf22956f59d392b2fc1681075804596ba.tar.bz2 |
Add the IncludeSelf parameter to the MCSubRegIterator and MCSuperRegIterator
constructors. No functional change.
Part of rdar://12906217
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182490 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/MC/MCRegisterInfo.h')
-rw-r--r-- | include/llvm/MC/MCRegisterInfo.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/include/llvm/MC/MCRegisterInfo.h b/include/llvm/MC/MCRegisterInfo.h index f5b4ddd..47ef0b4 100644 --- a/include/llvm/MC/MCRegisterInfo.h +++ b/include/llvm/MC/MCRegisterInfo.h @@ -421,20 +421,28 @@ public: // aliasing registers. Use these iterator classes to traverse the lists. /// MCSubRegIterator enumerates all sub-registers of Reg. +/// If IncludeSelf is set, Reg itself is included in the list. class MCSubRegIterator : public MCRegisterInfo::DiffListIterator { public: - MCSubRegIterator(unsigned Reg, const MCRegisterInfo *MCRI) { + MCSubRegIterator(unsigned Reg, const MCRegisterInfo *MCRI, + bool IncludeSelf = false) { init(Reg, MCRI->DiffLists + MCRI->get(Reg).SubRegs); - ++*this; + // Initially, the iterator points to Reg itself. + if (!IncludeSelf) + ++*this; } }; /// MCSuperRegIterator enumerates all super-registers of Reg. +/// If IncludeSelf is set, Reg itself is included in the list. class MCSuperRegIterator : public MCRegisterInfo::DiffListIterator { public: - MCSuperRegIterator(unsigned Reg, const MCRegisterInfo *MCRI) { + MCSuperRegIterator(unsigned Reg, const MCRegisterInfo *MCRI, + bool IncludeSelf = false) { init(Reg, MCRI->DiffLists + MCRI->get(Reg).SuperRegs); - ++*this; + // Initially, the iterator points to Reg itself. + if (!IncludeSelf) + ++*this; } }; @@ -443,7 +451,7 @@ public: class MCRegAliasIterator : public MCRegisterInfo::DiffListIterator { public: MCRegAliasIterator(unsigned Reg, const MCRegisterInfo *MCRI, - bool IncludeSelf) { + bool IncludeSelf = false) { init(Reg, MCRI->DiffLists + MCRI->get(Reg).Overlaps); // Initially, the iterator points to Reg itself. if (!IncludeSelf) |