X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FVirtRegMap.cpp;h=bf992a12d2853260e564eeb80118ebf9cd5ac92b;hb=0b3441771844d9822234f9dbc570e45b6a748a11;hp=fdc135fc240c97ddfa8b5dda3a9234834444630f;hpb=6111cd8660c5fca74db6f3ee68d2581037bd60b3;p=oota-llvm.git diff --git a/lib/CodeGen/VirtRegMap.cpp b/lib/CodeGen/VirtRegMap.cpp index fdc135fc240..bf992a12d28 100644 --- a/lib/CodeGen/VirtRegMap.cpp +++ b/lib/CodeGen/VirtRegMap.cpp @@ -263,7 +263,7 @@ void VirtRegRewriter::addLiveInsForSubRanges(const LiveInterval &LI, SlotIndex MBBBegin = MBBI->first; // Advance all subrange iterators so that their end position is just // behind MBBBegin (or the iterator is at the end). - unsigned LaneMask = 0; + LaneBitmask LaneMask = 0; for (auto &RangeIterPair : SubRanges) { const LiveInterval::SubRange *SR = RangeIterPair.first; LiveInterval::const_iterator &SRI = RangeIterPair.second; @@ -277,13 +277,7 @@ void VirtRegRewriter::addLiveInsForSubRanges(const LiveInterval &LI, if (LaneMask == 0) continue; MachineBasicBlock *MBB = MBBI->second; - for (MCSubRegIndexIterator SR(PhysReg, TRI); SR.isValid(); ++SR) { - unsigned SubReg = SR.getSubReg(); - unsigned SubRegIndex = SR.getSubRegIndex(); - unsigned SubRegLaneMask = TRI->getSubRegIndexLaneMask(SubRegIndex); - if ((SubRegLaneMask & LaneMask) != 0) - MBB->addLiveIn(SubReg); - } + MBB->addLiveIn(PhysReg, LaneMask); } } @@ -341,7 +335,7 @@ bool VirtRegRewriter::readsUndefSubreg(const MachineOperand &MO) const { assert(LI.liveAt(BaseIndex) && "Reads of completely dead register should be marked undef already"); unsigned SubRegIdx = MO.getSubReg(); - unsigned UseMask = TRI->getSubRegIndexLaneMask(SubRegIdx); + LaneBitmask UseMask = TRI->getSubRegIndexLaneMask(SubRegIdx); // See if any of the relevant subregister liveranges is defined at this point. for (const LiveInterval::SubRange &SR : LI.subranges()) { if ((SR.LaneMask & UseMask) != 0 && SR.liveAt(BaseIndex)) @@ -361,7 +355,7 @@ void VirtRegRewriter::rewrite() { DEBUG(MBBI->print(dbgs(), Indexes)); for (MachineBasicBlock::instr_iterator MII = MBBI->instr_begin(), MIE = MBBI->instr_end(); MII != MIE;) { - MachineInstr *MI = MII; + MachineInstr *MI = &*MII; ++MII; for (MachineInstr::mop_iterator MOI = MI->operands_begin(), @@ -411,7 +405,7 @@ void VirtRegRewriter::rewrite() { // our subregister liveness tracking isn't precise and we can't // know what subregister parts are undefined, fall back to the // implicit super-register def then. - unsigned LaneMask = TRI->getSubRegIndexLaneMask(SubReg); + LaneBitmask LaneMask = TRI->getSubRegIndexLaneMask(SubReg); if (TargetRegisterInfo::isImpreciseLaneMask(LaneMask)) SuperDefs.push_back(PhysReg); }