Class CallListAnalysis

All Implemented Interfaces:
DataflowAnalysis<CallList>

public class CallListAnalysis extends AbstractDataflowAnalysis<CallList>
  • Constructor Details

    • CallListAnalysis

      public CallListAnalysis(CFG cfg, DepthFirstSearch dfs, org.apache.bcel.generic.ConstantPoolGen cpg)
  • Method Details

    • initEntryFact

      public void initEntryFact(CallList fact)
      Description copied from interface: DataflowAnalysis
      Initialize the "entry" fact for the graph.
    • isForwards

      public boolean isForwards()
      Description copied from interface: DataflowAnalysis
      Returns true if the analysis is forwards, false if backwards.
    • getBlockOrder

      public BlockOrder getBlockOrder(CFG cfg)
      Description copied from interface: DataflowAnalysis
      Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop.
      Parameters:
      cfg - the CFG upon which we're performing dataflow analysis
    • makeFactTop

      public void makeFactTop(CallList fact)
      Description copied from interface: DataflowAnalysis
      Make given fact the top value.
    • isTop

      public boolean isTop(CallList fact)
      Description copied from interface: DataflowAnalysis
      Is the given fact the top value.
    • createFact

      public CallList createFact()
      Description copied from interface: DataflowAnalysis
      Create empty (uninitialized) dataflow facts for one program point. A valid value will be copied into it before it is used.
    • same

      public boolean same(CallList a, CallList b)
      Description copied from interface: DataflowAnalysis
      Are given dataflow facts the same?
    • meetInto

      public void meetInto(CallList start, Edge edge, CallList result) throws DataflowAnalysisException
      Description copied from interface: DataflowAnalysis
      Meet a dataflow fact associated with an incoming edge into another fact. This is used to determine the start fact for a basic block.
      Parameters:
      start - the predecessor fact (incoming edge)
      edge - the edge from the predecessor
      result - the result fact
      Throws:
      DataflowAnalysisException
    • copy

      public void copy(CallList source, CallList dest)
      Description copied from interface: DataflowAnalysis
      Copy dataflow facts.
    • transferInstruction

      public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock, CallList fact) throws DataflowAnalysisException
      Description copied from class: AbstractDataflowAnalysis
      Transfer function for a single instruction.
      Specified by:
      transferInstruction in class AbstractDataflowAnalysis<CallList>
      Parameters:
      handle - the instruction
      basicBlock - the BasicBlock containing the instruction; needed to disambiguate instructions in inlined JSR subroutines
      fact - which should be modified based on the instruction
      Throws:
      DataflowAnalysisException
    • isFactValid

      public boolean isFactValid(CallList fact)
      Description copied from class: AbstractDataflowAnalysis
      Determine whether the given fact is valid (neither top nor bottom).
      Specified by:
      isFactValid in class AbstractDataflowAnalysis<CallList>