Subzero: Auto-awesome iterators.

Use C++11 'auto' where practical to make iteration more concise.
Use C++11 range-based for loops where possible.

BUG= none
R=jfb@chromium.org, kschimpf@google.com

Review URL: https://codereview.chromium.org/619893002
diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
index ca8a96a..df64cff 100644
--- a/src/IceConverter.cpp
+++ b/src/IceConverter.cpp
@@ -70,9 +70,8 @@
     Func->setInternal(F->hasInternalLinkage());
 
     // The initial definition/use of each arg is the entry node.
-    for (Function::const_arg_iterator ArgI = F->arg_begin(),
-                                      ArgE = F->arg_end();
-         ArgI != ArgE; ++ArgI) {
+    for (auto ArgI = F->arg_begin(), ArgE = F->arg_end(); ArgI != ArgE;
+         ++ArgI) {
       Func->addArg(mapValueToIceVar(ArgI));
     }
 
@@ -80,14 +79,10 @@
     // blocks in the original linearized order.  Otherwise the ICE
     // linearized order will be affected by branch targets in
     // terminator instructions.
-    for (Function::const_iterator BBI = F->begin(), BBE = F->end(); BBI != BBE;
-         ++BBI) {
-      mapBasicBlockToNode(BBI);
-    }
-    for (Function::const_iterator BBI = F->begin(), BBE = F->end(); BBI != BBE;
-         ++BBI) {
-      convertBasicBlock(BBI);
-    }
+    for (const BasicBlock &BBI : *F)
+      mapBasicBlockToNode(&BBI);
+    for (const BasicBlock &BBI : *F)
+      convertBasicBlock(&BBI);
     Func->setEntryNode(mapBasicBlockToNode(&F->getEntryBlock()));
     Func->computePredecessors();
 
@@ -564,9 +559,8 @@
 
   Ice::CfgNode *convertBasicBlock(const BasicBlock *BB) {
     Ice::CfgNode *Node = mapBasicBlockToNode(BB);
-    for (BasicBlock::const_iterator II = BB->begin(), II_e = BB->end();
-         II != II_e; ++II) {
-      Ice::Inst *Inst = convertInstruction(II);
+    for (const Instruction &II : *BB) {
+      Ice::Inst *Inst = convertInstruction(&II);
       Node->appendInst(Inst);
     }
     return Node;
@@ -632,12 +626,12 @@
 }
 
 void Converter::convertFunctions() {
-  for (Module::const_iterator I = Mod->begin(), E = Mod->end(); I != E; ++I) {
-    if (I->empty())
+  for (const Function &I : *Mod) {
+    if (I.empty())
       continue;
     LLVM2ICEConverter FunctionConverter(Ctx, Mod->getContext());
 
-    Cfg *Fcn = FunctionConverter.convertFunction(I);
+    Cfg *Fcn = FunctionConverter.convertFunction(&I);
     translateFcn(Fcn);
   }