harpoon.Analysis.DataFlow
Class SpaceHeavyLiveTemps

java.lang.Object
  extended by harpoon.Analysis.BasicBlockInterfVisitor
      extended by harpoon.Analysis.DataFlow.DataFlowBasicBlockVisitor
          extended by harpoon.Analysis.DataFlow.BackwardDataFlowBasicBlockVisitor
              extended by harpoon.Analysis.DataFlow.LiveVars.BBVisitor
                  extended by harpoon.Analysis.DataFlow.LiveTemps
                      extended by harpoon.Analysis.DataFlow.SpaceHeavyLiveTemps

public class SpaceHeavyLiveTemps
extends LiveTemps

SpaceHeavyLiveTemps is an extension of LiveTemps that keeps ALL of the results of the queries that it has calculated alive. This can lead to large space overhead but this is offset by the decrease in required time for repeated queries. I plan to eventually paraterize this class with a scaling factor so that space can be decreased by a constant-factor at the cost of a corresponding increase in recomputation-times; for now the class can be treated as if the scaling factor were equal to 1.

Version:
$Id: SpaceHeavyLiveTemps.java,v 1.7 2004/02/08 01:51:05 cananian Exp $
Author:
Felix S. Klock II <pnkfelix@mit.edu>

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.Analysis.DataFlow.LiveVars.BBVisitor
LiveVars.BBVisitor.LiveVarInfo
 
Field Summary
 
Fields inherited from class harpoon.Analysis.DataFlow.LiveTemps
mySetFactory, ud
 
Fields inherited from class harpoon.Analysis.DataFlow.LiveVars.BBVisitor
bbFact
 
Constructor Summary
SpaceHeavyLiveTemps(BasicBlock.Factory bbf, Set liveOnExit)
          Creates a SpaceHeavyLiveTemps.
SpaceHeavyLiveTemps(BasicBlock.Factory bbf, Set liveOnExit, SetFactory tempSetFact, UseDefer ud)
           
SpaceHeavyLiveTemps(BasicBlock.Factory bbf, Set liveOnExit, SetFactory tempSetFact, UseDefer ud, CFGrapher grapher)
           
SpaceHeavyLiveTemps(BasicBlock.Factory bbf, Set liveOnExit, UseDefer ud)
           
SpaceHeavyLiveTemps(BasicBlock.Factory bbf, Set liveOnExit, UseDefer ud, CFGrapher grapher)
           
 
Method Summary
 Set getLiveAfter(HCodeElement hce)
          Returns the Set of Temps that are live on exit from hce.
static LiveTemps make(HCode code, Set liveOnExit)
           
 
Methods inherited from class harpoon.Analysis.DataFlow.LiveTemps
dumpElems, findUniverse, getLiveBefore, make, makeUseDef, solve
 
Methods inherited from class harpoon.Analysis.DataFlow.LiveVars.BBVisitor
dump, dump, getLiveOnEntry, getLiveOnExit, initializeBBtoLVI, merge, visit
 
Methods inherited from class harpoon.Analysis.DataFlow.BackwardDataFlowBasicBlockVisitor
addSuccessors
 
Methods inherited from class harpoon.Analysis.DataFlow.DataFlowBasicBlockVisitor
db, visit
 
Methods inherited from class harpoon.Analysis.BasicBlockInterfVisitor
visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpaceHeavyLiveTemps

public SpaceHeavyLiveTemps(BasicBlock.Factory bbf,
                           Set liveOnExit)
Creates a SpaceHeavyLiveTemps.


SpaceHeavyLiveTemps

public SpaceHeavyLiveTemps(BasicBlock.Factory bbf,
                           Set liveOnExit,
                           UseDefer ud)

SpaceHeavyLiveTemps

public SpaceHeavyLiveTemps(BasicBlock.Factory bbf,
                           Set liveOnExit,
                           UseDefer ud,
                           CFGrapher grapher)

SpaceHeavyLiveTemps

public SpaceHeavyLiveTemps(BasicBlock.Factory bbf,
                           Set liveOnExit,
                           SetFactory tempSetFact,
                           UseDefer ud)

SpaceHeavyLiveTemps

public SpaceHeavyLiveTemps(BasicBlock.Factory bbf,
                           Set liveOnExit,
                           SetFactory tempSetFact,
                           UseDefer ud,
                           CFGrapher grapher)
Method Detail

make

public static LiveTemps make(HCode code,
                             Set liveOnExit)

getLiveAfter

public Set getLiveAfter(HCodeElement hce)
Description copied from class: LiveTemps
Returns the Set of Temps that are live on exit from hce.
requires: A DataFlow Equation Solver has been run to completion on the graph of BasicBlocks containing some block that contains hce, with this as the DataFlowBasicBlockVisitor.
effects: Returns a Set of Temps that are live on exit from hce.

Overrides:
getLiveAfter in class LiveTemps