diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-10-02 16:57:49 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-10-02 16:57:49 +0000 |
commit | 7237ecef134cd88aad13190f078ff23057bfcb71 (patch) | |
tree | 3897d7109101aec972220c39959539db9f26fa17 /lib/CodeGen/Passes.cpp | |
parent | 19092619ff761e2eb47e2122ef2cec81a617fd5e (diff) |
Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Passes.cpp')
-rw-r--r-- | lib/CodeGen/Passes.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/CodeGen/Passes.cpp b/lib/CodeGen/Passes.cpp new file mode 100644 index 0000000000..86f354eb32 --- /dev/null +++ b/lib/CodeGen/Passes.cpp @@ -0,0 +1,35 @@ +//===-- Passes.cpp - Target independent code generation passes -*- C++ -*-===// +// +// This file defines interfaces to access the target independent code +// generation passes provided by the LLVM backend. +// +//===---------------------------------------------------------------------===// + +#include "llvm/CodeGen/Passes.h" +#include "Support/CommandLine.h" + +namespace { + enum RegAllocName { simple, local }; + + 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"), + 0), + cl::init(local)); +} + +FunctionPass *createRegisterAllocator() +{ + switch (RegAlloc) { + case simple: + return createSimpleRegisterAllocator(); + case local: + return createLocalRegisterAllocator(); + default: + assert(0 && "no register allocator selected"); + return 0; // not reached + } +} |