Class ControlFlowGraphReducer
java.lang.Object
org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphReducer
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static boolean
aggregateConditionalBranches
(BasicBlock basicBlock) protected static void
changeEndLoopToJump
(BitSet visited, BasicBlock target, BasicBlock basicBlock) protected static boolean
checkEclipseFinallyPattern
(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset) protected static boolean
checkJdk118TernaryOperatorPattern
(BasicBlock next, BasicBlock nextNext, int ifByteCode) protected static BasicBlock
clone
(BasicBlock bb, BasicBlock next) protected static boolean
containsFinally
(BasicBlock basicBlock) protected static void
convertConditionalBranchToGotoInTernaryOperator
(BasicBlock basicBlock, BasicBlock next, BasicBlock nextNext) protected static void
convertGotoInTernaryOperatorToCondition
(BasicBlock basicBlock, BasicBlock next) protected static void
createIf
(BasicBlock basicBlock, BasicBlock sub, BasicBlock last, BasicBlock next) protected static void
createIfElse
(int type, BasicBlock basicBlock, BasicBlock sub1, BasicBlock last1, BasicBlock sub2, BasicBlock last2, BasicBlock next) protected static BasicBlock
createLeftCondition
(BasicBlock basicBlock) protected static BasicBlock
createLeftInverseCondition
(BasicBlock basicBlock) protected static BasicBlock
getLastConditionalBranch
(BitSet visited, BasicBlock basicBlock) protected static BasicBlock
newJumpBasicBlock
(BasicBlock bb, BasicBlock target) static boolean
reduce
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) static boolean
reduce
(ControlFlowGraph cfg) protected static boolean
reduceConditionalBranch
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static boolean
reduceConditionalBranch
(BasicBlock basicBlock) protected static boolean
reduceJsr
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static boolean
reduceLoop
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static boolean
reduceSwitchDeclaration
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static boolean
reduceTryDeclaration
(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static void
removeJsrAndMergeSubTry
(BasicBlock basicBlock) protected static void
removePredecessors
(BasicBlock basicBlock) protected static void
replaceLoopStartWithSwitchBreak
(BitSet visited, BasicBlock basicBlock) protected static BasicBlock
searchEndBlock
(BasicBlock basicBlock, int maxOffset) protected static BasicBlock
searchJsrTarget
(BasicBlock basicBlock, BitSet jsrTargets) protected static boolean
searchLoopStart
(BasicBlock basicBlock, int maxOffset) protected static BasicBlock
searchUpdateBlockAndCreateContinueLoop
(BitSet visited, BasicBlock basicBlock) protected static BasicBlock
searchUpdateBlockAndCreateContinueLoop
(BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock) protected static BasicBlock
splitSequence
(BasicBlock basicBlock, int maxOffset) protected static BasicBlock
updateBlock
(BasicBlock basicBlock, BasicBlock end, int maxOffset) protected static void
updateConditionalBranches
(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock) protected static void
updateConditionTernaryOperator
(BasicBlock basicBlock, BasicBlock nextNext) protected static void
updateConditionTernaryOperator2
(BasicBlock basicBlock) protected static void
visit
(BitSet visited, BasicBlock basicBlock, int maxOffset, HashSet<BasicBlock> ends)
-
Constructor Details
-
ControlFlowGraphReducer
public ControlFlowGraphReducer()
-
-
Method Details
-
reduce
-
reduce
-
reduceConditionalBranch
protected static boolean reduceConditionalBranch(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
reduceConditionalBranch
-
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
-
createLeftCondition
-
createLeftInverseCondition
-
updateConditionalBranches
protected static void updateConditionalBranches(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock) -
updateConditionTernaryOperator
-
updateConditionTernaryOperator2
-
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(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
searchLoopStart
-
reduceTryDeclaration
protected static boolean reduceTryDeclaration(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
containsFinally
-
checkEclipseFinallyPattern
protected static boolean checkEclipseFinallyPattern(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset) -
searchJsrTarget
-
searchEndBlock
-
splitSequence
-
updateBlock
-
removeJsrAndMergeSubTry
-
reduceJsr
-
reduceLoop
-
getLastConditionalBranch
-
visit
protected static void visit(BitSet visited, BasicBlock basicBlock, int maxOffset, HashSet<BasicBlock> ends) -
replaceLoopStartWithSwitchBreak
-
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock) -
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock) -
removePredecessors
-
changeEndLoopToJump
-
newJumpBasicBlock
-
clone
-