-
- /// FirstCtor - Finds the first register allocator in registration
- /// list and returns its creator function, otherwise return NULL.
- static FunctionPassCtor FirstCtor() {
- MachinePassRegistryNode<FunctionPassCtor> *Node = Registry.getList();
- return Node ? Node->getCtor() : NULL;
- }
-
- /// FindCtor - Finds a register allocator in registration list and returns
- /// its creator function, otherwise return NULL.
- static FunctionPassCtor FindCtor(const char *N) {
- MachinePassRegistryNode<FunctionPassCtor> *Node = Registry.Find(N);
- return Node ? Node->getCtor() : NULL;
- }
-
-};
-
-
-//===----------------------------------------------------------------------===//
-///
-/// RegisterScheduler class - Track the registration of instruction schedulers.
-///
-//===----------------------------------------------------------------------===//
-
-class ScheduleDAG;
-class SelectionDAG;
-class MachineBasicBlock;
-
-class RegisterScheduler : public
- MachinePassRegistryNode<ScheduleDAG *(*)(SelectionDAG*, MachineBasicBlock*)> {
-
-public:
-
- typedef ScheduleDAG *(*FunctionPassCtor)(SelectionDAG*, MachineBasicBlock*);
-
- static MachinePassRegistry<FunctionPassCtor> Registry;
-
- RegisterScheduler(const char *N, const char *D, FunctionPassCtor C)
- : MachinePassRegistryNode<FunctionPassCtor>(N, D, C)
- { Registry.Add(this); }
- ~RegisterScheduler() { Registry.Remove(this); }
-
-
- // Accessors.
- //
- RegisterScheduler *getNext() const {
- return (RegisterScheduler *)
- MachinePassRegistryNode<FunctionPassCtor>::getNext();
- }
- static RegisterScheduler *getList() {
- return (RegisterScheduler *)Registry.getList();
- }
- static FunctionPassCtor getCache() {
- return Registry.getCache();
- }
- static void setCache(FunctionPassCtor C) {
- Registry.setCache(C);
- }
- static void setListener(MachinePassRegistryListener *L) {
- Registry.setListener(L);
- }
-
-
- /// FirstCtor - Finds the first instruction scheduler in registration
- /// list and returns its creator function, otherwise return NULL.
- static FunctionPassCtor FirstCtor() {
- MachinePassRegistryNode<FunctionPassCtor> *Node = Registry.getList();
- return Node ? Node->getCtor() : NULL;
- }
-
-
- /// FindCtor - Finds a instruction scheduler in registration list and returns
- /// its creator function, otherwise return NULL.
- static FunctionPassCtor FindCtor(const char *N) {
- MachinePassRegistryNode<FunctionPassCtor> *Node = Registry.Find(N);
- return Node ? Node->getCtor() : NULL;
- }
-