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 (experimental)"),
- 0),
- cl::init(local));
+ RegAlloc(
+ "regalloc",
+ cl::desc("Register allocator to use: (default = linearscan)"),
+ cl::Prefix,
+ 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(linearscan));
}
FunctionPass *llvm::createRegisterAllocator() {
return createLocalRegisterAllocator();
case linearscan:
return createLinearScanRegisterAllocator();
+ case iterativescan:
+ return createIterativeScanRegisterAllocator();
}
}