You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2016/09/08 16:52:51 UTC

incubator-systemml git commit: [SYSTEMML-766] Improved axpy rewrite (no-op if zero scalar multiply)

Repository: incubator-systemml
Updated Branches:
  refs/heads/master 7279bf72a -> 81ebfe004


[SYSTEMML-766] Improved axpy rewrite (no-op if zero scalar multiply)

Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/81ebfe00
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/81ebfe00
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/81ebfe00

Branch: refs/heads/master
Commit: 81ebfe004c932739d57b57f9cd064ca7f06fbd44
Parents: 7279bf7
Author: Matthias Boehm <mb...@us.ibm.com>
Authored: Thu Sep 8 18:42:27 2016 +0200
Committer: Matthias Boehm <mb...@us.ibm.com>
Committed: Thu Sep 8 18:42:27 2016 +0200

----------------------------------------------------------------------
 .../hops/rewrite/RewriteAlgebraicSimplificationDynamic.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/81ebfe00/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
index 793bc25..035f25c 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
@@ -2532,7 +2532,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 			{
 				Hop smid = right.getInput().get( (right.getInput().get(0).getDataType()==DataType.SCALAR) ? 0 : 1); 
 				Hop mright = right.getInput().get( (right.getInput().get(0).getDataType()==DataType.SCALAR) ? 1 : 0);
-				ternop = HopRewriteUtils.createTernaryOp(left, smid, mright, OpOp3.PLUS_MULT);
+				ternop = (smid instanceof LiteralOp && HopRewriteUtils.getDoubleValueSafe((LiteralOp)smid)==0) ? 
+						left : HopRewriteUtils.createTernaryOp(left, smid, mright, OpOp3.PLUS_MULT);
 				LOG.debug("Applied fuseAxpyBinaryOperationChain1. (line " +hi.getBeginLine()+")");
 			}
 			//pattern (b) s*Y + X -> X +* sY
@@ -2543,7 +2544,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 			{
 				Hop smid = left.getInput().get( (left.getInput().get(0).getDataType()==DataType.SCALAR) ? 0 : 1); 
 				Hop mright = left.getInput().get( (left.getInput().get(0).getDataType()==DataType.SCALAR) ? 1 : 0);
-				ternop = HopRewriteUtils.createTernaryOp(right, smid, mright, OpOp3.PLUS_MULT);
+				ternop = (smid instanceof LiteralOp && HopRewriteUtils.getDoubleValueSafe((LiteralOp)smid)==0) ? 
+						right : HopRewriteUtils.createTernaryOp(right, smid, mright, OpOp3.PLUS_MULT);
 				LOG.debug("Applied fuseAxpyBinaryOperationChain2. (line " +hi.getBeginLine()+")");	
 			}
 			//pattern (c) X - s*Y -> X -* sY
@@ -2553,7 +2555,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 			{
 				Hop smid = right.getInput().get( (right.getInput().get(0).getDataType()==DataType.SCALAR) ? 0 : 1); 
 				Hop mright = right.getInput().get( (right.getInput().get(0).getDataType()==DataType.SCALAR) ? 1 : 0);
-				ternop = HopRewriteUtils.createTernaryOp(left, smid, mright, OpOp3.MINUS_MULT);
+				ternop = (smid instanceof LiteralOp && HopRewriteUtils.getDoubleValueSafe((LiteralOp)smid)==0) ? 
+						left : HopRewriteUtils.createTernaryOp(left, smid, mright, OpOp3.MINUS_MULT);
 				LOG.debug("Applied fuseAxpyBinaryOperationChain3. (line " +hi.getBeginLine()+")");
 			}