| Index: src/IceOperand.cpp | 
| diff --git a/src/IceOperand.cpp b/src/IceOperand.cpp | 
| index 361472595e7e22734b318a9cec62c84b2ac02f77..f25c43f101e50ce8248e74c4b02701bc9793f074 100644 | 
| --- a/src/IceOperand.cpp | 
| +++ b/src/IceOperand.cpp | 
| @@ -123,13 +123,12 @@ bool LiveRange::overlaps(const LiveRange &Other) const { | 
|  | 
| bool LiveRange::overlaps(InstNumberT OtherBegin) const { | 
| bool Result = false; | 
| -  for (RangeType::const_iterator I = Range.begin(), E = Range.end(); I != E; | 
| -       ++I) { | 
| -    if (OtherBegin < I->first) { | 
| +  for (auto &I : Range) { | 
| +    if (OtherBegin < I.first) { | 
| Result = false; | 
| break; | 
| } | 
| -    if (OtherBegin < I->second) { | 
| +    if (OtherBegin < I.second) { | 
| Result = true; | 
| break; | 
| } | 
| @@ -148,9 +147,8 @@ bool LiveRange::overlaps(InstNumberT OtherBegin) const { | 
| // number.  This is only used for validating the live range | 
| // calculation. | 
| bool LiveRange::containsValue(InstNumberT Value) const { | 
| -  for (RangeType::const_iterator I = Range.begin(), E = Range.end(); I != E; | 
| -       ++I) { | 
| -    if (I->first <= Value && Value <= I->second) | 
| +  for (auto &I : Range) { | 
| +    if (I.first <= Value && Value <= I.second) | 
| return true; | 
| } | 
| return false; | 
| @@ -282,11 +280,7 @@ void VariablesMetadata::init() { | 
| Metadata.resize(Func->getNumVariables()); | 
|  | 
| // Mark implicit args as being used in the entry node. | 
| -  const VarList &ImplicitArgList = Func->getImplicitArgs(); | 
| -  for (VarList::const_iterator I = ImplicitArgList.begin(), | 
| -                               E = ImplicitArgList.end(); | 
| -       I != E; ++I) { | 
| -    const Variable *Var = *I; | 
| +  for (auto &Var : Func->getImplicitArgs()) { | 
| const Inst *NoInst = NULL; | 
| const CfgNode *EntryNode = Func->getEntryNode(); | 
| const bool IsFromDef = false; | 
| @@ -297,30 +291,28 @@ void VariablesMetadata::init() { | 
| SizeT NumNodes = Func->getNumNodes(); | 
| for (SizeT N = 0; N < NumNodes; ++N) { | 
| CfgNode *Node = Func->getNodes()[N]; | 
| -    const InstList &Insts = Node->getInsts(); | 
| -    for (InstList::const_iterator I = Insts.begin(), E = Insts.end(); I != E; | 
| -         ++I) { | 
| -      if ((*I)->isDeleted()) | 
| +    for (auto &I : Node->getInsts()) { | 
| +      if (I->isDeleted()) | 
| continue; | 
| -      if (InstFakeKill *Kill = llvm::dyn_cast<InstFakeKill>(*I)) { | 
| +      if (InstFakeKill *Kill = llvm::dyn_cast<InstFakeKill>(I)) { | 
| // A FakeKill instruction indicates certain Variables (usually | 
| // physical scratch registers) are redefined, so we register | 
| // them as defs. | 
| -        for (SizeT SrcNum = 0; SrcNum < (*I)->getSrcSize(); ++SrcNum) { | 
| -          Variable *Var = llvm::cast<Variable>((*I)->getSrc(SrcNum)); | 
| +        for (SizeT SrcNum = 0; SrcNum < I->getSrcSize(); ++SrcNum) { | 
| +          Variable *Var = llvm::cast<Variable>(I->getSrc(SrcNum)); | 
| SizeT VarNum = Var->getIndex(); | 
| assert(VarNum < Metadata.size()); | 
| Metadata[VarNum].markDef(Kill, Node); | 
| } | 
| continue; // no point in executing the rest | 
| } | 
| -      if (Variable *Dest = (*I)->getDest()) { | 
| +      if (Variable *Dest = I->getDest()) { | 
| SizeT DestNum = Dest->getIndex(); | 
| assert(DestNum < Metadata.size()); | 
| -        Metadata[DestNum].markDef(*I, Node); | 
| +        Metadata[DestNum].markDef(I, Node); | 
| } | 
| -      for (SizeT SrcNum = 0; SrcNum < (*I)->getSrcSize(); ++SrcNum) { | 
| -        Operand *Src = (*I)->getSrc(SrcNum); | 
| +      for (SizeT SrcNum = 0; SrcNum < I->getSrcSize(); ++SrcNum) { | 
| +        Operand *Src = I->getSrc(SrcNum); | 
| SizeT NumVars = Src->getNumVars(); | 
| for (SizeT J = 0; J < NumVars; ++J) { | 
| const Variable *Var = Src->getVar(J); | 
| @@ -328,7 +320,7 @@ void VariablesMetadata::init() { | 
| assert(VarNum < Metadata.size()); | 
| const bool IsFromDef = false; | 
| const bool IsImplicit = false; | 
| -          Metadata[VarNum].markUse(*I, Node, IsFromDef, IsImplicit); | 
| +          Metadata[VarNum].markUse(I, Node, IsFromDef, IsImplicit); | 
| } | 
| } | 
| } | 
| @@ -440,8 +432,7 @@ void ConstantRelocatable::dump(const Cfg *, Ostream &Str) const { | 
|  | 
| void LiveRange::dump(Ostream &Str) const { | 
| Str << "(weight=" << Weight << ") "; | 
| -  for (RangeType::const_iterator I = Range.begin(), E = Range.end(); I != E; | 
| -       ++I) { | 
| +  for (auto I = Range.begin(), E = Range.end(); I != E; ++I) { | 
| if (I != Range.begin()) | 
| Str << ", "; | 
| Str << "[" << (*I).first << ":" << (*I).second << ")"; | 
|  |