[llvm-commits] CVS: llvm/include/llvm/CodeGen/RegAllocRegistry.h SchedulerRegistry.h

Jim Laskey jlaskey at apple.com
Wed Aug 2 05:28:10 PDT 2006



Changes in directory llvm/include/llvm/CodeGen:

RegAllocRegistry.h added (r1.1)
SchedulerRegistry.h added (r1.1)
---
Log message:

Breaking out specialized classes.


---
Diffs of the changes:  (+135 -0)

 RegAllocRegistry.h  |   64 ++++++++++++++++++++++++++++++++++++++++++++++
 SchedulerRegistry.h |   71 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 135 insertions(+)


Index: llvm/include/llvm/CodeGen/RegAllocRegistry.h
diff -c /dev/null llvm/include/llvm/CodeGen/RegAllocRegistry.h:1.1
*** /dev/null	Wed Aug  2 07:28:01 2006
--- llvm/include/llvm/CodeGen/RegAllocRegistry.h	Wed Aug  2 07:27:50 2006
***************
*** 0 ****
--- 1,64 ----
+ //===-- llvm/CodeGen/RegAllocRegistry.h -------------------------*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by the James M. Laskey and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file contains the implementation for register allocator function
+ // pass registry (RegisterRegAlloc).
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef LLVM_CODEGENREGALLOCREGISTRY_H
+ #define LLVM_CODEGENREGALLOCREGISTRY_H
+ 
+ #include "llvm/CodeGen/MachinePassRegistry.h"
+ 
+ namespace llvm {
+ 
+ //===----------------------------------------------------------------------===//
+ ///
+ /// RegisterRegAlloc class - Track the registration of register allocators.
+ ///
+ //===----------------------------------------------------------------------===//
+ class RegisterRegAlloc : public MachinePassRegistryNode {
+ 
+ public:
+ 
+   typedef FunctionPass *(*FunctionPassCtor)();
+ 
+   static MachinePassRegistry Registry;
+ 
+   RegisterRegAlloc(const char *N, const char *D, FunctionPassCtor C)
+   : MachinePassRegistryNode(N, D, (MachinePassCtor)C)
+   { Registry.Add(this); }
+   ~RegisterRegAlloc() { Registry.Remove(this); }
+   
+ 
+   // Accessors.
+   //
+   RegisterRegAlloc *getNext() const {
+     return (RegisterRegAlloc *)MachinePassRegistryNode::getNext();
+   }
+   static RegisterRegAlloc *getList() {
+     return (RegisterRegAlloc *)Registry.getList();
+   }
+   static FunctionPassCtor getDefault() {
+     return (FunctionPassCtor)Registry.getDefault();
+   }
+   static void setDefault(FunctionPassCtor C) {
+     Registry.setDefault((MachinePassCtor)C);
+   }
+   static void setListener(MachinePassRegistryListener *L) {
+     Registry.setListener(L);
+   }
+   
+ };
+ 
+ } // end namespace llvm
+ 
+ 
+ #endif


Index: llvm/include/llvm/CodeGen/SchedulerRegistry.h
diff -c /dev/null llvm/include/llvm/CodeGen/SchedulerRegistry.h:1.1
*** /dev/null	Wed Aug  2 07:28:10 2006
--- llvm/include/llvm/CodeGen/SchedulerRegistry.h	Wed Aug  2 07:27:50 2006
***************
*** 0 ****
--- 1,71 ----
+ //===-- llvm/CodeGen/SchedulerRegistry.h ------------------------*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by the James M. Laskey and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file contains the implementation for instruction scheduler function
+ // pass registry (RegisterScheduler).
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef LLVM_CODEGENSCHEDULERREGISTRY_H
+ #define LLVM_CODEGENSCHEDULERREGISTRY_H
+ 
+ #include "llvm/CodeGen/MachinePassRegistry.h"
+ 
+ namespace llvm {
+ 
+ //===----------------------------------------------------------------------===//
+ ///
+ /// RegisterScheduler class - Track the registration of instruction schedulers.
+ ///
+ //===----------------------------------------------------------------------===//
+ 
+ class SelectionDAGISel;
+ class ScheduleDAG;
+ class SelectionDAG;
+ class MachineBasicBlock;
+ 
+ class RegisterScheduler : public MachinePassRegistryNode {
+ 
+ public:
+ 
+   typedef ScheduleDAG *(*FunctionPassCtor)(SelectionDAGISel*, SelectionDAG*,
+                                            MachineBasicBlock*);
+ 
+   static MachinePassRegistry Registry;
+ 
+   RegisterScheduler(const char *N, const char *D, FunctionPassCtor C)
+   : MachinePassRegistryNode(N, D, (MachinePassCtor)C)
+   { Registry.Add(this); }
+   ~RegisterScheduler() { Registry.Remove(this); }
+   
+ 
+   // Accessors.
+   //
+   RegisterScheduler *getNext() const {
+     return (RegisterScheduler *)MachinePassRegistryNode::getNext();
+   }
+   static RegisterScheduler *getList() {
+     return (RegisterScheduler *)Registry.getList();
+   }
+   static FunctionPassCtor getDefault() {
+     return (FunctionPassCtor)Registry.getDefault();
+   }
+   static void setDefault(FunctionPassCtor C) {
+     Registry.setDefault((MachinePassCtor)C);
+   }
+   static void setListener(MachinePassRegistryListener *L) {
+     Registry.setListener(L);
+   }
+   
+ };
+ 
+ } // end namespace llvm
+ 
+ 
+ #endif






More information about the llvm-commits mailing list