blob: 86f354eb32f43d066b82aaccec380b5900458f1e [file] [log] [blame]
Alkis Evlogimenos7237ece2003-10-02 16:57:49 +00001//===-- Passes.cpp - Target independent code generation passes -*- C++ -*-===//
2//
3// This file defines interfaces to access the target independent code
4// generation passes provided by the LLVM backend.
5//
6//===---------------------------------------------------------------------===//
7
8#include "llvm/CodeGen/Passes.h"
9#include "Support/CommandLine.h"
10
11namespace {
12 enum RegAllocName { simple, local };
13
14 cl::opt<RegAllocName>
15 RegAlloc("regalloc",
16 cl::desc("Register allocator to use: (default = simple)"),
17 cl::Prefix,
18 cl::values(clEnumVal(simple, " simple register allocator"),
19 clEnumVal(local, " local register allocator"),
20 0),
21 cl::init(local));
22}
23
24FunctionPass *createRegisterAllocator()
25{
26 switch (RegAlloc) {
27 case simple:
28 return createSimpleRegisterAllocator();
29 case local:
30 return createLocalRegisterAllocator();
31 default:
32 assert(0 && "no register allocator selected");
33 return 0; // not reached
34 }
35}