Class ControlFlowGraphReducer

java.lang.Object
org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphReducer

public class ControlFlowGraphReducer extends Object
  • Constructor Details

    • ControlFlowGraphReducer

      public ControlFlowGraphReducer()
  • Method Details

    • reduce

      public static boolean reduce(ControlFlowGraph cfg)
    • reduce

      public static boolean reduce(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets)
    • reduceConditionalBranch

      protected static boolean reduceConditionalBranch(BitSet visited, BasicBlock basicBlock, 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(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets)
    • searchLoopStart

      protected static boolean searchLoopStart(BasicBlock basicBlock, int maxOffset)
    • reduceTryDeclaration

      protected static boolean reduceTryDeclaration(BitSet visited, BasicBlock basicBlock, 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, 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(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets)
    • reduceLoop

      protected static boolean reduceLoop(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets)
    • getLastConditionalBranch

      protected static BasicBlock getLastConditionalBranch(BitSet visited, BasicBlock basicBlock)
    • visit

      protected static void visit(BitSet visited, BasicBlock basicBlock, int maxOffset, HashSet<BasicBlock> ends)
    • replaceLoopStartWithSwitchBreak

      protected static void replaceLoopStartWithSwitchBreak(BitSet visited, BasicBlock basicBlock)
    • searchUpdateBlockAndCreateContinueLoop

      protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock)
    • searchUpdateBlockAndCreateContinueLoop

      protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock)
    • removePredecessors

      protected static void removePredecessors(BasicBlock basicBlock)
    • changeEndLoopToJump

      protected static void changeEndLoopToJump(BitSet visited, BasicBlock target, BasicBlock basicBlock)
    • newJumpBasicBlock

      protected static BasicBlock newJumpBasicBlock(BasicBlock bb, BasicBlock target)
    • clone

      protected static BasicBlock clone(BasicBlock bb, BasicBlock next)