http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
index 610bffb..0ff3298 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
@@ -36,7 +36,7 @@ public class CumulativeSplitInstruction extends 
UnaryInstruction {
        private double _initValue = 0;
 
        private CumulativeSplitInstruction(byte in, byte out, double init, 
String istr) {
-               super(null, in, out, istr);
+               super(MRType.CumsumSplit, null, in, out, istr);
                _initValue = init;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/DataGenMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/DataGenMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/DataGenMRInstruction.java
index 5dd9f22..2429ec2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/DataGenMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/DataGenMRInstruction.java
@@ -31,9 +31,8 @@ public abstract class DataGenMRInstruction extends 
MRInstruction {
        protected int colsInBlock;
        protected String baseDir;
 
-       protected DataGenMRInstruction(Operator op, DataGenMethod mthd, byte 
in, byte out, long r, long c, int rpb, int cpb,
-                       String dir) {
-               super(op, out);
+       protected DataGenMRInstruction(MRType type, Operator op, DataGenMethod 
mthd, byte in, byte out, long r, long c, int rpb, int cpb, String dir) {
+               super(type, op, out);
                method = mthd;
                input = in;
                rows = r;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/DataPartitionMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/DataPartitionMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/DataPartitionMRInstruction.java
index 5e9c047..48e90ec 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/DataPartitionMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/DataPartitionMRInstruction.java
@@ -30,7 +30,7 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 public class DataPartitionMRInstruction extends UnaryInstruction {
 
        private DataPartitionMRInstruction(Operator op, byte in, byte out, 
String istr) {
-               super(op, in, out, istr);
+               super(MRType.Partition, op, in, out, istr);
        }
 
        public static DataPartitionMRInstruction parseInstruction ( String str 
) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateInstruction.java
index 3d4c4c7..2da328b 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateInstruction.java
@@ -38,10 +38,8 @@ public class GroupedAggregateInstruction extends 
UnaryMRInstructionBase {
        private long _bclen = -1;
 
        private GroupedAggregateInstruction(Operator op, byte in, byte out, 
boolean weights, int ngroups, String istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.GroupedAggregate;
+               super(MRType.GroupedAggregate, op, in, out);
                instString = istr;
-
                _weights = weights;
                _ngroups = ngroups;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
index 447e253..6af0e70 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
@@ -41,7 +41,7 @@ public class GroupedAggregateMInstruction extends 
BinaryMRInstructionBase implem
        private int _ngroups = -1;
 
        private GroupedAggregateMInstruction(Operator op, byte in1, byte in2, 
byte out, int ngroups, String istr) {
-               super(op, in1, in2, out);
+               super(MRType.GroupedAggregate, op, in1, in2, out);
                _ngroups = ngroups;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/MMTSJMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MMTSJMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MMTSJMRInstruction.java
index 217e452..be2da27 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MMTSJMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MMTSJMRInstruction.java
@@ -34,10 +34,8 @@ public class MMTSJMRInstruction extends UnaryInstruction {
        private MMTSJType _type = null;
 
        private MMTSJMRInstruction(Operator op, byte in, MMTSJType type, byte 
out, String istr) {
-               super(op, in, out, istr);
-               mrtype = MRINSTRUCTION_TYPE.MMTSJ;
+               super(MRType.MMTSJ, op, in, out, istr);
                instString = istr;
-
                _type = type;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/MRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MRInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MRInstruction.java
index b8b566c..51f4d8b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/MRInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/MRInstruction.java
@@ -29,38 +29,35 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 
 public abstract class MRInstruction extends Instruction {
 
-       public enum MRINSTRUCTION_TYPE {
-               INVALID, Append, Aggregate, ArithmeticBinary, 
ArithmeticBinary2, AggregateBinary, AggregateUnary, Rand,
+       public enum MRType {
+               Append, Aggregate, ArithmeticBinary, ArithmeticBinary2, 
AggregateBinary, AggregateUnary, Rand,
                Seq, CSVReblock, CSVWrite, Reblock, Reorg, Replicate, Unary, 
CombineBinary, CombineUnary, CombineTernary,
                PickByCount, Partition, Ternary, Quaternary, CM_N_COV, 
MapGroupedAggregate, GroupedAggregate, RightIndex,
                ZeroOut, MMTSJ, PMMJ, MatrixReshape, ParameterizedBuiltin, 
Sort, MapMultChain, CumsumAggregate, CumsumSplit,
                CumsumOffset, BinUaggChain, UaggOuterChain, RemoveEmpty
        }
 
-       protected MRINSTRUCTION_TYPE mrtype;
-       protected Operator optr;
+       protected final MRType mrtype;
+       protected final Operator optr;
        public byte output;
 
-       protected MRInstruction(Operator op, byte out) {
-               type = IType.MAPREDUCE;
+       protected MRInstruction(MRType type, Operator op, byte out) {
+               super.type = IType.MAPREDUCE;
                optr = op;
                output = out;
-               mrtype = MRINSTRUCTION_TYPE.INVALID;
+               mrtype = type;
        }
 
        public Operator getOperator() {
                return optr;
        }
        
-       public MRINSTRUCTION_TYPE getMRInstructionType() 
-       {
+       public MRType getMRInstructionType() {
                return mrtype;
        }
 
        @Override
-       public void processInstruction(ExecutionContext ec)
-               throws DMLRuntimeException 
-       {
+       public void processInstruction(ExecutionContext ec) throws 
DMLRuntimeException {
                //do nothing (not applicable for MR instructions)
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/MapMultChainInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MapMultChainInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MapMultChainInstruction.java
index da5e9fd..0701293 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MapMultChainInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MapMultChainInstruction.java
@@ -53,12 +53,11 @@ public class MapMultChainInstruction extends MRInstruction 
implements IDistribut
         *            instruction string
         */
        private MapMultChainInstruction(ChainType type, byte in1, byte in2, 
byte out, String istr) {
-               super(null, out);
+               super(MRType.MapMultChain, null, out);
                _chainType = type;
                _input1 = in1;
                _input2 = in2;
                _input3 = -1;
-               mrtype = MRINSTRUCTION_TYPE.MapMultChain;
                instString = istr;
        }
 
@@ -72,17 +71,12 @@ public class MapMultChainInstruction extends MRInstruction 
implements IDistribut
         * @param out output byte
         * @param istr instruction string
         */
-       public MapMultChainInstruction(ChainType type, byte in1, byte in2, byte 
in3, byte out, String istr)
-       {
-               super(null, out);
-               
+       public MapMultChainInstruction(ChainType type, byte in1, byte in2, byte 
in3, byte out, String istr) {
+               super(MRType.MapMultChain, null, out);
                _chainType = type;
-               
                _input1 = in1;
                _input2 = in2;
                _input3 = in3;
-               
-               mrtype = MRINSTRUCTION_TYPE.MapMultChain;
                instString = istr;
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/MatrixReshapeMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MatrixReshapeMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MatrixReshapeMRInstruction.java
index 5b2d295..00c2240 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/MatrixReshapeMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/MatrixReshapeMRInstruction.java
@@ -36,13 +36,11 @@ public class MatrixReshapeMRInstruction extends 
UnaryInstruction {
        private MatrixCharacteristics _mcIn = null;
        private MatrixCharacteristics _mcOut = null;
 
-       // MB: cache should be integrated with tempValues, but for n blocks
        private ArrayList<IndexedMatrixValue> _cache = null;
 
        private MatrixReshapeMRInstruction(Operator op, byte in, long rows, 
long cols, boolean byrow, byte out,
                        String istr) {
-               super(op, in, out, istr);
-               mrtype = MRINSTRUCTION_TYPE.MMTSJ;
+               super(MRType.MMTSJ, op, in, out, istr);
                instString = istr;
                _mcOut = new MatrixCharacteristics(rows, cols, -1, -1);
                _byrow = byrow;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/PMMJMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PMMJMRInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PMMJMRInstruction.java
index e1a9c8b..72d8d14 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PMMJMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PMMJMRInstruction.java
@@ -40,13 +40,10 @@ public class PMMJMRInstruction extends 
BinaryMRInstructionBase implements IDistr
 
        private PMMJMRInstruction(Operator op, byte in1, byte in2, byte out, 
long nrow, CacheType ctype,
                        boolean outputEmpty, String istr) {
-               super(op, in1, in2, out);
+               super(MRType.PMMJ, op, in1, in2, out);
                instString = istr;
-
                _rlen = nrow;
                _outputEmptyBlocks = outputEmpty;
-
-               // NOTE: cache type only used by distributed cache input
        }
 
        public long getNumRows() {

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
index 3193cc6..262f8ac 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
@@ -52,7 +52,7 @@ public class ParameterizedBuiltinMRInstruction extends 
UnaryInstruction {
 
        private ParameterizedBuiltinMRInstruction(Operator op, byte in, double 
pattern, double replace, byte out,
                        String opcode, String istr) {
-               super(op, in, out, istr);
+               super(MRType.ParameterizedBuiltin, op, in, out, istr);
                instString = istr;
                _opcode = opcode;
                _pattern = pattern;
@@ -61,7 +61,7 @@ public class ParameterizedBuiltinMRInstruction extends 
UnaryInstruction {
 
        private ParameterizedBuiltinMRInstruction(Operator op, byte in, double 
max, boolean dirRows, boolean cast,
                        boolean ignore, byte out, String opcode, String istr) {
-               super(op, in, out, istr);
+               super(MRType.ParameterizedBuiltin, op, in, out, istr);
                instString = istr;
                _opcode = opcode;
                _max = max;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/PickByCountInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PickByCountInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PickByCountInstruction.java
index 3ef0f53..a7c9120 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PickByCountInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PickByCountInstruction.java
@@ -34,32 +34,19 @@ public class PickByCountInstruction extends MRInstruction {
        public double cst; // used only for rangepick
        public boolean isValuePick = true;
 
-       /*
-        * Constructor for valuepick valuepick:::0:DOUBLE:::1:DOUBLE:::2:DOUBLE 
0 is
-        * data matrix, 1 is the quantile matrix, 2 will have the resulting 
picked
-        * data items
-        */
        private PickByCountInstruction(Operator op, byte _in1, byte _in2, byte 
out, String istr) {
-               super(op, out);
+               super(MRType.PickByCount, op, out);
                input1 = _in1;
                input2 = _in2;
                cst = 0;
-               mrtype = MRINSTRUCTION_TYPE.PickByCount;
                instString = istr;
                isValuePick = true;
        }
 
-       /*
-        * Constructor for rangepick 
rangepick:::0:DOUBLE:::0.25:DOUBLE:::1:DOUBLE 0
-        * is data matrix, 0.25 is the quantile that needs to be removed from 
both
-        * ends in the PDF, 1 will have the resulting picked data items between
-        * [Q_1-Q_3]
-        */
        private PickByCountInstruction(Operator op, byte _in1, double _cst, 
byte out, String istr) {
-               super(op, out);
+               super(MRType.PickByCount, op, out);
                input1 = _in1;
                cst = _cst;
-               mrtype = MRINSTRUCTION_TYPE.PickByCount;
                instString = istr;
                isValuePick = false;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/PlusMultInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PlusMultInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PlusMultInstruction.java
index fac476d..40a851a 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/PlusMultInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/PlusMultInstruction.java
@@ -30,7 +30,7 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 
 public class PlusMultInstruction extends BinaryInstruction {
        private PlusMultInstruction(Operator op, byte in1, byte in2, byte out, 
String istr) {
-               super(op, in1, in2, out, istr);
+               super(MRType.ArithmeticBinary2, op, in1, in2, out, istr);
        }
 
        public static PlusMultInstruction parseInstruction ( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java
index 327af32..8efddb2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java
@@ -58,8 +58,7 @@ public class QuaternaryInstruction extends MRInstruction 
implements IDistributed
 
        private QuaternaryInstruction(Operator op, byte in1, byte in2, byte 
in3, byte in4, byte out, boolean cacheU,
                        boolean cacheV, String istr) {
-               super(op, out);
-               mrtype = MRINSTRUCTION_TYPE.Quaternary;
+               super(MRType.Quaternary, op, out);
                instString = istr;
 
                _input1 = in1;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/RandInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RandInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RandInstruction.java
index 07b0a46..dac987b 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RandInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RandInstruction.java
@@ -39,8 +39,7 @@ public class RandInstruction extends DataGenMRInstruction {
        private RandInstruction(Operator op, byte in, byte out, long rows, long 
cols, int rpb, int cpb, double minValue,
                        double maxValue, double sparsity, long seed, String 
probabilityDensityFunction, String params,
                        String baseDir, String istr) {
-               super(op, DataGenMethod.RAND, in, out, rows, cols, rpb, cpb, 
baseDir);
-               mrtype = MRINSTRUCTION_TYPE.Rand;
+               super(MRType.Rand, op, DataGenMethod.RAND, in, out, rows, cols, 
rpb, cpb, baseDir);
                this.minValue = minValue;
                this.maxValue = maxValue;
                this.sparsity = sparsity;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
index b1e90d1..6c48c3f 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
@@ -42,8 +42,7 @@ public class RangeBasedReIndexInstruction extends 
UnaryMRInstructionBase {
 
        private RangeBasedReIndexInstruction(Operator op, byte in, byte out, 
IndexRange rng, boolean forleft, long rlen,
                        long clen, String istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.RightIndex;
+               super(MRType.RightIndex, op, in, out);
                instString = istr;
                _ixrange = rng;
                _forLeft = forleft;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ReblockInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReblockInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReblockInstruction.java
index c2a9ae4..97d12c2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReblockInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReblockInstruction.java
@@ -32,7 +32,7 @@ public class ReblockInstruction extends 
UnaryMRInstructionBase {
        public boolean outputEmptyBlocks;
 
        protected ReblockInstruction(Operator op, byte in, byte out, int br, 
int bc, boolean emptyBlocks, String istr) {
-               super(op, in, out);
+               super(MRType.Reblock, op, in, out);
                brlen = br;
                bclen = bc;
                outputEmptyBlocks = emptyBlocks;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
index fc93c56..79445c7 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
@@ -40,9 +40,8 @@ public class RemoveEmptyMRInstruction extends 
BinaryInstruction {
        private boolean _rmRows = true;
 
        private RemoveEmptyMRInstruction(Operator op, byte in1, byte in2, long 
len, boolean rmRows, byte out, String istr) {
-               super(op, in1, in2, out, istr);
+               super(MRType.RemoveEmpty, op, in1, in2, out, istr);
                instString = istr;
-
                _len = len;
                _rmRows = rmRows;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
index c90c45c..3bfab97 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
@@ -42,18 +42,15 @@ public class ReorgInstruction extends 
UnaryMRInstructionBase {
        private boolean _outputEmptyBlocks = true;
 
        private ReorgInstruction(ReorgOperator op, byte in, byte out, String 
istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.Reorg;
+               super(MRType.Reorg, op, in, out);
                instString = istr;
        }
 
-       public void setInputMatrixCharacteristics( MatrixCharacteristics in )
-       {
+       public void setInputMatrixCharacteristics( MatrixCharacteristics in ) {
                _mcIn = in; 
        }
        
-       public void setOutputEmptyBlocks( boolean flag )
-       {
+       public void setOutputEmptyBlocks( boolean flag ) {
                _outputEmptyBlocks = flag; 
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ReplicateInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReplicateInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReplicateInstruction.java
index f34c6b6..272d249 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReplicateInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReplicateInstruction.java
@@ -34,8 +34,7 @@ public class ReplicateInstruction extends 
UnaryMRInstructionBase {
        private long _lenM = -1; // clen/rlen
 
        private ReplicateInstruction(byte in, byte out, boolean repCols, long 
lenM, String istr) {
-               super(null, in, out);
-               mrtype = MRINSTRUCTION_TYPE.Reorg;
+               super(MRType.Reorg, null, in, out);
                instString = istr;
 
                _repCols = repCols;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
index 04f4a89..534ad50 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
@@ -34,8 +34,7 @@ import 
org.apache.sysml.runtime.matrix.operators.ScalarOperator;
 public class ScalarInstruction extends UnaryMRInstructionBase {
 
        private ScalarInstruction(ScalarOperator op, byte in, byte out, String 
istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.ArithmeticBinary;
+               super(MRType.ArithmeticBinary, op, in, out);
                instString = istr;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/SeqInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/SeqInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/SeqInstruction.java
index 9b0a5f1..c6c607b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/SeqInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/SeqInstruction.java
@@ -34,8 +34,7 @@ public class SeqInstruction extends DataGenMRInstruction {
 
        private SeqInstruction(Operator op, byte in, byte out, long rows, long 
cols, int rpb, int cpb, double fromValue,
                        double toValue, double incrValue, String baseDir, 
String istr) {
-               super(op, DataGenMethod.SEQ, in, out, rows, cols, rpb, cpb, 
baseDir);
-               mrtype = MRINSTRUCTION_TYPE.Seq;
+               super(MRType.Seq, op, DataGenMethod.SEQ, in, out, rows, cols, 
rpb, cpb, baseDir);
                this.fromValue = fromValue;
                this.toValue = toValue;
                this.incrValue = incrValue;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/TernaryInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/TernaryInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/TernaryInstruction.java
index 31c541f..14772f2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/TernaryInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/TernaryInstruction.java
@@ -42,30 +42,9 @@ public class TernaryInstruction extends MRInstruction {
        public double scalar_input3;
        private long _outputDim1, _outputDim2;
 
-       /**
-        * Single matrix input
-        * 
-        * @param op
-        *            operation type
-        * @param in1
-        *            input 1 (byte)
-        * @param scalar_in2
-        *            input 2 (double)
-        * @param scalar_in3
-        *            input 3 (double)
-        * @param out
-        *            output
-        * @param outputDim1
-        *            output dimension 1
-        * @param outputDim2
-        *            output dimension 2
-        * @param istr
-        *            instruction string
-        */
-       private TernaryInstruction(OperationTypes op, byte in1, double 
scalar_in2, double scalar_in3, byte out,
+       private TernaryInstruction(MRType type, OperationTypes op, byte in1, 
double scalar_in2, double scalar_in3, byte out,
                        long outputDim1, long outputDim2, String istr) {
-               super(null, out);
-               mrtype = MRINSTRUCTION_TYPE.Ternary;
+               super(type, null, out);
                _op = op;
                input1 = in1;
                scalar_input2 = scalar_in2;
@@ -75,30 +54,9 @@ public class TernaryInstruction extends MRInstruction {
                instString = istr;
        }
 
-       /**
-        * Two matrix inputs
-        * 
-        * @param op
-        *            operation type
-        * @param in1
-        *            input 1 (byte)
-        * @param in2
-        *            input 2 (byte)
-        * @param scalar_in3
-        *            input 3 (double)
-        * @param out
-        *            output
-        * @param outputDim1
-        *            output dimension 1
-        * @param outputDim2
-        *            output dimension 2
-        * @param istr
-        *            instruction string
-        */
-       private TernaryInstruction(OperationTypes op, byte in1, byte in2, 
double scalar_in3, byte out, long outputDim1,
+       private TernaryInstruction(MRType type, OperationTypes op, byte in1, 
byte in2, double scalar_in3, byte out, long outputDim1,
                        long outputDim2, String istr) {
-               super(null, out);
-               mrtype = MRINSTRUCTION_TYPE.Ternary;
+               super(type, null, out);
                _op = op;
                input1 = in1;
                input2 = in2;
@@ -108,30 +66,9 @@ public class TernaryInstruction extends MRInstruction {
                instString = istr;
        }
 
-       /**
-        * Two matrix input
-        * 
-        * @param op
-        *            operation type
-        * @param in1
-        *            input 1 (byte)
-        * @param scalar_in2
-        *            input 2 (double)
-        * @param in3
-        *            input 3 (byte)
-        * @param out
-        *            output
-        * @param outputDim1
-        *            output dimension 1
-        * @param outputDim2
-        *            output dimension 2
-        * @param istr
-        *            instruction string
-        */
-       private TernaryInstruction(OperationTypes op, byte in1, double 
scalar_in2, byte in3, byte out, long outputDim1,
+       private TernaryInstruction(MRType type, OperationTypes op, byte in1, 
double scalar_in2, byte in3, byte out, long outputDim1,
                        long outputDim2, String istr) {
-               super(null, out);
-               mrtype = MRINSTRUCTION_TYPE.Ternary;
+               super(type, null, out);
                _op = op;
                input1 = in1;
                scalar_input2 = scalar_in2;
@@ -141,30 +78,9 @@ public class TernaryInstruction extends MRInstruction {
                instString = istr;
        }
 
-       /**
-        * Three matrix inputs
-        * 
-        * @param op
-        *            operation type
-        * @param in1
-        *            input 1 (byte)
-        * @param in2
-        *            input 2 (byte)
-        * @param in3
-        *            input 3 (byte)
-        * @param out
-        *            output
-        * @param outputDim1
-        *            output dimension 1
-        * @param outputDim2
-        *            output dimension 2
-        * @param istr
-        *            instruction string
-        */
-       protected TernaryInstruction(OperationTypes op, byte in1, byte in2, 
byte in3, byte out, long outputDim1,
+       protected TernaryInstruction(MRType type, OperationTypes op, byte in1, 
byte in2, byte in3, byte out, long outputDim1,
                        long outputDim2, String istr) {
-               super(null, out);
-               mrtype = MRINSTRUCTION_TYPE.Ternary;
+               super(type, null, out);
                _op = op;
                input1 = in1;
                input2 = in2;
@@ -214,27 +130,27 @@ public class TernaryInstruction extends MRInstruction {
                        case CTABLE_TRANSFORM: {
                                in2 = Byte.parseByte(parts[2]);
                                in3 = Byte.parseByte(parts[3]);
-                               return new TernaryInstruction(op, in1, in2, 
in3, out, outputDim1, outputDim2, str);
+                               return new TernaryInstruction(MRType.Ternary, 
op, in1, in2, in3, out, outputDim1, outputDim2, str);
                        }
                        case CTABLE_TRANSFORM_SCALAR_WEIGHT: {
                                in2 = Byte.parseByte(parts[2]);
                                double scalar_in3 = 
Double.parseDouble(parts[3]);
-                               return new TernaryInstruction(op, in1, in2, 
scalar_in3, out, outputDim1, outputDim2, str);
+                               return new TernaryInstruction(MRType.Ternary, 
op, in1, in2, scalar_in3, out, outputDim1, outputDim2, str);
                        }
                        case CTABLE_EXPAND_SCALAR_WEIGHT: {
                                double scalar_in2 = 
Double.parseDouble(parts[2]);
                                double type = Double.parseDouble(parts[3]); 
//used as type (1 left, 0 right)
-                               return new TernaryInstruction(op, in1, 
scalar_in2, type, out, outputDim1, outputDim2, str);
+                               return new TernaryInstruction(MRType.Ternary, 
op, in1, scalar_in2, type, out, outputDim1, outputDim2, str);
                        }
                        case CTABLE_TRANSFORM_HISTOGRAM: {
                                double scalar_in2 = 
Double.parseDouble(parts[2]);
                                double scalar_in3 = 
Double.parseDouble(parts[3]);
-                               return new TernaryInstruction(op, in1, 
scalar_in2, scalar_in3, out, outputDim1, outputDim2, str);
+                               return new TernaryInstruction(MRType.Ternary, 
op, in1, scalar_in2, scalar_in3, out, outputDim1, outputDim2, str);
                        }
                        case CTABLE_TRANSFORM_WEIGHTED_HISTOGRAM: {
                                double scalar_in2 = 
Double.parseDouble(parts[2]);
                                in3 = Byte.parseByte(parts[3]);
-                               return new TernaryInstruction(op, in1, 
scalar_in2, in3, out, outputDim1, outputDim2, str);      
+                               return new TernaryInstruction(MRType.Ternary, 
op, in1, scalar_in2, in3, out, outputDim1, outputDim2, str);      
                        }
                        default:
                                throw new DMLRuntimeException("Unrecognized 
opcode in Ternary Instruction: " + op);     

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/UaggOuterChainInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UaggOuterChainInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UaggOuterChainInstruction.java
index 3a378b6..d686482 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UaggOuterChainInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UaggOuterChainInstruction.java
@@ -57,27 +57,23 @@ public class UaggOuterChainInstruction extends 
BinaryInstruction implements IDis
 
        private UaggOuterChainInstruction(BinaryOperator bop, 
AggregateUnaryOperator uaggop, AggregateOperator aggop,
                        byte in1, byte in2, byte out, String istr) {
-               super(null, in1, in2, out, istr);
-
+               super(MRType.UaggOuterChain, null, in1, in2, out, istr);
                _uaggOp = uaggop;
                _aggOp = aggop;
                _bOp = bop;
-
                _tmpVal1 = new MatrixBlock();
                _tmpVal2 = new MatrixBlock();
-
-               mrtype = MRINSTRUCTION_TYPE.UaggOuterChain;
                instString = istr;
        }
 
        public static UaggOuterChainInstruction parseInstruction( String str ) 
                throws DMLRuntimeException 
-       {               
+       {
                //check number of fields (2/3 inputs, output, type)
                InstructionUtils.checkNumFields ( str, 5 );
                
                //parse instruction parts (without exec type)
-               String[] parts = InstructionUtils.getInstructionParts( str );   
        
+               String[] parts = InstructionUtils.getInstructionParts( str );
                
                AggregateUnaryOperator uaggop = 
InstructionUtils.parseBasicAggregateUnaryOperator(parts[1]);
                BinaryOperator bop = 
InstructionUtils.parseBinaryOperator(parts[2]);

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryInstruction.java
index 1b42eeb..7974d6a 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryInstruction.java
@@ -33,18 +33,14 @@ import 
org.apache.sysml.runtime.matrix.operators.UnaryOperator;
 
 public class UnaryInstruction extends UnaryMRInstructionBase {
 
-       public UnaryInstruction(Operator op, byte in, byte out, String istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.Unary;
+       public UnaryInstruction(MRType type, Operator op, byte in, byte out, 
String istr) {
+               super(type, op, in, out);
                instString = istr;
        }
 
        public static UnaryInstruction parseInstruction ( String str ) throws 
DMLRuntimeException {
-               
                String opcode = InstructionUtils.getOpCode(str);
-        
                InstructionUtils.checkNumFields ( str, 2 );
-               
                String[] parts = InstructionUtils.getInstructionParts ( str );
                byte in, out;
                in = Byte.parseByte(parts[1]);
@@ -53,10 +49,10 @@ public class UnaryInstruction extends 
UnaryMRInstructionBase {
                // Currently, UnaryInstructions are used primarily for 
executing Builtins like SIN(A), LOG(A,2)
                if ( InstructionUtils.isBuiltinFunction(opcode) ) {
                        UnaryOperator unary = new 
UnaryOperator(Builtin.getBuiltinFnObject(opcode));
-                       return new UnaryInstruction(unary, in, out, str);
+                       return new UnaryInstruction(MRType.Unary, unary, in, 
out, str);
                }
                else 
-                       return new UnaryInstruction(null, in, out, str);
+                       return new UnaryInstruction(MRType.Unary, null, in, 
out, str);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryMRInstructionBase.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryMRInstructionBase.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryMRInstructionBase.java
index 8adf5ca..5dfc8d6 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryMRInstructionBase.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/UnaryMRInstructionBase.java
@@ -24,8 +24,8 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 public abstract class UnaryMRInstructionBase extends MRInstruction {
        public byte input;
 
-       protected UnaryMRInstructionBase(Operator op, byte in, byte out) {
-               super(op, out);
+       protected UnaryMRInstructionBase(MRType type, Operator op, byte in, 
byte out) {
+               super(type, op, out);
                input = in;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/mr/ZeroOutInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ZeroOutInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ZeroOutInstruction.java
index 047fa28..821193b 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/mr/ZeroOutInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/mr/ZeroOutInstruction.java
@@ -42,8 +42,7 @@ public class ZeroOutInstruction extends 
UnaryMRInstructionBase {
        public boolean complementary = false;
 
        private ZeroOutInstruction(Operator op, byte in, byte out, IndexRange 
rng, String istr) {
-               super(op, in, out);
-               mrtype = MRINSTRUCTION_TYPE.ZeroOut;
+               super(MRType.ZeroOut, op, in, out);
                instString = istr;
                indexRange = rng;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
index 9ffe363..9550fcf 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
@@ -41,10 +41,8 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 
 public class AggregateTernarySPInstruction extends ComputationSPInstruction {
 
-       private AggregateTernarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out,
-                       String opcode, String istr) {
-               super(op, in1, in2, in3, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.AggregateTernary;
+       private AggregateTernarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out, String opcode, String istr) {
+               super(SPType.AggregateTernary, op, in1, in2, in3, out, opcode, 
istr);
        }
 
        public static AggregateTernarySPInstruction parseInstruction( String 
str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
index 6b75080..8302150 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
@@ -47,9 +47,9 @@ public class AggregateUnarySPInstruction extends 
UnarySPInstruction {
        private SparkAggType _aggtype = null;
        private AggregateOperator _aop = null;
 
-       protected AggregateUnarySPInstruction(AggregateUnaryOperator auop, 
AggregateOperator aop, CPOperand in,
+       protected AggregateUnarySPInstruction(SPType type, 
AggregateUnaryOperator auop, AggregateOperator aop, CPOperand in,
                        CPOperand out, SparkAggType aggtype, String opcode, 
String istr) {
-               super(auop, in, out, opcode, istr);
+               super(type, auop, in, out, opcode, istr);
                _aggtype = aggtype;
                _aop = aop;
        }
@@ -71,7 +71,7 @@ public class AggregateUnarySPInstruction extends 
UnarySPInstruction {
                
                AggregateUnaryOperator aggun = 
InstructionUtils.parseBasicAggregateUnaryOperator(opcode);
                AggregateOperator aop = 
InstructionUtils.parseAggregateOperator(aopcode, corrExists, 
corrLoc.toString());
-               return new AggregateUnarySPInstruction(aggun, aop, in1, out, 
aggtype, opcode, str);
+               return new AggregateUnarySPInstruction(SPType.AggregateUnary, 
aggun, aop, in1, out, aggtype, opcode, str);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
index 991b5c0..70cf389 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
@@ -41,8 +41,7 @@ public class AppendGAlignedSPInstruction extends 
BinarySPInstruction {
 
        private AppendGAlignedSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out,
                        boolean cbind, String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.GAppend;
+               super(SPType.GAppend, op, in1, in2, out, opcode, istr);
                _cbind = cbind;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
index fee21f3..f50ae9c 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
@@ -47,8 +47,7 @@ public class AppendGSPInstruction extends BinarySPInstruction 
{
 
        private AppendGSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand offset, CPOperand offset2,
                        CPOperand out, boolean cbind, String opcode, String 
istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.GAppend;
+               super(SPType.GAppend, op, in1, in2, out, opcode, istr);
                _cbind = cbind;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendMSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendMSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendMSPInstruction.java
index d176ec3..7860600 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendMSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendMSPInstruction.java
@@ -33,8 +33,7 @@ public abstract class AppendMSPInstruction extends 
BinarySPInstruction {
 
        protected AppendMSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand offset, CPOperand out,
                        boolean cbind, String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MAppend;
+               super(SPType.MAppend, op, in1, in2, out, opcode, istr);
                _offset = offset;
                _cbind = cbind;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendRSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendRSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendRSPInstruction.java
index 79e54f3..1903081 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendRSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendRSPInstruction.java
@@ -29,10 +29,8 @@ import 
org.apache.sysml.runtime.matrix.operators.ReorgOperator;
 public abstract class AppendRSPInstruction extends BinarySPInstruction {
        protected boolean _cbind = true;
 
-       AppendRSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, boolean cbind, String opcode,
-                       String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.RAppend;
+       protected AppendRSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, boolean cbind, String opcode, String istr) {
+               super(SPType.RAppend, op, in1, in2, out, opcode, istr);
                _cbind = cbind;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ArithmeticBinarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ArithmeticBinarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ArithmeticBinarySPInstruction.java
index ad309e6..9c4c789 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ArithmeticBinarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ArithmeticBinarySPInstruction.java
@@ -30,10 +30,8 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 
 public abstract class ArithmeticBinarySPInstruction extends 
BinarySPInstruction {
 
-       ArithmeticBinarySPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.ArithmeticBinary;
+       protected ArithmeticBinarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode, String istr) {
+               super(SPType.ArithmeticBinary, op, in1, in2, out, opcode, istr);
        }
 
        public static ArithmeticBinarySPInstruction parseInstruction ( String 
str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/BinUaggChainSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BinUaggChainSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BinUaggChainSPInstruction.java
index 77da0db..a029fa4 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BinUaggChainSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BinUaggChainSPInstruction.java
@@ -39,8 +39,7 @@ public class BinUaggChainSPInstruction extends 
UnarySPInstruction {
 
        private BinUaggChainSPInstruction(CPOperand in, CPOperand out, 
BinaryOperator bop, AggregateUnaryOperator uaggop,
                        String opcode, String istr) {
-               super(null, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.BinUaggChain;
+               super(SPType.BinUaggChain, null, in, out, opcode, istr);
                _bOp = bop;
                _uaggOp = uaggop;
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/BinarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BinarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BinarySPInstruction.java
index 948371d..5c1d21f 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BinarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BinarySPInstruction.java
@@ -44,9 +44,8 @@ import 
org.apache.sysml.runtime.matrix.operators.ScalarOperator;
 
 public abstract class BinarySPInstruction extends ComputationSPInstruction {
 
-       protected BinarySPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, in1, in2, out, opcode, istr);
+       protected BinarySPInstruction(SPType type, Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode, String istr) {
+               super(type, op, in1, in2, out, opcode, istr);
        }
 
        protected static String parseBinaryInstruction(String instr, CPOperand 
in1, CPOperand in2, CPOperand out)

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinBinarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinBinarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinBinarySPInstruction.java
index d042ce6..1fe3530 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinBinarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinBinarySPInstruction.java
@@ -34,10 +34,8 @@ import 
org.apache.sysml.runtime.matrix.operators.RightScalarOperator;
 
 public abstract class BuiltinBinarySPInstruction extends BinarySPInstruction {
 
-       protected BuiltinBinarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.BuiltinBinary;
+       protected BuiltinBinarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode, String istr) {
+               super(SPType.BuiltinBinary, op, in1, in2, out, opcode, istr);
        }
 
        public static BuiltinBinarySPInstruction parseInstruction ( String str 
) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
index 71d0003..cc96cd9 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
@@ -42,8 +42,7 @@ public class BuiltinNarySPInstruction extends SPInstruction
        private CPOperand output;
        
        protected BuiltinNarySPInstruction(CPOperand[] in, CPOperand out, 
String opcode, String istr) {
-               super(opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.BuiltinNary;
+               super(SPType.BuiltinNary, opcode, istr);
                inputs = in;
                output = out;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinUnarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinUnarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinUnarySPInstruction.java
index 8008404..d158445 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinUnarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinUnarySPInstruction.java
@@ -31,8 +31,7 @@ import 
org.apache.sysml.runtime.matrix.operators.UnaryOperator;
 public abstract class BuiltinUnarySPInstruction extends UnarySPInstruction {
 
        protected BuiltinUnarySPInstruction(Operator op, CPOperand in, 
CPOperand out, String opcode, String istr) {
-               super(op, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.BuiltinUnary;
+               super(SPType.BuiltinUnary, op, in, out, opcode, istr);
        }
 
        public static BuiltinUnarySPInstruction parseInstruction ( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CSVReblockSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CSVReblockSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CSVReblockSPInstruction.java
index cd8635a..be6c712 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CSVReblockSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CSVReblockSPInstruction.java
@@ -52,7 +52,7 @@ public class CSVReblockSPInstruction extends 
UnarySPInstruction {
 
        protected CSVReblockSPInstruction(Operator op, CPOperand in, CPOperand 
out, int br, int bc, boolean hasHeader,
                        String delim, boolean fill, double fillValue, String 
opcode, String instr) {
-               super(op, in, out, opcode, instr);
+               super(SPType.CSVReblock, op, in, out, opcode, instr);
                _brlen = br;
                _bclen = bc;
                _hasHeader = hasHeader;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java
index 38ecc63..10211c1 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java
@@ -40,8 +40,7 @@ import org.apache.sysml.runtime.util.UtilFunctions;
 public class CastSPInstruction extends UnarySPInstruction {
 
        private CastSPInstruction(Operator op, CPOperand in, CPOperand out, 
String opcode, String istr) {
-               super(op, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.Cast;
+               super(SPType.Cast, op, in, out, opcode, istr);
        }
 
        public static CastSPInstruction parseInstruction ( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CentralMomentSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CentralMomentSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CentralMomentSPInstruction.java
index 4e7b3f8..cdfa41a 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CentralMomentSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CentralMomentSPInstruction.java
@@ -43,9 +43,8 @@ import 
org.apache.sysml.runtime.matrix.operators.CMOperator.AggregateOperationTy
 
 public class CentralMomentSPInstruction extends UnarySPInstruction {
 
-       private CentralMomentSPInstruction(CMOperator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out,
-                       String opcode, String str) {
-               super(op, in1, in2, in3, out, opcode, str);
+       private CentralMomentSPInstruction(CMOperator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out, String opcode, String str) {
+               super(SPType.CentralMoment, op, in1, in2, in3, out, opcode, 
str);
        }
 
        public static CentralMomentSPInstruction parseInstruction(String str)

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CheckpointSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CheckpointSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CheckpointSPInstruction.java
index 1db615d..3b71948 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CheckpointSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CheckpointSPInstruction.java
@@ -47,10 +47,8 @@ public class CheckpointSPInstruction extends 
UnarySPInstruction {
        // default storage level
        private StorageLevel _level = null;
 
-       private CheckpointSPInstruction(Operator op, CPOperand in, CPOperand 
out, StorageLevel level, String opcode,
-                       String istr) {
-               super(op, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.Checkpoint;
+       private CheckpointSPInstruction(Operator op, CPOperand in, CPOperand 
out, StorageLevel level, String opcode, String istr) {
+               super(SPType.Checkpoint, op, in, out, opcode, istr);
                _level = level;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CompressionSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CompressionSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CompressionSPInstruction.java
index cdf3f26..ef04571 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CompressionSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CompressionSPInstruction.java
@@ -34,8 +34,7 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 public class CompressionSPInstruction extends UnarySPInstruction {
 
        private CompressionSPInstruction(Operator op, CPOperand in, CPOperand 
out, String opcode, String istr) {
-               super(op, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.Compression;
+               super(SPType.Compression, op, in, out, opcode, istr);
        }
 
        public static CompressionSPInstruction parseInstruction ( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ComputationSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ComputationSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ComputationSPInstruction.java
index d2d7416..37b886e 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ComputationSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ComputationSPInstruction.java
@@ -33,18 +33,16 @@ public abstract class ComputationSPInstruction extends 
SPInstruction {
        public CPOperand output;
        public CPOperand input1, input2, input3;
 
-       protected ComputationSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, opcode, istr);
+       protected ComputationSPInstruction(SPType type, Operator op, CPOperand 
in1, CPOperand in2, CPOperand out, String opcode, String istr) {
+               super(type, op, opcode, istr);
                input1 = in1;
                input2 = in2;
                input3 = null;
                output = out;
        }
 
-       protected ComputationSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand out,
-                       String opcode, String istr) {
-               super(op, opcode, istr);
+       protected ComputationSPInstruction(SPType type, Operator op, CPOperand 
in1, CPOperand in2, CPOperand in3, CPOperand out, String opcode, String istr) {
+               super(type, op, opcode, istr);
                input1 = in1;
                input2 = in2;
                input3 = in3;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ConvolutionSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ConvolutionSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ConvolutionSPInstruction.java
index f812f86..77141b3 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ConvolutionSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ConvolutionSPInstruction.java
@@ -61,8 +61,7 @@ public class ConvolutionSPInstruction extends 
UnarySPInstruction {
        private ConvolutionSPInstruction(CPOperand in, CPOperand out, String 
opcode, String istr,
                        ArrayList<CPOperand> stride, ArrayList<CPOperand> 
padding, ArrayList<CPOperand> input_shape,
                        ArrayList<CPOperand> filter_shape) {
-               super(new ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, 
out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.Convolution;
+               super(SPType.Convolution, new 
ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, out, opcode, istr);
                _stride = stride;
                _padding = padding;
                _input_shape = input_shape;
@@ -72,9 +71,8 @@ public class ConvolutionSPInstruction extends 
UnarySPInstruction {
        private ConvolutionSPInstruction(CPOperand in, CPOperand in2, CPOperand 
out, String opcode, String istr,
                        ArrayList<CPOperand> stride, ArrayList<CPOperand> 
padding, ArrayList<CPOperand> input_shape,
                        ArrayList<CPOperand> filter_shape) {
-               super(new ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, 
out, opcode, istr);
+               super(SPType.Convolution, new 
ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, out, opcode, istr);
                _in2 = in2;
-               _sptype = SPINSTRUCTION_TYPE.Convolution;
                _stride = stride;
                _padding = padding;
                _input_shape = input_shape;
@@ -84,10 +82,9 @@ public class ConvolutionSPInstruction extends 
UnarySPInstruction {
        private ConvolutionSPInstruction(CPOperand in, CPOperand in2, CPOperand 
in3, CPOperand out, String opcode,
                        String istr, ArrayList<CPOperand> stride, 
ArrayList<CPOperand> padding, ArrayList<CPOperand> input_shape,
                        ArrayList<CPOperand> filter_shape) {
-               super(new ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, 
out, opcode, istr);
+               super(SPType.Convolution, new 
ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, out, opcode, istr);
                _in2 = in2;
                _in3 = in3;
-               _sptype = SPINSTRUCTION_TYPE.Convolution;
                _stride = stride;
                _padding = padding;
                _input_shape = input_shape;
@@ -95,9 +92,8 @@ public class ConvolutionSPInstruction extends 
UnarySPInstruction {
        }
 
        private ConvolutionSPInstruction(CPOperand in, CPOperand in2, CPOperand 
out, String opcode, String istr) {
-               super(new ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, 
out, opcode, istr);
+               super(SPType.Convolution, new 
ReorgOperator(SwapIndex.getSwapIndexFnObject()), in, out, opcode, istr);
                _in2 = in2;
-               _sptype = SPINSTRUCTION_TYPE.Convolution;
        }
 
        public static ConvolutionSPInstruction parseInstruction( String str ) 
throws DMLRuntimeException {

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CovarianceSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CovarianceSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CovarianceSPInstruction.java
index dbc5695..d69d617 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CovarianceSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CovarianceSPInstruction.java
@@ -41,14 +41,12 @@ import 
org.apache.sysml.runtime.matrix.operators.COVOperator;
 
 public class CovarianceSPInstruction extends BinarySPInstruction {
 
-       private CovarianceSPInstruction(COVOperator op, CPOperand in, CPOperand 
in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, in, in2, out, opcode, istr);
+       private CovarianceSPInstruction(COVOperator op, CPOperand in, CPOperand 
in2, CPOperand out, String opcode, String istr) {
+               super(SPType.Covariance, op, in, in2, out, opcode, istr);
        }
 
-       private CovarianceSPInstruction(COVOperator op, CPOperand in, CPOperand 
in2, CPOperand in3, CPOperand out,
-                       String opcode, String istr) {
-               super(op, in, in2, out, opcode, istr);
+       private CovarianceSPInstruction(COVOperator op, CPOperand in, CPOperand 
in2, CPOperand in3, CPOperand out, String opcode, String istr) {
+               super(SPType.Covariance, op, in, in2, out, opcode, istr);
        }
 
        public static CovarianceSPInstruction parseInstruction(String str)

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
index 7b4976a..1d74edc 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
@@ -52,10 +52,8 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 public class CpmmSPInstruction extends BinarySPInstruction {
        private SparkAggType _aggtype;
 
-       private CpmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, SparkAggType aggtype,
-                       String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.CPMM;
+       private CpmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, SparkAggType aggtype, String opcode, String istr) {
+               super(SPType.CPMM, op, in1, in2, out, opcode, istr);
                _aggtype = aggtype;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
index 7e0ac0e..74c493c 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
@@ -39,10 +39,8 @@ import 
org.apache.sysml.runtime.matrix.operators.AggregateUnaryOperator;
 
 public class CumulativeAggregateSPInstruction extends 
AggregateUnarySPInstruction {
 
-       private CumulativeAggregateSPInstruction(AggregateUnaryOperator op, 
CPOperand in1, CPOperand out, String opcode,
-                       String istr) {
-               super(op, null, in1, out, null, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.CumsumAggregate;
+       private CumulativeAggregateSPInstruction(AggregateUnaryOperator op, 
CPOperand in1, CPOperand out, String opcode, String istr) {
+               super(SPType.CumsumAggregate, op, null, in1, out, null, opcode, 
istr);
        }
 
        public static CumulativeAggregateSPInstruction parseInstruction( String 
str ) 
@@ -50,7 +48,7 @@ public class CumulativeAggregateSPInstruction extends 
AggregateUnarySPInstructio
        {
                String[] parts = 
InstructionUtils.getInstructionPartsWithValueType( str );
                InstructionUtils.checkNumFields ( parts, 2 );
-                               
+               
                String opcode = parts[0];
                CPOperand in1 = new CPOperand(parts[1]);
                CPOperand out = new CPOperand(parts[2]);

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
index 7574228..88fb5ae 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
@@ -48,10 +48,8 @@ public class CumulativeOffsetSPInstruction extends 
BinarySPInstruction {
        private UnaryOperator _uop = null;
        private double _initValue = 0;
 
-       private CumulativeOffsetSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, double init,
-                       String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.CumsumOffset;
+       private CumulativeOffsetSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, double init, String opcode, String istr) {
+               super(SPType.CumsumOffset, op, in1, in2, out, opcode, istr);
 
                if ("bcumoffk+".equals(opcode)) {
                        _bop = new BinaryOperator(Plus.getPlusFnObject());

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/IndexingSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/IndexingSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/IndexingSPInstruction.java
index 38558d7..3f44aa6 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/IndexingSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/IndexingSPInstruction.java
@@ -37,20 +37,19 @@ public abstract class IndexingSPInstruction extends 
UnarySPInstruction {
        protected CPOperand rowLower, rowUpper, colLower, colUpper;
        protected SparkAggType _aggType = null;
 
-       IndexingSPInstruction(Operator op, CPOperand in, CPOperand rl, 
CPOperand ru, CPOperand cl, CPOperand cu,
+       protected IndexingSPInstruction(Operator op, CPOperand in, CPOperand 
rl, CPOperand ru, CPOperand cl, CPOperand cu,
                        CPOperand out, SparkAggType aggtype, String opcode, 
String istr) {
-               super(op, in, out, opcode, istr);
+               super(SPType.MatrixIndexing, op, in, out, opcode, istr);
                rowLower = rl;
                rowUpper = ru;
                colLower = cl;
                colUpper = cu;
-
                _aggType = aggtype;
        }
 
-       IndexingSPInstruction(Operator op, CPOperand lhsInput, CPOperand 
rhsInput, CPOperand rl, CPOperand ru, CPOperand cl,
+       protected IndexingSPInstruction(Operator op, CPOperand lhsInput, 
CPOperand rhsInput, CPOperand rl, CPOperand ru, CPOperand cl,
                        CPOperand cu, CPOperand out, String opcode, String 
istr) {
-               super(op, lhsInput, rhsInput, out, opcode, istr);
+               super(SPType.MatrixIndexing, op, lhsInput, rhsInput, out, 
opcode, istr);
                rowLower = rl;
                rowUpper = ru;
                colLower = cl;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmChainSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmChainSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmChainSPInstruction.java
index ca12349..345388f 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmChainSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmChainSPInstruction.java
@@ -46,28 +46,20 @@ public class MapmmChainSPInstruction extends SPInstruction {
        private CPOperand _input3 = null;
        private CPOperand _output = null;
 
-       private MapmmChainSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, ChainType type,
-                       String opcode, String istr) {
-               super(op, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MAPMMCHAIN;
-
+       private MapmmChainSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, ChainType type, String opcode, String istr) {
+               super(SPType.MAPMMCHAIN, op, opcode, istr);
                _input1 = in1;
                _input2 = in2;
                _output = out;
-
                _chainType = type;
        }
 
-       private MapmmChainSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand in3, CPOperand out,
-                       ChainType type, String opcode, String istr) {
-               super(op, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MAPMMCHAIN;
-
+       private MapmmChainSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand in3, CPOperand out, ChainType type, String opcode, String istr) {
+               super(SPType.MAPMMCHAIN, op, opcode, istr);
                _input1 = in1;
                _input2 = in2;
                _input3 = in3;
                _output = out;
-
                _chainType = type;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
index 75d674f..f882885 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
@@ -62,9 +62,7 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 
        private MapmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, CacheType type,
                        boolean outputEmpty, SparkAggType aggtype, String 
opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MAPMM;
-
+               super(SPType.MAPMM, op, in1, in2, out, opcode, istr);
                _type = type;
                _outputEmpty = outputEmpty;
                _aggtype = aggtype;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
index 3dc44f6..a0818e5 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
@@ -50,9 +50,7 @@ public class MatrixReshapeSPInstruction extends 
UnarySPInstruction {
 
        private MatrixReshapeSPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand in3, CPOperand in4,
                        CPOperand out, String opcode, String istr) {
-               super(op, in1, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MatrixReshape;
-
+               super(SPType.MatrixReshape, op, in1, out, opcode, istr);
                _opRows = in2;
                _opCols = in3;
                _opByRow = in4;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/MultiReturnParameterizedBuiltinSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MultiReturnParameterizedBuiltinSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MultiReturnParameterizedBuiltinSPInstruction.java
index 6d6478e..5d6c9e8 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/MultiReturnParameterizedBuiltinSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/MultiReturnParameterizedBuiltinSPInstruction.java
@@ -72,8 +72,7 @@ public class MultiReturnParameterizedBuiltinSPInstruction 
extends ComputationSPI
 
        private MultiReturnParameterizedBuiltinSPInstruction(Operator op, 
CPOperand input1, CPOperand input2,
                        ArrayList<CPOperand> outputs, String opcode, String 
istr) {
-               super(op, input1, input2, outputs.get(0), opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MultiReturnBuiltin;
+               super(SPType.MultiReturnBuiltin, op, input1, input2, 
outputs.get(0), opcode, istr);
                _outputs = outputs;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
index 6c037ff..55c84f4 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
@@ -59,8 +59,7 @@ public class PMapmmSPInstruction extends BinarySPInstruction {
        private static final int NUM_ROWBLOCKS = 4;
 
        private PMapmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.MAPMM;
+               super(SPType.PMAPMM, op, in1, in2, out, opcode, istr);
        }
 
        public static PMapmmSPInstruction parseInstruction( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
index fc1ed48..49dd6e5 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
@@ -90,8 +90,7 @@ public class ParameterizedBuiltinSPInstruction extends 
ComputationSPInstruction
 
        private ParameterizedBuiltinSPInstruction(Operator op, HashMap<String, 
String> paramsMap, CPOperand out,
                        String opcode, String istr, boolean bRmEmptyBC) {
-               super(op, null, null, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.ParameterizedBuiltin;
+               super(SPType.ParameterizedBuiltin, op, null, null, out, opcode, 
istr);
                params = paramsMap;
                _bRmEmptyBC = bRmEmptyBC;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
index cfd2456..313e2e2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
@@ -54,8 +54,7 @@ public class PmmSPInstruction extends BinarySPInstruction {
 
        private PmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, CPOperand nrow, CacheType type,
                        String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.PMM;
+               super(SPType.PMM, op, in1, in2, out, opcode, istr);
                _type = type;
                _nrow = nrow;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantilePickSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantilePickSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantilePickSPInstruction.java
index caaa9e8..0aa5c9d 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantilePickSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantilePickSPInstruction.java
@@ -58,8 +58,7 @@ public class QuantilePickSPInstruction extends 
BinarySPInstruction {
 
        private QuantilePickSPInstruction(Operator op, CPOperand in, CPOperand 
in2, CPOperand out, OperationTypes type,
                        boolean inmem, String opcode, String istr) {
-               super(op, in, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.QPick;
+               super(SPType.QPick, op, in, in2, out, opcode, istr);
                _type = type;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantileSortSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantileSortSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantileSortSPInstruction.java
index 6b31ba8..5088491 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantileSortSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuantileSortSPInstruction.java
@@ -52,8 +52,7 @@ public class QuantileSortSPInstruction extends 
UnarySPInstruction {
 
        private QuantileSortSPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand out, String opcode,
                        String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.QSort;
+               super(SPType.QSort, op, in1, in2, out, opcode, istr);
        }
 
        public static QuantileSortSPInstruction parseInstruction ( String str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
index a4d3b2e..96b37d2 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
@@ -66,10 +66,8 @@ public class QuaternarySPInstruction extends 
ComputationSPInstruction {
 
        private QuaternarySPInstruction(Operator op, CPOperand in1, CPOperand 
in2, CPOperand in3, CPOperand in4,
                        CPOperand out, boolean cacheU, boolean cacheV, String 
opcode, String str) {
-               super(op, in1, in2, in3, out, opcode, str);
-               _sptype = SPINSTRUCTION_TYPE.Quaternary;
+               super(SPType.Quaternary, op, in1, in2, in3, out, opcode, str);
                _input4 = in4;
-
                _cacheU = cacheU;
                _cacheV = cacheV;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
index ee9fefb..71bc427 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
@@ -89,7 +89,7 @@ public class RandSPInstruction extends UnarySPInstruction {
                        CPOperand rows, CPOperand cols, int rpb, int cpb, 
double minValue, double maxValue, double sparsity, long seed,
                        String dir, String probabilityDensityFunction, String 
pdfParams,
                        CPOperand seqFrom, CPOperand seqTo, CPOperand seqIncr, 
boolean replace, String opcode, String istr) {
-               super(op, in, out, opcode, istr);
+               super(SPType.Rand, op, in, out, opcode, istr);
                this.method = mthd;
                this.rows = rows;
                this.cols = cols;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ReblockSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReblockSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReblockSPInstruction.java
index 609b399..7f97d04 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReblockSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReblockSPInstruction.java
@@ -53,7 +53,7 @@ public class ReblockSPInstruction extends UnarySPInstruction {
 
        private ReblockSPInstruction(Operator op, CPOperand in, CPOperand out, 
int br, int bc, boolean emptyBlocks,
                        String opcode, String instr) {
-               super(op, in, out, opcode, instr);
+               super(SPType.Reblock, op, in, out, opcode, instr);
                brlen = br;
                bclen = bc;
                outputEmptyBlocks = emptyBlocks;

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/RelationalBinarySPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RelationalBinarySPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RelationalBinarySPInstruction.java
index 42e4de5..da07620 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RelationalBinarySPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RelationalBinarySPInstruction.java
@@ -30,10 +30,8 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 
 public abstract class RelationalBinarySPInstruction extends 
BinarySPInstruction {
 
-       protected RelationalBinarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode,
-                       String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.RelationalBinary;
+       protected RelationalBinarySPInstruction(Operator op, CPOperand in1, 
CPOperand in2, CPOperand out, String opcode, String istr) {
+               super(SPType.RelationalBinary, op, in1, in2, out, opcode, istr);
        }
 
        public static RelationalBinarySPInstruction parseInstruction ( String 
str ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
index 8e11a55..5d85ae4 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
@@ -67,8 +67,7 @@ public class ReorgSPInstruction extends UnarySPInstruction {
        private boolean _bSortIndInMem = false;
 
        private ReorgSPInstruction(Operator op, CPOperand in, CPOperand out, 
String opcode, String istr) {
-               super(op, in, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.Reorg;
+               super(SPType.Reorg, op, in, out, opcode, istr);
        }
 
        private ReorgSPInstruction(Operator op, CPOperand in, CPOperand col, 
CPOperand desc, CPOperand ixret, CPOperand out,
@@ -77,7 +76,6 @@ public class ReorgSPInstruction extends UnarySPInstruction {
                _col = col;
                _desc = desc;
                _ixret = ixret;
-               _sptype = SPINSTRUCTION_TYPE.Reorg;
                _bSortIndInMem = bSortIndInMem;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/4d1ee8e1/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
index 608200f..1aceee8 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
@@ -51,8 +51,7 @@ import org.apache.sysml.runtime.matrix.operators.Operator;
 public class RmmSPInstruction extends BinarySPInstruction {
 
        private RmmSPInstruction(Operator op, CPOperand in1, CPOperand in2, 
CPOperand out, String opcode, String istr) {
-               super(op, in1, in2, out, opcode, istr);
-               _sptype = SPINSTRUCTION_TYPE.RMM;
+               super(SPType.RMM, op, in1, in2, out, opcode, istr);
        }
 
        public static RmmSPInstruction parseInstruction( String str ) 

Reply via email to