Class AbstractDataflowAnalysis<Fact>

    • Constructor Detail

      • AbstractDataflowAnalysis

        public AbstractDataflowAnalysis()
    • Method Detail

      • transferInstruction

        public abstract void transferInstruction​(org.apache.bcel.generic.InstructionHandle handle,
                                                 BasicBlock basicBlock,
                                                 Fact fact)
                                          throws DataflowAnalysisException
        Transfer function for a single instruction.
        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

        @CheckReturnValue
        public abstract boolean isFactValid​(Fact fact)
        Determine whether the given fact is valid (neither top nor bottom).
      • transfer

        public void transfer​(BasicBlock basicBlock,
                             @CheckForNull
                             org.apache.bcel.generic.InstructionHandle end,
                             Fact start,
                             Fact result)
                      throws DataflowAnalysisException
        Description copied from interface: DataflowAnalysis
        Transfer function for the analysis. Taking dataflow facts at start (which might be either the entry or exit of the block, depending on whether the analysis is forwards or backwards), modify result to be the facts at the other end of the block.
        Parameters:
        basicBlock - the basic block
        end - if nonnull, stop before considering this instruction; otherwise, consider all of the instructions in the basic block
        start - dataflow facts at beginning of block (if forward analysis) or end of block (if backwards analysis)
        result - resulting dataflow facts at other end of block
        Throws:
        DataflowAnalysisException