Class ControlFlowGraphReducer
- java.lang.Object
-
- org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphReducer
-
public class ControlFlowGraphReducer extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ControlFlowGraphReducer()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static booleanaggregateConditionalBranches(BasicBlock basicBlock)protected static voidchangeEndLoopToJump(java.util.BitSet visited, BasicBlock target, BasicBlock basicBlock)protected static booleancheckEclipseFinallyPattern(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset)protected static booleancheckJdk118TernaryOperatorPattern(BasicBlock next, BasicBlock nextNext, int ifByteCode)protected static BasicBlockclone(BasicBlock bb, BasicBlock next)protected static booleancontainsFinally(BasicBlock basicBlock)protected static voidconvertConditionalBranchToGotoInTernaryOperator(BasicBlock basicBlock, BasicBlock next, BasicBlock nextNext)protected static voidconvertGotoInTernaryOperatorToCondition(BasicBlock basicBlock, BasicBlock next)protected static voidcreateIf(BasicBlock basicBlock, BasicBlock sub, BasicBlock last, BasicBlock next)protected static voidcreateIfElse(int type, BasicBlock basicBlock, BasicBlock sub1, BasicBlock last1, BasicBlock sub2, BasicBlock last2, BasicBlock next)protected static BasicBlockcreateLeftCondition(BasicBlock basicBlock)protected static BasicBlockcreateLeftInverseCondition(BasicBlock basicBlock)protected static BasicBlockgetLastConditionalBranch(java.util.BitSet visited, BasicBlock basicBlock)protected static BasicBlocknewJumpBasicBlock(BasicBlock bb, BasicBlock target)static booleanreduce(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)static booleanreduce(ControlFlowGraph cfg)protected static booleanreduceConditionalBranch(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static booleanreduceConditionalBranch(BasicBlock basicBlock)protected static booleanreduceJsr(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static booleanreduceLoop(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static booleanreduceSwitchDeclaration(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static booleanreduceTryDeclaration(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static voidremoveJsrAndMergeSubTry(BasicBlock basicBlock)protected static voidremovePredecessors(BasicBlock basicBlock)protected static voidreplaceLoopStartWithSwitchBreak(java.util.BitSet visited, BasicBlock basicBlock)protected static BasicBlocksearchEndBlock(BasicBlock basicBlock, int maxOffset)protected static BasicBlocksearchJsrTarget(BasicBlock basicBlock, java.util.BitSet jsrTargets)protected static booleansearchLoopStart(BasicBlock basicBlock, int maxOffset)protected static BasicBlocksearchUpdateBlockAndCreateContinueLoop(java.util.BitSet visited, BasicBlock basicBlock)protected static BasicBlocksearchUpdateBlockAndCreateContinueLoop(java.util.BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock)protected static BasicBlocksplitSequence(BasicBlock basicBlock, int maxOffset)protected static BasicBlockupdateBlock(BasicBlock basicBlock, BasicBlock end, int maxOffset)protected static voidupdateConditionalBranches(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock)protected static voidupdateConditionTernaryOperator(BasicBlock basicBlock, BasicBlock nextNext)protected static voidupdateConditionTernaryOperator2(BasicBlock basicBlock)protected static voidvisit(java.util.BitSet visited, BasicBlock basicBlock, int maxOffset, java.util.HashSet<BasicBlock> ends)
-
-
-
Method Detail
-
reduce
public static boolean reduce(ControlFlowGraph cfg)
-
reduce
public static boolean reduce(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
reduceConditionalBranch
protected static boolean reduceConditionalBranch(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
reduceConditionalBranch
protected static boolean reduceConditionalBranch(BasicBlock basicBlock)
-
createIf
protected static void createIf(BasicBlock basicBlock, BasicBlock sub, BasicBlock last, BasicBlock next)
-
createIfElse
protected static void createIfElse(int type, BasicBlock basicBlock, BasicBlock sub1, BasicBlock last1, BasicBlock sub2, BasicBlock last2, BasicBlock next)
-
aggregateConditionalBranches
protected static boolean aggregateConditionalBranches(BasicBlock basicBlock)
-
createLeftCondition
protected static BasicBlock createLeftCondition(BasicBlock basicBlock)
-
createLeftInverseCondition
protected static BasicBlock createLeftInverseCondition(BasicBlock basicBlock)
-
updateConditionalBranches
protected static void updateConditionalBranches(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock)
-
updateConditionTernaryOperator
protected static void updateConditionTernaryOperator(BasicBlock basicBlock, BasicBlock nextNext)
-
updateConditionTernaryOperator2
protected static void updateConditionTernaryOperator2(BasicBlock basicBlock)
-
convertGotoInTernaryOperatorToCondition
protected static void convertGotoInTernaryOperatorToCondition(BasicBlock basicBlock, BasicBlock next)
-
convertConditionalBranchToGotoInTernaryOperator
protected static void convertConditionalBranchToGotoInTernaryOperator(BasicBlock basicBlock, BasicBlock next, BasicBlock nextNext)
-
checkJdk118TernaryOperatorPattern
protected static boolean checkJdk118TernaryOperatorPattern(BasicBlock next, BasicBlock nextNext, int ifByteCode)
-
reduceSwitchDeclaration
protected static boolean reduceSwitchDeclaration(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
searchLoopStart
protected static boolean searchLoopStart(BasicBlock basicBlock, int maxOffset)
-
reduceTryDeclaration
protected static boolean reduceTryDeclaration(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
containsFinally
protected static boolean containsFinally(BasicBlock basicBlock)
-
checkEclipseFinallyPattern
protected static boolean checkEclipseFinallyPattern(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset)
-
searchJsrTarget
protected static BasicBlock searchJsrTarget(BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
searchEndBlock
protected static BasicBlock searchEndBlock(BasicBlock basicBlock, int maxOffset)
-
splitSequence
protected static BasicBlock splitSequence(BasicBlock basicBlock, int maxOffset)
-
updateBlock
protected static BasicBlock updateBlock(BasicBlock basicBlock, BasicBlock end, int maxOffset)
-
removeJsrAndMergeSubTry
protected static void removeJsrAndMergeSubTry(BasicBlock basicBlock)
-
reduceJsr
protected static boolean reduceJsr(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
reduceLoop
protected static boolean reduceLoop(java.util.BitSet visited, BasicBlock basicBlock, java.util.BitSet jsrTargets)
-
getLastConditionalBranch
protected static BasicBlock getLastConditionalBranch(java.util.BitSet visited, BasicBlock basicBlock)
-
visit
protected static void visit(java.util.BitSet visited, BasicBlock basicBlock, int maxOffset, java.util.HashSet<BasicBlock> ends)
-
replaceLoopStartWithSwitchBreak
protected static void replaceLoopStartWithSwitchBreak(java.util.BitSet visited, BasicBlock basicBlock)
-
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(java.util.BitSet visited, BasicBlock basicBlock)
-
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(java.util.BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock)
-
removePredecessors
protected static void removePredecessors(BasicBlock basicBlock)
-
changeEndLoopToJump
protected static void changeEndLoopToJump(java.util.BitSet visited, BasicBlock target, BasicBlock basicBlock)
-
newJumpBasicBlock
protected static BasicBlock newJumpBasicBlock(BasicBlock bb, BasicBlock target)
-
clone
protected static BasicBlock clone(BasicBlock bb, BasicBlock next)
-
-