mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
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:
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user