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 <[email protected]>
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));

Reply via email to