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 2018/04/14 23:24:43 UTC
systemml git commit: [MINOR] Fix parent-child link bug in Hop rewrite
Repository: systemml
Updated Branches:
refs/heads/master 61925ab49 -> bb53c6b46
[MINOR] Fix parent-child link bug in Hop rewrite
The rewrite `fuseDatagenAndBinaryOperation3a` in
`RewriteAlgebraicSimplificationStatic` fails to change the parents when
rewiring DataGen Hops. This patch adds the correct parents.
The problem arises in `LinearLogRegDMLTest` if the `ProgramRewriter`'s
`CHECK` flag is set to true (thereby invoking the HopDagValidator).
Closes #758.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/bb53c6b4
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/bb53c6b4
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/bb53c6b4
Branch: refs/heads/master
Commit: bb53c6b4634f05cfa7f0c68ece45fd2f089d4634
Parents: 61925ab
Author: Dylan Hutchison <dh...@cs.washington.edu>
Authored: Sat Apr 14 16:23:10 2018 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Sat Apr 14 16:23:11 2018 -0700
----------------------------------------------------------------------
src/main/java/org/apache/sysml/hops/DataGenOp.java | 4 +++-
.../hops/rewrite/RewriteAlgebraicSimplificationStatic.java | 8 ++++----
2 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/bb53c6b4/src/main/java/org/apache/sysml/hops/DataGenOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/DataGenOp.java b/src/main/java/org/apache/sysml/hops/DataGenOp.java
index 3e271d5..0c6b586 100644
--- a/src/main/java/org/apache/sysml/hops/DataGenOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataGenOp.java
@@ -374,8 +374,10 @@ public class DataGenOp extends Hop implements MultiThreadedHop
return getInput().get(getParamIndex(key));
}
- public void setInput(String key, Hop hop) {
+ public void setInput(String key, Hop hop, boolean linkParent) {
getInput().set(getParamIndex(key), hop);
+ if( linkParent )
+ hop.getParent().add(this);
}
public boolean hasConstantValue()
http://git-wip-us.apache.org/repos/asf/systemml/blob/bb53c6b4/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
index d1629ac..4eb223d 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
@@ -438,8 +438,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
&& HopRewriteUtils.isLiteralOfValue(min, 0)
&& HopRewriteUtils.isLiteralOfValue(max, 0) )
{
- gen.setInput(DataExpression.RAND_MIN, right);
- gen.setInput(DataExpression.RAND_MAX, right);
+ gen.setInput(DataExpression.RAND_MIN, right, true);
+ gen.setInput(DataExpression.RAND_MAX, right, true);
//rewire all parents (avoid anomalies with replicated datagen)
List<Hop> parents = new ArrayList<>(bop.getParent());
for( Hop p : parents )
@@ -454,8 +454,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
&& HopRewriteUtils.isLiteralOfValue(max, 1) )
{
if( HopRewriteUtils.isLiteralOfValue(min, 1) )
- gen.setInput(DataExpression.RAND_MIN, right);
- gen.setInput(DataExpression.RAND_MAX, right);
+ gen.setInput(DataExpression.RAND_MIN, right, true);
+ gen.setInput(DataExpression.RAND_MAX, right, true);
//rewire all parents (avoid anomalies with replicated datagen)
List<Hop> parents = new ArrayList<>(bop.getParent());
for( Hop p : parents )