Package org.apache.sysds.hops.ipa
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. TODO call after lops construction
-
-
Constructor Summary
Constructors Constructor Description IPAPassFlagFunctionsRecompileOnce()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isApplicable(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).boolean
rewriteProgram(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)
Rewrites the given program or its functions in place, with access to the read-only function call graph.boolean
rFlagFunctionForRecompileOnce(StatementBlock sb, boolean inLoop)
Returns true if this statementblock requires recompilation inside a loop statement block.
-
-
-
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 classIPAPass
- 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 classIPAPass
- Parameters:
prog
- dml programfgraph
- function call graphfcallSizes
- 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 blockinLoop
- true if in loop- Returns:
- true if statement block requires recompilation inside a loop statement block
-
-