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

java.lang.Object
  extended by soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended by soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
          extended by soot.dava.toolkits.base.AST.traversals.CopyPropagation
All Implemented Interfaces:
Analysis

public class CopyPropagation
extends DepthFirstAdapter


Field Summary
static boolean DEBUG
           
 
Constructor Summary
CopyPropagation(ASTNode AST)
           
CopyPropagation(boolean verbose, ASTNode AST)
           
 
Method Summary
 void handleCopyStmt(DefinitionStmt copyStmt)
           
 void inASTStatementSequenceNode(ASTStatementSequenceNode node)
           
 boolean isCopyStmt(Stmt s)
           
 void modifyUseBoxes(Local from, Local to, List useBoxes)
           
 void modifyUses(Local from, Local to, ASTCondition cond)
           
 void outASTMethodNode(ASTMethodNode node)
           
 void removeStmt(Stmt stmt)
           
 void replace(Local from, Local to, Object use)
           
 
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, caseDVariableDeclarationStmt, caseExpr, caseExprOrRefValueBox, caseInstanceFieldRef, caseInstanceInvokeExpr, caseInstanceOfExpr, caseInvokeExpr, caseInvokeStmt, caseNewArrayExpr, caseNewMultiArrayExpr, caseRef, caseReturnStmt, caseStaticFieldRef, caseStmt, caseThrowStmt, caseType, caseUnopExpr, caseValue, debug, decideCaseExpr, decideCaseExprOrRef, decideCaseRef, inArrayRef, inASTAndCondition, inASTBinaryCondition, inASTDoWhileNode, inASTForLoopNode, inASTIfElseNode, inASTIfNode, inASTLabeledBlockNode, inASTMethodNode, inASTOrCondition, inASTSwitchNode, inASTSynchronizedBlockNode, inASTTryNode, inASTUnaryCondition, inASTUnconditionalLoopNode, inASTWhileNode, inBinopExpr, inCastExpr, inDefinitionStmt, inDVariableDeclarationStmt, inExpr, inExprOrRefValueBox, 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, outDVariableDeclarationStmt, outExpr, outExprOrRefValueBox, 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
 

Field Detail

DEBUG

public static boolean DEBUG
Constructor Detail

CopyPropagation

public CopyPropagation(ASTNode AST)

CopyPropagation

public CopyPropagation(boolean verbose,
                       ASTNode AST)
Method Detail

outASTMethodNode

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

inASTStatementSequenceNode

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

isCopyStmt

public boolean isCopyStmt(Stmt s)

handleCopyStmt

public void handleCopyStmt(DefinitionStmt copyStmt)

removeStmt

public void removeStmt(Stmt stmt)

modifyUses

public void modifyUses(Local from,
                       Local to,
                       ASTCondition cond)

modifyUseBoxes

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

replace

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