Class IPAPassFlagLoopsRecompileOnce


  • public class IPAPassFlagLoopsRecompileOnce
    extends IPAPass
    This rewrite marks loops in the main program as recompile once in order to reduce recompilation overhead. We mark only top-level loops and thus don't need any reset because these loops are executed just once. All other loops are handled by the function-recompile-once rewrite already.
    • Constructor Detail

      • IPAPassFlagLoopsRecompileOnce

        public IPAPassFlagLoopsRecompileOnce()
    • Method Detail

      • 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)