## 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` | `RewriteInjectSparkLoopCheckpointing` | Rule: Insert checkpointing operations for caching purposes.
    `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` | `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` | `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` | `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
    Constructor | Description
    --- | ---
    `ProgramRewriter​(StatementBlockRewriteRule... rewrites)` | Construct a program rewriter for a given rewrite which is passed from outside.