soot.dava.toolkits.base.AST.structuredAnalysis
Class CopyPropagation

java.lang.Object
  extended bysoot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended bysoot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
          extended bysoot.dava.toolkits.base.AST.structuredAnalysis.CopyPropagation
All Implemented Interfaces:
Analysis

public class CopyPropagation
extends DepthFirstAdapter


Constructor Summary
CopyPropagation(ASTNode AST)
           
CopyPropagation(boolean verbose, ASTNode AST)
           
 
Method Summary
 List getDefs(Local var)
           
 List getUseList(ASTCondition cond)
           
 void handleCopyStmt(Stmt copyStmt, Object nodeOrStmt)
           
 void inASTStatementSequenceNode(ASTStatementSequenceNode node)
           
 boolean isCopyStmt(Stmt s)
           
 boolean isDefined(Local var)
           
 void outASTMethodNode(ASTMethodNode node)
           
 void removeStmt(Stmt stmt)
           
 void replace(Local from, Local to, Object use)
           
 void replaceBoxes(Local from, Local to, List useBoxes)
           
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
caseArrayRef, caseASTAndCondition, caseASTBinaryCondition, caseASTDoWhileNode, caseASTForLoopNode, caseASTIfElseNode, caseASTIfNode, caseASTLabeledBlockNode, caseASTMethodNode, caseASTOrCondition, caseASTStatementSequenceNode, caseASTSwitchNode, caseASTSynchronizedBlockNode, caseASTTryNode, caseASTUnaryCondition, caseASTUnconditionalLoopNode, caseASTWhileNode, caseBinopExpr, caseCastExpr, caseDefinitionStmt, caseExpr, caseInstanceFieldRef, caseInstanceInvokeExpr, caseInstanceOfExpr, caseInvokeExpr, caseInvokeStmt, caseNewArrayExpr, caseNewMultiArrayExpr, caseRef, caseReturnStmt, caseStaticFieldRef, caseStmt, caseThrowStmt, caseType, caseUnopExpr, caseValue, decideCaseExpr, decideCaseExprOrRef, decideCaseRef, inArrayRef, inASTAndCondition, inASTBinaryCondition, inASTDoWhileNode, inASTForLoopNode, inASTIfElseNode, inASTIfNode, inASTLabeledBlockNode, inASTMethodNode, inASTOrCondition, inASTSwitchNode, inASTSynchronizedBlockNode, inASTTryNode, inASTUnaryCondition, inASTUnconditionalLoopNode, inASTWhileNode, inBinopExpr, inCastExpr, inDefinitionStmt, inExpr, inInstanceFieldRef, inInstanceInvokeExpr, inInstanceOfExpr, inInvokeExpr, inInvokeStmt, inNewArrayExpr, inNewMultiArrayExpr, inRef, inReturnStmt, inStaticFieldRef, inStmt, inThrowStmt, inType, inUnopExpr, inValue, normalRetrieving, outArrayRef, outASTAndCondition, outASTBinaryCondition, outASTDoWhileNode, outASTForLoopNode, outASTIfElseNode, outASTIfNode, outASTLabeledBlockNode, outASTOrCondition, outASTStatementSequenceNode, outASTSwitchNode, outASTSynchronizedBlockNode, outASTTryNode, outASTUnaryCondition, outASTUnconditionalLoopNode, outASTWhileNode, outBinopExpr, outCastExpr, outDefinitionStmt, outExpr, outInstanceFieldRef, outInstanceInvokeExpr, outInstanceOfExpr, outInvokeExpr, outInvokeStmt, outNewArrayExpr, outNewMultiArrayExpr, outRef, outReturnStmt, outStaticFieldRef, outStmt, outThrowStmt, outType, outUnopExpr, outValue
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
defaultCase
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CopyPropagation

public CopyPropagation(ASTNode AST)

CopyPropagation

public CopyPropagation(boolean verbose,
                       ASTNode AST)
Method Detail

inASTStatementSequenceNode

public void inASTStatementSequenceNode(ASTStatementSequenceNode node)
Overrides:
inASTStatementSequenceNode in class DepthFirstAdapter

isCopyStmt

public boolean isCopyStmt(Stmt s)

handleCopyStmt

public void handleCopyStmt(Stmt copyStmt,
                           Object nodeOrStmt)

removeStmt

public void removeStmt(Stmt stmt)

replaceBoxes

public void replaceBoxes(Local from,
                         Local to,
                         List useBoxes)

getUseList

public List getUseList(ASTCondition cond)

replace

public void replace(Local from,
                    Local to,
                    Object use)

outASTMethodNode

public void outASTMethodNode(ASTMethodNode node)
Overrides:
outASTMethodNode in class DepthFirstAdapter

getDefs

public List getDefs(Local var)

isDefined

public boolean isDefined(Local var)