~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/include/llvm/CodeGen/RegAllocRegistry.h

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
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_CODEGENREGALLOCREGISTRY_H
16
 
#define LLVM_CODEGENREGALLOCREGISTRY_H
17
 
 
18
 
#include "llvm/CodeGen/MachinePassRegistry.h"
19
 
 
20
 
namespace llvm {
21
 
 
22
 
//===----------------------------------------------------------------------===//
23
 
///
24
 
/// RegisterRegAlloc class - Track the registration of register allocators.
25
 
///
26
 
//===----------------------------------------------------------------------===//
27
 
class RegisterRegAlloc : public MachinePassRegistryNode {
28
 
 
29
 
public:
30
 
 
31
 
  typedef FunctionPass *(*FunctionPassCtor)();
32
 
 
33
 
  static MachinePassRegistry Registry;
34
 
 
35
 
  RegisterRegAlloc(const char *N, const char *D, FunctionPassCtor C)
36
 
  : MachinePassRegistryNode(N, D, (MachinePassCtor)C)
37
 
  { 
38
 
     Registry.Add(this); 
39
 
  }
40
 
  ~RegisterRegAlloc() { Registry.Remove(this); }
41
 
  
42
 
 
43
 
  // Accessors.
44
 
  //
45
 
  RegisterRegAlloc *getNext() const {
46
 
    return (RegisterRegAlloc *)MachinePassRegistryNode::getNext();
47
 
  }
48
 
  static RegisterRegAlloc *getList() {
49
 
    return (RegisterRegAlloc *)Registry.getList();
50
 
  }
51
 
  static FunctionPassCtor getDefault() {
52
 
    return (FunctionPassCtor)Registry.getDefault();
53
 
  }
54
 
  static void setDefault(FunctionPassCtor C) {
55
 
    Registry.setDefault((MachinePassCtor)C);
56
 
  }
57
 
  static void setListener(MachinePassRegistryListener *L) {
58
 
    Registry.setListener(L);
59
 
  }
60
 
  
61
 
};
62
 
 
63
 
} // end namespace llvm
64
 
 
65
 
 
66
 
#endif