blob: 9f4ef1287803c43d13971f3762736b1c018a57cd [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001//===-- CodeGen/MachineInstr.cpp ------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner081ce942007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007//
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}