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

public class StatementBlock extends LiveVariableAnalysis implements ParseInfo
  • Field Details

    • DEFAULT_LOOP_REPETITIONS

      public static final double DEFAULT_LOOP_REPETITIONS
      See Also:
  • Constructor Details

    • StatementBlock

      public StatementBlock()
    • StatementBlock

      public StatementBlock(StatementBlock sb)
  • Method Details

    • setDMLProg

      public void setDMLProg(DMLProgram dmlProg)
    • getDMLProg

      public DMLProgram getDMLProg()
    • getSBID

      public long getSBID()
    • getName

      public String getName()
    • addStatement

      public void addStatement(Statement s)
    • addStatementBlock

      public void addStatementBlock(StatementBlock s)
    • getNumStatements

      public int getNumStatements()
    • getStatement

      public Statement getStatement(int i)
    • getStatements

      public ArrayList<Statement> getStatements()
    • setStatements

      public void setStatements(ArrayList<Statement> s)
    • getHops

      public ArrayList<Hop> getHops()
    • getLops

      public ArrayList<Lop> getLops()
    • setHops

      public void setHops(ArrayList<Hop> hops)
    • setLops

      public void setLops(ArrayList<Lop> lops)
    • 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

      public boolean isMergeableFunctionCallBlock(DMLProgram dmlProg)
    • isRewritableFunctionCall

      public boolean isRewritableFunctionCall(Statement stmt, DMLProgram dmlProg)
    • mergeFunctionCalls

      public static ArrayList<StatementBlock> mergeFunctionCalls(List<StatementBlock> body, DMLProgram dmlProg)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getInputstoSB

      public ArrayList<String> getInputstoSB()
    • getOutputNamesofSB

      public ArrayList<String> getOutputNamesofSB()
    • getOutputsofSB

      public ArrayList<DataIdentifier> getOutputsofSB()
    • mergeStatementBlocks

      public static ArrayList<StatementBlock> mergeStatementBlocks(List<StatementBlock> sb)
    • rHoistFunctionCallsFromExpressions

      public static List<StatementBlock> rHoistFunctionCallsFromExpressions(StatementBlock current, DMLProgram prog)
    • rHoistFunctionCallsFromExpressions

      public static List<Statement> rHoistFunctionCallsFromExpressions(Statement stmt, DMLProgram prog)
    • 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

      public void setStatementFormatType(OutputStatement s, boolean conditionalValidate)
    • setStatementFormatType

      public void setStatementFormatType(AssignmentStatement s, boolean conditionalValidate)
    • initializeforwardLV

      public VariableSet 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.
      Specified by:
      initializeforwardLV in class LiveVariableAnalysis
    • initializebackwardLV

      public VariableSet initializebackwardLV(VariableSet loPassed)
      Specified by:
      initializebackwardLV in class LiveVariableAnalysis
    • getConstIn

      public HashMap<String,ConstIdentifier> getConstIn()
    • getConstOut

      public HashMap<String,ConstIdentifier> getConstOut()
    • analyze

      public VariableSet analyze(VariableSet loPassed)
      Specified by:
      analyze in class LiveVariableAnalysis
    • hasHops

      public boolean hasHops()
    • raiseValidateError

      public void raiseValidateError(String msg, boolean conditional)
    • raiseValidateError

      public void raiseValidateError(String msg, boolean conditional, String errorCode)
    • setFilename

      public void setFilename(String fname)
      Specified by:
      setFilename in interface ParseInfo
    • setBeginLine

      public void setBeginLine(int passed)
      Specified by:
      setBeginLine in interface ParseInfo
    • setBeginColumn

      public void setBeginColumn(int passed)
      Specified by:
      setBeginColumn in interface ParseInfo
    • setEndLine

      public void setEndLine(int passed)
      Specified by:
      setEndLine in interface ParseInfo
    • setEndColumn

      public void setEndColumn(int passed)
      Specified by:
      setEndColumn in interface ParseInfo
    • setText

      public void setText(String text)
      Specified by:
      setText in interface ParseInfo
    • setParseInfo

      public void setParseInfo(ParseInfo parseInfo)
      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

      public String getFilename()
      Specified by:
      getFilename in interface ParseInfo
    • getBeginLine

      public int getBeginLine()
      Specified by:
      getBeginLine in interface ParseInfo
    • getBeginColumn

      public int getBeginColumn()
      Specified by:
      getBeginColumn in interface ParseInfo
    • getEndLine

      public int getEndLine()
      Specified by:
      getEndLine in interface ParseInfo
    • getEndColumn

      public int getEndColumn()
      Specified by:
      getEndColumn in interface ParseInfo
    • getText

      public String getText()
      Specified by:
      getText in interface ParseInfo
    • printErrorLocation

      public String printErrorLocation()
    • printBlockErrorLocation

      public String printBlockErrorLocation()
    • printWarningLocation

      public String printWarningLocation()
    • updateRecompilationFlag

      public boolean updateRecompilationFlag()
    • requiresRecompilation

      public boolean requiresRecompilation()
    • getUpdateInPlaceVars

      public ArrayList<String> getUpdateInPlaceVars()
    • setUpdateInPlaceVars

      public void setUpdateInPlaceVars(ArrayList<String> vars)
    • setNondeterministic

      public void setNondeterministic(boolean flag)
    • isNondeterministic

      public boolean isNondeterministic()
    • setRecompileOnce

      public void setRecompileOnce(boolean flag)
    • isRecompileOnce

      public boolean isRecompileOnce()
    • setCheckpointPosition

      public void setCheckpointPosition(Lop input, List<Lop> outputs)
    • getCheckpointPositions

      public HashMap<Lop.Type,List<Lop.Type>> getCheckpointPositions()