Package org.apache.sysds.parser
Class StatementBlock
java.lang.Object
org.apache.sysds.parser.LiveVariableAnalysis
org.apache.sysds.parser.StatementBlock
- All Implemented Interfaces:
ParseInfo
- Direct Known Subclasses:
ForStatementBlock,FunctionStatementBlock,IfStatementBlock,WhileStatementBlock
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidanalyze(VariableSet loPassed) intintintintgetHops()doublegetLops()getName()intlonggetSBID()getStatement(int i) getText()booleanhasHops()initializebackwardLV(VariableSet loPassed) initializeforwardLV(VariableSet activeIn) 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.booleanisMergeableFunctionCallBlock(DMLProgram dmlProg) booleanbooleanbooleanisRewritableFunctionCall(Statement stmt, DMLProgram dmlProg) booleanbooleanstatic ArrayList<StatementBlock>mergeFunctionCalls(List<StatementBlock> body, DMLProgram dmlProg) static ArrayList<StatementBlock>voidraiseValidateError(String msg, boolean conditional) voidraiseValidateError(String msg, boolean conditional, String errorCode) booleanrewriteFunctionCallStatements(DMLProgram dmlProg, ArrayList<Statement> statements) static ExpressionrHoistFunctionCallsFromExpressions(Expression expr, boolean root, ArrayList<Statement> tmp, DMLProgram prog) static List<StatementBlock>rHoistFunctionCallsFromExpressions(StatementBlock current, DMLProgram prog) rHoistFunctionCallsFromExpressions(Statement stmt, DMLProgram prog) voidsetBeginColumn(int passed) voidsetBeginLine(int passed) voidsetCheckpointPosition(Lop input, List<Lop> outputs) voidsetDMLProg(DMLProgram dmlProg) voidsetEndColumn(int passed) voidsetEndLine(int passed) voidsetFilename(String fname) voidvoidsetLoopDepRatio(double dep) voidvoidsetNondeterministic(boolean flag) voidsetParseInfo(ParseInfo parseInfo) Set parse information.voidsetRecompileOnce(boolean flag) voidsetSplitDag(boolean flag) voidsetStatementFormatType(AssignmentStatement s, boolean conditionalValidate) voidsetStatementFormatType(OutputStatement s, boolean conditionalValidate) voidvoidvoidsetUpdateInPlaceVars(ArrayList<String> vars) toString()booleanvalidate(DMLProgram dmlProg, VariableSet ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) Methods inherited from class org.apache.sysds.parser.LiveVariableAnalysis
getGen, getKill, getWarn, liveIn, liveOut, setGen, setKill, setLiveIn, setLiveOut, setReadVariables, setUpdatedVariables, updateLiveVariablesOut, variablesRead, variablesUpdated
-
Field Details
-
DEFAULT_LOOP_REPETITIONS
public static final double DEFAULT_LOOP_REPETITIONS- See Also:
-
-
Constructor Details
-
StatementBlock
public StatementBlock() -
StatementBlock
-
-
Method Details
-
setDMLProg
-
getDMLProg
-
getSBID
public long getSBID() -
getName
-
addStatement
-
addStatementBlock
-
getNumStatements
public int getNumStatements() -
getStatement
-
getStatements
-
setStatements
-
getHops
-
getLops
-
setHops
-
setLops
-
mergeable
public boolean mergeable() -
setSplitDag
public void setSplitDag(boolean flag) -
isSplitDag
public boolean isSplitDag() -
getLoopDepRatio
public double getLoopDepRatio() -
setLoopDepRatio
public void setLoopDepRatio(double dep) -
isMergeableFunctionCallBlock
-
isRewritableFunctionCall
-
mergeFunctionCalls
public static ArrayList<StatementBlock> mergeFunctionCalls(List<StatementBlock> body, DMLProgram dmlProg) -
toString
-
getInputstoSB
-
getOutputNamesofSB
-
getOutputsofSB
-
mergeStatementBlocks
-
rHoistFunctionCallsFromExpressions
public static List<StatementBlock> rHoistFunctionCallsFromExpressions(StatementBlock current, DMLProgram prog) -
rHoistFunctionCallsFromExpressions
-
rHoistFunctionCallsFromExpressions
public static Expression rHoistFunctionCallsFromExpressions(Expression expr, boolean root, ArrayList<Statement> tmp, DMLProgram prog) -
rewriteFunctionCallStatements
public ArrayList<Statement> rewriteFunctionCallStatements(DMLProgram dmlProg, ArrayList<Statement> statements) -
validate
public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) -
setStatementFormatType
-
setStatementFormatType
-
initializeforwardLV
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.- Specified by:
initializeforwardLVin classLiveVariableAnalysis
-
initializebackwardLV
- Specified by:
initializebackwardLVin classLiveVariableAnalysis
-
getConstIn
-
getConstOut
-
analyze
- Specified by:
analyzein classLiveVariableAnalysis
-
hasHops
public boolean hasHops() -
raiseValidateError
-
raiseValidateError
-
setFilename
- Specified by:
setFilenamein interfaceParseInfo
-
setBeginLine
public void setBeginLine(int passed) - Specified by:
setBeginLinein interfaceParseInfo
-
setBeginColumn
public void setBeginColumn(int passed) - Specified by:
setBeginColumnin interfaceParseInfo
-
setEndLine
public void setEndLine(int passed) - Specified by:
setEndLinein interfaceParseInfo
-
setEndColumn
public void setEndColumn(int passed) - Specified by:
setEndColumnin interfaceParseInfo
-
setText
-
setParseInfo
Set parse information.- Parameters:
parseInfo- parse information, such as beginning line position, beginning column position, ending line position, ending column position, text, and filename the DML filename (if it exists)
-
getFilename
- Specified by:
getFilenamein interfaceParseInfo
-
getBeginLine
public int getBeginLine()- Specified by:
getBeginLinein interfaceParseInfo
-
getBeginColumn
public int getBeginColumn()- Specified by:
getBeginColumnin interfaceParseInfo
-
getEndLine
public int getEndLine()- Specified by:
getEndLinein interfaceParseInfo
-
getEndColumn
public int getEndColumn()- Specified by:
getEndColumnin interfaceParseInfo
-
getText
-
printErrorLocation
-
printBlockErrorLocation
-
printWarningLocation
-
updateRecompilationFlag
public boolean updateRecompilationFlag() -
requiresRecompilation
public boolean requiresRecompilation() -
getUpdateInPlaceVars
-
setUpdateInPlaceVars
-
setNondeterministic
public void setNondeterministic(boolean flag) -
isNondeterministic
public boolean isNondeterministic() -
setRecompileOnce
public void setRecompileOnce(boolean flag) -
isRecompileOnce
public boolean isRecompileOnce() -
setCheckpointPosition
-
getCheckpointPositions
-