Phase 2 of the great MachineRegisterInfo cleanup. This time, we're changing

operator* on the by-operand iterators to return a MachineOperand& rather than
a MachineInstr&.  At this point they almost behave like normal iterators!

Again, this requires making some existing loops more verbose, but should pave
the way for the big range-based for-loop cleanups in the future.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203865 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson
2014-03-13 23:12:04 +00:00
parent d3fc1be4f6
commit bf63022492
35 changed files with 255 additions and 150 deletions
+3 -2
View File
@@ -198,8 +198,9 @@ bool PHIElimination::EliminatePHINodes(MachineFunction &MF,
/// This includes registers with no defs.
static bool isImplicitlyDefined(unsigned VirtReg,
const MachineRegisterInfo *MRI) {
for (MachineRegisterInfo::def_iterator DI = MRI->def_begin(VirtReg),
DE = MRI->def_end(); DI != DE; ++DI)
for (MachineRegisterInfo::def_instr_iterator
DI = MRI->def_instr_begin(VirtReg), DE = MRI->def_instr_end();
DI != DE; ++DI)
if (!DI->isImplicitDef())
return false;
return true;