at.dms.backend
Class StackScheduler

java.lang.Object
  |
  +--at.dms.backend.TreeWalker
        |
        +--at.dms.backend.StackScheduler

public class StackScheduler
extends TreeWalker

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
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StackScheduler

public StackScheduler(BasicBlock[] bblocks,
                      BasicBlock[] eblocks)
Method Detail

run

public void run()

processNode

protected void processNode(QNode node)
Processes the node.
Overrides:
processNode in class TreeWalker
Parameters:
node - The node to be processed.

kill

protected void kill()
Processes the node.
Overrides:
kill in class TreeWalker
Parameters:
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.