HopDagValidator |
This class allows to check hop dags for validity, e.g., parent-child linking.
|
HopRewriteRule |
Base class for all hop rewrites in order to enable generic
application of all rules.
|
HopRewriteUtils |
|
MarkForLineageReuse |
|
ProgramRewriter |
This program rewriter applies a variety of rule-based rewrites
on all hop dags of the given program in one pass over the entire
program.
|
ProgramRewriteStatus |
|
RewriteAlgebraicSimplificationDynamic |
Rule: Algebraic Simplifications.
|
RewriteAlgebraicSimplificationStatic |
Rule: Algebraic Simplifications.
|
RewriteBlockSizeAndReblock |
Rule: BlockSizeAndReblock.
|
RewriteCommonSubexpressionElimination |
Rule: CommonSubexpressionElimination.
|
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.
|
RewriteConstantFolding |
Rule: Constant Folding.
|
RewriteElementwiseMultChainOptimization |
Prerequisite: RewriteCommonSubexpressionElimination must run before this rule.
|
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.
|
RewriteGPUSpecificOps |
|
RewriteHoistLoopInvariantOperations |
Rule: Simplify program structure by hoisting loop-invariant operations
out of while, for, or parfor loops.
|
RewriteIndexingVectorization |
Rule: Indexing vectorization.
|
RewriteInjectSparkLoopCheckpointing |
Rule: Insert checkpointing operations for caching purposes.
|
RewriteInjectSparkPReadCheckpointing |
Rule: Inject checkpointing on reading in data in all cases where the operand is used in more than one operation.
|
RewriteMarkLoopVariablesUpdateInPlace |
Rule: Mark loop variables that are only read/updated through cp left indexing
for update in-place.
|
RewriteMatrixMultChainOptimization |
Rule: Determine the optimal order of execution for a chain of
matrix multiplications
Solution: Classic Dynamic Programming
Approach: Currently, the approach based only on matrix dimensions
Goal: To reduce the number of computations in the run-time
(map-reduce) layer
|
RewriteMatrixMultChainOptimizationSparse |
Rule: Determine the optimal order of execution for a chain of
matrix multiplications
Solution: Classic Dynamic Programming
Approach: Currently, the approach based only on matrix dimensions
and sparsity estimates using the MNC sketch
Goal: To reduce the number of computations in the run-time
(map-reduce) layer
|
RewriteMatrixMultChainOptimizationTranspose |
Rule: Determine the optimal order of execution for a chain of
matrix multiplications
Solution: Classic Dynamic Programming
Approach: Currently, the approach based only on matrix dimensions
Goal: To reduce the number of computations in the run-time
(map-reduce) layer
|
RewriteMergeBlockSequence |
Rule: Simplify program structure by merging sequences of last-level
statement blocks in order to create optimization opportunities.
|
RewriteNonScalarPrint |
|
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).
|
RewriteRemoveEmptyForLoops |
Rule: Simplify program structure by removing empty for loops,
which may originate from the sequence of other rewrites like
dead-code-elimination.
|
RewriteRemoveForLoopEmptySequence |
Rule: Simplify program structure by removing (par)for statements iterating over
an empty sequence, i.e., (par)for-loops without a single iteration.
|
RewriteRemovePersistentReadWrite |
This rewrite is a custom rewrite for JMLC in order to replace all persistent reads
and writes with transient reads and writes from the symbol table.
|
RewriteRemoveReadAfterWrite |
Rule: RemoveReadAfterWrite.
|
RewriteRemoveTransformEncodeMeta |
Rule: If transformencode procudes a meta data frame which is never
used, flag transformencode to never allocate an serialize this frame.
|
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.
|
RewriteRemoveUnnecessaryCasts |
Rule: RemoveUnnecessaryCasts.
|
RewriteSplitDagDataDependentOperators |
Rule: Split Hop DAG after specific data-dependent operators.
|
RewriteSplitDagUnknownCSVRead |
Rule: Split Hop DAG after CSV reads with unknown size.
|
StatementBlockRewriteRule |
Base class for all hop rewrites in order to enable generic
application of all rules.
|