Package org.apache.sysds.parser
Class ForStatementBlock
- java.lang.Object
-
- org.apache.sysds.parser.LiveVariableAnalysis
-
- org.apache.sysds.parser.StatementBlock
-
- org.apache.sysds.parser.ForStatementBlock
-
- All Implemented Interfaces:
ParseInfo
- Direct Known Subclasses:
ParForStatementBlock
public class ForStatementBlock extends StatementBlock
-
-
Field Summary
-
Fields inherited from class org.apache.sysds.parser.StatementBlock
DEFAULT_LOOP_REPETITIONS
-
-
Constructor Summary
Constructors Constructor Description ForStatementBlock()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description VariableSet
analyze(VariableSet loPassed)
int
getEstimateReps()
Hop
getFromHops()
Lop
getFromLops()
Hop
getIncrementHops()
Lop
getIncrementLops()
ArrayList<String>
getInputstoSB()
IterablePredicate
getIterPredicate()
Hop
getToHops()
Lop
getToLops()
VariableSet
initializebackwardLV(VariableSet loPassed)
VariableSet
initializeforwardLV(VariableSet activeInPassed)
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.void
performConstantPropagation(HashMap<String,ConstIdentifier> currConstVars)
boolean
requiresFromRecompilation()
boolean
requiresIncrementRecompilation()
boolean
requiresPredicateRecompilation()
boolean
requiresToRecompilation()
void
setFromHops(Hop hops)
void
setFromLops(Lop lops)
void
setIncrementHops(Hop hops)
void
setIncrementLops(Lop lops)
void
setToHops(Hop hops)
void
setToLops(Lop lops)
boolean
updatePredicateRecompilationFlags()
void
updateRepetitionEstimates(double repetitions)
Updates the repetition estimate for this statement block and all contained hops.VariableSet
validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)
-
Methods inherited from class org.apache.sysds.parser.StatementBlock
addStatement, addStatementBlock, getBeginColumn, getBeginLine, getConstIn, getConstOut, getDMLProg, getEndColumn, getEndLine, getFilename, getHops, getLops, getName, getNumStatements, getOutputNamesofSB, getOutputsofSB, getSBID, getStatement, getStatements, getText, getUpdateInPlaceVars, hasHops, isMergeableFunctionCallBlock, isNondeterministic, isRewritableFunctionCall, isSplitDag, mergeable, mergeFunctionCalls, mergeStatementBlocks, printBlockErrorLocation, printErrorLocation, printWarningLocation, raiseValidateError, raiseValidateError, requiresRecompilation, rewriteFunctionCallStatements, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, setBeginColumn, setBeginLine, setDMLProg, setEndColumn, setEndLine, setFilename, setHops, setLops, setNondeterministic, setParseInfo, setSplitDag, setStatementFormatType, setStatementFormatType, setStatements, setText, setUpdateInPlaceVars, toString, updateRecompilationFlag
-
Methods inherited from class org.apache.sysds.parser.LiveVariableAnalysis
getGen, getKill, getWarn, liveIn, liveOut, setGen, setKill, setLiveIn, setLiveOut, setReadVariables, setUpdatedVariables, updateLiveVariablesOut, variablesRead, variablesUpdated
-
-
-
-
Method Detail
-
getIterPredicate
public IterablePredicate getIterPredicate()
-
validate
public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)
- Overrides:
validate
in classStatementBlock
-
initializeforwardLV
public VariableSet initializeforwardLV(VariableSet activeInPassed)
Description copied from class:StatementBlock
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.- Overrides:
initializeforwardLV
in classStatementBlock
-
initializebackwardLV
public VariableSet initializebackwardLV(VariableSet loPassed)
- Overrides:
initializebackwardLV
in classStatementBlock
-
setFromHops
public void setFromHops(Hop hops)
-
setToHops
public void setToHops(Hop hops)
-
setIncrementHops
public void setIncrementHops(Hop hops)
-
getFromHops
public Hop getFromHops()
-
getToHops
public Hop getToHops()
-
getIncrementHops
public Hop getIncrementHops()
-
setFromLops
public void setFromLops(Lop lops)
-
setToLops
public void setToLops(Lop lops)
-
setIncrementLops
public void setIncrementLops(Lop lops)
-
getFromLops
public Lop getFromLops()
-
getToLops
public Lop getToLops()
-
getIncrementLops
public Lop getIncrementLops()
-
getInputstoSB
public ArrayList<String> getInputstoSB()
- Overrides:
getInputstoSB
in classStatementBlock
-
analyze
public VariableSet analyze(VariableSet loPassed)
- Overrides:
analyze
in classStatementBlock
-
performConstantPropagation
public void performConstantPropagation(HashMap<String,ConstIdentifier> currConstVars)
-
updatePredicateRecompilationFlags
public boolean updatePredicateRecompilationFlags()
-
requiresPredicateRecompilation
public boolean requiresPredicateRecompilation()
-
requiresFromRecompilation
public boolean requiresFromRecompilation()
-
requiresToRecompilation
public boolean requiresToRecompilation()
-
requiresIncrementRecompilation
public boolean requiresIncrementRecompilation()
-
getEstimateReps
public int getEstimateReps()
-
updateRepetitionEstimates
public void updateRepetitionEstimates(double repetitions)
Description copied from class:StatementBlock
Updates the repetition estimate for this statement block and all contained hops. FunctionStatementBlocks are loaded from the function dictionary and repetitions are estimated for the contained statement blocks. This method is overridden in the subclasses of StatementBlock.- Overrides:
updateRepetitionEstimates
in classStatementBlock
- Parameters:
repetitions
- estimated for this statement block
-
-