Class RewriteSplitDagDataDependentOperators

  • public class RewriteSplitDagDataDependentOperators
    extends StatementBlockRewriteRule
    Rule: Split Hop DAG after specific data-dependent operators. This is important to create recompile hooks if output dimensions are usually significantly overestimated. This is a recursive statementblock rewrite rule. NOTE: Before we used AssignmentStatement.controlStatement() in order to force statementblock cuts. However, this (1) cuts not only after but before-and-after (which prevents certain rewrites because the input operators are unknown), and (2) is statement-centric which potentially prevents the cut right after the problematic operation. TODO: Cleanup runtime to never access individual statements of potentially split statements blocks again (for consistency). However, currently it is only used in places (e.g., parfor optimizer) that are not directly affected.