MachinePassRegistry.cpp revision eb577ba3b815a1fa4627b060dd2345d17abf672d
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