LiveInterval: Use range based for loops for subregister ranges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223991 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matthias Braun
2014-12-11 00:59:06 +00:00
parent d1db29860c
commit 1bfcc2d56f
9 changed files with 110 additions and 126 deletions

View File

@ -660,9 +660,8 @@ void LiveInterval::print(raw_ostream &OS) const {
OS << PrintReg(reg) << ' ';
super::print(OS);
// Print subranges
for (const_subrange_iterator I = subrange_begin(), E = subrange_end();
I != E; ++I) {
OS << format(" L%04X ", I->LaneMask) << *I;
for (const SubRange &SR : subranges()) {
OS << format(" L%04X ", SR.LaneMask) << SR;
}
}
@ -699,18 +698,17 @@ void LiveInterval::verify(const MachineRegisterInfo *MRI) const {
// Make sure SubRanges are fine and LaneMasks are disjunct.
unsigned Mask = 0;
unsigned MaxMask = MRI != nullptr ? MRI->getMaxLaneMaskForVReg(reg) : ~0u;
for (const_subrange_iterator I = subrange_begin(), E = subrange_end(); I != E;
++I) {
for (const SubRange &SR : subranges()) {
// Subrange lanemask should be disjunct to any previous subrange masks.
assert((Mask & I->LaneMask) == 0);
Mask |= I->LaneMask;
assert((Mask & SR.LaneMask) == 0);
Mask |= SR.LaneMask;
// subrange mask should not contained in maximum lane mask for the vreg.
assert((Mask & ~MaxMask) == 0);
I->verify();
SR.verify();
// Main liverange should cover subrange.
assert(covers(*I));
assert(covers(SR));
}
}
#endif