Package org.apache.sysds.hops.ipa
Class IPAPassFlagFunctionsRecompileOnce
java.lang.Object
org.apache.sysds.hops.ipa.IPAPass
org.apache.sysds.hops.ipa.IPAPassFlagFunctionsRecompileOnce
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanisApplicable(FunctionCallGraph fgraph) Indicates if an IPA pass is applicable for the current configuration such as global flags or the chosen execution mode (e.g., HYBRID).booleanrewriteProgram(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes) Rewrites the given program or its functions in place, with access to the read-only function call graph.booleanrFlagFunctionForRecompileOnce(StatementBlock sb, boolean inLoop) Returns true if this statementblock requires recompilation inside a loop statement block.
-
Constructor Details
-
IPAPassFlagFunctionsRecompileOnce
public IPAPassFlagFunctionsRecompileOnce()
-
-
Method Details
-
isApplicable
Description copied from class:IPAPassIndicates if an IPA pass is applicable for the current configuration such as global flags or the chosen execution mode (e.g., HYBRID).- Specified by:
isApplicablein classIPAPass- Parameters:
fgraph- function call graph- Returns:
- true if applicable.
-
rewriteProgram
public boolean rewriteProgram(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes) Description copied from class:IPAPassRewrites the given program or its functions in place, with access to the read-only function call graph.- Specified by:
rewriteProgramin classIPAPass- Parameters:
prog- dml programfgraph- function call graphfcallSizes- function call size infos- Returns:
- true if function call graph should be rebuild
-
rFlagFunctionForRecompileOnce
Returns true if this statementblock requires recompilation inside a loop statement block.- Parameters:
sb- statement blockinLoop- true if in loop- Returns:
- true if statement block requires recompilation inside a loop statement block
-