## Uses of Class
org.apache.sysds.parser.StatementBlock

- Packages that use StatementBlock
  Package | Description
  --- | ---
  org.apache.sysds.hops.codegen |
  org.apache.sysds.hops.ipa |
  org.apache.sysds.hops.recompile |
  org.apache.sysds.hops.rewrite |
  org.apache.sysds.lops.compile |
  org.apache.sysds.parser |
  org.apache.sysds.runtime.controlprogram |
  org.apache.sysds.runtime.controlprogram.parfor.opt |
  org.apache.sysds.runtime.util |
  org.apache.sysds.utils |

- - ### Uses of StatementBlock in org.apache.sysds.hops.codegen

    Methods in org.apache.sysds.hops.codegen with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static ArrayList<Instruction>` | SpoofCompiler.`generateCodeFromHopDAGsToInst(StatementBlock sb, ArrayList<Hop> roots)`
    `static void` | SpoofCompiler.`generateCodeFromStatementBlock(StatementBlock current)`

  - ### Uses of StatementBlock in org.apache.sysds.hops.ipa

    Methods in org.apache.sysds.hops.ipa that return types with arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `List<StatementBlock>` | FunctionCallGraph.`getFunctionCallsSB(String fkey)` Returns all statement blocks that contain a function operator calling the given function.

    Methods in org.apache.sysds.hops.ipa with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `void` | FunctionCallGraph.`removeFunctionCall(String fkey, FunctionOp fop, StatementBlock sb)` Removes a single function call identified by target function name, and source function op and statement block.
    `boolean` | IPAPassFlagFunctionsRecompileOnce.`rFlagFunctionForRecompileOnce(StatementBlock sb, boolean inLoop)` Returns true if this statementblock requires recompilation inside a loop statement block.

    Constructors in org.apache.sysds.hops.ipa with parameters of type StatementBlock
    Constructor and Description
    `FunctionCallGraph(StatementBlock sb)` Constructs the function call graph for all functions reachable from the given statement block.
    `InterProceduralAnalysis(StatementBlock sb)`

  - ### Uses of StatementBlock in org.apache.sysds.hops.recompile

    Methods in org.apache.sysds.hops.recompile with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDag(StatementBlock sb, ArrayList<Hop> hops, ExecutionContext ec, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)`
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDag(StatementBlock sb, ArrayList<Hop> hops, LocalVariableMap vars, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)`
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDag2Forced(StatementBlock sb, ArrayList<Hop> hops, long tid, Types.ExecType et)`
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDagInstructions(StatementBlock sb, ArrayList<Hop> hops)`
    `static LocalVariableMap` | Recompiler.`reconcileUpdatedCallVarsIf(LocalVariableMap oldCallVars, LocalVariableMap callVarsIf, LocalVariableMap callVarsElse, StatementBlock sb)`
    `static RecompileStatus` | Recompiler.`reconcileUpdatedCallVarsIf(RecompileStatus oldStatus, RecompileStatus callStatusIf, RecompileStatus callStatusElse, StatementBlock sb)`
    `static boolean` | Recompiler.`reconcileUpdatedCallVarsLoops(LocalVariableMap oldCallVars, LocalVariableMap callVars, StatementBlock sb)`
    `static boolean` | Recompiler.`reconcileUpdatedCallVarsLoops(RecompileStatus oldCallStatus, RecompileStatus callStatus, StatementBlock sb)`
    `static void` | Recompiler.`removeUpdatedScalars(LocalVariableMap callVars, StatementBlock sb)` Remove any scalar variables from the variable map if the variable is updated in this block.

  - ### Uses of StatementBlock in org.apache.sysds.hops.rewrite

    Methods in org.apache.sysds.hops.rewrite that return types with arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `List<StatementBlock>` | RewriteRemoveForLoopEmptySequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteForLoopVectorization.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | MarkForLineageReuse.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteSplitDagDataDependentOperators.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteCompressedReblock.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteMergeBlockSequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `abstract List<StatementBlock>` | StatementBlockRewriteRule.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)` Handle an arbitrary statement block.
    `List<StatementBlock>` | RewriteHoistLoopInvariantOperations.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteSplitDagUnknownCSVRead.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteRemoveUnnecessaryBranches.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteRemoveForLoopEmptySequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteForLoopVectorization.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | MarkForLineageReuse.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteSplitDagDataDependentOperators.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteCompressedReblock.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteMergeBlockSequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `abstract List<StatementBlock>` | StatementBlockRewriteRule.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)` Handle a list of statement blocks.
    `List<StatementBlock>` | RewriteHoistLoopInvariantOperations.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteSplitDagUnknownCSVRead.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteRemoveUnnecessaryBranches.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `ArrayList<StatementBlock>` | ProgramRewriter.`rRewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status, boolean splitDags)`
    `ArrayList<StatementBlock>` | ProgramRewriter.`rRewriteStatementBlocks(ArrayList<StatementBlock> sbs, ProgramRewriteStatus status, boolean splitDags)`

    Methods in org.apache.sysds.hops.rewrite with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | HopRewriteUtils.`isLastLevelStatementBlock(StatementBlock sb)`
    `static boolean` | HopRewriteUtils.`isLoopStatementBlock(StatementBlock sb)`
    `List<StatementBlock>` | RewriteRemoveForLoopEmptySequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteForLoopVectorization.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | MarkForLineageReuse.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteSplitDagDataDependentOperators.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteCompressedReblock.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteMergeBlockSequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `abstract List<StatementBlock>` | StatementBlockRewriteRule.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)` Handle an arbitrary statement block.
    `List<StatementBlock>` | RewriteHoistLoopInvariantOperations.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteSplitDagUnknownCSVRead.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteRemoveUnnecessaryBranches.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
    `ArrayList<StatementBlock>` | ProgramRewriter.`rRewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status, boolean splitDags)`
    `void` | ProgramRewriter.`rRewriteStatementBlockHopDAGs(StatementBlock current, ProgramRewriteStatus state)`
    `static void` | HopRewriteUtils.`setUnoptimizedFunctionCalls(StatementBlock sb)`

    Method parameters in org.apache.sysds.hops.rewrite with type arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `List<StatementBlock>` | RewriteRemoveForLoopEmptySequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteForLoopVectorization.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | MarkForLineageReuse.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus status)`
    `List<StatementBlock>` | RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteSplitDagDataDependentOperators.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteCompressedReblock.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteMergeBlockSequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `abstract List<StatementBlock>` | StatementBlockRewriteRule.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)` Handle a list of statement blocks.
    `List<StatementBlock>` | RewriteHoistLoopInvariantOperations.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
    `List<StatementBlock>` | RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteSplitDagUnknownCSVRead.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `List<StatementBlock>` | RewriteRemoveUnnecessaryBranches.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
    `ArrayList<StatementBlock>` | ProgramRewriter.`rRewriteStatementBlocks(ArrayList<StatementBlock> sbs, ProgramRewriteStatus status, boolean splitDags)`

  - ### Uses of StatementBlock in org.apache.sysds.lops.compile

    Methods in org.apache.sysds.lops.compile with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `ArrayList<Instruction>` | Dag.`getJobs(StatementBlock sb, DMLConfig config)` Method to compile a dag generically

  - ### Uses of StatementBlock in org.apache.sysds.parser

    Subclasses of StatementBlock in org.apache.sysds.parser
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ForStatementBlock`
    `class` | `FunctionStatementBlock`
    `class` | `IfStatementBlock`
    `class` | `ParForStatementBlock` This ParForStatementBlock is essentially identical to a ForStatementBlock, except an extended validate for checking/setting optional parfor parameters and running the loop dependency analysis.
    `class` | `WhileStatementBlock`

    Methods in org.apache.sysds.parser that return StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `StatementBlock` | DMLProgram.`getStatementBlock(int i)`
    `static StatementBlock` | ParserWrapper.`getStatementBlock(Statement current)` Custom wrapper to convert statement into statement blocks.

    Methods in org.apache.sysds.parser that return types with arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `ArrayList<StatementBlock>` | WhileStatement.`getBody()`
    `ArrayList<StatementBlock>` | FunctionStatement.`getBody()`
    `ArrayList<StatementBlock>` | ForStatement.`getBody()`
    `ArrayList<StatementBlock>` | IfStatement.`getElseBody()`
    `ArrayList<StatementBlock>` | IfStatement.`getIfBody()`
    `ArrayList<StatementBlock>` | DMLProgram.`getStatementBlocks()`
    `static ArrayList<StatementBlock>` | StatementBlock.`mergeFunctionCalls(List<StatementBlock> body, DMLProgram dmlProg)`
    `static ArrayList<StatementBlock>` | StatementBlock.`mergeStatementBlocks(List<StatementBlock> sb)`
    `static List<StatementBlock>` | StatementBlock.`rHoistFunctionCallsFromExpressions(StatementBlock current, DMLProgram prog)`

    Methods in org.apache.sysds.parser with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `void` | WhileStatement.`addStatementBlock(StatementBlock sb)`
    `void` | DMLProgram.`addStatementBlock(StatementBlock b)`
    `void` | StatementBlock.`addStatementBlock(StatementBlock s)`
    `void` | ForStatement.`addStatementBlock(StatementBlock sb)`
    `void` | IfStatement.`addStatementBlockElseBody(StatementBlock sb)`
    `void` | IfStatement.`addStatementBlockIfBody(StatementBlock sb)`
    `void` | DMLTranslator.`constructHops(StatementBlock sb)`
    `void` | DMLTranslator.`constructHopsForConditionalPredicate(StatementBlock passedSB)`
    `boolean` | DMLTranslator.`constructLops(StatementBlock sb)`
    `ProgramBlock` | DMLTranslator.`createRuntimeProgramBlock(Program prog, StatementBlock sb, DMLConfig config)`
    `static void` | DMLTranslator.`refreshMemEstimates(StatementBlock current)`
    `static void` | DMLTranslator.`resetHopsDAGVisitStatus(StatementBlock current)`
    `void` | DMLTranslator.`resetLopsDAGVisitStatus(StatementBlock current)`
    `static List<StatementBlock>` | StatementBlock.`rHoistFunctionCallsFromExpressions(StatementBlock current, DMLProgram prog)`

    Method parameters in org.apache.sysds.parser with type arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `void` | DMLTranslator.`cleanupLiveOutVariables(List<StatementBlock> sbs, VariableSet unionLiveIn)`
    `static ArrayList<StatementBlock>` | StatementBlock.`mergeFunctionCalls(List<StatementBlock> body, DMLProgram dmlProg)`
    `static ArrayList<StatementBlock>` | StatementBlock.`mergeStatementBlocks(List<StatementBlock> sb)`
    `void` | WhileStatement.`setBody(ArrayList<StatementBlock> body)`
    `void` | FunctionStatement.`setBody(ArrayList<StatementBlock> body)`
    `void` | ForStatement.`setBody(ArrayList<StatementBlock> body)`
    `void` | IfStatement.`setElseBody(ArrayList<StatementBlock> body)`
    `void` | IfStatement.`setIfBody(ArrayList<StatementBlock> body)`
    `void` | DMLProgram.`setStatementBlocks(ArrayList<StatementBlock> passed)`

    Constructors in org.apache.sysds.parser with parameters of type StatementBlock
    Constructor and Description
    `StatementBlock(StatementBlock sb)`

  - ### Uses of StatementBlock in org.apache.sysds.runtime.controlprogram

    Methods in org.apache.sysds.runtime.controlprogram that return StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `StatementBlock` | ProgramBlock.`getStatementBlock()`

    Methods in org.apache.sysds.runtime.controlprogram with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `void` | ProgramBlock.`setStatementBlock(StatementBlock sb)`

  - ### Uses of StatementBlock in org.apache.sysds.runtime.controlprogram.parfor.opt

    Methods in org.apache.sysds.runtime.controlprogram.parfor.opt with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static void` | OptTreePlanChecker.`checkProgramCorrectness(ProgramBlock pb, StatementBlock sb, Set<String> fnStack)`
    `static LocalVariableMap` | ProgramRecompiler.`getReusableScalarVariables(DMLProgram prog, StatementBlock parforSB, LocalVariableMap vars)`
    `static boolean` | ProgramRecompiler.`isApplicableForReuseVariable(DMLProgram prog, StatementBlock parforSB, String var)` This function determines if an parfor input variable is guaranteed to be read-only across multiple invocations of parfor optimization (e.g., in a surrounding while loop).
    `long` | OptTreePlanMappingAbstract.`putProgMapping(StatementBlock sb, ProgramBlock pb, OptNode n)`
    `static OptNode` | OptTreeConverter.`rCreateAbstractOptNode(StatementBlock sb, ProgramBlock pb, LocalVariableMap vars, boolean topLevel, Set<String> memo)`
    `static void` | ProgramRecompiler.`replaceConstantScalarVariables(StatementBlock sb, LocalVariableMap vars)`
    `static void` | ProgramRecompiler.`rFindAndRecompileIndexingHOP(StatementBlock sb, ProgramBlock pb, String var, ExecutionContext ec, boolean force)` NOTE: if force is set, we set and recompile the respective indexing hops; otherwise, we release the forced exec type and recompile again.

    Method parameters in org.apache.sysds.runtime.controlprogram.parfor.opt with type arguments of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static ArrayList<ProgramBlock>` | ProgramRecompiler.`generatePartitialRuntimeProgram(Program rtprog, ArrayList<StatementBlock> sbs)`

  - ### Uses of StatementBlock in org.apache.sysds.runtime.util

    Methods in org.apache.sysds.runtime.util that return StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static StatementBlock` | ProgramConverter.`createStatementBlockCopy(StatementBlock sb, long pid, boolean plain, boolean forceDeepCopy)`
    `static StatementBlock` | ProgramConverter.`rCreateDeepCopyStatementBlock(StatementBlock sb)`

    Methods in org.apache.sysds.runtime.util with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static StatementBlock` | ProgramConverter.`createStatementBlockCopy(StatementBlock sb, long pid, boolean plain, boolean forceDeepCopy)`
    `static StatementBlock` | ProgramConverter.`rCreateDeepCopyStatementBlock(StatementBlock sb)`

  - ### Uses of StatementBlock in org.apache.sysds.utils

    Methods in org.apache.sysds.utils with parameters of type StatementBlock
    Modifier and Type | Method and Description
    --- | ---
    `static String` | Explain.`explain(StatementBlock sb)`

Copyright © 2021 The Apache Software Foundation. All rights reserved.