Added extra constructor for superblocks.
authorTanya Lattner <tonic@nondot.org>
Sun, 1 May 2005 01:25:53 +0000 (01:25 +0000)
committerTanya Lattner <tonic@nondot.org>
Sun, 1 May 2005 01:25:53 +0000 (01:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21642 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp
lib/Target/SparcV9/ModuloScheduling/MSchedGraph.h

index cc2edf2f051b2197c780db2f3c52db0a9ebeb828..97f047bbbf26044777c7b7ea30d8020eb2726d05 100644 (file)
@@ -167,6 +167,28 @@ MSchedGraph::MSchedGraph(const MachineBasicBlock *bb,
   //addBranchEdges();
 }
 
+//Create a graph for a machine block. The ignoreInstrs map is so that
+//we ignore instructions associated to the index variable since this
+//is a special case in Modulo Scheduling.  We only want to deal with
+//the body of the loop.
+MSchedGraph::MSchedGraph(std::vector<const MachineBasicBlock*> &bbs, 
+                        const TargetMachine &targ, 
+                        std::map<const MachineInstr*, unsigned> &ignoreInstrs, 
+                        DependenceAnalyzer &DA, 
+                        std::map<MachineInstr*, Instruction*> &machineTollvm)
+  : BBs(bbs), Target(targ) {
+
+  //Make sure there is at least one BB and it is not null,
+  assert(((bbs.size() >= 1) &&  bbs[1] != NULL) && "Basic Block is null");
+  
+  //Create nodes and edges for this BB
+  buildNodesAndEdges(ignoreInstrs, DA, machineTollvm);
+
+  //Experimental!
+  //addBranchEdges();
+}
+
+
 //Copies the graph and keeps a map from old to new nodes
 MSchedGraph::MSchedGraph(const MSchedGraph &G, 
                         std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes) 
index 6820ca9cbe52c9aa25015e32fc7c1fe56e4d8aab..c3f7b6995f757e4720e14f4f1856fb184c10e073 100644 (file)
@@ -259,6 +259,12 @@ namespace llvm {
     //Copy constructor with maps to link old nodes to new nodes
     MSchedGraph(const MSchedGraph &G, std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes);
     
+    MSchedGraph(std::vector<const MachineBasicBlock*> &bbs, 
+               const TargetMachine &targ, 
+               std::map<const MachineInstr*, unsigned> &ignoreInstrs, 
+               DependenceAnalyzer &DA, 
+               std::map<MachineInstr*, Instruction*> &machineTollvm);
+
     //Print graph
     void print(std::ostream &os) const;