[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