coins.opt
Class GlobalVariableTemporalize

java.lang.Object
  extended bycoins.opt.GlobalVariableTemporalize

public class GlobalVariableTemporalize
extends java.lang.Object

Replace global variables to temporal variable in supprogram.


Field Summary
protected  AliasAnal fAliasAnal
          AliasAnal this object refer
protected  int fMinimumUseCountForTemporalize
          Minumum use count for temporalize default value is 2.
protected  SubpDefinition fSubpDef
          FlowResults this object refer
protected  SubpFlow fSubpFlow
          FlowResults this object refer
protected  java.util.Set fValidFunctionSet
          Set of function names that is not modify any global vars.
 
Constructor Summary
GlobalVariableTemporalize(SubpDefinition pSubpDef, SubpFlow pSubpFlow, AliasAnal pAliasAnal)
          Construct this object.
 
Method Summary
 boolean doBBlock(BBlock pBBlock)
          Replace global variables to temporal variable in basic block
 boolean doSubprogram()
          Replace global variables to temporal variable in subprogram
protected  AliasAnal getAliasAnal()
          Get AliasAnal this object refer.
protected  Debug getDebug()
          Get Debug this object refer.
 int getMinimumUseCountForTemporalize()
          Get minimum use count for temporalize.
protected  RecordAlias getRecordAlias()
          Get RecordAlias this object refer.
protected  SubpDefinition getSubpDef()
          Get SubpDefinition this object refer.
protected  SubpFlow getSubpFlow()
          Get SubpFlow this object refer.
 java.util.Set getValidFunctions()
          Get function names that is not modify any global vars.
protected  void initialize()
          Initialize for replace global variables to temporal variable in supprogram.
 void setMinimumUseCountForTemporalize(int pCount)
          Set minimum use count for temporalize.
 void setValidFunctions(java.util.Set pValidFunctions)
          Set function names that is not modify any global vars.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fSubpDef

protected final SubpDefinition fSubpDef
FlowResults this object refer


fSubpFlow

protected final SubpFlow fSubpFlow
FlowResults this object refer


fAliasAnal

protected final AliasAnal fAliasAnal
AliasAnal this object refer


fMinimumUseCountForTemporalize

protected int fMinimumUseCountForTemporalize
Minumum use count for temporalize default value is 2.


fValidFunctionSet

protected java.util.Set fValidFunctionSet
Set of function names that is not modify any global vars.

Constructor Detail

GlobalVariableTemporalize

public GlobalVariableTemporalize(SubpDefinition pSubpDef,
                                 SubpFlow pSubpFlow,
                                 AliasAnal pAliasAnal)
Construct this object.

Parameters:
pSubpDef - Subp definition of adapting global variable temporalize
pSubpFlow - SubpFlow whitch is refered/changed.
pAliasAnal - Alias analysis whitch is refered.
Method Detail

getSubpDef

protected SubpDefinition getSubpDef()
Get SubpDefinition this object refer.

Returns:
SubpDefinition this object refer

getSubpFlow

protected SubpFlow getSubpFlow()
Get SubpFlow this object refer.

Returns:
SubpFlow this object refer

getAliasAnal

protected AliasAnal getAliasAnal()
Get AliasAnal this object refer.

Returns:
AliasAnal this object refer

getRecordAlias

protected RecordAlias getRecordAlias()
Get RecordAlias this object refer.

Returns:
RecordAlias this object refer

getDebug

protected Debug getDebug()
Get Debug this object refer.

Returns:
Debug this object refer

getMinimumUseCountForTemporalize

public int getMinimumUseCountForTemporalize()
Get minimum use count for temporalize.

Returns:
Minimum use count for temporalize

setMinimumUseCountForTemporalize

public void setMinimumUseCountForTemporalize(int pCount)
Set minimum use count for temporalize.

Parameters:
pCount - minimum use count for temporalize.

getValidFunctions

public java.util.Set getValidFunctions()
Get function names that is not modify any global vars.

Returns:
Set of function names that is not modify any global vars.

setValidFunctions

public void setValidFunctions(java.util.Set pValidFunctions)
Set function names that is not modify any global vars.

Parameters:
pValidFunctions - Set of function names that is not modify any global vars.

doSubprogram

public boolean doSubprogram()
Replace global variables to temporal variable in subprogram

Returns:
true if changed, else false.

doBBlock

public boolean doBBlock(BBlock pBBlock)
Replace global variables to temporal variable in basic block

Parameters:
pBBlock - BBlock replaceing global variables to temporal variable
Returns:
true if changed, else false.

initialize

protected void initialize()
Initialize for replace global variables to temporal variable in supprogram.