Interface IEMasterOptimizer

All Superinterfaces:
IMasterOptimizer<IERoutineContext>
All Known Implementing Classes:
EMasterOptimizer

public interface IEMasterOptimizer extends IMasterOptimizer<IERoutineContext>
Base interface for IR master optimizers. The standard implementation is EMasterOptimizer.
  • Method Details

    • addDisregardedOutputFilter

      void addDisregardedOutputFilter(IEOptFilterCanDiscard filter)
    • addDisregardedOutputBits

      void addDisregardedOutputBits(Collection<Integer> disregardedOutputBits)
    • addDisregardedOutputVariables

      void addDisregardedOutputVariables(Collection<? extends IEVar> disregardedOutputVars)
    • getDisregardedOutputRegisters

      Set<Integer> getDisregardedOutputRegisters()
    • addDefaultInput

      void addDefaultInput(int bit, IEImm val)
    • getDefaultInput

      IEImm getDefaultInput(int reg)
    • canDiscardReachingOutDefinition

      boolean canDiscardReachingOutDefinition(IERoutineContext ectx, long insnAddress, int def)
      Check if an unused variable definition, bleeding out from the routine, may be safely discarded.

      The implementation may depend on the master optimizer's mode.

      Parameters:
      ectx -
      insnAddress - instruction address
      def - defined, unused variable
      Returns:
    • canDiscardUnusedDefinition

      boolean canDiscardUnusedDefinition(IERoutineContext ectx, long insnAddress, int def)
      Check if an unused variable definition, not bleeding out from the routine, may be safely discarded.

      The implementation may depend on the master optimizer's mode.

      Parameters:
      ectx -
      insnAddress - instruction address
      def - defined, unused variable
      Returns: