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));