1 //===-- Passes.cpp - Target independent code generation passes ------------===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines interfaces to access the target independent code
11 // generation passes provided by the LLVM backend.
13 //===---------------------------------------------------------------------===//
15 #include "llvm/CodeGen/MachinePassRegistry.h"
16 #include "llvm/CodeGen/Passes.h"
17 #include "llvm/Support/CommandLine.h"
23 cl::opt<const char *, false, RegisterPassParser<RegisterRegAlloc> >
25 cl::init("linearscan"),
26 cl::desc("Register allocator to use: (default = linearscan)"));
29 FunctionPass *llvm::createRegisterAllocator() {
30 RegisterRegAlloc::FunctionPassCtor Ctor = RegisterRegAlloc::getDefault();
33 Ctor = RegisterRegAlloc::FindCtor(RegAlloc);
34 assert(Ctor && "No register allocator found");
35 if (!Ctor) Ctor = RegisterRegAlloc::FirstCtor();
36 RegisterRegAlloc::setDefault(Ctor);
39 assert(Ctor && "No register allocator found");