Class IPAPassFlagFunctionsRecompileOnce

java.lang.Object
org.apache.sysds.hops.ipa.IPAPass
org.apache.sysds.hops.ipa.IPAPassFlagFunctionsRecompileOnce

public class IPAPassFlagFunctionsRecompileOnce extends IPAPass
This rewrite marks functions with loops as recompile once in order to reduce recompilation overhead. Such functions are recompiled on function entry with the size information of the function inputs which is often sufficient to decide upon execution types; in case there are still unknowns, the traditional recompilation per atomic block still applies.
  • Constructor Details

    • IPAPassFlagFunctionsRecompileOnce

      public IPAPassFlagFunctionsRecompileOnce()
  • Method Details

    • isApplicable

      public boolean isApplicable(FunctionCallGraph fgraph)
      Description copied from class: IPAPass
      Indicates if an IPA pass is applicable for the current configuration such as global flags or the chosen execution mode (e.g., HYBRID).
      Specified by:
      isApplicable in class IPAPass
      Parameters:
      fgraph - function call graph
      Returns:
      true if applicable.
    • rewriteProgram

      public boolean rewriteProgram(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)
      Description copied from class: IPAPass
      Rewrites the given program or its functions in place, with access to the read-only function call graph.
      Specified by:
      rewriteProgram in class IPAPass
      Parameters:
      prog - dml program
      fgraph - function call graph
      fcallSizes - function call size infos
      Returns:
      true if function call graph should be rebuild
    • rFlagFunctionForRecompileOnce

      public boolean rFlagFunctionForRecompileOnce(StatementBlock sb, boolean inLoop)
      Returns true if this statementblock requires recompilation inside a loop statement block.
      Parameters:
      sb - statement block
      inLoop - true if in loop
      Returns:
      true if statement block requires recompilation inside a loop statement block