LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RegAllocRegistry.h
Go to the documentation of this file.
1 //===-- llvm/CodeGen/RegAllocRegistry.h -------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file contains the implementation for register allocator function
11 // pass registry (RegisterRegAlloc).
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_CODEGEN_REGALLOCREGISTRY_H
16 #define LLVM_CODEGEN_REGALLOCREGISTRY_H
17 
19 
20 namespace llvm {
21 
22 //===----------------------------------------------------------------------===//
23 ///
24 /// RegisterRegAlloc class - Track the registration of register allocators.
25 ///
26 //===----------------------------------------------------------------------===//
28 
29 public:
30 
31  typedef FunctionPass *(*FunctionPassCtor)();
32 
34 
35  RegisterRegAlloc(const char *N, const char *D, FunctionPassCtor C)
37  {
38  Registry.Add(this);
39  }
40  ~RegisterRegAlloc() { Registry.Remove(this); }
41 
42 
43  // Accessors.
44  //
47  }
49  return (RegisterRegAlloc *)Registry.getList();
50  }
52  return (FunctionPassCtor)Registry.getDefault();
53  }
54  static void setDefault(FunctionPassCtor C) {
55  Registry.setDefault((MachinePassCtor)C);
56  }
58  Registry.setListener(L);
59  }
60 
61 };
62 
63 } // end namespace llvm
64 
65 
66 #endif
RegisterRegAlloc * getNext() const
void *(* MachinePassCtor)()
FunctionPass *(* FunctionPassCtor)()
static void setDefault(FunctionPassCtor C)
static MachinePassRegistry Registry
RegisterRegAlloc's global Registry tracks allocator registration.
static RegisterRegAlloc * getList()
RegisterRegAlloc(const char *N, const char *D, FunctionPassCtor C)
static void setListener(MachinePassRegistryListener *L)
MachinePassRegistryNode * getNext() const
static FunctionPassCtor getDefault()
#define N