[MINOR] Cleanup applied rewrites in optimization level 1 This patch cleans up an inconsistency of not disabling the rewrites for (1) matrix multiplication chain optimization and (2) the removal of unnecessary casts under optimization level 1, which is supposed to disable all rewrites.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/ac7990ef Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/ac7990ef Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/ac7990ef Branch: refs/heads/master Commit: ac7990ef803327f442d4ef62a4d72ec1ae43e188 Parents: 4fea3c6 Author: Matthias Boehm <[email protected]> Authored: Mon Nov 13 21:56:42 2017 -0800 Committer: Matthias Boehm <[email protected]> Committed: Tue Nov 14 11:54:27 2017 -0800 ---------------------------------------------------------------------- .../apache/sysml/hops/rewrite/ProgramRewriter.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/ac7990ef/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java b/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java index d8acdf6..ee8d27c 100644 --- a/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java +++ b/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java @@ -87,7 +87,8 @@ public class ProgramRewriter _dagRuleSet.add( new RewriteTransientWriteParentHandling() ); _dagRuleSet.add( new RewriteRemoveReadAfterWrite() ); //dependency: before blocksize _dagRuleSet.add( new RewriteBlockSizeAndReblock() ); - _dagRuleSet.add( new RewriteRemoveUnnecessaryCasts() ); + if( OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION ) + _dagRuleSet.add( new RewriteRemoveUnnecessaryCasts() ); if( OptimizerUtils.ALLOW_COMMON_SUBEXPRESSION_ELIMINATION ) _dagRuleSet.add( new RewriteCommonSubexpressionElimination() ); if( OptimizerUtils.ALLOW_CONSTANT_FOLDING ) @@ -120,20 +121,20 @@ public class ProgramRewriter // DYNAMIC REWRITES (which do require size information) if( dynamicRewrites ) { - _dagRuleSet.add( new RewriteMatrixMultChainOptimization() ); //dependency: cse - if ( OptimizerUtils.ALLOW_SUM_PRODUCT_REWRITES) + if ( OptimizerUtils.ALLOW_SUM_PRODUCT_REWRITES) { + _dagRuleSet.add( new RewriteMatrixMultChainOptimization() ); //dependency: cse _dagRuleSet.add( new RewriteElementwiseMultChainOptimization() ); //dependency: cse - - if( OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION ) - { + } + if( OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION ) { _dagRuleSet.add( new RewriteAlgebraicSimplificationDynamic() ); //dependencies: cse _dagRuleSet.add( new RewriteAlgebraicSimplificationStatic() ); //dependencies: cse } } // cleanup after all rewrites applied - // (newly introduced operators, introduced redundancy after rewrites w/ multiple parents) - _dagRuleSet.add( new RewriteRemoveUnnecessaryCasts() ); + // (newly introduced operators, introduced redundancy after rewrites w/ multiple parents) + if( OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION ) + _dagRuleSet.add( new RewriteRemoveUnnecessaryCasts() ); if( OptimizerUtils.ALLOW_COMMON_SUBEXPRESSION_ELIMINATION ) _dagRuleSet.add( new RewriteCommonSubexpressionElimination(true) ); }
