|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--at.dms.backend.TreeWalker | +--at.dms.backend.StackScheduler
This class tries to find the best scheduling to minimize local vars.
Constructor Summary | |
StackScheduler(BasicBlock[] bblocks,
BasicBlock[] eblocks)
|
Method Summary | |
protected void |
kill()
Processes the node. |
protected void |
processNode(QNode node)
Processes the node. |
void |
run()
|
Methods inherited from class at.dms.backend.TreeWalker |
getBasicBlock, removeNode, traverse |
Methods inherited from class java.lang.Object |
|
Constructor Detail |
public StackScheduler(BasicBlock[] bblocks, BasicBlock[] eblocks)
Method Detail |
public void run()
protected void processNode(QNode node)
processNode
in class TreeWalker
node
- The node to be processed.protected void kill()
kill
in class TreeWalker
node
- the node to be processed
protected void processNode(QNode node) {
QTemporary[] uses = node.getUses();
for (int i = 0; i < uses.length; i++) {
QTemporary temp = uses[i];
if (!isInList(temp, node.getLiveout()) && defs.containsKey(temp)) {
QQuadruple defNode = (QQuadruple)defs.get(temp);
removeNode(defNode);
//node.setParameter(temp, defNode);
System.out.println("YOU'VE GOT IT " + defNode);
}
}
if (node.isStore()) {
QTemporary def = node.getDef();
defs.put(def, node);
}
}
/**
Called when a branch is reached.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |