Add Iterative scan register allocator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alkis Evlogimenos
2004-07-21 08:24:35 +00:00
parent c8dec2c23e
commit 910d0d6066
4 changed files with 488 additions and 4 deletions

View File

@ -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();
}
}