You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by mb...@apache.org on 2021/03/27 14:45:13 UTC

[systemds] branch master updated: [SYSTEMDS-2918] Fix IPA list size propagation across DAGs

This is an automated email from the ASF dual-hosted git repository.

mboehm7 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/master by this push:
     new 0c21990  [SYSTEMDS-2918] Fix IPA list size propagation across DAGs
0c21990 is described below

commit 0c21990bc059697be57ed31bfe884d95cbc131d9
Author: Matthias Boehm <mb...@gmail.com>
AuthorDate: Sat Mar 27 15:44:54 2021 +0100

    [SYSTEMDS-2918] Fix IPA list size propagation across DAGs
---
 src/main/java/org/apache/sysds/hops/recompile/Recompiler.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sysds/hops/recompile/Recompiler.java b/src/main/java/org/apache/sysds/hops/recompile/Recompiler.java
index 583788d..757c3eb 100644
--- a/src/main/java/org/apache/sysds/hops/recompile/Recompiler.java
+++ b/src/main/java/org/apache/sysds/hops/recompile/Recompiler.java
@@ -1418,12 +1418,13 @@ public class Recompiler
 		else if(HopRewriteUtils.isUnary(hop, OpOp1.CAST_AS_MATRIX)
 			&& hop.getInput(0) instanceof IndexingOp && hop.getInput(0).getDataType().isList()
 			&& HopRewriteUtils.isData(hop.getInput(0).getInput(0), OpOpData.TRANSIENTREAD) ) {
-			ListObject list = (ListObject) vars.get(hop.getInput(0).getInput(0).getName());
+			Data ldat = vars.get(hop.getInput(0).getInput(0).getName()); //list, or matrix during IPA
 			Hop rix = hop.getInput(0);
-			if( list != null
+			if( ldat != null && ldat instanceof ListObject
 				&& rix.getInput(1) instanceof LiteralOp
 				&& rix.getInput(2) instanceof LiteralOp
 				&& HopRewriteUtils.isEqualValue(rix.getInput(1), rix.getInput(2))) {
+				ListObject list = (ListObject) ldat;
 				MatrixObject mo = (MatrixObject) ((rix.getInput(1).getValueType() == ValueType.STRING) ? 
 					list.getData(((LiteralOp)rix.getInput(1)).getStringValue()) :
 					list.getData((int)HopRewriteUtils.getIntValueSafe(rix.getInput(1))-1));