# Uses of Class
org.apache.sysds.hops.rewrite.StatementBlockRewriteRule

Packages that use StatementBlockRewriteRule
Package
Description
org.apache.sysds.hops.rewrite

## Uses of StatementBlockRewriteRule in org.apache.sysds.hops.rewrite

Subclasses of StatementBlockRewriteRule in org.apache.sysds.hops.rewrite
Modifier and Type
Class
Description
`class`
`MarkForLineageReuse`
`class`
`RewriteCompressedReblock`
Rule: Compressed Re block if config compressed.linalg is enabled, we inject compression directions after read of matrices if number of rows is above 1000 and cols at least 1.
`class`
`RewriteForLoopVectorization`
Rule: Simplify program structure by pulling if or else statement body out (removing the if statement block ifself) in order to allow intra-procedure analysis to propagate exact statistics.
`class`
`RewriteHoistLoopInvariantOperations`
Rule: Simplify program structure by hoisting loop-invariant operations out of while, for, or parfor loops.
`class`
`RewriteInjectOOCTee`
This Rewrite rule injects a Tee Operator for specific Out-Of-Core (OOC) patterns where a value or an intermediate result is shared twice.
`class`
`RewriteInjectSparkLoopCheckpointing`
Rule: Insert checkpointing operations for caching purposes.
`class`
`RewriteJoinReordering`
`class`
`RewriteMarkLoopVariablesUpdateInPlace`
Rule: Mark loop variables that are only read/updated through cp left indexing for update in-place.
`class`
`RewriteMergeBlockSequence`
Rule: Simplify program structure by merging sequences of last-level statement blocks in order to create optimization opportunities.
`class`
`RewriteRaPushdown`
Rule: Simplify program structure by rewriting relational expressions, implemented here: Pushdown of Selections before Join.
`class`
`RewriteRemoveEmptyBasicBlocks`
Rule: Simplify program structure by removing empty last-level blocks, which may originate from the original program or due to a sequence of rewrites (e.g., checkpoint injection and subsequent IPA).
`class`
`RewriteRemoveEmptyForLoops`
Rule: Simplify program structure by removing empty for loops, which may originate from the sequence of other rewrites like dead-code-elimination.
`class`
`RewriteRemoveForLoopEmptySequence`
Rule: Simplify program structure by removing (par)for statements iterating over an empty sequence, i.e., (par)for-loops without a single iteration.
`class`
`RewriteRemoveTransformEncodeMeta`
Rule: If transformencode procudes a meta data frame which is never used, flag transformencode to never allocate an serialize this frame.
`class`
`RewriteRemoveUnnecessaryBranches`
Rule: Simplify program structure by pulling if or else statement body out (removing the if statement block ifself) in order to allow intra-procedure analysis to propagate exact statistics.
`class`
`RewriteSplitDagDataDependentOperators`
Rule: Split Hop DAG after specific data-dependent operators.
`class`
`RewriteSplitDagUnknownCSVRead`
Rule: Split Hop DAG after CSV reads with unknown size.
Method parameters in org.apache.sysds.hops.rewrite with type arguments of type StatementBlockRewriteRule
Modifier and Type
Method
Description
`void`
ProgramRewriter.`removeStatementBlockRewrite(Class<? extends StatementBlockRewriteRule> clazz)`
Constructors in org.apache.sysds.hops.rewrite with parameters of type StatementBlockRewriteRule
Modifier
Constructor
Description
``
`ProgramRewriter(StatementBlockRewriteRule... rewrites)`
Construct a program rewriter for a given rewrite which is passed from outside.