## 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 and 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 and Description
    --- | ---
    `void` | ProgramRewriter.`removeStatementBlockRewrite(Class<? extends StatementBlockRewriteRule> clazz)`

    Constructors in org.apache.sysds.hops.rewrite with parameters of type StatementBlockRewriteRule
    Constructor and Description
    `ProgramRewriter(StatementBlockRewriteRule... rewrites)` Construct a program rewriter for a given rewrite which is passed from outside.

    Constructor parameters in org.apache.sysds.hops.rewrite with type arguments of type StatementBlockRewriteRule
    Constructor and Description
    `ProgramRewriter(ArrayList<HopRewriteRule> hRewrites, ArrayList<StatementBlockRewriteRule> sbRewrites)` Construct a program rewriter for the given rewrite sets which are passed from outside.

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