MachinePassRegistry.cpp revision f17a25c88b892d30c2b41ba7ecdfbdfb2b4be9cc
1//===-- CodeGen/MachineInstr.cpp ------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file was developed by James M. Laskey and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the machine function pass registry for register allocators
11// and instruction schedulers.
12//
13//===----------------------------------------------------------------------===//
14
15#include "llvm/CodeGen/MachinePassRegistry.h"
16
17using namespace llvm;
18
19
20/// Add - Adds a function pass to the registration list.
21///
22void MachinePassRegistry::Add(MachinePassRegistryNode *Node) {
23  Node->setNext(List);
24  List = Node;
25  if (Listener) Listener->NotifyAdd(Node->getName(),
26                                    Node->getCtor(),
27                                    Node->getDescription());
28}
29
30
31/// Remove - Removes a function pass from the registration list.
32///
33void MachinePassRegistry::Remove(MachinePassRegistryNode *Node) {
34  for (MachinePassRegistryNode **I = &List; *I; I = (*I)->getNextAddress()) {
35    if (*I == Node) {
36      if (Listener) Listener->NotifyRemove(Node->getName());
37      *I = (*I)->getNext();
38      break;
39    }
40  }
41}
42