mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	Added extra constructor for superblocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21642 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -167,6 +167,28 @@ MSchedGraph::MSchedGraph(const MachineBasicBlock *bb,
 | 
				
			|||||||
  //addBranchEdges();
 | 
					  //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
 | 
					//Copies the graph and keeps a map from old to new nodes
 | 
				
			||||||
MSchedGraph::MSchedGraph(const MSchedGraph &G, 
 | 
					MSchedGraph::MSchedGraph(const MSchedGraph &G, 
 | 
				
			||||||
			 std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes) 
 | 
								 std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes) 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -259,6 +259,12 @@ namespace llvm {
 | 
				
			|||||||
    //Copy constructor with maps to link old nodes to new nodes
 | 
					    //Copy constructor with maps to link old nodes to new nodes
 | 
				
			||||||
    MSchedGraph(const MSchedGraph &G, std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes);
 | 
					    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
 | 
					    //Print graph
 | 
				
			||||||
    void print(std::ostream &os) const;
 | 
					    void print(std::ostream &os) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user