1 //===-- CodeGen/MachineInstr.cpp ------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the machine function pass registry for register allocators
11 // and instruction schedulers.
13 //===----------------------------------------------------------------------===//
15 #include "llvm/CodeGen/MachinePassRegistry.h"
19 void MachinePassRegistryListener::anchor() { }
21 /// setDefault - Set the default constructor by name.
22 void MachinePassRegistry::setDefault(StringRef Name
) {
23 MachinePassCtor Ctor
= nullptr;
24 for(MachinePassRegistryNode
*R
= getList(); R
; R
= R
->getNext()) {
25 if (R
->getName() == Name
) {
30 assert(Ctor
&& "Unregistered pass name");
34 /// Add - Adds a function pass to the registration list.
36 void MachinePassRegistry::Add(MachinePassRegistryNode
*Node
) {
39 if (Listener
) Listener
->NotifyAdd(Node
->getName(),
41 Node
->getDescription());
45 /// Remove - Removes a function pass from the registration list.
47 void MachinePassRegistry::Remove(MachinePassRegistryNode
*Node
) {
48 for (MachinePassRegistryNode
**I
= &List
; *I
; I
= (*I
)->getNextAddress()) {
50 if (Listener
) Listener
->NotifyRemove(Node
->getName());