Add Iterative scan register allocator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/Passes.cpp b/lib/CodeGen/Passes.cpp
index 37b4dde..3fd107b 100644
--- a/lib/CodeGen/Passes.cpp
+++ b/lib/CodeGen/Passes.cpp
@@ -18,15 +18,16 @@
 using namespace llvm;
 
 namespace {
-  enum RegAllocName { simple, local, linearscan };
+  enum RegAllocName { simple, local, linearscan, iterativescan };
 
   cl::opt<RegAllocName>
   RegAlloc("regalloc",
            cl::desc("Register allocator to use: (default = simple)"),
            cl::Prefix,
-           cl::values(clEnumVal(simple,      "  simple register allocator"),
-                      clEnumVal(local,       "  local register allocator"),
-                      clEnumVal(linearscan,  "  linear scan register allocator"),
+           cl::values(clEnumVal(simple,       "  simple register allocator"),
+                      clEnumVal(local,        "  local register allocator"),
+                      clEnumVal(linearscan,   "  linear scan register allocator"),
+                      clEnumVal(iterativescan,"  iterative scan register allocator"),
                       clEnumValEnd),
            cl::init(local));
 }
@@ -42,6 +43,8 @@
     return createLocalRegisterAllocator();
   case linearscan:
     return createLinearScanRegisterAllocator();
+  case iterativescan:
+    return createIterativeScanRegisterAllocator();
   }
 }