aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/Passes.cpp
diff options
context:
space:
mode:
authorAlkis Evlogimenos <alkis@evlogimenos.com>2004-07-21 08:24:35 +0000
committerAlkis Evlogimenos <alkis@evlogimenos.com>2004-07-21 08:24:35 +0000
commit910d0d6066f55fba7c67f2b42dd7eb4f971ca49a (patch)
treed3b2517749013ee29a476da2025e0d83524b0e1f /lib/CodeGen/Passes.cpp
parentc8dec2c23e7b31e4f7a40d686d95513a442a0b6e (diff)
downloadexternal_llvm-910d0d6066f55fba7c67f2b42dd7eb4f971ca49a.zip
external_llvm-910d0d6066f55fba7c67f2b42dd7eb4f971ca49a.tar.gz
external_llvm-910d0d6066f55fba7c67f2b42dd7eb4f971ca49a.tar.bz2
Add Iterative scan register allocator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Passes.cpp')
-rw-r--r--lib/CodeGen/Passes.cpp11
1 files changed, 7 insertions, 4 deletions
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 @@ FunctionPass *llvm::createRegisterAllocator() {
return createLocalRegisterAllocator();
case linearscan:
return createLinearScanRegisterAllocator();
+ case iterativescan:
+ return createIterativeScanRegisterAllocator();
}
}