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

Packages that use StatementBlock
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
`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
`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
`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
`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
`ArrayList<StatementBlock>` IPAPassRewriteFederatedPlan.`rewriteStatementBlock(StatementBlock sb)` Estimates cost and selects a federated execution plan by setting the federated output value of each hop in the statement blocks.
`List<StatementBlock>` RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteHoistLoopInvariantOperations.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteCompressedReblock.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteMergeBlockSequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteSplitDagUnknownCSVRead.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` MarkForLineageReuse.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteRemoveUnnecessaryBranches.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteSplitDagDataDependentOperators.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`abstract List<StatementBlock>` StatementBlockRewriteRule.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)` Handle an arbitrary statement block.
`List<StatementBlock>` RewriteRemoveForLoopEmptySequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteForLoopVectorization.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`ArrayList<StatementBlock>` IPAPassRewriteFederatedPlan.`rewriteStatementBlocks(List<StatementBlock> sbs)` Estimates cost and selects a federated execution plan by setting the federated output value of each hop in the statement blocks.
`List<StatementBlock>` RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteHoistLoopInvariantOperations.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteMarkLoopVariablesUpdateInPlace.`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>` RewriteSplitDagUnknownCSVRead.`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>` RewriteRemoveUnnecessaryBranches.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteSplitDagDataDependentOperators.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`abstract List<StatementBlock>` StatementBlockRewriteRule.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)` Handle a list of statement blocks.
`List<StatementBlock>` RewriteRemoveForLoopEmptySequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteForLoopVectorization.`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
`static boolean` HopRewriteUtils.`isLastLevelStatementBlock(StatementBlock sb)`
`static boolean` HopRewriteUtils.`isLoopStatementBlock(StatementBlock sb)`
`ArrayList<StatementBlock>` IPAPassRewriteFederatedPlan.`rewriteStatementBlock(StatementBlock sb)` Estimates cost and selects a federated execution plan by setting the federated output value of each hop in the statement blocks.
`List<StatementBlock>` RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteHoistLoopInvariantOperations.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteMarkLoopVariablesUpdateInPlace.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteCompressedReblock.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteMergeBlockSequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteSplitDagUnknownCSVRead.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` MarkForLineageReuse.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)`
`List<StatementBlock>` RewriteRemoveEmptyBasicBlocks.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteRemoveUnnecessaryBranches.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteSplitDagDataDependentOperators.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`abstract List<StatementBlock>` StatementBlockRewriteRule.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)` Handle an arbitrary statement block.
`List<StatementBlock>` RewriteRemoveForLoopEmptySequence.`rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteForLoopVectorization.`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
`ArrayList<StatementBlock>` IPAPassRewriteFederatedPlan.`rewriteStatementBlocks(List<StatementBlock> sbs)` Estimates cost and selects a federated execution plan by setting the federated output value of each hop in the statement blocks.
`List<StatementBlock>` RewriteInjectSparkLoopCheckpointing.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteHoistLoopInvariantOperations.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteMarkLoopVariablesUpdateInPlace.`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>` RewriteSplitDagUnknownCSVRead.`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>` RewriteRemoveUnnecessaryBranches.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`List<StatementBlock>` RewriteSplitDagDataDependentOperators.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)`
`abstract List<StatementBlock>` StatementBlockRewriteRule.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)` Handle a list of statement blocks.
`List<StatementBlock>` RewriteRemoveForLoopEmptySequence.`rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus state)`
`List<StatementBlock>` RewriteForLoopVectorization.`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
`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
`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
`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
`ArrayList<StatementBlock>` FunctionStatement.`getBody()`
`ArrayList<StatementBlock>` WhileStatement.`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
`void` DMLProgram.`addStatementBlock(StatementBlock b)`
`void` WhileStatement.`addStatementBlock(StatementBlock sb)`
`void` ForStatement.`addStatementBlock(StatementBlock sb)`
`void` StatementBlock.`addStatementBlock(StatementBlock s)`
`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
`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` FunctionStatement.`setBody(ArrayList<StatementBlock> body)`
`void` WhileStatement.`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
`StatementBlock` ProgramBlock.`getStatementBlock()`

Methods in org.apache.sysds.runtime.controlprogram with parameters of type StatementBlock
`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
`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, OptTreePlanMappingAbstract hlMap, 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
`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
`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
`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
`static String` Explain.`explain(StatementBlock sb)`