mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-05 09:24:28 +00:00
Fixed bug where instructions in the kernel were not ordered right to preserve dependencies in a cycle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18314 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -22,9 +22,9 @@
|
||||
using namespace llvm;
|
||||
|
||||
MSchedGraphNode::MSchedGraphNode(const MachineInstr* inst,
|
||||
MSchedGraph *graph,
|
||||
MSchedGraph *graph, unsigned idx,
|
||||
unsigned late, bool isBranch)
|
||||
: Inst(inst), Parent(graph), latency(late), isBranchInstr(isBranch) {
|
||||
: Inst(inst), Parent(graph), index(idx), latency(late), isBranchInstr(isBranch) {
|
||||
|
||||
//Add to the graph
|
||||
graph->addNode(inst, this);
|
||||
@ -113,7 +113,7 @@ void MSchedGraph::buildNodesAndEdges() {
|
||||
|
||||
//Save PHI instructions to deal with later
|
||||
std::vector<const MachineInstr*> phiInstrs;
|
||||
|
||||
unsigned index = 0;
|
||||
//Loop over instructions in MBB and add nodes and edges
|
||||
for (MachineBasicBlock::const_iterator MI = BB->begin(), e = BB->end(); MI != e; ++MI) {
|
||||
//Get each instruction of machine basic block, get the delay
|
||||
@ -149,7 +149,7 @@ void MSchedGraph::buildNodesAndEdges() {
|
||||
isBranch = true;
|
||||
|
||||
//Node is created and added to the graph automatically
|
||||
MSchedGraphNode *node = new MSchedGraphNode(MI, this, delay, isBranch);
|
||||
MSchedGraphNode *node = new MSchedGraphNode(MI, this, index, delay, isBranch);
|
||||
|
||||
DEBUG(std::cerr << "Created Node: " << *node << "\n");
|
||||
|
||||
@ -211,6 +211,7 @@ void MSchedGraph::buildNodesAndEdges() {
|
||||
}
|
||||
}
|
||||
}
|
||||
++index;
|
||||
}
|
||||
addMemEdges(memInstructions);
|
||||
addMachRegEdges(regNumtoNodeMap);
|
||||
|
Reference in New Issue
Block a user