From 7237ecef134cd88aad13190f078ff23057bfcb71 Mon Sep 17 00:00:00 2001 From: Alkis Evlogimenos Date: Thu, 2 Oct 2003 16:57:49 +0000 Subject: 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 --- lib/CodeGen/Passes.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/CodeGen/Passes.cpp (limited to 'lib/CodeGen') 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 + 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 + } +} -- cgit v1.2.3